72b013d45e6403f1dc5b147cab06c9d7c3e9210a
[openssl.git] / demos / engines / rsaref / build.com
1 $! BUILD.COM -- Building procedure for the RSAref engine
2 $
3 $       if f$search("source.dir") .eqs. "" -
4            .or. f$search("install.dir") .eqs. ""
5 $       then
6 $           write sys$error "RSAref 2.0 hasn't been properly extracted."
7 $           exit
8 $       endif
9 $
10 $       if (f$getsyi("cpu").lt.128)
11 $       then
12 $           arch := vax
13 $       else
14 $           arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
15 $           if (arch .eqs. "") then arch = "UNK"
16 $       endif
17 $
18 $       _save_default = f$environment("default")
19 $       set default [.install]
20 $       files := desc,digit,md2c,md5c,nn,prime,-
21                 rsa,r_encode,r_dh,r_enhanc,r_keygen,r_random,-
22                 r_stdlib
23 $       delete rsaref.olb;*
24 $       library/create/object rsaref.olb
25 $       files_i = 0
26 $ rsaref_loop:
27 $       files_e = f$edit(f$element(files_i,",",files),"trim")
28 $       files_i = files_i + 1
29 $       if files_e .eqs. "," then goto rsaref_loop_end
30 $       cc/include=([-.source],[])/define=PROTOTYPES=1/object=[]'files_e'.obj -
31                 [-.source]'files_e'.c
32 $       library/replace/object rsaref.olb 'files_e'.obj
33 $       goto rsaref_loop
34 $ rsaref_loop_end:
35 $
36 $       set default [-]
37 $       define/user openssl [---.include.openssl]
38 $       cc/define=ENGINE_DYNAMIC_SUPPORT rsaref.c
39 $
40 $       if arch .eqs. "VAX"
41 $       then
42 $           macro/object=rsaref_vec.obj sys$input:
43 ;
44 ; Transfer vector for VAX shareable image
45 ;
46         .TITLE librsaref
47 ;
48 ; Define macro to assist in building transfer vector entries.  Each entry
49 ; should take no more than 8 bytes.
50 ;
51         .MACRO FTRANSFER_ENTRY routine
52         .ALIGN QUAD
53         .TRANSFER routine
54         .MASK   routine
55         JMP     routine+2
56         .ENDM FTRANSFER_ENTRY
57 ;
58 ; Place entries in own program section.
59 ;
60         .PSECT $$LIBRSAREF,QUAD,PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT
61
62 LIBRSAREF_xfer:
63         FTRANSFER_ENTRY bind_engine
64         FTRANSFER_ENTRY v_check
65
66 ;
67 ; Allocate extra storage at end of vector to allow for expansion.
68 ;
69         .BLKB 512-<.-LIBRSAREF_xfer>    ; 1 page.
70         .END
71 $           link/share=librsaref.exe sys$input:/option
72 !
73 ! Ensure transfer vector is at beginning of image
74 !
75 CLUSTER=FIRST
76 COLLECT=FIRST,$$LIBRSAREF
77 !
78 ! make psects nonshareable so image can be installed.
79 !
80 PSECT_ATTR=$CHAR_STRING_CONSTANTS,NOWRT
81 []rsaref_vec.obj
82 []rsaref.obj
83 [.install]rsaref.olb/lib
84 [---.vax.exe.crypto]libcrypto.olb/lib
85 $       else
86 $           if arch_name .eqs. "ALPHA"
87 $           then
88 $               link/share=librsaref.exe sys$input:/option
89 []rsaref.obj
90 [.install]rsaref.olb/lib
91 [---.alpha.exe.crypto]libcrypto.olb/lib
92 symbol_vector=(bind_engine=procedure,v_check=procedure)
93 $           else
94 $               if arch_name .eqs. "IA64"
95 $               then
96 $                   link /shareable=librsaref.exe sys$input: /options
97 []rsaref.obj
98 [.install]rsaref.olb/lib
99 [---.ia64.exe.crypto]libcrypto.olb/lib
100 symbol_vector=(bind_engine=procedure,v_check=procedure)
101 $               endif
102 $           endif
103 $       endif
104 $
105 $       set default '_save_default'