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 62LIBRSAREF_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! 75CLUSTER=FIRST 76COLLECT=FIRST,$$LIBRSAREF 77! 78! make psects nonshareable so image can be installed. 79! 80PSECT_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 92symbol_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 100symbol_vector=(bind_engine=procedure,v_check=procedure) 101$ endif 102$ endif 103$ endif 104$ 105$ set default '_save_default' 106