123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- $! BUILD.COM -- Building procedure for the RSAref engine
- $
- $ if f$search("source.dir") .eqs. "" -
- .or. f$search("install.dir") .eqs. ""
- $ then
- $ write sys$error "RSAref 2.0 hasn't been properly extracted."
- $ exit
- $ endif
- $
- $ if (f$getsyi("cpu").lt.128)
- $ then
- $ arch := vax
- $ else
- $ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
- $ if (arch .eqs. "") then arch = "UNK"
- $ endif
- $
- $ _save_default = f$environment("default")
- $ set default [.install]
- $ files := desc,digit,md2c,md5c,nn,prime,-
- rsa,r_encode,r_dh,r_enhanc,r_keygen,r_random,-
- r_stdlib
- $ delete rsaref.olb;*
- $ library/create/object rsaref.olb
- $ files_i = 0
- $ rsaref_loop:
- $ files_e = f$edit(f$element(files_i,",",files),"trim")
- $ files_i = files_i + 1
- $ if files_e .eqs. "," then goto rsaref_loop_end
- $ cc/include=([-.source],[])/define=PROTOTYPES=1/object=[]'files_e'.obj -
- [-.source]'files_e'.c
- $ library/replace/object rsaref.olb 'files_e'.obj
- $ goto rsaref_loop
- $ rsaref_loop_end:
- $
- $ set default [-]
- $ define/user openssl [---.include.openssl]
- $ cc/define=ENGINE_DYNAMIC_SUPPORT rsaref.c
- $
- $ if arch .eqs. "VAX"
- $ then
- $ macro/object=rsaref_vec.obj sys$input:
- ;
- ; Transfer vector for VAX shareable image
- ;
- .TITLE librsaref
- ;
- ; Define macro to assist in building transfer vector entries. Each entry
- ; should take no more than 8 bytes.
- ;
- .MACRO FTRANSFER_ENTRY routine
- .ALIGN QUAD
- .TRANSFER routine
- .MASK routine
- JMP routine+2
- .ENDM FTRANSFER_ENTRY
- ;
- ; Place entries in own program section.
- ;
- .PSECT $$LIBRSAREF,QUAD,PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT
- LIBRSAREF_xfer:
- FTRANSFER_ENTRY bind_engine
- FTRANSFER_ENTRY v_check
- ;
- ; Allocate extra storage at end of vector to allow for expansion.
- ;
- .BLKB 512-<.-LIBRSAREF_xfer> ; 1 page.
- .END
- $ link/share=librsaref.exe sys$input:/option
- !
- ! Ensure transfer vector is at beginning of image
- !
- CLUSTER=FIRST
- COLLECT=FIRST,$$LIBRSAREF
- !
- ! make psects nonshareable so image can be installed.
- !
- PSECT_ATTR=$CHAR_STRING_CONSTANTS,NOWRT
- []rsaref_vec.obj
- []rsaref.obj
- [.install]rsaref.olb/lib
- [---.vax.exe.crypto]libcrypto.olb/lib
- $ else
- $ if arch_name .eqs. "ALPHA"
- $ then
- $ link/share=librsaref.exe sys$input:/option
- []rsaref.obj
- [.install]rsaref.olb/lib
- [---.alpha.exe.crypto]libcrypto.olb/lib
- symbol_vector=(bind_engine=procedure,v_check=procedure)
- $ else
- $ if arch_name .eqs. "IA64"
- $ then
- $ link /shareable=librsaref.exe sys$input: /options
- []rsaref.obj
- [.install]rsaref.olb/lib
- [---.ia64.exe.crypto]libcrypto.olb/lib
- symbol_vector=(bind_engine=procedure,v_check=procedure)
- $ endif
- $ endif
- $ endif
- $
- $ set default '_save_default'
|