Apply all the changes submitted by Steven M. Schweda <sms@antinode.info>

This commit is contained in:
Richard Levitte 2011-03-19 09:47:47 +00:00
parent dd7aadf7b2
commit 01d2e27a2b
52 changed files with 2825 additions and 1513 deletions

67
VMS/install-vms.com Executable file
View File

@ -0,0 +1,67 @@
$! install-vms.com -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 23-MAY-1998 19:22
$!
$! P1 root of the directory tree
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on error then goto tidy
$ on control_c then goto tidy
$!
$ if p1 .eqs. ""
$ then
$ write sys$output "First argument missing."
$ write sys$output -
"Should be the directory where you want things installed."
$ 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
$
$ root = f$parse( P1, "[]A.;0", , , "SYNTAX_ONLY, NO_CONCEAL")- "A.;0"
$ root_dev = f$parse( root, , , "device", "syntax_only")
$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
"[000000." - "][" - "[" - "]"
$ root = root_dev + "[" + root_dir
$
$ define /nolog wrk_sslroot 'root'.] /translation_attributes = concealed
$ define /nolog wrk_sslinclude wrk_sslroot:[include]
$
$ if f$parse( "wrk_sslroot:[000000]") .eqs. "" then -
create /directory /log wrk_sslroot:[000000]
$ if f$parse( "wrk_sslinclude:") .eqs. "" then -
create /directory /log wrk_sslinclude:
$ if f$parse( "wrk_sslroot:[vms]") .eqs. "" then -
create /directory /log wrk_sslroot:[vms]
$!
$ copy /log /protection = world:re openssl_startup.com wrk_sslroot:[vms]
$ copy /log /protection = world:re openssl_undo.com wrk_sslroot:[vms]
$ copy /log /protection = world:re openssl_utils.com wrk_sslroot:[vms]
$!
$ tidy:
$!
$ call deass wrk_sslroot
$ call deass wrk_sslinclude
$!
$ exit
$!
$ deass: subroutine
$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
$ then
$ deassign /process 'p1'
$ endif
$ endsubroutine
$!

View File

@ -1,79 +0,0 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 23-MAY-1998 19:22
$!
$! P1 root of the directory tree
$!
$ IF P1 .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "First argument missing."
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
$ 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
$
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
- "[000000." - "][" - "[" - "]"
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
$
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
$
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[000000]
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLINCLUDE:
$ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[VMS]
$
$ IF F$SEARCH("WRK_SSLINCLUDE:vms_idhacks.h") .NES. "" THEN -
DELETE WRK_SSLINCLUDE:vms_idhacks.h;*
$
$ OPEN/WRITE SF WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM
$ WRITE SYS$OUTPUT "%OPEN-I-CREATED, ",F$SEARCH("WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM")," created."
$ WRITE SF "$! Startup file for Openssl"
$ WRITE SF "$!"
$ WRITE SF "$! Do not edit this file, as it will be regenerated during next installation."
$ WRITE SF "$! Instead, add or change SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"
$ WRITE SF "$!"
$ WRITE SF "$! P1 a qualifier to DEFINE. For example ""/SYSTEM"" to get the logical names"
$ WRITE SF "$! defined in the system logical name table."
$ WRITE SF "$!"
$ WRITE SF "$ IF (F$GETSYI(""CPU"").LT.128)"
$ WRITE SF "$ THEN"
$ WRITE SF "$ ARCH := VAX"
$ WRITE SF "$ ELSE"
$ WRITE SF "$ ARCH = F$EDIT( F$GETSYI( ""ARCH_NAME""), ""UPCASE"")"
$ WRITE SF "$ IF (ARCH .EQS. """") THEN ARCH = ""UNK"""
$ WRITE SF "$ ENDIF"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLROOT ",ROOT,".] /TRANS=CONC"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLLIB SSLROOT:['ARCH'_LIB]"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLINCLUDE SSLROOT:[INCLUDE]"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLEXE SSLROOT:['ARCH'_EXE]"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLCERTS SSLROOT:[CERTS]"
$ WRITE SF "$ DEFINE/NOLOG'P1 SSLPRIVATE SSLROOT:[PRIVATE]"
$ WRITE SF "$"
$ WRITE SF "$! This is program can include <openssl/{foo}.h>"
$ WRITE SF "$ DEFINE/NOLOG'P1 OPENSSL SSLINCLUDE:"
$ WRITE SF "$"
$ WRITE SF "$ IF F$SEARCH(""SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"") .NES."""" THEN -"
$ WRITE SF " @SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"
$ WRITE SF "$"
$ WRITE SF "$ EXIT"
$ CLOSE SF
$ SET FILE/PROT=WORLD:RE WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM
$
$ COPY OPENSSL_UTILS.COM WRK_SSLROOT:[VMS]/LOG
$ SET FILE/PROT=WORLD:RE WRK_SSLROOT:[VMS]OPENSSL_UTILS.COM
$
$ EXIT

View File

@ -1,101 +1,159 @@
$! MKSHARED.COM -- script to created shareable images on VMS $! MKSHARED.COM -- Create shareable images.
$! $!
$! No command line parameters. This should be run at the start of the source $! P1: "64" for 64-bit pointers.
$! tree (the same directory where one finds INSTALL.VMS).
$! $!
$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB $! P2: Zlib object library path (optional).
$! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]LIBSSL.OLB $!
$! Output: [.xxx.EXE.CRYPTO]LIBCRYPTO.OPT,.MAP,.EXE $! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO[32].OLB
$! [.xxx.EXE.SSL]LIBSSL.OPT,.MAP,.EXE $! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]SSL_LIBSSL[32].OLB
$! Output: [.xxx.EXE.CRYPTO]SSL_LIBCRYPTO_SHR[32].OPT,.MAP,.EXE
$! [.xxx.EXE.SSL]SSL_LIBSSL_SRH[32].OPT,.MAP,.EXE
$! $!
$! So far, tests have only been made on VMS for Alpha. VAX will come in time. $! So far, tests have only been made on VMS for Alpha. VAX will come in time.
$! =========================================================================== $! ===========================================================================
$ $!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$! Save the original default device:[directory].
$!
$ def_orig = f$environment( "default")
$ on error then goto tidy
$ on control_c then goto tidy
$!
$! SET DEFAULT to the main kit directory.
$!
$ proc = f$environment("procedure")
$ proc = f$parse( "A.;", proc)- "A.;"
$ set default 'proc'
$ set default [-]
$!
$! ----- Prepare info for processing: version number and file info $! ----- Prepare info for processing: version number and file info
$ gosub read_version_info $ gosub read_version_info
$ if libver .eqs. "" $ if libver .eqs. ""
$ then $ then
$ write sys$error "ERROR: Couldn't find any library version info..." $ write sys$error "ERROR: Couldn't find any library version info..."
$ exit $ go to tidy:
$ endif $ endif
$ $
$ if (f$getsyi("cpu").lt.128) $ if (f$getsyi("cpu") .lt. 128)
$ then $ then
$ arch := VAX
$ else
$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if (arch .eqs. "") then arch = "UNK"
$ endif
$
$ if arch .nes. "VAX"
$ then
$ arch_vax = 0
$ libid = "Crypto"
$ libnum = "[.UTIL]LIBEAY.NUM"
$ libdir = "[.''ARCH'.EXE.CRYPTO]"
$ libolb = "''libdir'LIBCRYPTO.OLB"
$ libopt = "''libdir'LIBCRYPTO.OPT"
$ libmap = "''libdir'LIBCRYPTO.MAP"
$ libgoal= "''libdir'LIBCRYPTO.EXE"
$ libref = ""
$ if f$search(libdir+libolb) .nes. "" then gosub create_nonvax_shr
$ libid = "SSL"
$ libnum = "[.UTIL]SSLEAY.NUM"
$ libdir = "[.''ARCH'.EXE.SSL]"
$ libolb = "''libdir'LIBSSL.OLB"
$ libopt = "''libdir'LIBSSL.OPT"
$ libmap = "''libdir'LIBSSL.MAP"
$ libgoal= "''libdir'LIBSSL.EXE"
$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE"
$ if f$search(libdir+libolb) .nes. "" then gosub create_nonvax_shr
$ arch_vax = 0
$ libid = "Crypto"
$ libnum = "[.UTIL]LIBEAY.NUM"
$ libdir = "[.''ARCH'.EXE.CRYPTO]"
$ libolb = "''libdir'LIBCRYPTO32.OLB"
$ libopt = "''libdir'LIBCRYPTO32.OPT"
$ libmap = "''libdir'LIBCRYPTO32.MAP"
$ libgoal= "''libdir'LIBCRYPTO32.EXE"
$ libref = ""
$ if f$search(libdir+libolb) .nes. "" then gosub create_nonvax_shr
$ libid = "SSL"
$ libnum = "[.UTIL]SSLEAY.NUM"
$ libdir = "[.''ARCH'.EXE.SSL]"
$ libolb = "''libdir'LIBSSL32.OLB"
$ libopt = "''libdir'LIBSSL32.OPT"
$ libmap = "''libdir'LIBSSL32.MAP"
$ libgoal= "''libdir'LIBSSL32.EXE"
$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO32.EXE"
$ if f$search(libdir+libolb) .nes. "" then gosub create_nonvax_shr
$ else
$ arch_vax = 1 $ arch_vax = 1
$ arch = "VAX"
$ else
$ arch_vax = 0
$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if (arch .eqs. "") then arch = "UNK"
$ endif
$!
$ archd = arch
$ lib32 = "32"
$ shr = "SHR32"
$!
$ if (p1 .nes. "")
$ then
$ if (p1 .eqs. "64")
$ then
$ archd = arch+ "_64"
$ lib32 = ""
$ shr = "SHR"
$ else
$ if (p1 .nes. "32")
$ then
$ write sys$output "Second argument invalid."
$ write sys$output "It should be "32", "64", or nothing."
$ exit
$ endif
$ endif
$ endif
$!
$ ZLIB = p2
$ zlib_lib = ""
$ if (ZLIB .nes. "")
$ then
$ file2 = f$parse( ZLIB, "libz.olb", , , "syntax_only")
$ if (f$search( file2) .eqs. "")
$ then
$ write sys$output ""
$ write sys$output "The Option ", ZLIB, " Is Invalid."
$ write sys$output " Can't find library: ''file2'"
$ write sys$output ""
$ goto tidy
$ endif
$ zlib_lib = ", ''file2' /library"
$ endif
$!
$ if (arch_vax)
$ then
$ libtit = "CRYPTO_TRANSFER_VECTOR" $ libtit = "CRYPTO_TRANSFER_VECTOR"
$ libid = "Crypto" $ libid = "Crypto"
$ libnum = "[.UTIL]LIBEAY.NUM" $ libnum = "[.UTIL]LIBEAY.NUM"
$ libdir = "[.''ARCH'.EXE.CRYPTO]" $ libdir = "[.''ARCHD'.EXE.CRYPTO]"
$ libmar = "''libdir'LIBCRYPTO.MAR" $ libmar = "''libdir'SSL_LIBCRYPTO_''shr'.MAR"
$ libolb = "''libdir'LIBCRYPTO.OLB" $ libolb = "''libdir'SSL_LIBCRYPTO''lib32'.OLB"
$ libopt = "''libdir'LIBCRYPTO.OPT" $ libopt = "''libdir'SSL_LIBCRYPTO_''shr'.OPT"
$ libobj = "''libdir'LIBCRYPTO.OBJ" $ libobj = "''libdir'SSL_LIBCRYPTO_''shr'.OBJ"
$ libmap = "''libdir'LIBCRYPTO.MAP" $ libmap = "''libdir'SSL_LIBCRYPTO_''shr'.MAP"
$ libgoal= "''libdir'LIBCRYPTO.EXE" $ libgoal= "''libdir'SSL_LIBCRYPTO_''shr'.EXE"
$ libref = "" $ libref = ""
$ libvec = "LIBCRYPTO" $ libvec = "LIBCRYPTO"
$ if f$search(libdir+libolb) .nes. "" then gosub create_vax_shr $ if f$search( libolb) .nes. "" then gosub create_vax_shr
$ libtit = "SSL_TRANSFER_VECTOR" $ libtit = "SSL_TRANSFER_VECTOR"
$ libid = "SSL" $ libid = "SSL"
$ libnum = "[.UTIL]SSLEAY.NUM" $ libnum = "[.UTIL]SSLEAY.NUM"
$ libdir = "[.''ARCH'.EXE.SSL]" $ libdir = "[.''ARCHD'.EXE.SSL]"
$ libmar = "''libdir'LIBSSL.MAR" $ libmar = "''libdir'SSL_LIBSSL_''shr'.MAR"
$ libolb = "''libdir'LIBSSL.OLB" $ libolb = "''libdir'SSL_LIBSSL''lib32'.OLB"
$ libopt = "''libdir'LIBSSL.OPT" $ libopt = "''libdir'SSL_LIBSSL_''shr'.OPT"
$ libobj = "''libdir'LIBSSL.OBJ" $ libobj = "''libdir'SSL_LIBSSL_''shr'.OBJ"
$ libmap = "''libdir'LIBSSL.MAP" $ libmap = "''libdir'SSL_LIBSSL_''shr'.MAP"
$ libgoal= "''libdir'LIBSSL.EXE" $ libgoal= "''libdir'SSL_LIBSSL_''shr'.EXE"
$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE" $ libref = "[.''ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO_''shr'.EXE"
$ libvec = "LIBSSL" $ libvec = "LIBSSL"
$ if f$search(libdir+libolb) .nes. "" then gosub create_vax_shr $ if f$search( libolb) .nes. "" then gosub create_vax_shr
$ else
$ libid = "Crypto"
$ libnum = "[.UTIL]LIBEAY.NUM"
$ libdir = "[.''ARCHD'.EXE.CRYPTO]"
$ libolb = "''libdir'SSL_LIBCRYPTO''lib32'.OLB"
$ libopt = "''libdir'SSL_LIBCRYPTO_''shr'.OPT"
$ libmap = "''libdir'SSL_LIBCRYPTO_''shr'.MAP"
$ libgoal= "''libdir'SSL_LIBCRYPTO_''shr'.EXE"
$ libref = ""
$ if f$search( libolb) .nes. "" then gosub create_nonvax_shr
$ libid = "SSL"
$ libnum = "[.UTIL]SSLEAY.NUM"
$ libdir = "[.''ARCHD'.EXE.SSL]"
$ libolb = "''libdir'SSL_LIBSSL''lib32'.OLB"
$ libopt = "''libdir'SSL_LIBSSL_''shr'.OPT"
$ libmap = "''libdir'SSL_LIBSSL_''shr'.MAP"
$ libgoal= "''libdir'SSL_LIBSSL_''shr'.EXE"
$ libref = "[.''ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO_''shr'.EXE"
$ if f$search( libolb) .nes. "" then gosub create_nonvax_shr
$ endif $ endif
$!
$ tidy:
$!
$! Close any open files.
$!
$ if (f$trnlnm( "libnum", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close libnum
$!
$ if (f$trnlnm( "mar", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close mar
$!
$ if (f$trnlnm( "opt", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close opt
$!
$ if (f$trnlnm( "vf", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close vf
$!
$! Restore the original default device:[directory].
$!
$ set default 'def_orig'
$ exit $ exit
$ $
$! ----- Subroutines to build the shareable libraries $! ----- Subroutines to build the shareable libraries
@ -130,9 +188,9 @@ $! ----- Subroutines for non-VAX
$! ----- $! -----
$! The creator routine $! The creator routine
$ create_nonvax_shr: $ create_nonvax_shr:
$ open/write opt 'libopt' $ open /write opt 'libopt'
$ write opt "identification=""",libid," ",libverstr,"""" $ write opt "identification=""",libid," ",libverstr,""""
$ write opt libolb,"/lib" $ write opt libolb, " /library"
$ if libref .nes. "" then write opt libref,"/SHARE" $ if libref .nes. "" then write opt libref,"/SHARE"
$ write opt "SYMBOL_VECTOR=(-" $ write opt "SYMBOL_VECTOR=(-"
$ libfirstentry := true $ libfirstentry := true
@ -143,7 +201,8 @@ $ gosub read_func_num
$ write opt ")" $ write opt ")"
$ write opt "GSMATCH=",libvmatch,",",libver $ write opt "GSMATCH=",libvmatch,",",libver
$ close opt $ close opt
$ link/map='libmap'/full/share='libgoal' 'libopt'/option $ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options -
'zlib_lib'
$ return $ return
$ $
$! The record writer routine $! The record writer routine
@ -177,7 +236,7 @@ $! ----- Subroutines for VAX
$! ----- $! -----
$! The creator routine $! The creator routine
$ create_vax_shr: $ create_vax_shr:
$ open/write mar 'libmar' $ open /write mar 'libmar'
$ type sys$input:/out=mar: $ type sys$input:/out=mar:
; ;
; Transfer vector for VAX shareable image ; Transfer vector for VAX shareable image
@ -212,10 +271,10 @@ $! libwriter := write_vax_vtransfer_entry
$! gosub read_func_num $! gosub read_func_num
$ write mar " .END" $ write mar " .END"
$ close mar $ close mar
$ open/write opt 'libopt' $ open /write opt 'libopt'
$ write opt "identification=""",libid," ",libverstr,"""" $ write opt "identification=""",libid," ",libverstr,""""
$ write opt libobj $ write opt libobj
$ write opt libolb,"/lib" $ write opt libolb, " /library"
$ if libref .nes. "" then write opt libref,"/SHARE" $ if libref .nes. "" then write opt libref,"/SHARE"
$ type sys$input:/out=opt: $ type sys$input:/out=opt:
! !
@ -234,7 +293,8 @@ $ libwriter := write_vax_psect_attr
$ gosub read_func_num $ gosub read_func_num
$ close opt $ close opt
$ macro/obj='libobj' 'libmar' $ macro/obj='libobj' 'libmar'
$ link/map='libmap'/full/share='libgoal' 'libopt'/option $ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options -
'zlib_lib'
$ return $ return
$ $
$! The record writer routine for VAX functions $! The record writer routine for VAX functions
@ -256,9 +316,9 @@ $ return
$ $
$! ----- Common subroutines $! ----- Common subroutines
$! ----- $! -----
$! The .num file reader. This one has great responsability. $! The .num file reader. This one has great responsibility.
$ read_func_num: $ read_func_num:
$ open libnum 'libnum' $ open /read libnum 'libnum'
$ goto read_nums $ goto read_nums
$ $
$ read_nums: $ read_nums:
@ -266,27 +326,28 @@ $ libentrynum=0
$ liblastentry:=false $ liblastentry:=false
$ entrycount=0 $ entrycount=0
$ loop: $ loop:
$ read/end=loop_end/err=loop_end libnum line $ read /end=loop_end /err=loop_end libnum line
$ entrynum=f$int(f$element(1," ",f$edit(line,"COMPRESS,TRIM"))) $ lin = f$edit( line, "COMPRESS,TRIM")
$ entryinfo=f$element(2," ",f$edit(line,"COMPRESS,TRIM")) $ entrynum = f$int(f$element( 1, " ", lin))
$ curentry=f$element(0," ",f$edit(line,"COMPRESS,TRIM")) $ entryinfo = f$element( 2, " ", lin)
$ info_exist=f$element(0,":",entryinfo) $ curentry = f$element( 0, " ", lin)
$ info_platforms=","+f$element(1,":",entryinfo)+"," $ info_exist = f$element( 0, ":", entryinfo)
$ info_kind=f$element(2,":",entryinfo) $ info_platforms = ","+ f$element(1, ":", entryinfo)+ ","
$ info_algorithms=","+f$element(3,":",entryinfo)+"," $ info_kind = f$element( 2, ":", entryinfo)
$ info_algorithms = ","+ f$element( 3, ":", entryinfo)+ ","
$ if info_exist .eqs. "NOEXIST" then goto loop $ if info_exist .eqs. "NOEXIST" then goto loop
$ truesum = 0 $ truesum = 0
$ falsesum = 0 $ falsesum = 0
$ negatives = 1 $ negatives = 1
$ plat_i = 0 $ plat_i = 0
$ loop1: $ loop1:
$ plat_entry = f$element(plat_i,",",info_platforms) $ plat_entry = f$element( plat_i, ",", info_platforms)
$ plat_i = plat_i + 1 $ plat_i = plat_i + 1
$ if plat_entry .eqs. "" then goto loop1 $ if plat_entry .eqs. "" then goto loop1
$ if plat_entry .nes. "," $ if plat_entry .nes. ","
$ then $ then
$ if f$extract(0,1,plat_entry) .nes. "!" then negatives = 0 $ if f$extract(0,1,plat_entry) .nes. "!" then negatives = 0
$ if f$getsyi("CPU") .lt. 128 $ if (arch_vax)
$ then $ then
$ if plat_entry .eqs. "EXPORT_VAR_AS_FUNCTION" then - $ if plat_entry .eqs. "EXPORT_VAR_AS_FUNCTION" then -
$ truesum = truesum + 1 $ truesum = truesum + 1
@ -295,6 +356,7 @@ $ falsesum = falsesum + 1
$ endif $ endif
$! $!
$ if ((plat_entry .eqs. "VMS") .or. - $ if ((plat_entry .eqs. "VMS") .or. -
((plat_entry .eqs. "ZLIB") .and. (ZLIB .nes. "")) .or. -
(arch_vax .and. (plat_entry .eqs. "VMSVAX"))) then - (arch_vax .and. (plat_entry .eqs. "VMSVAX"))) then -
truesum = truesum + 1 truesum = truesum + 1
$! $!
@ -364,7 +426,7 @@ $
$! The version number reader $! The version number reader
$ read_version_info: $ read_version_info:
$ libver = "" $ libver = ""
$ open/read vf [.CRYPTO]OPENSSLV.H $ open /read vf [.CRYPTO]OPENSSLV.H
$ loop_rvi: $ loop_rvi:
$ read/err=endloop_rvi/end=endloop_rvi vf rvi_line $ read/err=endloop_rvi/end=endloop_rvi vf rvi_line
$ if rvi_line - "SHLIB_VERSION_NUMBER """ .eqs. rvi_line then - $ if rvi_line - "SHLIB_VERSION_NUMBER """ .eqs. rvi_line then -

108
VMS/openssl_startup.com Executable file
View File

@ -0,0 +1,108 @@
$!
$! Startup file for OpenSSL 1.x.
$!
$! 2011-03-05 SMS.
$!
$! This procedure must reside in the OpenSSL installation directory.
$! It will fail if it is copied to a different location.
$!
$! P1 qualifier(s) for DEFINE. For example, "/SYSTEM" to get the
$! logical names defined in the system logical name table.
$!
$! P2 "64", to use executables which were built with 64-bit pointers.
$!
$! Good (default) and bad status values.
$!
$ status = %x00010001 ! RMS$_NORMAL, normal successful completion.
$ rms_e_fnf = %x00018292 ! RMS$_FNF, file not found.
$!
$! Prepare for problems.
$!
$ orig_dev_dir = f$environment( "DEFAULT")
$ on control_y then goto clean_up
$ on error then goto clean_up
$!
$! Determine hardware architecture.
$!
$ if (f$getsyi( "cpu") .lt. 128)
$ then
$ arch_name = "VAX"
$ else
$ arch_name = f$edit( f$getsyi( "arch_name"), "upcase")
$ if (arch_name .eqs. "") then arch_name = "UNK"
$ endif
$!
$ if (p2 .eqs. "64")
$ then
$ arch_name_exe = arch_name+ "_64"
$ else
$ arch_name_exe = arch_name
$ endif
$!
$! Derive the OpenSSL installation device:[directory] from the location
$! of this command procedure.
$!
$ proc = f$environment( "procedure")
$ proc_dev_dir = f$parse( "A.;", proc, , , "no_conceal") - "A.;"
$ proc_dev = f$parse( proc_dev_dir, , , "device", "syntax_only")
$ proc_dir = f$parse( proc_dev_dir, , , "directory", "syntax_only") - -
".][000000"- "[000000."- "]["- "["- "]"
$ proc_dev_dir = proc_dev+ "["+ proc_dir+ "]"
$ set default 'proc_dev_dir'
$ set default [-]
$ ossl_dev_dir = f$environment( "default")
$!
$! Check existence of expected directories (to see if this procedure has
$! been moved away from its proper place).
$!
$ if ((f$search( "certs.dir;1") .eqs. "") .or. -
(f$search( "include.dir;1") .eqs. "") .or. -
(f$search( "private.dir;1") .eqs. "") .or. -
(f$search( "vms.dir;1") .eqs. ""))
$ then
$ write sys$output -
" Can't find expected common OpenSSL directories in:"
$ write sys$output " ''ossl_dev_dir'"
$ status = rms_e_fnf
$ goto clean_up
$ endif
$!
$ if ((f$search( "''arch_name_exe'_exe.dir;1") .eqs. "") .or. -
(f$search( "''arch_name'_lib.dir;1") .eqs. ""))
$ then
$ write sys$output -
" Can't find expected architecture-specific OpenSSL directories in:"
$ write sys$output " ''ossl_dev_dir'"
$ status = rms_e_fnf
$ goto clean_up
$ endif
$!
$! All seems well (enough). Define the OpenSSL logical names.
$!
$ ossl_root = ossl_dev_dir- "]"+ ".]"
$ define /translation_attributes = concealed /nolog'p1 SSLROOT 'ossl_root'
$ define /nolog 'p1' SSLCERTS sslroot:[certs]
$ define /nolog 'p1' SSLINCLUDE sslroot:[include]
$ define /nolog 'p1' SSLPRIVATE sslroot:[private]
$ define /nolog 'p1' SSLEXE sslroot:['arch_name_exe'_exe]
$ define /nolog 'p1' SSLLIB sslroot:['arch_name'_lib]
$!
$! Defining OPENSSL lets a C program use "#include <openssl/{foo}.h>":
$ define /nolog 'p1' OPENSSL SSLINCLUDE:
$!
$! Run a site-specific procedure, if it exists.
$!
$ if f$search( "sslroot:[vms]openssl_systartup.com") .nes."" then -
@ sslroot:[vms]openssl_systartup.com
$!
$! Restore the original default dev:[dir] (if known).
$!
$ clean_up:
$!
$ if (f$type( orig_dev_dir) .nes. "")
$ then
$ set default 'orig_dev_dir'
$ endif
$!
$ EXIT 'status'
$!

20
VMS/openssl_undo.com Executable file
View File

@ -0,0 +1,20 @@
$!
$! Deassign OpenSSL logical names.
$!
$ call deass "OPENSSL" "''p1'"
$ call deass "SSLCERTS" "''p1'"
$ call deass "SSLEXE" "''p1'"
$ call deass "SSLINCLUDE" "''p1'"
$ call deass "SSLLIB" "''p1'"
$ call deass "SSLPRIVATE" "''p1'"
$ call deass "SSLROOT" "''p1'"
$!
$ exit
$!
$deass: subroutine
$ if (f$trnlnm( p1) .nes. "")
$ then
$ deassign 'p2' 'p1'
$ endif
$ endsubroutine
$!

View File

@ -114,7 +114,7 @@ $!
$ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. "" $ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. ""
$ THEN $ THEN
$ READ '__INPUT' FILE - $ READ '__INPUT' FILE -
/PROMPT="CA certificate filename (or enter to create)" /PROMPT="CA certificate filename (or enter to create): "
$ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "") $ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "")
$ THEN $ THEN
$ COPY 'FILE' 'CATOP'.private'CAKEY' $ COPY 'FILE' 'CATOP'.private'CAKEY'

View File

@ -798,7 +798,9 @@ X509 *load_cert(BIO *err, const char *file, int format,
if (file == NULL) if (file == NULL)
{ {
#ifdef _IONBF #ifdef _IONBF
# ifndef OPENSSL_NO_SETVBUF_IONBF
setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdin, NULL, _IONBF, 0);
# endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
#endif #endif
BIO_set_fp(cert,stdin,BIO_NOCLOSE); BIO_set_fp(cert,stdin,BIO_NOCLOSE);
} }
@ -899,7 +901,9 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
if (file == NULL && maybe_stdin) if (file == NULL && maybe_stdin)
{ {
#ifdef _IONBF #ifdef _IONBF
# ifndef OPENSSL_NO_SETVBUF_IONBF
setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdin, NULL, _IONBF, 0);
# endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
#endif #endif
BIO_set_fp(key,stdin,BIO_NOCLOSE); BIO_set_fp(key,stdin,BIO_NOCLOSE);
} }
@ -988,7 +992,9 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
if (file == NULL && maybe_stdin) if (file == NULL && maybe_stdin)
{ {
#ifdef _IONBF #ifdef _IONBF
# ifndef OPENSSL_NO_SETVBUF_IONBF
setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdin, NULL, _IONBF, 0);
# endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
#endif #endif
BIO_set_fp(key,stdin,BIO_NOCLOSE); BIO_set_fp(key,stdin,BIO_NOCLOSE);
} }

View File

@ -393,8 +393,10 @@ bad:
if (inf == NULL) if (inf == NULL)
{ {
#ifndef OPENSSL_NO_SETVBUF_IONBF
if (bufsize != NULL) if (bufsize != NULL)
setvbuf(stdin, (char *)NULL, _IONBF, 0); setvbuf(stdin, (char *)NULL, _IONBF, 0);
#endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
BIO_set_fp(in,stdin,BIO_NOCLOSE); BIO_set_fp(in,stdin,BIO_NOCLOSE);
} }
else else
@ -447,8 +449,10 @@ bad:
if (outf == NULL) if (outf == NULL)
{ {
BIO_set_fp(out,stdout,BIO_NOCLOSE); BIO_set_fp(out,stdout,BIO_NOCLOSE);
#ifndef OPENSSL_NO_SETVBUF_IONBF
if (bufsize != NULL) if (bufsize != NULL)
setvbuf(stdout, (char *)NULL, _IONBF, 0); setvbuf(stdout, (char *)NULL, _IONBF, 0);
#endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
#ifdef OPENSSL_SYS_VMS #ifdef OPENSSL_SYS_VMS
{ {
BIO *tmpbio = BIO_new(BIO_f_linebuffer()); BIO *tmpbio = BIO_new(BIO_f_linebuffer());

107
apps/install-apps.com Executable file
View File

@ -0,0 +1,107 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! P1 root of the directory tree
$! P2 "64" for 64-bit pointers.
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on error then goto tidy
$ on control_c then goto tidy
$!
$ if (p1 .eqs. "")
$ then
$ write sys$output "First argument missing."
$ write sys$output -
"It should be the directory where you want things installed."
$ 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
$!
$ archd = arch
$!
$ if (p2 .nes. "")
$ then
$ if (p2 .eqs. "64")
$ then
$ archd = arch+ "_64"
$ else
$ if (p2 .nes. "32")
$ then
$ write sys$output "Second argument invalid."
$ write sys$output "It should be "32", "64", or nothing."
$ exit
$ endif
$ endif
$ endif
$!
$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
$ root_dev = f$parse(root,,,"device","syntax_only")
$ root_dir = f$parse(root,,,"directory","syntax_only") - -
"[000000." - "][" - "[" - "]"
$ root = root_dev + "[" + root_dir
$!
$ define /nolog wrk_sslroot 'root'.] /trans=conc
$ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe]
$!
$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
create /directory /log wrk_sslroot:[000000]
$ if f$parse("wrk_sslxexe:") .eqs. "" then -
create /directory /log wrk_sslxexe:
$!
$ exe := openssl
$!
$ exe_dir := [-.'archd'.exe.apps]
$!
$! Executables.
$!
$ i = 0
$ loop_exe:
$ e = f$edit(f$element( i, ",", exe), "trim")
$ i = i + 1
$ if e .eqs. "," then goto loop_exe_end
$ set noon
$ file = exe_dir+ e+ ".exe"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxexe: /log
$ endif
$ set on
$ goto loop_exe
$ loop_exe_end:
$!
$! Miscellaneous.
$!
$ set noon
$ copy /protection = w:re ca.com wrk_sslxexe:ca.com /log
$ copy /protection = w:re openssl-vms.cnf wrk_sslroot:[000000]openssl.cnf /log
$ set on
$!
$ tidy:
$!
$ call deass wrk_sslroot
$ call deass wrk_sslxexe
$!
$ exit
$!
$ deass: subroutine
$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
$ then
$ deassign /process 'p1'
$ endif
$ endsubroutine
$!

View File

@ -1,65 +0,0 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! P1 root of the directory tree
$!
$
$ IF P1 .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "First argument missing."
$ WRITE SYS$OUTPUT -
"Should be the directory where you want things installed."
$ 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
$
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
- "[000000." - "][" - "[" - "]"
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
$
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
$ DEFINE/NOLOG WRK_SSLEXE WRK_SSLROOT:['ARCH'_EXE]
$
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[000000]
$ IF F$PARSE("WRK_SSLEXE:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLEXE:
$
$ EXE := openssl
$
$ EXE_DIR := [-.'ARCH'.EXE.APPS]
$
$ I = 0
$ LOOP_EXE:
$ E = F$EDIT(F$ELEMENT(I, ",", EXE),"TRIM")
$ I = I + 1
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
$ SET NOON
$ IF F$SEARCH(EXE_DIR+E+".EXE") .NES. ""
$ THEN
$ COPY 'EXE_DIR''E'.EXE WRK_SSLEXE:'E'.EXE/log
$ SET FILE/PROT=W:RE WRK_SSLEXE:'E'.EXE
$ ENDIF
$ SET ON
$ GOTO LOOP_EXE
$ LOOP_EXE_END:
$
$ SET NOON
$ COPY CA.COM WRK_SSLEXE:CA.COM/LOG
$ SET FILE/PROT=W:RE WRK_SSLEXE:CA.COM
$ COPY OPENSSL-VMS.CNF WRK_SSLROOT:[000000]OPENSSL.CNF/LOG
$ SET FILE/PROT=W:R WRK_SSLROOT:[000000]OPENSSL.CNF
$ SET ON
$
$ EXIT

View File

@ -39,18 +39,31 @@ $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
$! $!
$! P5, if defined, sets a choice of programs to compile. $! P5, if defined, sets a choice of programs to compile.
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P6. $! P6, if defined, specifies the C pointer size. Ignored on VAX.
$! For 32 bit architectures (VAX), P6 is ignored. $! Supported values are:
$! Currently supported values are:
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! "" Compile with default (/NOPOINTER_SIZE)
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$! $!
$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on control_c then goto exit
$! $!
$! Define A TCP/IP Library That We Will Need To Link To. $! Define A TCP/IP Library That We Will Need To Link To.
$! (That Is, If We Need To Link To One.) $! (That Is, If We Need To Link To One.)
$! $!
$ TCPIP_LIB = "" $ TCPIP_LIB = ""
$ ZLIB_LIB = ""
$! $!
$! Check What Architecture We Are Using. $! Check What Architecture We Are Using.
$! $!
@ -74,37 +87,53 @@ $! End The Architecture Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$ ARCHD = ARCH
$ LIB32 = "32"
$ OPT_FILE = ""
$ POINTER_SIZE = ""
$!
$! Define what programs should be compiled $! Define what programs should be compiled
$! $!
$ PROGRAMS := OPENSSL $ PROGRAMS := OPENSSL
$! $!
$! Define The CRYPTO Library.
$!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO'LIB32'.OLB
$!
$! Define The SSL Library.
$!
$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL'LIB32'.OLB
$!
$! Define The OBJ Directory.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.APPS]
$!
$! Define The EXE Directory.
$!
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.APPS]
$!
$! Check To Make Sure We Have Valid Command Line Parameters. $! Check To Make Sure We Have Valid Command Line Parameters.
$! $!
$ GOSUB CHECK_OPTIONS $ GOSUB CHECK_OPTIONS
$! $!
$! Define The CRYPTO Library.
$!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
$!
$! Define The SSL Library.
$!
$ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
$!
$! Define The OBJ and EXE Directories.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.APPS]
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.APPS]
$!
$! Specify the destination directory in any /MAP option.
$!
$ if (LINKMAP .eqs. "MAP")
$ then
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
$ endif
$!
$! Add the location prefix to the linker options file name.
$!
$ if (OPT_FILE .nes. "")
$ then
$ OPT_FILE = EXE_DIR+ OPT_FILE
$ endif
$!
$! Initialise logical names and such $! Initialise logical names and such
$! $!
$ GOSUB INITIALISE $ GOSUB INITIALISE
$! $!
$! Tell The User What Kind of Machine We Run On. $! Tell The User What Kind of Machine We Run On.
$! $!
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
$! $!
$! Check To See If The OBJ Directory Exists. $! Check To See If The OBJ Directory Exists.
$! $!
@ -152,6 +181,9 @@ $ LIB_OPENSSL = "VERIFY,ASN1PARS,REQ,DGST,DH,DHPARAM,ENC,PASSWD,GENDH,ERRSTR,"+-
"S_TIME,APPS,S_CB,S_SOCKET,APP_RAND,VERSION,SESS_ID,"+- "S_TIME,APPS,S_CB,S_SOCKET,APP_RAND,VERSION,SESS_ID,"+-
"CIPHERS,NSEQ,PKCS12,PKCS8,PKEY,PKEYPARAM,PKEYUTL,"+ - "CIPHERS,NSEQ,PKCS12,PKCS8,PKEY,PKEYPARAM,PKEYUTL,"+ -
"SPKAC,SMIME,CMS,RAND,ENGINE,OCSP,PRIME,TS" "SPKAC,SMIME,CMS,RAND,ENGINE,OCSP,PRIME,TS"
$!
$ LIB_OPENSSL = LIB_OPENSSL+ ",VMS_DECC_INIT"
$!
$ TCPIP_PROGRAMS = ",," $ TCPIP_PROGRAMS = ",,"
$ IF COMPILER .EQS. "VAXC" THEN - $ IF COMPILER .EQS. "VAXC" THEN -
TCPIP_PROGRAMS = ",OPENSSL," TCPIP_PROGRAMS = ",OPENSSL,"
@ -209,7 +241,7 @@ $ LIB_COUNTER = -1
$! $!
$! Create a .OPT file for the object files $! Create a .OPT file for the object files
$! $!
$ OPEN/WRITE OBJECTS 'EXE_DIR''CURRENT_APP'.OPT $ OPEN /WRITE OBJECTS 'EXE_DIR''CURRENT_APP'.OPT
$! $!
$! Top Of The File Loop. $! Top Of The File Loop.
$! $!
@ -296,34 +328,18 @@ $ GOTO NEXT_APP
$ ENDIF $ ENDIF
$! $!
$! Link The Program. $! Link The Program.
$! Check To See If We Are To Link With A Specific TCP/IP Library.
$! $!
$ ON WARNING THEN GOTO NEXT_APP $ ON WARNING THEN GOTO NEXT_APP
$! $!
$ IF (TCPIP_LIB.NES."")
$ THEN
$!
$! Don't Link With The RSAREF Routines And TCP/IP Library. $! Don't Link With The RSAREF Routines And TCP/IP Library.
$! $!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' - $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXE='EXE_FILE' -
'EXE_DIR''CURRENT_APP'.OPT/OPTION, - 'EXE_DIR''CURRENT_APP'.OPT /OPTIONS, -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, - 'SSL_LIB' /LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION 'CRYPTO_LIB' /LIBRARY -
$! 'TCPIP_LIB' -
$! Else... 'ZLIB_LIB' -
$! ,'OPT_FILE' /OPTIONS
$ ELSE
$!
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
'EXE_DIR''CURRENT_APP'.OPT/OPTION, -
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$! $!
$! Go Back And Do It Again. $! Go Back And Do It Again.
$! $!
@ -358,7 +374,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable VAX C Runtime Library. ! The Sharable VAX C Runtime Library.
! !
SYS$SHARE:VAXCRTL.EXE/SHARE SYS$SHARE:VAXCRTL.EXE/SHARE
@ -387,7 +403,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
GNU_CC:[000000]GCCLIB/LIBRARY GNU_CC:[000000]GCCLIB/LIBRARY
@ -422,7 +438,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable DEC C Runtime Library. ! The Sharable DEC C Runtime Library.
! !
SYS$SHARE:DECC$SHR.EXE/SHARE SYS$SHARE:DECC$SHR.EXE/SHARE
@ -437,7 +453,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File For non-VAX To Link Agianst ! Default System Options File For non-VAX To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
@ -521,14 +537,15 @@ $!
$ IF (P1.EQS."NODEBUG") $ IF (P1.EQS."NODEBUG")
$ THEN $ THEN
$! $!
$! P1 Is NODEBUG, So Compile Without Debugger Information. $! P1 Is NODEBUG, So Compile Without Debugger Information.
$! $!
$ DEBUGGER = "NODEBUG" $ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK" $ LINKMAP = "NOMAP"
$ GCC_OPTIMIZE = "OPTIMIZE" $ TRACEBACK = "NOTRACEBACK"
$ CC_OPTIMIZE = "OPTIMIZE" $ GCC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." $ CC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
$! $!
$! Else... $! Else...
$! $!
@ -542,6 +559,7 @@ $!
$! Compile With Debugger Information. $! Compile With Debugger Information.
$! $!
$ DEBUGGER = "DEBUG" $ DEBUGGER = "DEBUG"
$ LINKMAP = "MAP"
$ TRACEBACK = "TRACEBACK" $ TRACEBACK = "TRACEBACK"
$ GCC_OPTIMIZE = "NOOPTIMIZE" $ GCC_OPTIMIZE = "NOOPTIMIZE"
$ CC_OPTIMIZE = "NOOPTIMIZE" $ CC_OPTIMIZE = "NOOPTIMIZE"
@ -549,7 +567,7 @@ $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
@ -570,58 +588,49 @@ $! End The P1 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If P6 Is Blank. $! Check P6 (POINTER_SIZE).
$! $!
$ IF (P6.EQS."") $ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is P6 Is Valid $ IF (P6 .EQS. "32")
$!
$ IF (P6.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32" $ POINTER_SIZE = "/POINTER_SIZE=32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (P6.EQS."64") $ IF (P6 .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=64=ARGV"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32"
$ ELSE
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P6," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", P6, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ EXIT
$!
$! End The Valid Arguement Check.
$! $!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The P6 Check. $! End The P6 (POINTER_SIZE) Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Set basic C compiler /INCLUDE directories.
$!
$ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
$!
$! Check To See If P2 Is Blank. $! Check To See If P2 Is Blank.
$! $!
$ IF (P2.EQS."") $ IF (P2.EQS."")
@ -726,7 +735,60 @@ $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If We Have A ZLIB Option.
$!
$ ZLIB = P7
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ EXIT
$ endif
$!
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
$ ZLIB_LIB = ", ''file2' /library"
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The ZLIB Check.
$!
$ ENDIF
$!
$! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC") $ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
$ THEN $ THEN
@ -749,13 +811,13 @@ $!
$ CC = "CC" $ CC = "CC"
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
THEN CC = "CC/DECC" THEN CC = "CC/DECC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89''POINTER_SIZE'" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=RELAXED"+ -
"/NOLIST/PREFIX=ALL" + - "''POINTER_SIZE'/NOLIST/PREFIX=ALL" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" $ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
$! $!
$! End DECC Check. $! End DECC Check.
$! $!
@ -783,7 +845,7 @@ $ EXIT
$ ENDIF $ ENDIF
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$ CCDEFS = CCDEFS + ",""VAXC""" $ CCDEFS = CCDEFS + ",""VAXC"""
$! $!
$! Define <sys> As SYS$COMMON:[SYSLIB] $! Define <sys> As SYS$COMMON:[SYSLIB]
@ -792,7 +854,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
$! $!
$! End VAXC Check $! End VAXC Check
$! $!
@ -815,11 +877,11 @@ $! Use GNU C...
$! $!
$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC $ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
$! $!
$! End The GNU C Check. $! End The GNU C Check.
$! $!
@ -861,7 +923,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Done with SOCKETSHR $! Done with SOCKETSHR
$! $!
@ -887,13 +949,13 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
$ THEN $ THEN
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
$ ELSE $ ELSE
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
$ ENDIF $ ENDIF
$! $!
$! Done with UCX $! Done with UCX
@ -907,7 +969,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP. $! Set the library to use TCPIP.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Done with TCPIP $! Done with TCPIP
$! $!
@ -932,7 +994,7 @@ $ CCDEFS = CCDEFS + ",TCPIP_TYPE_''P3'"
$! $!
$! Print info $! Print info
$! $!
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
$! $!
$! Else The User Entered An Invalid Argument. $! Else The User Entered An Invalid Argument.
$! $!
@ -1034,7 +1096,7 @@ $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
$! $!
$! Set up the logical name OPENSSL to point at the include directory $! Set up the logical name OPENSSL to point at the include directory
$! $!
$ DEFINE OPENSSL/NOLOG '__INCLUDE' $ DEFINE OPENSSL /NOLOG '__INCLUDE'
$! $!
$! Done $! Done
$! $!
@ -1042,15 +1104,24 @@ $ RETURN
$! $!
$ CLEANUP: $ CLEANUP:
$! $!
$! Restore the logical name OPENSSL if it had a value $! Restore the saved logical name OPENSSL, if it had a value.
$! $!
$ IF __SAVE_OPENSSL .EQS. "" $ if (f$type( __SAVE_OPENSSL) .nes. "")
$ THEN $ then
$ DEASSIGN OPENSSL $ IF __SAVE_OPENSSL .EQS. ""
$ ELSE $ THEN
$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL' $ DEASSIGN OPENSSL
$ ENDIF $ ELSE
$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
$ ENDIF
$ endif
$!
$! Close any open files.
$!
$ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close objects
$! $!
$! Done $! Done
$! $!
$ RETURN $ RETURN
$!

View File

@ -410,7 +410,33 @@ static int do_cmd(LHASH_OF(FUNCTION) *prog, int argc, char *argv[])
} }
if (fp != NULL) if (fp != NULL)
{ {
#if defined( OPENSSL_SYS_VMS) && !defined( VMS_TRUST_ARGV)
/* 2011-03-08 SMS.
* "HP C V7.3-009 on OpenVMS Alpha V8.3" with 64-bit
* pointers (at least) may not NULL-terminate argv[]
* as expected. If necessary, use a (properly)
* NULL-terminated duplicate of argv[].
*/
char **argv2 = NULL;
if (argv[ argc] != NULL)
{
argv2 = OPENSSL_malloc( (argc+ 1)* sizeof( char *));
if (argv2 == NULL)
{ ret = -1; goto end; }
memcpy( argv2, argv, (argc* sizeof( char *)));
argv2[ argc] = NULL;
argv = argv2;
}
#endif
ret=fp->func(argc,argv); ret=fp->func(argc,argv);
#if defined( OPENSSL_SYS_VMS) && !defined( VMS_TRUST_ARGV)
/* Free any duplicate argv[] storage. */
if (argv2 != NULL)
{
OPENSSL_free( argv2);
}
#endif
} }
else if ((strncmp(argv[0],"no-",3)) == 0) else if ((strncmp(argv[0],"no-",3)) == 0)
{ {

188
apps/vms_decc_init.c Executable file
View File

@ -0,0 +1,188 @@
#if defined( __VMS) && !defined( OPENSSL_NO_DECC_INIT) && \
defined( __DECC) && !defined( __VAX) && (__CRTL_VER >= 70301000)
# define USE_DECC_INIT 1
#endif
#ifdef USE_DECC_INIT
/*
* 2010-04-26 SMS.
*
*----------------------------------------------------------------------
*
* decc_init()
*
* On non-VAX systems, uses LIB$INITIALIZE to set a collection of C
* RTL features without using the DECC$* logical name method.
*
*----------------------------------------------------------------------
*/
#include <stdio.h>
#include <stdlib.h>
#include <unixlib.h>
/* Global storage. */
/* Flag to sense if decc_init() was called. */
int decc_init_done = -1;
/* Structure to hold a DECC$* feature name and its desired value. */
typedef struct
{
char *name;
int value;
} decc_feat_t;
/* Array of DECC$* feature names and their desired values.
* Note: DECC$ARGV_PARSE_STYLE is the urgent one.
*/
decc_feat_t decc_feat_array[] =
{
/* Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED */
{ "DECC$ARGV_PARSE_STYLE", 1 },
/* Preserve case for file names on ODS5 disks. */
{ "DECC$EFS_CASE_PRESERVE", 1 },
/* Enable multiple dots (and most characters) in ODS5 file names,
* while preserving VMS-ness of ";version".
*/
{ "DECC$EFS_CHARSET", 1 },
/* List terminator. */
{ (char *)NULL, 0 }
};
/* LIB$INITIALIZE initialization function. */
static void decc_init( void)
{
char *openssl_debug_decc_init;
int verbose = 0;
int feat_index;
int feat_value;
int feat_value_max;
int feat_value_min;
int i;
int sts;
/* Get debug option. */
openssl_debug_decc_init = getenv( "OPENSSL_DEBUG_DECC_INIT");
if (openssl_debug_decc_init != NULL)
{
verbose = strtol( openssl_debug_decc_init, NULL, 10);
if (verbose <= 0)
{
verbose = 1;
}
}
/* Set the global flag to indicate that LIB$INITIALIZE worked. */
decc_init_done = 1;
/* Loop through all items in the decc_feat_array[]. */
for (i = 0; decc_feat_array[ i].name != NULL; i++)
{
/* Get the feature index. */
feat_index = decc$feature_get_index( decc_feat_array[ i].name);
if (feat_index >= 0)
{
/* Valid item. Collect its properties. */
feat_value = decc$feature_get_value( feat_index, 1);
feat_value_min = decc$feature_get_value( feat_index, 2);
feat_value_max = decc$feature_get_value( feat_index, 3);
/* Check the validity of our desired value. */
if ((decc_feat_array[ i].value >= feat_value_min) &&
(decc_feat_array[ i].value <= feat_value_max))
{
/* Valid value. Set it if necessary. */
if (feat_value != decc_feat_array[ i].value)
{
sts = decc$feature_set_value( feat_index,
1,
decc_feat_array[ i].value);
if (verbose > 1)
{
fprintf( stderr, " %s = %d, sts = %d.\n",
decc_feat_array[ i].name,
decc_feat_array[ i].value,
sts);
}
}
}
else
{
/* Invalid DECC feature value. */
fprintf( stderr,
" INVALID DECC$FEATURE VALUE, %d: %d <= %s <= %d.\n",
feat_value,
feat_value_min, decc_feat_array[ i].name, feat_value_max);
}
}
else
{
/* Invalid DECC feature name. */
fprintf( stderr,
" UNKNOWN DECC$FEATURE: %s.\n", decc_feat_array[ i].name);
}
}
if (verbose > 0)
{
fprintf( stderr, " DECC_INIT complete.\n");
}
}
/* Get "decc_init()" into a valid, loaded LIB$INITIALIZE PSECT. */
#pragma nostandard
/* Establish the LIB$INITIALIZE PSECTs, with proper alignment and
* other attributes. Note that "nopic" is significant only on VAX.
*/
#pragma extern_model save
#if __INITIAL_POINTER_SIZE == 64
# define PSECT_ALIGN 3
#else
# define PSECT_ALIGN 2
#endif
#pragma extern_model strict_refdef "LIB$INITIALIZ" PSECT_ALIGN, nopic, nowrt
const int spare[ 8] = { 0 };
#pragma extern_model strict_refdef "LIB$INITIALIZE" PSECT_ALIGN, nopic, nowrt
void (*const x_decc_init)() = decc_init;
#pragma extern_model restore
/* Fake reference to ensure loading the LIB$INITIALIZE PSECT. */
#pragma extern_model save
int LIB$INITIALIZE( void);
#pragma extern_model strict_refdef
int dmy_lib$initialize = (int) LIB$INITIALIZE;
#pragma extern_model restore
#pragma standard
#else /* def USE_DECC_INIT */
/* Dummy code to avoid a %CC-W-EMPTYFILE complaint. */
int decc_init_dummy( void);
#endif /* def USE_DECC_INIT */

View File

@ -40,22 +40,18 @@
#ifndef LPDIR_H #ifndef LPDIR_H
#include "LPdir.h" #include "LPdir.h"
#endif #endif
#include "vms_rms.h"
/* Because some compiler options hide this macor */ /* Some compiler options hide EVMSERR. */
#ifndef EVMSERR #ifndef EVMSERR
#define EVMSERR 65535 /* error for non-translatable VMS errors */ # define EVMSERR 65535 /* error for non-translatable VMS errors */
#endif #endif
struct LP_dir_context_st struct LP_dir_context_st
{ {
unsigned long VMS_context; unsigned long VMS_context;
#ifdef NAML$C_MAXRSS char filespec[ NAMX_MAXRSS+ 1];
char filespec[NAML$C_MAXRSS+1]; char result[ NAMX_MAXRSS+ 1];
char result[NAML$C_MAXRSS+1];
#else
char filespec[256];
char result[256];
#endif
struct dsc$descriptor_d filespec_dsc; struct dsc$descriptor_d filespec_dsc;
struct dsc$descriptor_d result_dsc; struct dsc$descriptor_d result_dsc;
}; };
@ -66,6 +62,16 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
char *p, *r; char *p, *r;
size_t l; size_t l;
unsigned long flags = 0; unsigned long flags = 0;
/* Arrange 32-bit pointer to (copied) string storage, if needed. */
#if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size save
# pragma pointer_size 32
char *ctx_filespec_32p;
# pragma pointer_size restore
char ctx_filespec_32[ NAMX_MAXRSS+ 1];
#endif /* __INITIAL_POINTER_SIZE == 64 */
#ifdef NAML$C_MAXRSS #ifdef NAML$C_MAXRSS
flags |= LIB$M_FIL_LONG_NAMES; flags |= LIB$M_FIL_LONG_NAMES;
#endif #endif
@ -93,13 +99,7 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
filespeclen += 4; /* "*.*;" */ filespeclen += 4; /* "*.*;" */
if (filespeclen > if (filespeclen > NAMX_MAXRSS)
#ifdef NAML$C_MAXRSS
NAML$C_MAXRSS
#else
255
#endif
)
{ {
errno = ENAMETOOLONG; errno = ENAMETOOLONG;
return 0; return 0;
@ -115,14 +115,21 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
strcpy((*ctx)->filespec,directory); strcpy((*ctx)->filespec,directory);
strcat((*ctx)->filespec,"*.*;"); strcat((*ctx)->filespec,"*.*;");
/* Arrange 32-bit pointer to (copied) string storage, if needed. */
#if __INITIAL_POINTER_SIZE == 64
# define CTX_FILESPEC ctx_filespec_32p
/* Copy the file name to storage with a 32-bit pointer. */
ctx_filespec_32p = ctx_filespec_32;
strcpy( ctx_filespec_32p, (*ctx)->filespec);
#else /* __INITIAL_POINTER_SIZE == 64 */
# define CTX_FILESPEC (*ctx)->filespec
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
(*ctx)->filespec_dsc.dsc$w_length = filespeclen; (*ctx)->filespec_dsc.dsc$w_length = filespeclen;
(*ctx)->filespec_dsc.dsc$b_dtype = DSC$K_DTYPE_T; (*ctx)->filespec_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
(*ctx)->filespec_dsc.dsc$b_class = DSC$K_CLASS_S; (*ctx)->filespec_dsc.dsc$b_class = DSC$K_CLASS_S;
(*ctx)->filespec_dsc.dsc$a_pointer = (*ctx)->filespec; (*ctx)->filespec_dsc.dsc$a_pointer = CTX_FILESPEC;
(*ctx)->result_dsc.dsc$w_length = 0;
(*ctx)->result_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
(*ctx)->result_dsc.dsc$b_class = DSC$K_CLASS_D;
(*ctx)->result_dsc.dsc$a_pointer = 0;
} }
(*ctx)->result_dsc.dsc$w_length = 0; (*ctx)->result_dsc.dsc$w_length = 0;

View File

@ -551,7 +551,30 @@ int BIO_socket_ioctl(int fd, long type, void *arg)
#ifdef __DJGPP__ #ifdef __DJGPP__
i=ioctlsocket(fd,type,(char *)arg); i=ioctlsocket(fd,type,(char *)arg);
#else #else
i=ioctlsocket(fd,type,arg); # if defined(OPENSSL_SYS_VMS)
/* 2011-02-18 SMS.
* VMS ioctl() can't tolerate a 64-bit "void *arg", but we
* observe that all the consumers pass in an "unsigned long *",
* so we arrange a local copy with a short pointer, and use
* that, instead.
*/
# if __INITIAL_POINTER_SIZE == 64
# define ARG arg_32p
# pragma pointer_size save
# pragma pointer_size 32
unsigned long arg_32;
unsigned long *arg_32p;
# pragma pointer_size restore
arg_32p = &arg_32;
arg_32 = *((unsigned long *) arg);
# else /* __INITIAL_POINTER_SIZE == 64 */
# define ARG arg
# endif /* __INITIAL_POINTER_SIZE == 64 [else] */
# else /* defined(OPENSSL_SYS_VMS) */
# define ARG arg
# endif /* defined(OPENSSL_SYS_VMS) [else] */
i=ioctlsocket(fd,type,ARG);
#endif /* __DJGPP__ */ #endif /* __DJGPP__ */
if (i < 0) if (i < 0)
SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error()); SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error());

View File

@ -75,6 +75,15 @@
# include <descrip.h> # include <descrip.h>
# include <lib$routines.h> # include <lib$routines.h>
# include <starlet.h> # include <starlet.h>
/* Some compiler options may mask the declaration of "_malloc32". */
# if __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE
# if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size save
# pragma pointer_size 32
void * _malloc32 (__size_t);
# pragma pointer_size restore
# endif /* __INITIAL_POINTER_SIZE == 64 */
# endif /* __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE */
#elif defined(__ultrix) #elif defined(__ultrix)
# include <sys/syslog.h> # include <sys/syslog.h>
#elif defined(OPENSSL_SYS_NETWARE) #elif defined(OPENSSL_SYS_NETWARE)
@ -300,7 +309,24 @@ static void xopenlog(BIO* bp, char* name, int level)
static void xsyslog(BIO *bp, int priority, const char *string) static void xsyslog(BIO *bp, int priority, const char *string)
{ {
struct dsc$descriptor_s opc_dsc; struct dsc$descriptor_s opc_dsc;
/* Arrange 32-bit pointer to opcdef buffer and malloc(), if needed. */
#if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size save
# pragma pointer_size 32
# define OPCDEF_TYPE __char_ptr32
# define OPCDEF_MALLOC _malloc32
#else /* __INITIAL_POINTER_SIZE == 64 */
# define OPCDEF_TYPE char *
# define OPCDEF_MALLOC OPENSSL_malloc
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
struct opcdef *opcdef_p; struct opcdef *opcdef_p;
#if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size restore
#endif /* __INITIAL_POINTER_SIZE == 64 */
char buf[10240]; char buf[10240];
unsigned int len; unsigned int len;
struct dsc$descriptor_s buf_dsc; struct dsc$descriptor_s buf_dsc;
@ -326,8 +352,8 @@ static void xsyslog(BIO *bp, int priority, const char *string)
lib$sys_fao(&fao_cmd, &len, &buf_dsc, priority_tag, string); lib$sys_fao(&fao_cmd, &len, &buf_dsc, priority_tag, string);
/* we know there's an 8 byte header. That's documented */ /* We know there's an 8-byte header. That's documented. */
opcdef_p = (struct opcdef *) OPENSSL_malloc(8 + len); opcdef_p = OPCDEF_MALLOC( 8+ len);
opcdef_p->opc$b_ms_type = OPC$_RQ_RQST; opcdef_p->opc$b_ms_type = OPC$_RQ_RQST;
memcpy(opcdef_p->opc$z_ms_target_classes, &VMS_OPC_target, 3); memcpy(opcdef_p->opc$z_ms_target_classes, &VMS_OPC_target, 3);
opcdef_p->opc$l_ms_rqstid = 0; opcdef_p->opc$l_ms_rqstid = 0;
@ -335,7 +361,7 @@ static void xsyslog(BIO *bp, int priority, const char *string)
opc_dsc.dsc$b_dtype = DSC$K_DTYPE_T; opc_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
opc_dsc.dsc$b_class = DSC$K_CLASS_S; opc_dsc.dsc$b_class = DSC$K_CLASS_S;
opc_dsc.dsc$a_pointer = (char *)opcdef_p; opc_dsc.dsc$a_pointer = (OPCDEF_TYPE) opcdef_p;
opc_dsc.dsc$w_length = len + 8; opc_dsc.dsc$w_length = len + 8;
sys$sndopr(opc_dsc, 0); sys$sndopr(opc_dsc, 0);

View File

@ -253,6 +253,24 @@ extern "C" {
#define BN_HEX_FMT2 "%08X" #define BN_HEX_FMT2 "%08X"
#endif #endif
/* 2011-02-22 SMS.
* In various places, a size_t variable or a type cast to size_t was
* used to perform integer-only operations on pointers. This failed on
* VMS with 64-bit pointers (CC /POINTER_SIZE = 64) because size_t is
* still only 32 bits. What's needed in these cases is an integer type
* with the same size as a pointer, which size_t is not certain to be.
* The only fix here is VMS-specific.
*/
#if defined(OPENSSL_SYS_VMS)
# if __INITIAL_POINTER_SIZE == 64
# define PTR_SIZE_INT long long
# else /* __INITIAL_POINTER_SIZE == 64 */
# define PTR_SIZE_INT int
# endif /* __INITIAL_POINTER_SIZE == 64 [else] */
#else /* defined(OPENSSL_SYS_VMS) */
# define PTR_SIZE_INT size_t
#endif /* defined(OPENSSL_SYS_VMS) [else] */
#define BN_DEFAULT_BITS 1280 #define BN_DEFAULT_BITS 1280
#define BN_FLG_MALLOCED 0x01 #define BN_FLG_MALLOCED 0x01

View File

@ -277,7 +277,7 @@ static int BN_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)
m1|=m2; /* (al!=ri) */ m1|=m2; /* (al!=ri) */
m1|=(0-(size_t)v); /* (al!=ri || v) */ m1|=(0-(size_t)v); /* (al!=ri || v) */
m1&=~m2; /* (al!=ri || v) && !al>ri */ m1&=~m2; /* (al!=ri || v) && !al>ri */
nrp=(BN_ULONG *)(((size_t)rp&~m1)|((size_t)ap&m1)); nrp=(BN_ULONG *)(((PTR_SIZE_INT)rp&~m1)|((PTR_SIZE_INT)ap&m1));
} }
/* 'i<ri' is chosen to eliminate dependency on input data, even /* 'i<ri' is chosen to eliminate dependency on input data, even

View File

@ -354,7 +354,7 @@ int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
buf[BN_NIST_192_TOP], buf[BN_NIST_192_TOP],
c_d[BN_NIST_192_TOP], c_d[BN_NIST_192_TOP],
*res; *res;
size_t mask; PTR_SIZE_INT mask;
static const BIGNUM _bignum_nist_p_192_sqr = { static const BIGNUM _bignum_nist_p_192_sqr = {
(BN_ULONG *)_nist_p_192_sqr, (BN_ULONG *)_nist_p_192_sqr,
sizeof(_nist_p_192_sqr)/sizeof(_nist_p_192_sqr[0]), sizeof(_nist_p_192_sqr)/sizeof(_nist_p_192_sqr[0]),
@ -405,9 +405,10 @@ int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
* 'tmp=result-modulus; if (!carry || !borrow) result=tmp;' * 'tmp=result-modulus; if (!carry || !borrow) result=tmp;'
* this is what happens below, but without explicit if:-) a. * this is what happens below, but without explicit if:-) a.
*/ */
mask = 0-(size_t)bn_sub_words(c_d,r_d,_nist_p_192[0],BN_NIST_192_TOP); mask = 0-(PTR_SIZE_INT)bn_sub_words(c_d,r_d,_nist_p_192[0],BN_NIST_192_TOP);
mask &= 0-(size_t)carry; mask &= 0-(PTR_SIZE_INT)carry;
res = (BN_ULONG *)(((size_t)c_d&~mask) | ((size_t)r_d&mask)); res = (BN_ULONG *)
(((PTR_SIZE_INT)c_d&~mask) | ((PTR_SIZE_INT)r_d&mask));
nist_cp_bn(r_d, res, BN_NIST_192_TOP); nist_cp_bn(r_d, res, BN_NIST_192_TOP);
r->top = BN_NIST_192_TOP; r->top = BN_NIST_192_TOP;
bn_correct_top(r); bn_correct_top(r);
@ -438,8 +439,8 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
buf[BN_NIST_224_TOP], buf[BN_NIST_224_TOP],
c_d[BN_NIST_224_TOP], c_d[BN_NIST_224_TOP],
*res; *res;
size_t mask; PTR_SIZE_INT mask;
union { bn_addsub_f f; size_t p; } u; union { bn_addsub_f f; PTR_SIZE_INT p; } u;
static const BIGNUM _bignum_nist_p_224_sqr = { static const BIGNUM _bignum_nist_p_224_sqr = {
(BN_ULONG *)_nist_p_224_sqr, (BN_ULONG *)_nist_p_224_sqr,
sizeof(_nist_p_224_sqr)/sizeof(_nist_p_224_sqr[0]), sizeof(_nist_p_224_sqr)/sizeof(_nist_p_224_sqr[0]),
@ -510,16 +511,18 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
* to be compared to the modulus and conditionally * to be compared to the modulus and conditionally
* adjusted by *subtracting* the latter. */ * adjusted by *subtracting* the latter. */
carry = (int)bn_add_words(r_d,r_d,_nist_p_224[-carry-1],BN_NIST_224_TOP); carry = (int)bn_add_words(r_d,r_d,_nist_p_224[-carry-1],BN_NIST_224_TOP);
mask = 0-(size_t)carry; mask = 0-(PTR_SIZE_INT)carry;
u.p = ((size_t)bn_sub_words&mask) | ((size_t)bn_add_words&~mask); u.p = ((PTR_SIZE_INT)bn_sub_words&mask) |
((PTR_SIZE_INT)bn_add_words&~mask);
} }
else else
carry = 1; carry = 1;
/* otherwise it's effectively same as in BN_nist_mod_192... */ /* otherwise it's effectively same as in BN_nist_mod_192... */
mask = 0-(size_t)(*u.f)(c_d,r_d,_nist_p_224[0],BN_NIST_224_TOP); mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_224[0],BN_NIST_224_TOP);
mask &= 0-(size_t)carry; mask &= 0-(PTR_SIZE_INT)carry;
res = (BN_ULONG *)(((size_t)c_d&~mask) | ((size_t)r_d&mask)); res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
((PTR_SIZE_INT)r_d&mask));
nist_cp_bn(r_d, res, BN_NIST_224_TOP); nist_cp_bn(r_d, res, BN_NIST_224_TOP);
r->top = BN_NIST_224_TOP; r->top = BN_NIST_224_TOP;
bn_correct_top(r); bn_correct_top(r);
@ -549,8 +552,8 @@ int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
buf[BN_NIST_256_TOP], buf[BN_NIST_256_TOP],
c_d[BN_NIST_256_TOP], c_d[BN_NIST_256_TOP],
*res; *res;
size_t mask; PTR_SIZE_INT mask;
union { bn_addsub_f f; size_t p; } u; union { bn_addsub_f f; PTR_SIZE_INT p; } u;
static const BIGNUM _bignum_nist_p_256_sqr = { static const BIGNUM _bignum_nist_p_256_sqr = {
(BN_ULONG *)_nist_p_256_sqr, (BN_ULONG *)_nist_p_256_sqr,
sizeof(_nist_p_256_sqr)/sizeof(_nist_p_256_sqr[0]), sizeof(_nist_p_256_sqr)/sizeof(_nist_p_256_sqr[0]),
@ -629,15 +632,17 @@ int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
else if (carry < 0) else if (carry < 0)
{ {
carry = (int)bn_add_words(r_d,r_d,_nist_p_256[-carry-1],BN_NIST_256_TOP); carry = (int)bn_add_words(r_d,r_d,_nist_p_256[-carry-1],BN_NIST_256_TOP);
mask = 0-(size_t)carry; mask = 0-(PTR_SIZE_INT)carry;
u.p = ((size_t)bn_sub_words&mask) | ((size_t)bn_add_words&~mask); u.p = ((PTR_SIZE_INT)bn_sub_words&mask) |
((PTR_SIZE_INT)bn_add_words&~mask);
} }
else else
carry = 1; carry = 1;
mask = 0-(size_t)(*u.f)(c_d,r_d,_nist_p_256[0],BN_NIST_256_TOP); mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_256[0],BN_NIST_256_TOP);
mask &= 0-(size_t)carry; mask &= 0-(PTR_SIZE_INT)carry;
res = (BN_ULONG *)(((size_t)c_d&~mask) | ((size_t)r_d&mask)); res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
((PTR_SIZE_INT)r_d&mask));
nist_cp_bn(r_d, res, BN_NIST_256_TOP); nist_cp_bn(r_d, res, BN_NIST_256_TOP);
r->top = BN_NIST_256_TOP; r->top = BN_NIST_256_TOP;
bn_correct_top(r); bn_correct_top(r);
@ -671,8 +676,8 @@ int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
buf[BN_NIST_384_TOP], buf[BN_NIST_384_TOP],
c_d[BN_NIST_384_TOP], c_d[BN_NIST_384_TOP],
*res; *res;
size_t mask; PTR_SIZE_INT mask;
union { bn_addsub_f f; size_t p; } u; union { bn_addsub_f f; PTR_SIZE_INT p; } u;
static const BIGNUM _bignum_nist_p_384_sqr = { static const BIGNUM _bignum_nist_p_384_sqr = {
(BN_ULONG *)_nist_p_384_sqr, (BN_ULONG *)_nist_p_384_sqr,
sizeof(_nist_p_384_sqr)/sizeof(_nist_p_384_sqr[0]), sizeof(_nist_p_384_sqr)/sizeof(_nist_p_384_sqr[0]),
@ -754,15 +759,17 @@ int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
else if (carry < 0) else if (carry < 0)
{ {
carry = (int)bn_add_words(r_d,r_d,_nist_p_384[-carry-1],BN_NIST_384_TOP); carry = (int)bn_add_words(r_d,r_d,_nist_p_384[-carry-1],BN_NIST_384_TOP);
mask = 0-(size_t)carry; mask = 0-(PTR_SIZE_INT)carry;
u.p = ((size_t)bn_sub_words&mask) | ((size_t)bn_add_words&~mask); u.p = ((PTR_SIZE_INT)bn_sub_words&mask) |
((PTR_SIZE_INT)bn_add_words&~mask);
} }
else else
carry = 1; carry = 1;
mask = 0-(size_t)(*u.f)(c_d,r_d,_nist_p_384[0],BN_NIST_384_TOP); mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_384[0],BN_NIST_384_TOP);
mask &= 0-(size_t)carry; mask &= 0-(PTR_SIZE_INT)carry;
res = (BN_ULONG *)(((size_t)c_d&~mask) | ((size_t)r_d&mask)); res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) |
((PTR_SIZE_INT)r_d&mask));
nist_cp_bn(r_d, res, BN_NIST_384_TOP); nist_cp_bn(r_d, res, BN_NIST_384_TOP);
r->top = BN_NIST_384_TOP; r->top = BN_NIST_384_TOP;
bn_correct_top(r); bn_correct_top(r);
@ -781,7 +788,7 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
BN_ULONG *r_d, *a_d = a->d, BN_ULONG *r_d, *a_d = a->d,
t_d[BN_NIST_521_TOP], t_d[BN_NIST_521_TOP],
val,tmp,*res; val,tmp,*res;
size_t mask; PTR_SIZE_INT mask;
static const BIGNUM _bignum_nist_p_521_sqr = { static const BIGNUM _bignum_nist_p_521_sqr = {
(BN_ULONG *)_nist_p_521_sqr, (BN_ULONG *)_nist_p_521_sqr,
sizeof(_nist_p_521_sqr)/sizeof(_nist_p_521_sqr[0]), sizeof(_nist_p_521_sqr)/sizeof(_nist_p_521_sqr[0]),
@ -826,8 +833,9 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
r_d[i] &= BN_NIST_521_TOP_MASK; r_d[i] &= BN_NIST_521_TOP_MASK;
bn_add_words(r_d,r_d,t_d,BN_NIST_521_TOP); bn_add_words(r_d,r_d,t_d,BN_NIST_521_TOP);
mask = 0-(size_t)bn_sub_words(t_d,r_d,_nist_p_521,BN_NIST_521_TOP); mask = 0-(PTR_SIZE_INT)bn_sub_words(t_d,r_d,_nist_p_521,BN_NIST_521_TOP);
res = (BN_ULONG *)(((size_t)t_d&~mask) | ((size_t)r_d&mask)); res = (BN_ULONG *)(((PTR_SIZE_INT)t_d&~mask) |
((PTR_SIZE_INT)r_d&mask));
nist_cp_bn(r_d,res,BN_NIST_521_TOP); nist_cp_bn(r_d,res,BN_NIST_521_TOP);
r->top = BN_NIST_521_TOP; r->top = BN_NIST_521_TOP;
bn_correct_top(r); bn_correct_top(r);

View File

@ -47,18 +47,29 @@ $! P6, if defined, sets a choice of crypto methods to compile.
$! WARNING: this should only be done to recompile some part of an already $! WARNING: this should only be done to recompile some part of an already
$! fully compiled library. $! fully compiled library.
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P7. $! P7, if defined, specifies the C pointer size. Ignored on VAX.
$! For 32 bit architectures (VAX), P7 is ignored. $! Supported values are:
$! Currently supported values are:
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! "" Compile with default (/NOPOINTER_SIZE)
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$! $!
$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$! $!
$! Define A TCP/IP Library That We Will Need To Link To. $! Define A TCP/IP Library That We Will Need To Link To.
$! (That Is, If We Need To Link To One.) $! (That Is, If We Need To Link To One.)
$! $!
$ TCPIP_LIB = "" $ TCPIP_LIB = ""
$ ZLIB_LIB = ""
$! $!
$! Check Which Architecture We Are Using. $! Check Which Architecture We Are Using.
$! $!
@ -82,6 +93,11 @@ $! End The Architecture Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$ ARCHD = ARCH
$ LIB32 = "32"
$ OPT_FILE = ""
$ POINTER_SIZE = ""
$!
$! Define The Different Encryption Types. $! Define The Different Encryption Types.
$! NOTE: Some might think this list ugly. However, it's made this way to $! NOTE: Some might think this list ugly. However, it's made this way to
$! reflect the SDIRS variable in [-]Makefile.org as closely as possible, $! reflect the SDIRS variable in [-]Makefile.org as closely as possible,
@ -98,25 +114,37 @@ $ ENCRYPT_TYPES = "Basic,"+ -
"EVP,EVP_2,EVP_3,ASN1,ASN1_2,PEM,X509,X509V3,"+ - "EVP,EVP_2,EVP_3,ASN1,ASN1_2,PEM,X509,X509V3,"+ -
"CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,"+ - "CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,"+ -
"STORE,CMS,PQUEUE,TS,JPAKE" "STORE,CMS,PQUEUE,TS,JPAKE"
$! Define The OBJ Directory.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.CRYPTO]
$!
$! Define The EXE Directory.
$!
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]
$! $!
$! Check To Make Sure We Have Valid Command Line Parameters. $! Check To Make Sure We Have Valid Command Line Parameters.
$! $!
$ GOSUB CHECK_OPTIONS $ GOSUB CHECK_OPTIONS
$! $!
$! Define The OBJ and EXE Directories.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.CRYPTO]
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]
$!
$! Specify the destination directory in any /MAP option.
$!
$ if (LINKMAP .eqs. "MAP")
$ then
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
$ endif
$!
$! Add the location prefix to the linker options file name.
$!
$ if (OPT_FILE .nes. "")
$ then
$ OPT_FILE = EXE_DIR+ OPT_FILE
$ endif
$!
$! Initialise logical names and such $! Initialise logical names and such
$! $!
$ GOSUB INITIALISE $ GOSUB INITIALISE
$! $!
$! Tell The User What Kind of Machine We Run On. $! Tell The User What Kind of Machine We Run On.
$! $!
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
$! $!
$! $!
$! Check To See If The Architecture Specific OBJ Directory Exists. $! Check To See If The Architecture Specific OBJ Directory Exists.
@ -147,11 +175,11 @@ $ ENDIF
$! $!
$! Define The Library Name. $! Define The Library Name.
$! $!
$ LIB_NAME := 'EXE_DIR'LIBCRYPTO'LIB32'.OLB $ LIB_NAME := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
$! $!
$! Define The CRYPTO-LIB We Are To Use. $! Define The CRYPTO-LIB We Are To Use.
$! $!
$ CRYPTO_LIB := 'EXE_DIR'LIBCRYPTO'LIB32'.OLB $ CRYPTO_LIB := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
$! $!
$! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library... $! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library...
$! $!
@ -208,7 +236,7 @@ $ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_ctx,bn_mul,bn_mod,"+ -
"bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ - "bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ -
"bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ - "bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ -
"bn_recp,bn_mont,bn_mpi,bn_exp2,bn_gf2m,bn_nist,"+ - "bn_recp,bn_mont,bn_mpi,bn_exp2,bn_gf2m,bn_nist,"+ -
"bn_depr,bn_const,bn_x931" "bn_depr,bn_const,bn_x931p"
$ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_nist,ec_cvt,ec_mult,"+ - $ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_nist,ec_cvt,ec_mult,"+ -
"ec_err,ec_curve,ec_check,ec_print,ec_asn1,ec_key,"+ - "ec_err,ec_curve,ec_check,ec_print,ec_asn1,ec_key,"+ -
"ec2_smpl,ec2_mult,ec_ameth,ec_pmeth,eck_prn" "ec2_smpl,ec2_mult,ec_ameth,ec_pmeth,eck_prn"
@ -308,15 +336,23 @@ $ LIB_JPAKE = "jpake,jpake_err"
$! $!
$! Setup exceptional compilations $! Setup exceptional compilations
$! $!
$ ! Add definitions for no threads on OpenVMS 7.1 and higher $ CC3_SHOWN = 0
$ CC4_SHOWN = 0
$ CC5_SHOWN = 0
$ CC6_SHOWN = 0
$!
$! The following lists must have leading and trailing commas, and no
$! embedded spaces. (They are scanned for ",name,".)
$!
$ ! Add definitions for no threads on OpenVMS 7.1 and higher.
$ COMPILEWITH_CC3 = ",bss_rtcp," $ COMPILEWITH_CC3 = ",bss_rtcp,"
$ ! Disable the DOLLARID warning $ ! Disable the DOLLARID warning. Not needed with /STANDARD=RELAXED.
$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,o_dir" $ COMPILEWITH_CC4 = "" !!! ",a_utctm,bss_log,o_time,o_dir,"
$ ! Disable disjoint optimization $ ! Disable disjoint optimization on VAX with DECC.
$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - $ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
"seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc," "seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
$ ! Disable the MIXLINKAGE warning $ ! Disable the MIXLINKAGE warning.
$ COMPILEWITH_CC6 = ",enc_read,set_key," $ COMPILEWITH_CC6 = "" !!! ",enc_read,set_key,"
$! $!
$! Figure Out What Other Modules We Are To Build. $! Figure Out What Other Modules We Are To Build.
$! $!
@ -522,31 +558,60 @@ $ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME," File. (",BUILDALL,",",STATE,"
$ ENDIF $ ENDIF
$ IF (MODULE_NAME.NES."") $ IF (MODULE_NAME.NES."")
$ THEN $ THEN
$ WRITE SYS$OUTPUT " ",FILE_NAME,"" $ WRITE SYS$OUTPUT " ",FILE_NAME,""
$ ENDIF $ ENDIF
$! $!
$! Compile The File. $! Compile The File.
$! $!
$ ON ERROR THEN GOTO NEXT_FILE $ ON ERROR THEN GOTO NEXT_FILE
$ FILE_NAME0 = F$ELEMENT(0,".",FILE_NAME) $ FILE_NAME0 = ","+ F$ELEMENT(0,".",FILE_NAME)+ ","
$ IF FILE_NAME - ".mar" .NES. FILE_NAME $ IF FILE_NAME - ".mar" .NES. FILE_NAME
$ THEN $ THEN
$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
$ ELSE $ ELSE
$ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3 $ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3
$ THEN $ THEN
$ write sys$output " \Using special rule (3)"
$ if (.not. CC3_SHOWN)
$ then
$ CC3_SHOWN = 1
$ x = " "+ CC3
$ write /symbol sys$output x
$ endif
$ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
$ ELSE $ ELSE
$ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4 $ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4
$ THEN $ THEN
$ write /symbol sys$output " \Using special rule (4)"
$ if (.not. CC4_SHOWN)
$ then
$ CC4_SHOWN = 1
$ x = " "+ CC4
$ write /symbol sys$output x
$ endif
$ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
$ ELSE $ ELSE
$ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5 $ IF CC5_DIFFERENT .AND. -
(COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5)
$ THEN $ THEN
$ write sys$output " \Using special rule (5)"
$ if (.not. CC5_SHOWN)
$ then
$ CC5_SHOWN = 1
$ x = " "+ CC5
$ write /symbol sys$output x
$ endif
$ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
$ ELSE $ ELSE
$ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6 $ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6
$ THEN $ THEN
$ write sys$output " \Using special rule (6)"
$ if (.not. CC6_SHOWN)
$ then
$ CC6_SHOWN = 1
$ x = " "+ CC6
$ write /symbol sys$output x
$ endif
$ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
$ ELSE $ ELSE
$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
@ -593,38 +658,22 @@ $! SHOW SYMBOL APPLICATION*
$! $!
$! Tell the user what happens $! Tell the user what happens
$! $!
$ WRITE SYS$OUTPUT " ",APPLICATION,".exe" $ WRITE SYS$OUTPUT " ",APPLICATION,".exe"
$! $!
$! Link The Program. $! Link The Program.
$! $!
$ ON ERROR THEN GOTO NEXT_APPLICATION $ ON ERROR THEN GOTO NEXT_APPLICATION
$! $!
$! Check To See If We Are To Link With A Specific TCP/IP Library. $! Link With A TCP/IP Library.
$! $!
$ IF (TCPIP_LIB.NES."") $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' -
$ THEN /EXE='EXE_DIR''APPLICATION'.EXE -
'OBJ_DIR''APPLICATION_OBJECTS', -
'CRYPTO_LIB'/LIBRARY -
'TCPIP_LIB' -
'ZLIB_LIB' -
,'OPT_FILE' /OPTIONS
$! $!
$! Link With A TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
'OBJ_DIR''APPLICATION_OBJECTS', -
'CRYPTO_LIB'/LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION
$!
$! Else...
$!
$ ELSE
$!
$! Don't Link With A TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
'OBJ_DIR''APPLICATION_OBJECTS',-
'CRYPTO_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$ GOTO NEXT_APPLICATION $ GOTO NEXT_APPLICATION
$ APPLICATION_DONE: $ APPLICATION_DONE:
$ ENDIF $ ENDIF
@ -663,7 +712,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable VAX C Runtime Library. ! The Sharable VAX C Runtime Library.
! !
SYS$SHARE:VAXCRTL.EXE/SHARE SYS$SHARE:VAXCRTL.EXE/SHARE
@ -692,7 +741,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
GNU_CC:[000000]GCCLIB/LIBRARY GNU_CC:[000000]GCCLIB/LIBRARY
@ -727,7 +776,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable DEC C Runtime Library. ! The Sharable DEC C Runtime Library.
! !
SYS$SHARE:DECC$SHR.EXE/SHARE SYS$SHARE:DECC$SHR.EXE/SHARE
@ -742,7 +791,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File For non-VAX To Link Agianst ! Default System Options File For non-VAX To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
@ -763,7 +812,7 @@ $ ENDIF
$! $!
$! Tell The User What Linker Option File We Are Using. $! Tell The User What Linker Option File We Are Using.
$! $!
$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
$! $!
$! Time To RETURN. $! Time To RETURN.
$! $!
@ -810,8 +859,8 @@ $ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.E
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
$ WRITE SYS$OUTPUT " VAX : VAX Architecture." $ WRITE SYS$OUTPUT " VAX : VAX Architecture."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
@ -832,15 +881,16 @@ $!
$ IF (P2.EQS."NODEBUG") $ IF (P2.EQS."NODEBUG")
$ THEN $ THEN
$! $!
$! P2 Is NODEBUG, So Compile Without The Debugger Information. $! P2 Is NODEBUG, So Compile Without The Debugger Information.
$! $!
$ DEBUGGER = "NODEBUG" $ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK" $ LINKMAP = "NOMAP"
$ GCC_OPTIMIZE = "OPTIMIZE" $ TRACEBACK = "NOTRACEBACK"
$ CC_OPTIMIZE = "OPTIMIZE" $ GCC_OPTIMIZE = "OPTIMIZE"
$ MACRO_OPTIMIZE = "OPTIMIZE" $ CC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." $ MACRO_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! Check To See If We Are To Compile With Debugger Information. $! Check To See If We Are To Compile With Debugger Information.
@ -851,6 +901,7 @@ $!
$! Compile With Debugger Information. $! Compile With Debugger Information.
$! $!
$ DEBUGGER = "DEBUG" $ DEBUGGER = "DEBUG"
$ LINKMAP = "MAP"
$ TRACEBACK = "TRACEBACK" $ TRACEBACK = "TRACEBACK"
$ GCC_OPTIMIZE = "NOOPTIMIZE" $ GCC_OPTIMIZE = "NOOPTIMIZE"
$ CC_OPTIMIZE = "NOOPTIMIZE" $ CC_OPTIMIZE = "NOOPTIMIZE"
@ -859,7 +910,7 @@ $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! They Entered An Invalid Option.. $! They Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
@ -914,58 +965,50 @@ $! End The P5 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If P7 Is Blank. $! Check P7 (POINTER_SIZE).
$! $!
$ IF (P7.EQS."") $ IF (P7 .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is P7 Is Valid $ IF (P7 .EQS. "32")
$!
$ IF (P7.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32" $ POINTER_SIZE = "/POINTER_SIZE=32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (P7.EQS."64") $ IF (P7 .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32"
$ ELSE
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P7," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", P7, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ EXIT
$!
$! End The Valid Arguement Check.
$! $!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The P7 Check. $! End The P7 (POINTER_SIZE) Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Set basic C compiler /INCLUDE directories.
$!
$ CC_INCLUDES = "SYS$DISK:[.''ARCHD'],SYS$DISK:[],SYS$DISK:[-],"+ -
"SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1]"
$!
$! Check To See If P3 Is Blank. $! Check To See If P3 Is Blank.
$! $!
$ IF (P3.EQS."") $ IF (P3.EQS."")
@ -1066,11 +1109,64 @@ $ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS"
$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
$ CCEXTRAFLAGS = "" $ CCEXTRAFLAGS = ""
$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
$ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If We Have A ZLIB Option.
$!
$ ZLIB = P8
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ EXIT
$ endif
$!
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
$ ZLIB_LIB = ", ''file2' /library"
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The ZLIB Check.
$!
$ ENDIF
$!
$! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
$ THEN $ THEN
@ -1093,14 +1189,14 @@ $!
$ CC = "CC" $ CC = "CC"
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
THEN CC = "CC/DECC" THEN CC = "CC/DECC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89''POINTER_SIZE'" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=RELAXED"+ -
"/NOLIST/PREFIX=ALL" + - "''POINTER_SIZE'/NOLIST/PREFIX=ALL" + -
"/INCLUDE=(SYS$DISK:[._''ARCH'],SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - "/INCLUDE=(''CC_INCLUDES')"+ -
CCEXTRAFLAGS CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" $ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
$! $!
$! End DECC Check. $! End DECC Check.
$! $!
@ -1129,7 +1225,7 @@ $ EXIT
$ ENDIF $ ENDIF
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[._''ARCH'],SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - "/INCLUDE=(''CC_INCLUDES')"+ -
CCEXTRAFLAGS CCEXTRAFLAGS
$ CCDEFS = """VAXC""," + CCDEFS $ CCDEFS = """VAXC""," + CCDEFS
$! $!
@ -1139,7 +1235,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
$! $!
$! End VAXC Check $! End VAXC Check
$! $!
@ -1161,12 +1257,12 @@ $!
$! Use GNU C... $! Use GNU C...
$! $!
$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[._''ARCH'],SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - "/INCLUDE=(''CC_INCLUDES')"+ -
CCEXTRAFLAGS CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
$! $!
$! End The GNU C Check. $! End The GNU C Check.
$! $!
@ -1201,8 +1297,10 @@ $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
$ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG" $ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG"
$ THEN $ THEN
$ CC5 = CC + "/OPTIMIZE=NODISJOINT" $ CC5 = CC + "/OPTIMIZE=NODISJOINT"
$ CC5_DIFFERENT = 1
$ ELSE $ ELSE
$ CC5 = CC + "/NOOPTIMIZE" $ CC5 = CC
$ CC5_DIFFERENT = 0
$ ENDIF $ ENDIF
$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
$ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS $ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS
@ -1255,7 +1353,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Done with SOCKETSHR $! Done with SOCKETSHR
$! $!
@ -1281,13 +1379,13 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
$ THEN $ THEN
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
$ ELSE $ ELSE
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
$ ENDIF $ ENDIF
$! $!
$! Done with UCX $! Done with UCX
@ -1301,7 +1399,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP (post UCX). $! Set the library to use TCPIP (post UCX).
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Done with TCPIP $! Done with TCPIP
$! $!
@ -1322,7 +1420,7 @@ $ ENDIF
$! $!
$! Print info $! Print info
$! $!
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
$! $!
$! Else The User Entered An Invalid Argument. $! Else The User Entered An Invalid Argument.
$! $!

View File

@ -69,6 +69,18 @@
#include <descrip.h> #include <descrip.h>
#include <starlet.h> #include <starlet.h>
#endif #endif
#include "vms_rms.h"
/* Some compiler options may mask the declaration of "_malloc32". */
#if __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE
# if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size save
# pragma pointer_size 32
void * _malloc32 (__size_t);
# pragma pointer_size restore
# endif /* __INITIAL_POINTER_SIZE == 64 */
#endif /* __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE */
#ifndef OPENSSL_SYS_VMS #ifndef OPENSSL_SYS_VMS
DSO_METHOD *DSO_METHOD_vms(void) DSO_METHOD *DSO_METHOD_vms(void)
@ -121,14 +133,13 @@ typedef struct dso_internal_st
/* This should contain the name only, no directory, /* This should contain the name only, no directory,
* no extension, nothing but a name. */ * no extension, nothing but a name. */
struct dsc$descriptor_s filename_dsc; struct dsc$descriptor_s filename_dsc;
char filename[FILENAME_MAX+1]; char filename[ NAMX_MAXRSS+ 1];
/* This contains whatever is not in filename, if needed. /* This contains whatever is not in filename, if needed.
* Normally not defined. */ * Normally not defined. */
struct dsc$descriptor_s imagename_dsc; struct dsc$descriptor_s imagename_dsc;
char imagename[FILENAME_MAX+1]; char imagename[ NAMX_MAXRSS+ 1];
} DSO_VMS_INTERNAL; } DSO_VMS_INTERNAL;
DSO_METHOD *DSO_METHOD_vms(void) DSO_METHOD *DSO_METHOD_vms(void)
{ {
return(&dso_meth_vms); return(&dso_meth_vms);
@ -139,7 +150,22 @@ static int vms_load(DSO *dso)
void *ptr = NULL; void *ptr = NULL;
/* See applicable comments in dso_dl.c */ /* See applicable comments in dso_dl.c */
char *filename = DSO_convert_filename(dso, NULL); char *filename = DSO_convert_filename(dso, NULL);
/* Ensure 32-bit pointer for "p", and appropriate malloc() function. */
#if __INITIAL_POINTER_SIZE == 64
# define DSO_MALLOC _malloc32
# pragma pointer_size save
# pragma pointer_size 32
#else /* __INITIAL_POINTER_SIZE == 64 */
# define DSO_MALLOC OPENSSL_malloc
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
DSO_VMS_INTERNAL *p; DSO_VMS_INTERNAL *p;
#if __INITIAL_POINTER_SIZE == 64
# pragma pointer_size restore
#endif /* __INITIAL_POINTER_SIZE == 64 */
const char *sp1, *sp2; /* Search result */ const char *sp1, *sp2; /* Search result */
if(filename == NULL) if(filename == NULL)
@ -192,7 +218,7 @@ static int vms_load(DSO *dso)
goto err; goto err;
} }
p = (DSO_VMS_INTERNAL *)OPENSSL_malloc(sizeof(DSO_VMS_INTERNAL)); p = DSO_MALLOC(sizeof(DSO_VMS_INTERNAL));
if(p == NULL) if(p == NULL)
{ {
DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE); DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE);
@ -290,18 +316,38 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym)
int flags = 0; int flags = 0;
#endif #endif
struct dsc$descriptor_s symname_dsc; struct dsc$descriptor_s symname_dsc;
*sym = NULL;
symname_dsc.dsc$w_length = strlen(symname); /* Arrange 32-bit pointer to (copied) string storage, if needed. */
symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T; #if __INITIAL_POINTER_SIZE == 64
symname_dsc.dsc$b_class = DSC$K_CLASS_S; # define SYMNAME symname_32p
symname_dsc.dsc$a_pointer = (char *)symname; /* The cast is needed */ # pragma pointer_size save
# pragma pointer_size 32
char *symname_32p;
# pragma pointer_size restore
char symname_32[ NAMX_MAXRSS+ 1];
#else /* __INITIAL_POINTER_SIZE == 64 */
# define SYMNAME ((char *) symname)
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
*sym = NULL;
if((dso == NULL) || (symname == NULL)) if((dso == NULL) || (symname == NULL))
{ {
DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER); DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER);
return; return;
} }
#if __INITIAL_POINTER_SIZE == 64
/* Copy the symbol name to storage with a 32-bit pointer. */
symname_32p = symname_32;
strcpy( symname_32p, symname);
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
symname_dsc.dsc$w_length = strlen(SYMNAME);
symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
symname_dsc.dsc$b_class = DSC$K_CLASS_S;
symname_dsc.dsc$a_pointer = SYMNAME;
if(sk_void_num(dso->meth_data) < 1) if(sk_void_num(dso->meth_data) < 1)
{ {
DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR); DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR);
@ -372,64 +418,60 @@ static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname)
return sym; return sym;
} }
static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2) static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2)
{ {
int status; int status;
int filespec1len, filespec2len; int filespec1len, filespec2len;
struct FAB fab; struct FAB fab;
#ifdef NAML$C_MAXRSS struct NAMX_STRUCT nam;
struct NAML nam; char esa[ NAMX_MAXRSS+ 1];
char esa[NAML$C_MAXRSS];
#else
struct NAM nam;
char esa[NAM$C_MAXRSS];
#endif
char *merged; char *merged;
/* Arrange 32-bit pointer to (copied) string storage, if needed. */
#if __INITIAL_POINTER_SIZE == 64
# define FILESPEC1 filespec1_32p;
# define FILESPEC2 filespec2_32p;
# pragma pointer_size save
# pragma pointer_size 32
char *filespec1_32p;
char *filespec2_32p;
# pragma pointer_size restore
char filespec1_32[ NAMX_MAXRSS+ 1];
char filespec2_32[ NAMX_MAXRSS+ 1];
#else /* __INITIAL_POINTER_SIZE == 64 */
# define FILESPEC1 ((char *) filespec1)
# define FILESPEC2 ((char *) filespec2)
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
if (!filespec1) filespec1 = ""; if (!filespec1) filespec1 = "";
if (!filespec2) filespec2 = ""; if (!filespec2) filespec2 = "";
filespec1len = strlen(filespec1); filespec1len = strlen(filespec1);
filespec2len = strlen(filespec2); filespec2len = strlen(filespec2);
fab = cc$rms_fab; #if __INITIAL_POINTER_SIZE == 64
#ifdef NAML$C_MAXRSS /* Copy the file names to storage with a 32-bit pointer. */
nam = cc$rms_naml; filespec1_32p = filespec1_32;
#else filespec2_32p = filespec2_32;
nam = cc$rms_nam; strcpy( filespec1_32p, filespec1);
#endif strcpy( filespec2_32p, filespec2);
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
fab.fab$l_fna = (char *)filespec1; fab = cc$rms_fab;
fab.fab$b_fns = filespec1len; nam = CC_RMS_NAMX;
fab.fab$l_dna = (char *)filespec2;
fab.fab$b_dns = filespec2len; FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNA = FILESPEC1;
#ifdef NAML$C_MAXRSS FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNS = filespec1len;
if (filespec1len > NAM$C_MAXRSS) FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNA = FILESPEC2;
{ FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNS = filespec2len;
fab.fab$l_fna = 0; NAMX_DNA_FNA_SET( fab)
fab.fab$b_fns = 0;
nam.naml$l_long_filename = (char *)filespec1; nam.NAMX_ESA = esa;
nam.naml$l_long_filename_size = filespec1len; nam.NAMX_ESS = NAMX_MAXRSS;
} nam.NAMX_NOP = NAM$M_SYNCHK | NAM$M_PWD;
if (filespec2len > NAM$C_MAXRSS) SET_NAMX_NO_SHORT_UPCASE( nam);
{
fab.fab$l_dna = 0; fab.FAB_NAMX = &nam;
fab.fab$b_dns = 0;
nam.naml$l_long_defname = (char *)filespec2;
nam.naml$l_long_defname_size = filespec2len;
}
nam.naml$l_esa = esa;
nam.naml$b_ess = NAM$C_MAXRSS;
nam.naml$l_long_expand = esa;
nam.naml$l_long_expand_alloc = sizeof(esa);
nam.naml$b_nop = NAM$M_SYNCHK | NAM$M_PWD;
nam.naml$v_no_short_upcase = 1;
fab.fab$l_naml = &nam;
#else
nam.nam$l_esa = esa;
nam.nam$b_ess = NAM$C_MAXRSS;
nam.nam$b_nop = NAM$M_SYNCHK | NAM$M_PWD;
fab.fab$l_nam = &nam;
#endif
status = sys$parse(&fab, 0, 0); status = sys$parse(&fab, 0, 0);
@ -460,33 +502,12 @@ static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2)
} }
return(NULL); return(NULL);
} }
#ifdef NAML$C_MAXRSS
if (nam.naml$l_long_expand_size) merged = OPENSSL_malloc( nam.NAMX_ESL+ 1);
{
merged = OPENSSL_malloc(nam.naml$l_long_expand_size + 1);
if(!merged)
goto malloc_err;
strncpy(merged, nam.naml$l_long_expand,
nam.naml$l_long_expand_size);
merged[nam.naml$l_long_expand_size] = '\0';
}
else
{
merged = OPENSSL_malloc(nam.naml$b_esl + 1);
if(!merged)
goto malloc_err;
strncpy(merged, nam.naml$l_esa,
nam.naml$b_esl);
merged[nam.naml$b_esl] = '\0';
}
#else
merged = OPENSSL_malloc(nam.nam$b_esl + 1);
if(!merged) if(!merged)
goto malloc_err; goto malloc_err;
strncpy(merged, nam.nam$l_esa, strncpy( merged, nam.NAMX_ESA, nam.NAMX_ESL);
nam.nam$b_esl); merged[ nam.NAMX_ESL] = '\0';
merged[nam.nam$b_esl] = '\0';
#endif
return(merged); return(merged);
malloc_err: malloc_err:
DSOerr(DSO_F_VMS_MERGER, DSOerr(DSO_F_VMS_MERGER,

196
crypto/install-crypto.com Executable file
View File

@ -0,0 +1,196 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! Changes by Zoltan Arpadffy <zoli@polarhome.com>
$!
$! P1 root of the directory tree
$! P2 "64" for 64-bit pointers.
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on error then goto tidy
$ on control_c then goto tidy
$!
$ if (p1 .eqs. "")
$ then
$ write sys$output "First argument missing."
$ write sys$output -
"It should be the directory where you want things installed."
$ 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
$!
$ archd = arch
$ lib32 = "32"
$ shr = "_SHR32"
$!
$ if (p2 .nes. "")
$ then
$ if (p2 .eqs. "64")
$ then
$ archd = arch+ "_64"
$ lib32 = ""
$ shr = "_SHR"
$ else
$ if (p2 .nes. "32")
$ then
$ write sys$output "Second argument invalid."
$ write sys$output "It should be "32", "64", or nothing."
$ exit
$ endif
$ endif
$ endif
$!
$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
$ root_dev = f$parse( root, , , "device", "syntax_only")
$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
"[000000." - "][" - "[" - "]"
$ root = root_dev + "[" + root_dir
$!
$ define /nolog wrk_sslroot 'root'.] /trans=conc
$ define /nolog wrk_sslinclude wrk_sslroot:[include]
$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
$!
$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
create /directory /log wrk_sslroot:[000000]
$ if f$parse("wrk_sslinclude:") .eqs. "" then -
create /directory /log wrk_sslinclude:
$ if f$parse("wrk_sslxlib:") .eqs. "" then -
create /directory /log wrk_sslxlib:
$!
$ sdirs := , -
'archd', -
objects, -
md2, md4, md5, sha, mdc2, hmac, ripemd, whrlpool, -
des, aes, rc2, rc4, rc5, idea, bf, cast, camellia, seed, -
bn, ec, rsa, dsa, ecdsa, dh, ecdh, dso, engine, -
buffer, bio, stack, lhash, rand, err, -
evp, asn1, pem, x509, x509v3, conf, txt_db, pkcs7, pkcs12, comp, ocsp, -
ui, krb5, -
store, cms, pqueue, ts, jpake
$!
$ exheader_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
$ exheader_'archd' := opensslconf.h
$ exheader_objects := objects.h, obj_mac.h
$ exheader_md2 := md2.h
$ exheader_md4 := md4.h
$ exheader_md5 := md5.h
$ exheader_sha := sha.h
$ exheader_mdc2 := mdc2.h
$ exheader_hmac := hmac.h
$ exheader_ripemd := ripemd.h
$ exheader_whrlpool := whrlpool.h
$ exheader_des := des.h, des_old.h
$ exheader_aes := aes.h
$ exheader_rc2 := rc2.h
$ exheader_rc4 := rc4.h
$ exheader_rc5 := rc5.h
$ exheader_idea := idea.h
$ exheader_bf := blowfish.h
$ exheader_cast := cast.h
$ exheader_camellia := camellia.h
$ exheader_seed := seed.h
$ exheader_modes := modes.h
$ exheader_bn := bn.h
$ exheader_ec := ec.h
$ exheader_rsa := rsa.h
$ exheader_dsa := dsa.h
$ exheader_ecdsa := ecdsa.h
$ exheader_dh := dh.h
$ exheader_ecdh := ecdh.h
$ exheader_dso := dso.h
$ exheader_engine := engine.h
$ exheader_buffer := buffer.h
$ exheader_bio := bio.h
$ exheader_stack := stack.h, safestack.h
$ exheader_lhash := lhash.h
$ exheader_rand := rand.h
$ exheader_err := err.h
$ exheader_evp := evp.h
$ exheader_asn1 := asn1.h, asn1_mac.h, asn1t.h
$ exheader_pem := pem.h, pem2.h
$ exheader_x509 := x509.h, x509_vfy.h
$ exheader_x509v3 := x509v3.h
$ exheader_conf := conf.h, conf_api.h
$ exheader_txt_db := txt_db.h
$ exheader_pkcs7 := pkcs7.h
$ exheader_pkcs12 := pkcs12.h
$ exheader_comp := comp.h
$ exheader_ocsp := ocsp.h
$ exheader_ui := ui.h, ui_compat.h
$ exheader_krb5 := krb5_asn.h
$! exheader_store := store.h, str_compat.h
$ exheader_store := store.h
$ exheader_cms := cms.h
$ exheader_pqueue := pqueue.h
$ exheader_ts := ts.h
$ exheader_jpake := jpake.h
$ libs := ssl_libcrypto
$!
$ exe_dir := [-.'archd'.exe.crypto]
$!
$! Header files.
$!
$ i = 0
$ loop_sdirs:
$ d = f$edit( f$element( i, ",", sdirs), "trim")
$ i = i + 1
$ if d .eqs. "," then goto loop_sdirs_end
$ tmp = exheader_'d'
$ if (d .nes. "") then d = "."+ d
$ copy /protection = w:re ['d']'tmp' wrk_sslinclude: /log
$ goto loop_sdirs
$ loop_sdirs_end:
$!
$! Object libraries, shareable images.
$!
$ i = 0
$ loop_lib:
$ e = f$edit( f$element( i, ",", libs), "trim")
$ i = i + 1
$ if e .eqs. "," then goto loop_lib_end
$ set noon
$ file = exe_dir+ e+ lib32+ ".olb"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxlib: /log
$ endif
$!
$ file = exe_dir+ e+ shr+ ".exe"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxlib: /log
$ endif
$ set on
$ goto loop_lib
$ loop_lib_end:
$!
$ tidy:
$!
$ call deass wrk_sslroot
$ call deass wrk_sslinclude
$ call deass wrk_sslxlib
$!
$ exit
$!
$ deass: subroutine
$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
$ then
$ deassign /process 'p1'
$ endif
$ endsubroutine
$!

View File

@ -1,150 +0,0 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! Changes by Zoltan Arpadffy <zoli@polarhome.com>
$!
$! P1 root of the directory tree
$!
$ IF P1 .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "First argument missing."
$ WRITE SYS$OUTPUT -
"It should be the directory where you want things installed."
$ 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
$
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
- "[000000." - "][" - "[" - "]"
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
$
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
$ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:['ARCH'_LIB]
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
$
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[000000]
$ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLLIB:
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLINCLUDE:
$
$ SDIRS := ,-
_'ARCH',-
OBJECTS,-
MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,WHRLPOOL,-
DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,-
BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,-
BUFFER,BIO,STACK,LHASH,RAND,ERR,-
EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,-
UI,KRB5,-
STORE,CMS,PQUEUE,TS,JPAKE
$ EXHEADER_ := crypto.h,opensslv.h,ebcdic.h,symhacks.h,ossl_typ.h
$ EXHEADER__'ARCH' := opensslconf.h
$ EXHEADER_OBJECTS := objects.h,obj_mac.h
$ EXHEADER_MD2 := md2.h
$ EXHEADER_MD4 := md4.h
$ EXHEADER_MD5 := md5.h
$ EXHEADER_SHA := sha.h
$ EXHEADER_MDC2 := mdc2.h
$ EXHEADER_HMAC := hmac.h
$ EXHEADER_RIPEMD := ripemd.h
$ EXHEADER_WHRLPOOL := whrlpool.h
$ EXHEADER_DES := des.h,des_old.h
$ EXHEADER_AES := aes.h
$ EXHEADER_RC2 := rc2.h
$ EXHEADER_RC4 := rc4.h
$ EXHEADER_RC5 := rc5.h
$ EXHEADER_IDEA := idea.h
$ EXHEADER_BF := blowfish.h
$ EXHEADER_CAST := cast.h
$ EXHEADER_CAMELLIA := camellia.h
$ EXHEADER_SEED := seed.h
$ EXHEADER_MODES := modes.h
$ EXHEADER_BN := bn.h
$ EXHEADER_EC := ec.h
$ EXHEADER_RSA := rsa.h
$ EXHEADER_DSA := dsa.h
$ EXHEADER_ECDSA := ecdsa.h
$ EXHEADER_DH := dh.h
$ EXHEADER_ECDH := ecdh.h
$ EXHEADER_DSO := dso.h
$ EXHEADER_ENGINE := engine.h
$ EXHEADER_BUFFER := buffer.h
$ EXHEADER_BIO := bio.h
$ EXHEADER_STACK := stack.h,safestack.h
$ EXHEADER_LHASH := lhash.h
$ EXHEADER_RAND := rand.h
$ EXHEADER_ERR := err.h
$ EXHEADER_EVP := evp.h
$ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h
$ EXHEADER_PEM := pem.h,pem2.h
$ EXHEADER_X509 := x509.h,x509_vfy.h
$ EXHEADER_X509V3 := x509v3.h
$ EXHEADER_CONF := conf.h,conf_api.h
$ EXHEADER_TXT_DB := txt_db.h
$ EXHEADER_PKCS7 := pkcs7.h
$ EXHEADER_PKCS12 := pkcs12.h
$ EXHEADER_COMP := comp.h
$ EXHEADER_OCSP := ocsp.h
$ EXHEADER_UI := ui.h,ui_compat.h
$ EXHEADER_KRB5 := krb5_asn.h
$! EXHEADER_STORE := store.h,str_compat.h
$ EXHEADER_STORE := store.h
$ EXHEADER_CMS := cms.h
$ EXHEADER_PQUEUE := pqueue.h
$ EXHEADER_TS := ts.h
$ EXHEADER_JPAKE := jpake.h
$ LIBS := LIBCRYPTO,LIBCRYPTO32
$
$ EXE_DIR := [-.'ARCH'.EXE.CRYPTO]
$
$ I = 0
$ LOOP_SDIRS:
$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
$ I = I + 1
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
$ tmp = EXHEADER_'D'
$ IF D .EQS. ""
$ THEN
$ COPY 'tmp' WRK_SSLINCLUDE: /LOG
$ ELSE
$ COPY [.'D']'tmp' WRK_SSLINCLUDE: /LOG
$ ENDIF
$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'tmp'
$ GOTO LOOP_SDIRS
$ LOOP_SDIRS_END:
$
$ I = 0
$ LOOP_LIB:
$ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM")
$ I = I + 1
$ IF E .EQS. "," THEN GOTO LOOP_LIB_END
$ SET NOON
$ IF F$SEARCH(EXE_DIR+E+".OLB") .NES. ""
$ THEN
$ COPY 'EXE_DIR''E'.OLB WRK_SSLLIB:'E'.OLB/log
$ SET FILE/PROT=W:RE WRK_SSLLIB:'E'.OLB
$ ENDIF
$ ! Preparing for the time when we have shareable images
$ IF F$SEARCH(EXE_DIR+E+".EXE") .NES. ""
$ THEN
$ COPY 'EXE_DIR''E'.EXE WRK_SSLLIB:'E'.EXE/log
$ SET FILE/PROT=W:RE WRK_SSLLIB:'E'.EXE
$ ENDIF
$ SET ON
$ GOTO LOOP_LIB
$ LOOP_LIB_END:
$
$ EXIT

View File

@ -64,12 +64,18 @@
#include "o_time.h" #include "o_time.h"
#ifdef OPENSSL_SYS_VMS #ifdef OPENSSL_SYS_VMS
# include <libdtdef.h> # if __CRTL_VER >= 70000000 && \
# include <lib$routines.h> (defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE)
# include <lnmdef.h> # define VMS_GMTIME_OK
# include <starlet.h> # endif
# include <descrip.h> # ifndef VMS_GMTIME_OK
# include <stdlib.h> # include <libdtdef.h>
# include <lib$routines.h>
# include <lnmdef.h>
# include <starlet.h>
# include <descrip.h>
# include <stdlib.h>
# endif /* ndef VMS_GMTIME_OK */
#endif #endif
struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
@ -81,7 +87,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
so we don't even look at the return value */ so we don't even look at the return value */
gmtime_r(timer,result); gmtime_r(timer,result);
ts = result; ts = result;
#elif !defined(OPENSSL_SYS_VMS) #elif !defined(OPENSSL_SYS_VMS) || defined(VMS_GMTIME_OK)
ts = gmtime(timer); ts = gmtime(timer);
if (ts == NULL) if (ts == NULL)
return NULL; return NULL;
@ -89,7 +95,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
memcpy(result, ts, sizeof(struct tm)); memcpy(result, ts, sizeof(struct tm));
ts = result; ts = result;
#endif #endif
#ifdef OPENSSL_SYS_VMS #if defined( OPENSSL_SYS_VMS) && !defined( VMS_GMTIME_OK)
if (ts == NULL) if (ts == NULL)
{ {
static $DESCRIPTOR(tabnam,"LNM$DCL_LOGICAL"); static $DESCRIPTOR(tabnam,"LNM$DCL_LOGICAL");

View File

@ -69,6 +69,17 @@
# pragma message disable DOLLARID # pragma message disable DOLLARID
#endif #endif
/* Use 32-bit pointers almost everywhere. Define the type to which to
* cast a pointer passed to an external function.
*/
#if __INITIAL_POINTER_SIZE == 64
# define PTR_T __void_ptr64
# pragma pointer_size save
# pragma pointer_size 32
#else /* __INITIAL_POINTER_SIZE == 64 */
# define PTR_T void *
#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
static struct items_data_st static struct items_data_st
{ {
short length, code; /* length is amount of bytes */ short length, code; /* length is amount of bytes */
@ -125,11 +136,12 @@ int RAND_poll(void)
{ {
if (status == SS$_NORMAL) if (status == SS$_NORMAL)
{ {
RAND_add(data_buffer, total_length, total_length/2); RAND_add( (PTR_T)data_buffer, total_length,
total_length/2);
} }
} }
sys$gettim(iosb); sys$gettim(iosb);
RAND_add((unsigned char *)iosb, sizeof(iosb), sizeof(iosb)/2); RAND_add( (PTR_T)iosb, sizeof(iosb), sizeof(iosb)/2);
return 1; return 1;
} }

View File

@ -144,7 +144,9 @@ int RAND_load_file(const char *file, long bytes)
* I/O because we will waste system entropy. * I/O because we will waste system entropy.
*/ */
bytes = (bytes == -1) ? 2048 : bytes; /* ok, is 2048 enough? */ bytes = (bytes == -1) ? 2048 : bytes; /* ok, is 2048 enough? */
#ifndef OPENSSL_NO_SETVBUF_IONBF
setvbuf(in, NULL, _IONBF, 0); /* don't do buffered reads */ setvbuf(in, NULL, _IONBF, 0); /* don't do buffered reads */
#endif /* ndef OPENSSL_NO_SETVBUF_IONBF */
} }
#endif #endif
for (;;) for (;;)

51
crypto/vms_rms.h Executable file
View File

@ -0,0 +1,51 @@
#ifdef NAML$C_MAXRSS
# define CC_RMS_NAMX cc$rms_naml
# define FAB_NAMX fab$l_naml
# define FAB_OR_NAML( fab, naml) naml
# define FAB_OR_NAML_DNA naml$l_long_defname
# define FAB_OR_NAML_DNS naml$l_long_defname_size
# define FAB_OR_NAML_FNA naml$l_long_filename
# define FAB_OR_NAML_FNS naml$l_long_filename_size
# define NAMX_ESA naml$l_long_expand
# define NAMX_ESL naml$l_long_expand_size
# define NAMX_ESS naml$l_long_expand_alloc
# define NAMX_NOP naml$b_nop
# define SET_NAMX_NO_SHORT_UPCASE( nam) nam.naml$v_no_short_upcase = 1
# if __INITIAL_POINTER_SIZE == 64
# define NAMX_DNA_FNA_SET(fab) fab.fab$l_dna = (__char_ptr32) -1; \
fab.fab$l_fna = (__char_ptr32) -1;
# else /* __INITIAL_POINTER_SIZE == 64 */
# define NAMX_DNA_FNA_SET(fab) fab.fab$l_dna = (char *) -1; \
fab.fab$l_fna = (char *) -1;
# endif /* __INITIAL_POINTER_SIZE == 64 [else] */
# define NAMX_MAXRSS NAML$C_MAXRSS
# define NAMX_STRUCT NAML
#else /* def NAML$C_MAXRSS */
# define CC_RMS_NAMX cc$rms_nam
# define FAB_NAMX fab$l_nam
# define FAB_OR_NAML( fab, naml) fab
# define FAB_OR_NAML_DNA fab$l_dna
# define FAB_OR_NAML_DNS fab$b_dns
# define FAB_OR_NAML_FNA fab$l_fna
# define FAB_OR_NAML_FNS fab$b_fns
# define NAMX_ESA nam$l_esa
# define NAMX_ESL nam$b_esl
# define NAMX_ESS nam$b_ess
# define NAMX_NOP nam$b_nop
# define NAMX_DNA_FNA_SET(fab)
# define NAMX_MAXRSS NAM$C_MAXRSS
# define NAMX_STRUCT NAM
# ifdef NAM$M_NO_SHORT_UPCASE
# define SET_NAMX_NO_SHORT_UPCASE( nam) naml.naml$v_no_short_upcase = 1
# else /* def NAM$M_NO_SHORT_UPCASE */
# define SET_NAMX_NO_SHORT_UPCASE( nam)
# endif /* def NAM$M_NO_SHORT_UPCASE [else] */
#endif /* def NAML$C_MAXRSS [else] */

View File

@ -28,18 +28,31 @@ $!
$! P6 if defined, denotes which engines to build. If not defined, $! P6 if defined, denotes which engines to build. If not defined,
$! all available engines are built. $! all available engines are built.
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P7. $! P7, if defined, specifies the C pointer size. Ignored on VAX.
$! For 32 bit architectures (VAX), P7 is ignored. $! Supported values are:
$! Currently supported values are:
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! "" Compile with default (/NOPOINTER_SIZE)
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$!
$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$! $!
$!----------------------------------------------------------------------------- $!-----------------------------------------------------------------------------
$! $!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on control_c then goto exit
$!
$! Set the default TCP/IP library to link against if needed $! Set the default TCP/IP library to link against if needed
$! $!
$ TCPIP_LIB = "" $ TCPIP_LIB = ""
$ ZLIB_LIB = ""
$! $!
$! Check What Architecture We Are Using. $! Check What Architecture We Are Using.
$! $!
@ -63,6 +76,11 @@ $! End The Architecture Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$ ARCHD = ARCH
$ LIB32 = "32"
$ OPT_FILE = ""
$ POINTER_SIZE = ""
$!
$! Set the names of the engines we want to build $! Set the names of the engines we want to build
$! NOTE: Some might think this list ugly. However, it's made this way to $! NOTE: Some might think this list ugly. However, it's made this way to
$! reflect the LIBNAMES variable in Makefile as closely as possible, $! reflect the LIBNAMES variable in Makefile as closely as possible,
@ -79,19 +97,7 @@ $!
$ IF (ARCH .NES. "VAX") THEN - $ IF (ARCH .NES. "VAX") THEN -
ENGINES = ENGINES+ ",ccgost" ENGINES = ENGINES+ ",ccgost"
$! $!
$! Set the goal directories, and create them if necessary $! Check options.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.ENGINES]
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.ENGINES]
$ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
$ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
$!
$! Set the goal files, and create them if necessary
$!
$ CRYPTO_LIB :=SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO'LIB32'.OLB
$ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
$!
$! OK, time to check options and initialise
$! $!
$ OPT_PHASE = P1 $ OPT_PHASE = P1
$ ACCEPT_PHASE = "ALL,ENGINES" $ ACCEPT_PHASE = "ALL,ENGINES"
@ -100,8 +106,38 @@ $ OPT_COMPILER = P3
$ OPT_TCPIP_LIB = P4 $ OPT_TCPIP_LIB = P4
$ OPT_SPECIAL_THREADS = P5 $ OPT_SPECIAL_THREADS = P5
$ OPT_POINTER_SIZE = P7 $ OPT_POINTER_SIZE = P7
$ ZLIB = P8
$ $
$ GOSUB CHECK_OPTIONS $ GOSUB CHECK_OPTIONS
$!
$! Set the goal directories, and create them if necessary
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.ENGINES]
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.ENGINES]
$ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
$ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
$!
$! Set the goal files, and create them if necessary
$!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
$ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
$!
$! Specify the destination directory in any /MAP option.
$!
$ if (LINKMAP .eqs. "MAP")
$ then
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
$ endif
$!
$! Add the location prefix to the linker options file name.
$!
$ if (OPT_FILE .nes. "")
$ then
$ OPT_FILE = EXE_DIR+ OPT_FILE
$ endif
$!
$! Initialise.
$!
$ GOSUB INITIALISE $ GOSUB INITIALISE
$ GOSUB CHECK_OPT_FILE $ GOSUB CHECK_OPT_FILE
$! $!
@ -180,7 +216,7 @@ $! Create a .OPT file for the object files (for a real engine name).
$! $!
$ IF ENGINE_NAME .NES. "" $ IF ENGINE_NAME .NES. ""
$ THEN $ THEN
$ OPEN/WRITE OBJECTS 'EXE_DIR''ENGINE_NAME'.OPT $ OPEN /WRITE OBJECTS 'EXE_DIR''ENGINE_NAME'.OPT
$ ENDIF $ ENDIF
$! $!
$! Here's the start of per-engine module loop. $! Here's the start of per-engine module loop.
@ -265,18 +301,14 @@ $! For shareable libraries, we need to do things a little differently
$! depending on if we link with a TCP/IP library or not. $! depending on if we link with a TCP/IP library or not.
$! $!
$ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT $ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT
$ IF TCPIP_LIB .NES. "" $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
$ THEN 'EXE_DIR''ENGINE_NAME'.OPT /OPTIONS -
$ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE - 'TV_OBJ', -
'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', - 'CRYPTO_LIB' /LIBRARY, -
'CRYPTO_LIB'/LIBRARY, - 'ENGINE_OPT' /OPTIONS -
'ENGINE_OPT'/OPTION,'TCPIP_LIB','OPT_FILE'/OPTION 'TCPIP_LIB' -
$ ELSE 'ZLIB_LIB' -
$ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE - ,'OPT_FILE' /OPTIONS
'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', -
'CRYPTO_LIB'/LIBRARY, -
'ENGINE_OPT'/OPTION,'OPT_FILE'/OPTION
$ ENDIF
$! $!
$! Next engine $! Next engine
$! $!
@ -310,7 +342,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable VAX C Runtime Library. ! The Sharable VAX C Runtime Library.
! !
SYS$SHARE:VAXCRTL.EXE/SHARE SYS$SHARE:VAXCRTL.EXE/SHARE
@ -339,7 +371,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
GNU_CC:[000000]GCCLIB/LIBRARY GNU_CC:[000000]GCCLIB/LIBRARY
@ -374,7 +406,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable DEC C Runtime Library. ! The Sharable DEC C Runtime Library.
! !
SYS$SHARE:DECC$SHR.EXE/SHARE SYS$SHARE:DECC$SHR.EXE/SHARE
@ -389,7 +421,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File For non-VAX To Link Agianst ! Default System Options File For non-VAX To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
@ -461,8 +493,8 @@ $ IF ("," + ACCEPT_PHASE + ",") - ",ENGINES," -
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " where 'xxx' stands for:" $ WRITE SYS$OUTPUT " where 'xxx' stands for:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " ALPHA : Alpha architecture." $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha architecture."
$ WRITE SYS$OUTPUT " IA64 : IA64 architecture." $ WRITE SYS$OUTPUT " IA64[64] : IA64 architecture."
$ WRITE SYS$OUTPUT " VAX : VAX architecture." $ WRITE SYS$OUTPUT " VAX : VAX architecture."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
@ -483,15 +515,16 @@ $!
$ IF (OPT_DEBUG.EQS."NODEBUG") $ IF (OPT_DEBUG.EQS."NODEBUG")
$ THEN $ THEN
$! $!
$! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information. $! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
$! $!
$ DEBUGGER = "NODEBUG" $ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK" $ LINKMAP = "NOMAP"
$ GCC_OPTIMIZE = "OPTIMIZE" $ TRACEBACK = "NOTRACEBACK"
$ CC_OPTIMIZE = "OPTIMIZE" $ GCC_OPTIMIZE = "OPTIMIZE"
$ MACRO_OPTIMIZE = "OPTIMIZE" $ CC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." $ MACRO_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! Check To See If We Are To Compile With Debugger Information. $! Check To See If We Are To Compile With Debugger Information.
@ -502,6 +535,7 @@ $!
$! Compile With Debugger Information. $! Compile With Debugger Information.
$! $!
$ DEBUGGER = "DEBUG" $ DEBUGGER = "DEBUG"
$ LINKMAP = "MAP"
$ TRACEBACK = "TRACEBACK" $ TRACEBACK = "TRACEBACK"
$ GCC_OPTIMIZE = "NOOPTIMIZE" $ GCC_OPTIMIZE = "NOOPTIMIZE"
$ CC_OPTIMIZE = "NOOPTIMIZE" $ CC_OPTIMIZE = "NOOPTIMIZE"
@ -510,7 +544,7 @@ $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! They Entered An Invalid Option.. $! They Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:"
@ -565,58 +599,49 @@ $! End The OPT_SPECIAL_THREADS Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If OPT_POINTER_SIZE Is Blank. $! Check OPT_POINTER_SIZE (P7).
$! $!
$ IF (OPT_POINTER_SIZE.EQS."") $ IF (OPT_POINTER_SIZE .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is OPT_POINTER_SIZE Is Valid $ IF (OPT_POINTER_SIZE .EQS. "32")
$!
$ IF (OPT_POINTER_SIZE.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32" $ POINTER_SIZE = "/POINTER_SIZE=32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (OPT_POINTER_SIZE.EQS."64") $ IF (OPT_POINTER_SIZE .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32"
$ ELSE
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",OPT_POINTER_SIZE," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", OPT_POINTER_SIZE, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ EXIT
$!
$! End The Valid Arguement Check.
$! $!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The OPT_POINTER_SIZE Check. $! End The OPT_POINTER_SIZE Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Set basic C compiler /INCLUDE directories.
$!
$ CC_INCLUDES = "SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS]"
$!
$! Check To See If OPT_COMPILER Is Blank. $! Check To See If OPT_COMPILER Is Blank.
$! $!
$ IF (OPT_COMPILER.EQS."") $ IF (OPT_COMPILER.EQS."")
@ -721,7 +746,59 @@ $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If We Have A ZLIB Option.
$!
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ EXIT
$ endif
$!
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
$ ZLIB_LIB = ", ''file2' /library"
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The ZLIB Check.
$!
$ ENDIF
$!
$! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC") $ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC")
$ THEN $ THEN
@ -744,14 +821,14 @@ $!
$ CC = "CC" $ CC = "CC"
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
THEN CC = "CC/DECC" THEN CC = "CC/DECC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89''POINTER_SIZE'" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=RELAXED"+ -
"/NOLIST/PREFIX=ALL" + - "''POINTER_SIZE'/NOLIST/PREFIX=ALL" + -
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS])" + - "/INCLUDE=(''CC_INCLUDES')" + -
CCEXTRAFLAGS CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" $ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
$! $!
$! End DECC Check. $! End DECC Check.
$! $!
@ -780,7 +857,7 @@ $ EXIT
$ ENDIF $ ENDIF
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.VENDOR_DEFNS])" + - "/INCLUDE=(''CC_INCLUDES')" + -
CCEXTRAFLAGS CCEXTRAFLAGS
$ CCDEFS = """VAXC""," + CCDEFS $ CCDEFS = """VAXC""," + CCDEFS
$! $!
@ -790,7 +867,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
$! $!
$! End VAXC Check $! End VAXC Check
$! $!
@ -812,12 +889,12 @@ $!
$! Use GNU C... $! Use GNU C...
$! $!
$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.VENDOR_DEFNS])" + - "/INCLUDE=(''CC_INCLUDES')" + -
CCEXTRAFLAGS CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
$! $!
$! End The GNU C Check. $! End The GNU C Check.
$! $!
@ -868,8 +945,12 @@ $ ENDIF
$! $!
$! Build a MACRO command for the architecture at hand $! Build a MACRO command for the architecture at hand
$! $!
$ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'" $ IF ARCH .EQS. "VAX"
$ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'" $ THEN
$ MACRO = "MACRO/''DEBUGGER'"
$ ELSE
$ MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
$ ENDIF
$! $!
$! Show user the result $! Show user the result
$! $!
@ -889,7 +970,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Done with SOCKETSHR $! Done with SOCKETSHR
$! $!
@ -915,13 +996,13 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
$ THEN $ THEN
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
$ ELSE $ ELSE
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
$ ENDIF $ ENDIF
$! $!
$! Done with UCX $! Done with UCX
@ -935,7 +1016,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP (post UCX). $! Set the library to use TCPIP (post UCX).
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Done with TCPIP $! Done with TCPIP
$! $!
@ -956,7 +1037,7 @@ $ ENDIF
$! $!
$! Print info $! Print info
$! $!
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
$! $!
$! Else The User Entered An Invalid Argument. $! Else The User Entered An Invalid Argument.
$! $!
@ -999,7 +1080,7 @@ $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
$! $!
$! Set up the logical name OPENSSL to point at the include directory $! Set up the logical name OPENSSL to point at the include directory
$! $!
$ DEFINE OPENSSL/NOLOG '__INCLUDE' $ DEFINE OPENSSL /NOLOG '__INCLUDE'
$! $!
$! Done $! Done
$! $!
@ -1007,15 +1088,24 @@ $ RETURN
$! $!
$ CLEANUP: $ CLEANUP:
$! $!
$! Restore the logical name OPENSSL if it had a value $! Restore the saved logical name OPENSSL, if it had a value.
$! $!
$ IF __SAVE_OPENSSL .EQS. "" $ if (f$type( __SAVE_OPENSSL) .nes. "")
$ THEN $ then
$ DEASSIGN OPENSSL $ IF __SAVE_OPENSSL .EQS. ""
$ ELSE $ THEN
$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL' $ DEASSIGN OPENSSL
$ ENDIF $ ELSE
$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
$ ENDIF
$ endif
$!
$! Close any open files.
$!
$ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close objects
$! $!
$! Done $! Done
$! $!
$ RETURN $ RETURN
$!

View File

@ -3,99 +3,134 @@ $!
$! Author: Richard Levitte <richard@levitte.org> $! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13 $! Time of creation: 22-MAY-1998 10:13
$! $!
$! P1 root of the directory tree $! P1 root of the directory tree
$! P2 "64" for 64-bit pointers.
$! $!
$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT") $!
$ ON ERROR THEN GOTO TIDY $! Announce/identify.
$ ON CONTROL_C THEN GOTO TIDY $!
$ $ proc = f$environment( "procedure")
$ IF P1 .EQS. "" $ write sys$output "@@@ "+ -
$ THEN f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$ WRITE SYS$OUTPUT "First argument missing." $!
$ WRITE SYS$OUTPUT - $ def_orig = f$environment( "default")
"It Should be the directory where you want things installed." $ on error then goto tidy
$ EXIT $ on control_c then goto tidy
$ ENDIF $!
$ $ if (p1 .eqs. "")
$ IF (F$GETSYI("CPU").LT.128) $ then
$ THEN $ write sys$output "First argument missing."
$ ARCH := VAX $ write sys$output -
$ ELSE "It should be the directory where you want things installed."
$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") $ exit
$ IF (ARCH .EQS. "") THEN ARCH = "UNK" $ endif
$ ENDIF $!
$ $ if (f$getsyi("cpu") .lt. 128)
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" $ then
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") $ arch = "VAX"
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - $ else
$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
$ if (arch .eqs. "") then arch = "UNK"
$ endif
$!
$ archd = arch
$!
$ if (p2 .nes. "")
$ then
$ if (p2 .eqs. "64")
$ then
$ archd = arch+ "_64"
$ else
$ if (p2 .nes. "32")
$ then
$ write sys$output "Second argument invalid."
$ write sys$output "It should be "32", "64", or nothing."
$ exit
$ endif
$ endif
$ endif
$!
$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
$ root_dev = f$parse( root, , , "device", "syntax_only")
$ root_dir = f$parse( root, , , "directory", "syntax_only") -
- ".][000000" - "[000000." - "][" - "[" - "]" - ".][000000" - "[000000." - "][" - "[" - "]"
$ ROOT = ROOT_DEV + "[" + ROOT_DIR $ root = root_dev + "[" + root_dir
$ $!
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC $ define /nolog wrk_sslroot 'root'.] /trans=conc
$ DEFINE/NOLOG WRK_SSLXLIB WRK_SSLROOT:['ARCH'_LIB] $ define /nolog wrk_sslcerts wrk_sslroot:[certs]
$ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:[LIB] $ define /nolog wrk_sslinclude wrk_sslroot:[include]
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE] $ define /nolog wrk_ssllib wrk_sslroot:[lib]
$ DEFINE/NOLOG WRK_SSLXEXE WRK_SSLROOT:['ARCH'_EXE] $ define /nolog wrk_sslprivate wrk_sslroot:[private]
$ DEFINE/NOLOG WRK_SSLCERTS WRK_SSLROOT:[CERTS] $ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe]
$ DEFINE/NOLOG WRK_SSLPRIVATE WRK_SSLROOT:[PRIVATE] $ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
$
$! $!
$! Exhibit the destination directory. $! Exhibit the destination directory.
$! $!
$ WRITE SYS$OUTPUT " Installing to (WRK_SSLROOT) =" $ write sys$output " Installing to (WRK_SSLROOT) ="
$ WRITE SYS$OUTPUT " ''f$trnlnm( "WRK_SSLROOT")'" $ write sys$output " ''f$trnlnm( "wrk_sslroot")'"
$ WRITE SYS$OUTPUT "" $ write sys$output ""
$ $!
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN - $ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLROOT:[000000] create /directory /log wrk_sslroot:[000000]
$ IF F$PARSE("WRK_SSLXEXE:") .EQS. "" THEN - $ if f$parse("wrk_sslxexe:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLXEXE: create /directory /log wrk_sslxexe:
$ IF F$PARSE("WRK_SSLXLIB:") .EQS. "" THEN - $ if f$parse("wrk_sslxlib:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLXLIB: create /directory /log wrk_sslxlib:
$ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN - $ if f$parse("wrk_ssllib:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLLIB: create /directory /log wrk_ssllib:
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN - $ if f$parse("wrk_sslinclude:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLINCLUDE: create /directory /log wrk_sslinclude:
$ IF F$PARSE("WRK_SSLCERTS:") .EQS. "" THEN - $ if f$parse("wrk_sslcerts:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLCERTS: create /directory /log wrk_sslcerts:
$ IF F$PARSE("WRK_SSLPRIVATE:") .EQS. "" THEN - $ if f$parse("wrk_sslprivate:") .eqs. "" then -
CREATE/DIR/LOG WRK_SSLPRIVATE: create /directory /log wrk_sslprivate:
$ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN - $ if f$parse("wrk_sslroot:[VMS]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[VMS] create /directory /log wrk_sslroot:[VMS]
$ $!
$ SDIRS := CRYPTO,SSL,APPS,VMS!,RSAREF,TEST,TOOLS $ sdirs := CRYPTO, SSL, APPS, VMS !!!, RSAREF, TEST, TOOLS
$ EXHEADER := e_os2.h $ exheader := e_os2.h
$ $!
$ COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG $ copy /protection = w:re 'exheader' wrk_sslinclude: /log
$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER' $!
$ $ i = 0
$ I = 0 $ loop_sdirs:
$ LOOP_SDIRS: $ d = f$edit( f$element(i, ",", sdirs), "trim")
$ D = F$ELEMENT(I, ",", SDIRS) $ i = i + 1
$ I = I + 1 $ if d .eqs. "," then goto loop_sdirs_end
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END $ write sys$output "Installing ", d, " files."
$ WRITE SYS$OUTPUT "Installing ",D," files." $ set default [.'d']
$ SET DEFAULT [.'D'] $ @ install-'d'.com 'root'] 'p2'
$ @INSTALL 'ROOT'] $ set default 'def_orig'
$ SET DEFAULT [-] $ goto loop_sdirs
$ GOTO LOOP_SDIRS $ loop_sdirs_end:
$ LOOP_SDIRS_END: $!
$ $ write sys$output ""
$ WRITE SYS$OUTPUT "" $ write sys$output " Installation done!"
$ WRITE SYS$OUTPUT " Installation done!" $ write sys$output ""
$ WRITE SYS$OUTPUT "" $ if (f$search( root+ "...]*.*;-1") .nes. "")
$ WRITE SYS$OUTPUT " You might want to purge ",ROOT,"...]" $ then
$ WRITE SYS$OUTPUT "" $ write sys$output " You might want to purge ", root, "...]"
$ $ write sys$output ""
$ TIDY: $ endif
$ SET DEFAULT 'DEF_ORIG' $!
$ $ tidy:
$ DEASSIGN WRK_SSLROOT $!
$ DEASSIGN WRK_SSLXLIB $ set default 'def_orig'
$ DEASSIGN WRK_SSLLIB $!
$ DEASSIGN WRK_SSLINCLUDE $ call deass wrk_sslroot
$ DEASSIGN WRK_SSLXEXE $ call deass wrk_sslcerts
$ DEASSIGN WRK_SSLCERTS $ call deass wrk_sslinclude
$ DEASSIGN WRK_SSLPRIVATE $ call deass wrk_ssllib
$ $ call deass wrk_sslprivate
$ EXIT $ call deass wrk_sslxexe
$ call deass wrk_sslxlib
$!
$ exit
$!
$ deass: subroutine
$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
$ then
$ deassign /process 'p1'
$ endif
$ endsubroutine
$!

View File

@ -15,7 +15,7 @@ $! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX.
$! $!
$! This procedures accepts two command line options listed below. $! This procedures accepts two command line options listed below.
$! $!
$! Specify one of the following build options for P1. $! P1 specifies one of the following build options:
$! $!
$! ALL Just build "everything". $! ALL Just build "everything".
$! CONFIG Just build the "[.CRYPTO._xxx]OPENSSLCONF.H" file. $! CONFIG Just build the "[.CRYPTO._xxx]OPENSSLCONF.H" file.
@ -31,19 +31,17 @@ $! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
$! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL. $! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
$! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL. $! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
$! $!
$! P2, if defined, specifies the C pointer size. Ignored on VAX.
$! Supported values are:
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P2. $! "" Compile with default (/NOPOINTER_SIZE)
$! For 32 bit architectures (VAX), P2 is ignored. $! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! Currently supported values are: $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! P3 specifies DEBUG or NODEBUG, to compile with or without debugging
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! information.
$! $!
$! $! P4 specifies which compiler to try to compile under.
$! Specify DEBUG or NODEBUG as P3 to compile with or without debugging
$! information.
$!
$! Specify which compiler as P4 to try to compile under.
$! $!
$! VAXC For VAX C. $! VAXC For VAX C.
$! DECC For DEC C. $! DECC For DEC C.
@ -65,8 +63,18 @@ $! NONE to avoid specifying which TCP/IP implementation to
$! use at build time (this works with DEC C). This is $! use at build time (this works with DEC C). This is
$! the default. $! the default.
$! $!
$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) $! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up).
$! $!
$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$! $!
$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT") $ DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
$ ON ERROR THEN GOTO TIDY $ ON ERROR THEN GOTO TIDY
@ -104,6 +112,10 @@ $! End The Architecture Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$ ARCHD = ARCH
$ LIB32 = "32"
$ POINTER_SIZE = ""
$!
$! Get VMS version. $! Get VMS version.
$! $!
$ VMS_VERSION = f$edit( f$getsyi( "VERSION"), "TRIM") $ VMS_VERSION = f$edit( f$getsyi( "VERSION"), "TRIM")
@ -178,12 +190,12 @@ $ CONFIG:
$! $!
$! Tell The User We Are Creating The [.CRYPTO._xxx]OPENSSLCONF.H File. $! Tell The User We Are Creating The [.CRYPTO._xxx]OPENSSLCONF.H File.
$! $!
$ WRITE SYS$OUTPUT "Creating [.CRYPTO._''ARCH']OPENSSLCONF.H Include File." $ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']OPENSSLCONF.H Include File."
$! $!
$! First, make sure the directory exists. $! First, make sure the directory exists.
$! $!
$ IF F$PARSE("SYS$DISK:[.CRYPTO._''ARCH']") .EQS. "" THEN - $ IF F$PARSE("SYS$DISK:[.CRYPTO.''ARCHD']") .EQS. "" THEN -
CREATE/DIRECTORY SYS$DISK:[.CRYPTO._'ARCH'] CREATE/DIRECTORY SYS$DISK:[.CRYPTO.'ARCHD']
$! $!
$! Different tar/UnZip versions/option may have named the file differently $! Different tar/UnZip versions/option may have named the file differently
$ IF F$SEARCH("[.crypto]opensslconf.h_in") .NES. "" $ IF F$SEARCH("[.crypto]opensslconf.h_in") .NES. ""
@ -209,7 +221,7 @@ $!
$! Create The [.CRYPTO._xxx]OPENSSLCONF.H File. $! Create The [.CRYPTO._xxx]OPENSSLCONF.H File.
$! Make sure it has the right format. $! Make sure it has the right format.
$! $!
$ OSCH_NAME = "SYS$DISK:[.CRYPTO._''ARCH']OPENSSLCONF.H" $ OSCH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']OPENSSLCONF.H"
$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME' $ CREATE /FDL=SYS$INPUT: 'OSCH_NAME'
RECORD RECORD
FORMAT stream_lf FORMAT stream_lf
@ -228,7 +240,7 @@ $ WRITE H_FILE "# define OPENSSL_SYS_VMS"
$ WRITE H_FILE "#endif" $ WRITE H_FILE "#endif"
$ $
$! One of the best way to figure out what the list should be is to do $! One of the best way to figure out what the list should be is to do
$! the followin on a Unix system: $! the following on a Unix system:
$! grep OPENSSL_NO_ crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq $! grep OPENSSL_NO_ crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq
$! For that reason, the list will also always end up in alphabetical order $! For that reason, the list will also always end up in alphabetical order
$ CONFIG_LOGICALS := AES,- $ CONFIG_LOGICALS := AES,-
@ -326,7 +338,7 @@ $
$! Architecture specific rule addtions $! Architecture specific rule addtions
$ IF ARCH .EQS. "VAX" $ IF ARCH .EQS. "VAX"
$ THEN $ THEN
$ ! Disable algorithms that require 64 bit integers in C $ ! Disable algorithms that require 64-bit integers in C
$ CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + - $ CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + -
";/GOST" + - ";/GOST" + -
";/WHIRLPOOL" ";/WHIRLPOOL"
@ -355,7 +367,8 @@ $
$! Apply cascading disable rules $! Apply cascading disable rules
$ CONFIG_DISABLE_I = 0 $ CONFIG_DISABLE_I = 0
$ CONFIG_DISABLE_LOOP0: $ CONFIG_DISABLE_LOOP0:
$ CONFIG_DISABLE_E = F$EDIT(F$ELEMENT(CONFIG_DISABLE_I,";",CONFIG_DISABLE_RULES),"TRIM") $ CONFIG_DISABLE_E = F$EDIT(F$ELEMENT(CONFIG_DISABLE_I,";", -
CONFIG_DISABLE_RULES),"TRIM")
$ CONFIG_DISABLE_I = CONFIG_DISABLE_I + 1 $ CONFIG_DISABLE_I = CONFIG_DISABLE_I + 1
$ IF CONFIG_DISABLE_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP0 $ IF CONFIG_DISABLE_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP0
$ IF CONFIG_DISABLE_E .EQS. ";" THEN GOTO CONFIG_DISABLE_LOOP0_END $ IF CONFIG_DISABLE_E .EQS. ";" THEN GOTO CONFIG_DISABLE_LOOP0_END
@ -365,7 +378,8 @@ $ CONFIG_DISABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_DISABLE_E),"TRIM")
$ TO_DISABLE := YES $ TO_DISABLE := YES
$ CONFIG_ALGO_I = 0 $ CONFIG_ALGO_I = 0
$ CONFIG_DISABLE_LOOP1: $ CONFIG_DISABLE_LOOP1:
$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",",CONFIG_DISABLE_ALGOS),"TRIM") $ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
CONFIG_DISABLE_ALGOS),"TRIM")
$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1 $ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP1 $ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP1
$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP1_END $ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP1_END
@ -382,7 +396,8 @@ $ IF TO_DISABLE
$ THEN $ THEN
$ CONFIG_DEPENDENT_I = 0 $ CONFIG_DEPENDENT_I = 0
$ CONFIG_DISABLE_LOOP2: $ CONFIG_DISABLE_LOOP2:
$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",",CONFIG_DISABLE_DEPENDENTS),"TRIM") $ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
CONFIG_DISABLE_DEPENDENTS),"TRIM")
$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1 $ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP2 $ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP2
$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP2_END $ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP2_END
@ -390,7 +405,8 @@ $ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := YES
$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO $ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO
$ ! Better not to assume defaults at this point... $ ! Better not to assume defaults at this point...
$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES $ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
$ WRITE SYS$ERROR "''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'" $ WRITE SYS$ERROR -
"''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'"
$ GOTO CONFIG_DISABLE_LOOP2 $ GOTO CONFIG_DISABLE_LOOP2
$ CONFIG_DISABLE_LOOP2_END: $ CONFIG_DISABLE_LOOP2_END:
$ ENDIF $ ENDIF
@ -400,7 +416,8 @@ $
$! Apply cascading enable rules $! Apply cascading enable rules
$ CONFIG_ENABLE_I = 0 $ CONFIG_ENABLE_I = 0
$ CONFIG_ENABLE_LOOP0: $ CONFIG_ENABLE_LOOP0:
$ CONFIG_ENABLE_E = F$EDIT(F$ELEMENT(CONFIG_ENABLE_I,";",CONFIG_ENABLE_RULES),"TRIM") $ CONFIG_ENABLE_E = F$EDIT(F$ELEMENT(CONFIG_ENABLE_I,";", -
CONFIG_ENABLE_RULES),"TRIM")
$ CONFIG_ENABLE_I = CONFIG_ENABLE_I + 1 $ CONFIG_ENABLE_I = CONFIG_ENABLE_I + 1
$ IF CONFIG_ENABLE_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP0 $ IF CONFIG_ENABLE_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP0
$ IF CONFIG_ENABLE_E .EQS. ";" THEN GOTO CONFIG_ENABLE_LOOP0_END $ IF CONFIG_ENABLE_E .EQS. ";" THEN GOTO CONFIG_ENABLE_LOOP0_END
@ -410,7 +427,8 @@ $ CONFIG_ENABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_ENABLE_E),"TRIM")
$ TO_ENABLE := YES $ TO_ENABLE := YES
$ CONFIG_ALGO_I = 0 $ CONFIG_ALGO_I = 0
$ CONFIG_ENABLE_LOOP1: $ CONFIG_ENABLE_LOOP1:
$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",",CONFIG_ENABLE_ALGOS),"TRIM") $ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
CONFIG_ENABLE_ALGOS),"TRIM")
$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1 $ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP1 $ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP1
$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP1_END $ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP1_END
@ -427,7 +445,8 @@ $ IF TO_ENABLE
$ THEN $ THEN
$ CONFIG_DEPENDENT_I = 0 $ CONFIG_DEPENDENT_I = 0
$ CONFIG_ENABLE_LOOP2: $ CONFIG_ENABLE_LOOP2:
$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",",CONFIG_ENABLE_DEPENDENTS),"TRIM") $ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
CONFIG_ENABLE_DEPENDENTS),"TRIM")
$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1 $ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP2 $ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP2
$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP2_END $ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP2_END
@ -435,7 +454,8 @@ $ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := NO
$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES $ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES
$ ! Better not to assume defaults at this point... $ ! Better not to assume defaults at this point...
$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES $ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
$ WRITE SYS$ERROR "''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'" $ WRITE SYS$ERROR -
"''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'"
$ GOTO CONFIG_ENABLE_LOOP2 $ GOTO CONFIG_ENABLE_LOOP2
$ CONFIG_ENABLE_LOOP2_END: $ CONFIG_ENABLE_LOOP2_END:
$ ENDIF $ ENDIF
@ -465,6 +485,17 @@ $ ENDIF
$ GOTO CONFIG_LOG_LOOP2 $ GOTO CONFIG_LOG_LOOP2
$ CONFIG_LOG_LOOP2_END: $ CONFIG_LOG_LOOP2_END:
$! $!
$ WRITE H_FILE ""
$ WRITE H_FILE "/* 2011-02-23 SMS."
$ WRITE H_FILE " * On VMS (V8.3), setvbuf() doesn't support a 64-bit"
$ WRITE H_FILE " * ""in"" pointer, and the help says:"
$ WRITE H_FILE " * Please note that the previously documented"
$ WRITE H_FILE " * value _IONBF is not supported."
$ WRITE H_FILE " * So, skip it on VMS."
$ WRITE H_FILE " */"
$ WRITE H_FILE "#define OPENSSL_NO_SETVBUF_IONBF"
$ WRITE H_FILE ""
$!
$! Add in the common "crypto/opensslconf.h.in". $! Add in the common "crypto/opensslconf.h.in".
$! $!
$ TYPE 'OPENSSLCONF_H_IN' /OUTPUT=H_FILE: $ TYPE 'OPENSSLCONF_H_IN' /OUTPUT=H_FILE:
@ -557,7 +588,7 @@ $ CLOSE H_FILE
$! $!
$! Purge The [.CRYPTO._xxx]OPENSSLCONF.H file $! Purge The [.CRYPTO._xxx]OPENSSLCONF.H file
$! $!
$ PURGE SYS$DISK:[.CRYPTO._'ARCH']OPENSSLCONF.H $ PURGE SYS$DISK:[.CRYPTO.'ARCHD']OPENSSLCONF.H
$! $!
$! That's All, Time To RETURN. $! That's All, Time To RETURN.
$! $!
@ -569,11 +600,11 @@ $ BUILDINF:
$! $!
$! Tell The User We Are Creating The [.CRYPTO._xxx]BUILDINF.H File. $! Tell The User We Are Creating The [.CRYPTO._xxx]BUILDINF.H File.
$! $!
$ WRITE SYS$OUTPUT "Creating [.CRYPTO._''ARCH']BUILDINF.H Include File." $ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']BUILDINF.H Include File."
$! $!
$! Create The [.CRYPTO._xxx]BUILDINF.H File. $! Create The [.CRYPTO._xxx]BUILDINF.H File.
$! $!
$ BIH_NAME = "SYS$DISK:[.CRYPTO._''ARCH']BUILDINF.H" $ BIH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']BUILDINF.H"
$ CREATE /FDL=SYS$INPUT: 'BIH_NAME' $ CREATE /FDL=SYS$INPUT: 'BIH_NAME'
RECORD RECORD
FORMAT stream_lf FORMAT stream_lf
@ -586,8 +617,19 @@ $ TIME = F$TIME()
$! $!
$! Write The [.CRYPTO._xxx]BUILDINF.H File. $! Write The [.CRYPTO._xxx]BUILDINF.H File.
$! $!
$ WRITE H_FILE "#define CFLAGS ""/POINTER_SIZE=''POINTER_SIZE'""" $ CFLAGS = ""
$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCH' ''VMS_VERSION'""" $ if (POINTER_SIZE .nes. "")
$ then
$ CFLAGS = CFLAGS+ "/POINTER_SIZE=''POINTER_SIZE'"
$ endif
$ if (ZLIB .nes. "")
$ then
$ if (CFLAGS .nes. "") then CFLAGS = CFLAGS+ " "
$ CFLAGS = CFLAGS+ "/DEFINE=ZLIB"
$ endif
$!
$ WRITE H_FILE "#define CFLAGS ""''CFLAGS'"""
$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCHD' ''VMS_VERSION'"""
$ WRITE H_FILE "#define DATE ""''TIME'"" " $ WRITE H_FILE "#define DATE ""''TIME'"" "
$! $!
$! Close The [.CRYPTO._xxx]BUILDINF.H File. $! Close The [.CRYPTO._xxx]BUILDINF.H File.
@ -596,7 +638,7 @@ $ CLOSE H_FILE
$! $!
$! Purge The [.CRYPTO._xxx]BUILDINF.H File. $! Purge The [.CRYPTO._xxx]BUILDINF.H File.
$! $!
$ PURGE SYS$DISK:[.CRYPTO._'ARCH']BUILDINF.H $ PURGE SYS$DISK:[.CRYPTO.'ARCHD']BUILDINF.H
$! $!
$! Delete [.CRYPTO]BUILDINF.H File, as there might be some residue from Unix. $! Delete [.CRYPTO]BUILDINF.H File, as there might be some residue from Unix.
$! $!
@ -611,44 +653,58 @@ $! Copy a lot of files around.
$! $!
$ SOFTLINKS: $ SOFTLINKS:
$! $!
$! Tell The User We Are Partly Rebuilding The [.APPS] Directory. $!!!! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
$!!!!
$!!! WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C' File."
$!!!!
$!!! DELETE SYS$DISK:[.APPS]MD4.C;*
$!!!!
$!!!! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
$!!!!
$!!! COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
$! $!
$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C' File." $! Ensure that the [.include.openssl] directory contains a full set of
$! real header files. The distribution kit may have left real or fake
$! symlinks there. Rather than think about what's there, simply delete
$! the destination files (fake or real symlinks) before copying the real
$! header files in. (Copying a real header file onto a real symlink
$! merely duplicates the real header file at its source.)
$! $!
$ DELETE SYS$DISK:[.APPS]MD4.C;* $! Tell The User We Are Rebuilding The [.include.openssl] Directory.
$! $!
$! Copy MD4.C from [.CRYPTO.MD4] into [.APPS] $ WRITE SYS$OUTPUT "Rebuilding The '[.include.openssl]' Directory."
$! $!
$ COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS] $! First, make sure the directory exists. If it did exist, delete all
$! the existing header files (or fake or real symlinks).
$! $!
$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory. $ if f$parse( "sys$disk:[.include.openssl]") .eqs. ""
$! $ then
$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory." $ create /directory sys$disk:[.include.openssl]
$! $ else
$! First, make sure the directory exists $ delete sys$disk:[.include.openssl]*.h;*
$! $ endif
$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
$! $!
$! Copy All The ".H" Files From The Main Directory. $! Copy All The ".H" Files From The Main Directory.
$! $!
$ EXHEADER := e_os2.h $ EXHEADER := e_os2.h
$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] $ copy 'exheader' sys$disk:[.include.openssl]
$! $!
$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree. $! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
$! $!
$ SDIRS := ,- $ SDIRS := , -
_'ARCH',- 'ARCHD', -
OBJECTS,- OBJECTS, -
MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,WHRLPOOL,- MD2, MD4, MD5, SHA, MDC2, HMAC, RIPEMD, WHRLPOOL, -
DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,MODES,- DES, AES, RC2, RC4, RC5, IDEA, BF, CAST, CAMELLIA, SEED, MODES, -
BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,- BN, EC, RSA, DSA, ECDSA, DH, ECDH, DSO, ENGINE, -
BUFFER,BIO,STACK,LHASH,RAND,ERR,- BUFFER, BIO, STACK, LHASH, RAND, ERR, -
EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,- EVP, ASN1, PEM, X509, X509V3, CONF, TXT_DB, PKCS7, PKCS12, -
STORE,CMS,PQUEUE,TS,JPAKE COMP, OCSP, UI, KRB5, -
$ EXHEADER_ := crypto.h,opensslv.h,ebcdic.h,symhacks.h,ossl_typ.h STORE, CMS, PQUEUE, TS, JPAKE
$ EXHEADER__'ARCH' := opensslconf.h $!
$ EXHEADER_OBJECTS := objects.h,obj_mac.h $ EXHEADER_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
$ EXHEADER_'ARCHD' := opensslconf.h
$ EXHEADER_OBJECTS := objects.h, obj_mac.h
$ EXHEADER_MD2 := md2.h $ EXHEADER_MD2 := md2.h
$ EXHEADER_MD4 := md4.h $ EXHEADER_MD4 := md4.h
$ EXHEADER_MD5 := md5.h $ EXHEADER_MD5 := md5.h
@ -657,7 +713,7 @@ $ EXHEADER_MDC2 := mdc2.h
$ EXHEADER_HMAC := hmac.h $ EXHEADER_HMAC := hmac.h
$ EXHEADER_RIPEMD := ripemd.h $ EXHEADER_RIPEMD := ripemd.h
$ EXHEADER_WHRLPOOL := whrlpool.h $ EXHEADER_WHRLPOOL := whrlpool.h
$ EXHEADER_DES := des.h,des_old.h $ EXHEADER_DES := des.h, des_old.h
$ EXHEADER_AES := aes.h $ EXHEADER_AES := aes.h
$ EXHEADER_RC2 := rc2.h $ EXHEADER_RC2 := rc2.h
$ EXHEADER_RC4 := rc4.h $ EXHEADER_RC4 := rc4.h
@ -679,66 +735,63 @@ $ EXHEADER_DSO := dso.h
$ EXHEADER_ENGINE := engine.h $ EXHEADER_ENGINE := engine.h
$ EXHEADER_BUFFER := buffer.h $ EXHEADER_BUFFER := buffer.h
$ EXHEADER_BIO := bio.h $ EXHEADER_BIO := bio.h
$ EXHEADER_STACK := stack.h,safestack.h $ EXHEADER_STACK := stack.h, safestack.h
$ EXHEADER_LHASH := lhash.h $ EXHEADER_LHASH := lhash.h
$ EXHEADER_RAND := rand.h $ EXHEADER_RAND := rand.h
$ EXHEADER_ERR := err.h $ EXHEADER_ERR := err.h
$ EXHEADER_EVP := evp.h $ EXHEADER_EVP := evp.h
$ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h $ EXHEADER_ASN1 := asn1.h, asn1t.h, asn1_mac.h
$ EXHEADER_PEM := pem.h,pem2.h $ EXHEADER_PEM := pem.h, pem2.h
$ EXHEADER_X509 := x509.h,x509_vfy.h $ EXHEADER_X509 := x509.h, x509_vfy.h
$ EXHEADER_X509V3 := x509v3.h $ EXHEADER_X509V3 := x509v3.h
$ EXHEADER_CONF := conf.h,conf_api.h $ EXHEADER_CONF := conf.h, conf_api.h
$ EXHEADER_TXT_DB := txt_db.h $ EXHEADER_TXT_DB := txt_db.h
$ EXHEADER_PKCS7 := pkcs7.h $ EXHEADER_PKCS7 := pkcs7.h
$ EXHEADER_PKCS12 := pkcs12.h $ EXHEADER_PKCS12 := pkcs12.h
$ EXHEADER_COMP := comp.h $ EXHEADER_COMP := comp.h
$ EXHEADER_OCSP := ocsp.h $ EXHEADER_OCSP := ocsp.h
$ EXHEADER_UI := ui.h,ui_compat.h $ EXHEADER_UI := ui.h, ui_compat.h
$ EXHEADER_KRB5 := krb5_asn.h $ EXHEADER_KRB5 := krb5_asn.h
$!EXHEADER_STORE := store.h,str_compat.h $!!! EXHEADER_STORE := store.h, str_compat.h
$ EXHEADER_STORE := store.h $ EXHEADER_STORE := store.h
$ EXHEADER_CMS := cms.h $ EXHEADER_CMS := cms.h
$ EXHEADER_PQUEUE := pqueue.h $ EXHEADER_PQUEUE := pqueue.h
$ EXHEADER_TS := ts.h $ EXHEADER_TS := ts.h
$ EXHEADER_JPAKE := jpake.h $ EXHEADER_JPAKE := jpake.h
$ $!
$ I = 0 $ i = 0
$ LOOP_SDIRS: $ loop_sdirs:
$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM") $ sdir = f$edit( f$element( i, ",", sdirs), "trim")
$ I = I + 1 $ i = i + 1
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END $ if (sdir .eqs. ",") then goto loop_sdirs_end
$ tmp = EXHEADER_'D' $ hdr_list = exheader_'sdir'
$ IF D .EQS. "" $ if (sdir .nes. "") then sdir = "."+ sdir
$ THEN $ copy [.crypto'sdir']'hdr_list' sys$disk:[.include.openssl]
$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG $ goto loop_sdirs
$ ELSE $ loop_sdirs_end:
$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
$ ENDIF
$ GOTO LOOP_SDIRS
$ LOOP_SDIRS_END:
$! $!
$! Copy All The ".H" Files From The [.SSL] Directory. $! Copy All The ".H" Files From The [.SSL] Directory.
$! $!
$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h $ EXHEADER := dtls1.h, kssl.h, ssl.h, ssl2.h, ssl23.h, ssl3.h, tls1.h
$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] $ copy sys$disk:[.ssl]'exheader' sys$disk:[.include.openssl]
$! $!
$! Purge all doubles $! Purge the [.include.openssl] header files.
$! $!
$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H $ purge sys$disk:[.include.openssl]*.h
$! $!
$! That's All, Time To RETURN. $! That's All, Time To RETURN.
$! $!
$ RETURN $ RETURN
$! $!
$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO''LIB32'.OLB" Library. $! Build The "[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB" Library.
$! $!
$ CRYPTO: $ CRYPTO:
$! $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO''LIB32'.OLB Library." $ WRITE SYS$OUTPUT -
"Building The [.",ARCHD,".EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB Library."
$! $!
$! Go To The [.CRYPTO] Directory. $! Go To The [.CRYPTO] Directory.
$! $!
@ -746,11 +799,13 @@ $ SET DEFAULT SYS$DISK:[.CRYPTO]
$! $!
$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
$! $!
$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" $ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
"''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications. $! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
$! $!
$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" $ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
"''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -760,14 +815,15 @@ $! Time To RETURN.
$! $!
$ RETURN $ RETURN
$! $!
$! Build The "[.xxx.EXE.SSL]LIBSSL''LIB32'.OLB" Library. $! Build The "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library.
$! $!
$ SSL: $ SSL:
$! $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL''LIB32'.OLB Library." $ WRITE SYS$OUTPUT -
"Building The [.",ARCHD,".EXE.SSL]SSL_LIBSSL''LIB32'.OLB Library."
$! $!
$! Go To The [.SSL] Directory. $! Go To The [.SSL] Directory.
$! $!
@ -775,7 +831,8 @@ $ SET DEFAULT SYS$DISK:[.SSL]
$! $!
$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library. $! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
$! $!
$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''POINTER_SIZE'" $ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
"''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -792,7 +849,8 @@ $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE" $ WRITE SYS$OUTPUT -
"Building DECNet Based SSL Engine, [.",ARCHD,".EXE.SSL]SSL_TASK.EXE"
$! $!
$! Go To The [.SSL] Directory. $! Go To The [.SSL] Directory.
$! $!
@ -800,7 +858,8 @@ $ SET DEFAULT SYS$DISK:[.SSL]
$! $!
$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE $! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
$! $!
$ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''POINTER_SIZE'" $ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
"''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -817,7 +876,7 @@ $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities." $ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCHD,".EXE.TEST] Test Utilities."
$! $!
$! Go To The [.TEST] Directory. $! Go To The [.TEST] Directory.
$! $!
@ -825,7 +884,8 @@ $ SET DEFAULT SYS$DISK:[.TEST]
$! $!
$! Build The Test Programs. $! Build The Test Programs.
$! $!
$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''POINTER_SIZE'" $ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
"''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -842,7 +902,7 @@ $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications." $ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.APPS] Applications."
$! $!
$! Go To The [.APPS] Directory. $! Go To The [.APPS] Directory.
$! $!
@ -850,7 +910,8 @@ $ SET DEFAULT SYS$DISK:[.APPS]
$! $!
$! Build The Application Programs. $! Build The Application Programs.
$! $!
$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "" "''POINTER_SIZE'" $ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
"" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -867,7 +928,7 @@ $!
$! Tell The User What We Are Doing. $! Tell The User What We Are Doing.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.ENGINES] Engines." $ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.ENGINES] Engines."
$! $!
$! Go To The [.ENGINES] Directory. $! Go To The [.ENGINES] Directory.
$! $!
@ -875,7 +936,8 @@ $ SET DEFAULT SYS$DISK:[.ENGINES]
$! $!
$! Build The Application Programs. $! Build The Application Programs.
$! $!
$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" $ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
"''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
$! $!
$! Go Back To The Main Directory. $! Go Back To The Main Directory.
$! $!
@ -954,8 +1016,8 @@ $ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
$ WRITE SYS$OUTPUT " VAX : VAX Architecture." $ WRITE SYS$OUTPUT " VAX : VAX Architecture."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
@ -971,55 +1033,42 @@ $! End The P1 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If P2 Is Blank. $! Check P2 (POINTER_SIZE).
$! $!
$ IF (P2.EQS."") $ IF (P2 .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is P2 Is Valid $ IF (P2 .EQS. "32")
$!
$ IF (P2.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "32" $ POINTER_SIZE = "32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (P2.EQS."64") $ IF (P2 .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "64"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "32"
$ ELSE
$ POINTER_SIZE = "64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", P2, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ GOTO TIDY
$! $!
$! End The Valid Arguement Check.
$!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The P2 Check. $! End The P2 (POINTER_SIZE) Check.
$! $!
$ ENDIF $ ENDIF
$! $!
@ -1049,7 +1098,7 @@ $! Else...
$! $!
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
@ -1128,7 +1177,7 @@ $! Else...
$! $!
$ ELSE $ ELSE
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK") $ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
$ THEN $ THEN
@ -1227,7 +1276,8 @@ $! End The P4 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Time to check the contents of P5, and to make sure we get the correct library. $! Time to check the contents of P5, and to make sure we get the correct
$! library.
$! $!
$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" - $ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" -
.OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE" .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE"
@ -1240,7 +1290,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Tell the user $! Tell the user
$! $!
@ -1274,7 +1324,7 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$! $!
$! Tell the user $! Tell the user
$! $!
@ -1291,7 +1341,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP (post UCX). $! Set the library to use TCPIP (post UCX).
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" $ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Tell the user $! Tell the user
$! $!
@ -1401,11 +1451,69 @@ $! End The P6 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$!
$! Check To See If We Have A ZLIB Option.
$!
$ ZLIB = P7
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ GOTO TIDY
$ endif
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The ZLIB Check.
$!
$ ENDIF
$!
$! Time To RETURN... $! Time To RETURN...
$! $!
$ RETURN $ RETURN
$! $!
$ TIDY: $ TIDY:
$!
$! Close any open files.
$!
$ if (f$trnlnm( "h_file", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
close h_file
$!
$! Restore the original default device:[directory].
$!
$ SET DEFAULT 'DEF_ORIG' $ SET DEFAULT 'DEF_ORIG'
$!
$ EXIT $ EXIT
$! $!

136
ssl/install-ssl.com Executable file
View File

@ -0,0 +1,136 @@
$! INSTALL-SSL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! P1 root of the directory tree
$! P2 "64" for 64-bit pointers.
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ on error then goto tidy
$ on control_c then goto tidy
$!
$ if p1 .eqs. ""
$ then
$ write sys$output "First argument missing."
$ write sys$output -
"It should be the directory where you want things installed."
$ 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
$!
$ archd = arch
$ lib32 = "32"
$ shr = "_SHR32"
$!
$ if (p2 .nes. "")
$ then
$ if (p2 .eqs. "64")
$ then
$ archd = arch+ "_64"
$ lib32 = ""
$ shr = "_SHR"
$ else
$ if (p2 .nes. "32")
$ then
$ write sys$output "Second argument invalid."
$ write sys$output "It should be "32", "64", or nothing."
$ exit
$ endif
$ endif
$ endif
$!
$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
$ root_dev = f$parse(root,,,"device","syntax_only")
$ root_dir = f$parse(root,,,"directory","syntax_only") - -
"[000000." - "][" - "[" - "]"
$ root = root_dev + "[" + root_dir
$!
$ define /nolog wrk_sslroot 'root'.] /trans=conc
$ define /nolog wrk_sslinclude wrk_sslroot:[include]
$ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe]
$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
$!
$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
create /directory /log wrk_sslroot:[000000]
$ if f$parse("wrk_sslinclude:") .eqs. "" then -
create /directory /log wrk_sslinclude:
$ if f$parse("wrk_sslxexe:") .eqs. "" then -
create /directory /log wrk_sslxexe:
$ if f$parse("wrk_sslxlib:") .eqs. "" then -
create /directory /log wrk_sslxlib:
$!
$ exheader := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, kssl.h
$ e_exe := ssl_task
$ libs := ssl_libssl
$!
$ xexe_dir := [-.'archd'.exe.ssl]
$!
$ copy /protection = w:re 'exheader' wrk_sslinclude: /log
$!
$ i = 0
$ loop_exe:
$ e = f$edit( f$element( i, ",", e_exe), "trim")
$ i = i + 1
$ if e .eqs. "," then goto loop_exe_end
$ set noon
$ file = xexe_dir+ e+ ".exe"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxexe: /log
$ endif
$ set on
$ goto loop_exe
$ loop_exe_end:
$!
$ i = 0
$ loop_lib:
$ e = f$edit(f$element(i, ",", libs),"trim")
$ i = i + 1
$ if e .eqs. "," then goto loop_lib_end
$ set noon
$! Object library.
$ file = xexe_dir+ e+ lib32+ ".olb"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxlib: /log
$ endif
$! Shareable image.
$ file = xexe_dir+ e+ shr+ ".exe"
$ if f$search( file) .nes. ""
$ then
$ copy /protection = w:re 'file' wrk_sslxlib: /log
$ endif
$ set on
$ goto loop_lib
$ loop_lib_end:
$!
$ tidy:
$!
$ call deass wrk_sslroot
$ call deass wrk_sslinclude
$ call deass wrk_sslxexe
$ call deass wrk_sslxlib
$!
$ exit
$!
$ deass: subroutine
$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
$ then
$ deassign /process 'p1'
$ endif
$ endsubroutine
$!

View File

@ -1,90 +0,0 @@
$! INSTALL.COM -- Installs the files in a given directory tree
$!
$! Author: Richard Levitte <richard@levitte.org>
$! Time of creation: 22-MAY-1998 10:13
$!
$! P1 root of the directory tree
$!
$ IF P1 .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "First argument missing."
$ WRITE SYS$OUTPUT -
"It should be the directory where you want things installed."
$ 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
$
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
- "[000000." - "][" - "[" - "]"
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
$
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
$ DEFINE/NOLOG WRK_SSLXLIB WRK_SSLROOT:['ARCH'_LIB]
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
$ DEFINE/NOLOG WRK_SSLXEXE WRK_SSLROOT:['ARCH'_EXE]
$
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLROOT:[000000]
$ IF F$PARSE("WRK_SSLXLIB:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLXLIB:
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLINCLUDE:
$ IF F$PARSE("WRK_SSLXEXE:") .EQS. "" THEN -
CREATE/DIR/LOG WRK_SSLXEXE:
$
$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h
$ E_EXE := ssl_task
$ LIBS := LIBSSL,LIBSSL32
$
$ XEXE_DIR := [-.'ARCH'.EXE.SSL]
$
$ COPY 'EXHEADER' WRK_SSLINCLUDE:/LOG
$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER'
$
$ I = 0
$ LOOP_EXE:
$ E = F$EDIT(F$ELEMENT(I, ",", E_EXE),"TRIM")
$ I = I + 1
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
$ SET NOON
$ IF F$SEARCH(XEXE_DIR+E+".EXE") .NES. ""
$ THEN
$ COPY 'XEXE_DIR''E'.EXE WRK_SSLXEXE:'E'.EXE/log
$ SET FILE/PROT=W:RE WRK_SSLXEXE:'E'.EXE
$ ENDIF
$ SET ON
$ GOTO LOOP_EXE
$ LOOP_EXE_END:
$
$ I = 0
$ LOOP_LIB:
$ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM")
$ I = I + 1
$ IF E .EQS. "," THEN GOTO LOOP_LIB_END
$ SET NOON
$! Object library.
$ IF F$SEARCH(XEXE_DIR+E+".OLB") .NES. ""
$ THEN
$ COPY 'XEXE_DIR''E'.OLB WRK_SSLXLIB:'E'.OLB/log
$ SET FILE/PROT=W:RE WRK_SSLXLIB:'E'.OLB
$ ENDIF
$! Shareable image.
$ IF F$SEARCH(XEXE_DIR+E+".EXE") .NES. ""
$ THEN
$ COPY 'XEXE_DIR''E'.EXE WRK_SSLXLIB:'E'.EXE/log
$ SET FILE/PROT=W:RE WRK_SSLXLIB:'E'.EXE
$ ENDIF
$ SET ON
$ GOTO LOOP_LIB
$ LOOP_LIB_END:
$
$ EXIT

View File

@ -42,18 +42,29 @@ $! SOCKETSHR for SOCKETSHR+NETLIB
$! $!
$! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) $! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P6. $! P6, if defined, specifies the C pointer size. Ignored on VAX.
$! For 32 bit architectures (VAX), P6 is ignored. $! Supported values are:
$! Currently supported values are:
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! "" Compile with default (/NOPOINTER_SIZE)
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$! $!
$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$! $!
$! Define A TCP/IP Library That We Will Need To Link To. $! Define A TCP/IP Library That We Will Need To Link To.
$! (That Is, If We Need To Link To One.) $! (That Is, If We Need To Link To One.)
$! $!
$ TCPIP_LIB = "" $ TCPIP_LIB = ""
$ ZLIB_LIB = ""
$! $!
$! Check What Architecture We Are Using. $! Check What Architecture We Are Using.
$! $!
@ -77,25 +88,41 @@ $! End The Architecture Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Define The OBJ Directory. $ ARCHD = ARCH
$! $ LIB32 = "32"
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.SSL] $ OPT_FILE = ""
$! $ POINTER_SIZE = ""
$! Define The EXE Directory.
$!
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.SSL]
$! $!
$! Check To Make Sure We Have Valid Command Line Parameters. $! Check To Make Sure We Have Valid Command Line Parameters.
$! $!
$ GOSUB CHECK_OPTIONS $ GOSUB CHECK_OPTIONS
$! $!
$! Define The OBJ and EXE Directories.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.SSL]
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.SSL]
$!
$! Specify the destination directory in any /MAP option.
$!
$ if (LINKMAP .eqs. "MAP")
$ then
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
$ endif
$!
$! Add the location prefix to the linker options file name.
$!
$ if (OPT_FILE .nes. "")
$ then
$ OPT_FILE = EXE_DIR+ OPT_FILE
$ endif
$!
$! Initialise logical names and such $! Initialise logical names and such
$! $!
$ GOSUB INITIALISE $ GOSUB INITIALISE
$! $!
$! Tell The User What Kind of Machine We Run On. $! Tell The User What Kind of Machine We Run On.
$! $!
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
$! $!
$! Check To See If The Architecture Specific OBJ Directory Exists. $! Check To See If The Architecture Specific OBJ Directory Exists.
$! $!
@ -125,11 +152,11 @@ $ ENDIF
$! $!
$! Define The Library Name. $! Define The Library Name.
$! $!
$ SSL_LIB := 'EXE_DIR'LIBSSL'LIB32'.OLB $ SSL_LIB := 'EXE_DIR'SSL_LIBSSL'LIB32'.OLB
$! $!
$! Define The CRYPTO-LIB We Are To Use. $! Define The CRYPTO-LIB We Are To Use.
$! $!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO'LIB32'.OLB $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
$! $!
$! Check To See What We Are To Do. $! Check To See What We Are To Do.
$! $!
@ -163,7 +190,7 @@ $! Compile The Library.
$! $!
$ LIBRARY: $ LIBRARY:
$! $!
$! Check To See If We Already Have A "[.xxx.EXE.SSL]LIBSSL''LIB32'.OLB" Library... $! Check To See If We Already Have A "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library...
$! $!
$ IF (F$SEARCH(SSL_LIB).EQS."") $ IF (F$SEARCH(SSL_LIB).EQS."")
$ THEN $ THEN
@ -306,38 +333,30 @@ $! Tell The User We Are Creating The SSL_TASK.
$! $!
$ WRITE SYS$OUTPUT "Creating SSL_TASK OSU HTTP SSL Engine." $ WRITE SYS$OUTPUT "Creating SSL_TASK OSU HTTP SSL Engine."
$! $!
$! Tell The User What File We Are Compiling.
$!
$ FILE_NAME = "ssl_task"
$ WRITE SYS$OUTPUT " ",FILE_NAME,".c"
$!
$! Compile The File. $! Compile The File.
$! $!
$ ON ERROR THEN GOTO SSL_TASK_END $ ON ERROR THEN GOTO SSL_TASK_END
$ CC5/OBJECT='OBJ_DIR'SSL_TASK.OBJ SYS$DISK:[]SSL_TASK.C $!
$ write sys$output " \Using special rule (5)"
$ x = " "+ CC5
$ write /symbol sys$output x
$!
$ CC5/OBJECT='OBJ_DIR''FILE_NAME'.OBJ SYS$DISK:[]'FILE_NAME'.C
$! $!
$! Link The Program. $! Link The Program.
$! Check To See If We Are To Link With A Specific TCP/IP Library.
$! $!
$ IF (TCPIP_LIB.NES."") $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXE='EXE_DIR'SSL_TASK.EXE -
$ THEN 'OBJ_DIR'SSL_TASK.OBJ, -
$! 'SSL_LIB'/LIBRARY, -
$! Link With TCP/IP Library. 'CRYPTO_LIB'/LIBRARY -
$! 'TCPIP_LIB' -
$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR'SSL_TASK.EXE - 'ZLIB_LIB' -
'OBJ_DIR'SSL_TASK.OBJ, - ,'OPT_FILE' /OPTIONS
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'TCPIP_LIB','OPT_FILE'/OPTION
$!
$! Else...
$!
$ ELSE
$!
$! Don't Link With TCP/IP Library.
$!
$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR'SSL_TASK.EXE -
'OBJ_DIR'SSL_TASK.OBJ,-
'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
'OPT_FILE'/OPTION
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$! $!
$! Time To Return. $! Time To Return.
$! $!
@ -363,7 +382,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable VAX C Runtime Library. ! The Sharable VAX C Runtime Library.
! !
SYS$SHARE:VAXCRTL.EXE/SHARE SYS$SHARE:VAXCRTL.EXE/SHARE
@ -392,7 +411,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
GNU_CC:[000000]GCCLIB/LIBRARY GNU_CC:[000000]GCCLIB/LIBRARY
@ -427,7 +446,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable DEC C Runtime Library. ! The Sharable DEC C Runtime Library.
! !
SYS$SHARE:DECC$SHR.EXE/SHARE SYS$SHARE:DECC$SHR.EXE/SHARE
@ -442,7 +461,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File For non-VAX To Link Agianst ! Default System Options File For non-VAX To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
@ -555,8 +574,8 @@ $ WRITE SYS$OUTPUT " SSL_TASK : To Compile Just The [.xxx.EXE.SSL]SSL_TA
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
$ WRITE SYS$OUTPUT " VAX : VAX Architecture." $ WRITE SYS$OUTPUT " VAX : VAX Architecture."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
@ -577,14 +596,15 @@ $!
$ IF (P2.EQS."NODEBUG") $ IF (P2.EQS."NODEBUG")
$ THEN $ THEN
$! $!
$! P2 Is NODEBUG, So Compile Without Debugger Information. $! P2 Is NODEBUG, So Compile Without Debugger Information.
$! $!
$ DEBUGGER = "NODEBUG" $ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK" $ LINKMAP = "NOMAP"
$ GCC_OPTIMIZE = "OPTIMIZE" $ TRACEBACK = "NOTRACEBACK"
$ CC_OPTIMIZE = "OPTIMIZE" $ GCC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." $ CC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
$! $!
$! Else... $! Else...
$! $!
@ -598,6 +618,7 @@ $!
$! Compile With Debugger Information. $! Compile With Debugger Information.
$! $!
$ DEBUGGER = "DEBUG" $ DEBUGGER = "DEBUG"
$ LINKMAP = "MAP"
$ TRACEBACK = "TRACEBACK" $ TRACEBACK = "TRACEBACK"
$ GCC_OPTIMIZE = "NOOPTIMIZE" $ GCC_OPTIMIZE = "NOOPTIMIZE"
$ CC_OPTIMIZE = "NOOPTIMIZE" $ CC_OPTIMIZE = "NOOPTIMIZE"
@ -605,7 +626,7 @@ $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
@ -660,58 +681,49 @@ $! End The P5 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If P6 Is Blank. $! Check P6 (POINTER_SIZE).
$! $!
$ IF (P6.EQS."") $ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is P6 Is Valid $ IF (P6 .EQS. "32")
$!
$ IF (P6.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32" $ POINTER_SIZE = "/POINTER_SIZE=32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (P6.EQS."64") $ IF (P6 .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32"
$ ELSE
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P6," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", P6, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ EXIT
$!
$! End The Valid Arguement Check.
$! $!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The P6 Check. $! End The P6 (POINTER_SIZE) Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Set basic C compiler /INCLUDE directories.
$!
$ CC_INCLUDES = "SYS$DISK:[-.CRYPTO],SYS$DISK:[-]"
$!
$! Check To See If P3 Is Blank. $! Check To See If P3 Is Blank.
$! $!
$ IF (P3.EQS."") $ IF (P3.EQS."")
@ -816,7 +828,60 @@ $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If We Have A ZLIB Option.
$!
$ ZLIB = P7
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ EXIT
$ endif
$!
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
$ ZLIB_LIB = ", ''file2' /library"
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The ZLIB Check.
$!
$ ENDIF
$!
$! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
$ THEN $ THEN
@ -839,13 +904,13 @@ $!
$ CC = "CC" $ CC = "CC"
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
THEN CC = "CC/DECC" THEN CC = "CC/DECC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89''POINTER_SIZE'" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=RELAXED"+ -
"/NOLIST/PREFIX=ALL" + - "''POINTER_SIZE'/NOLIST/PREFIX=ALL" + -
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[-])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" $ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
$! $!
$! End DECC Check. $! End DECC Check.
$! $!
@ -874,7 +939,7 @@ $ EXIT
$ ENDIF $ ENDIF
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[-])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$ CCDEFS = CCDEFS + ",""VAXC""" $ CCDEFS = CCDEFS + ",""VAXC"""
$! $!
$! Define <sys> As SYS$COMMON:[SYSLIB] $! Define <sys> As SYS$COMMON:[SYSLIB]
@ -883,7 +948,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
$! $!
$! End VAXC Check $! End VAXC Check
$! $!
@ -906,11 +971,11 @@ $! Use GNU C...
$! $!
$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC $ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - $ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[-])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
$! $!
$! End The GNU C Check. $! End The GNU C Check.
$! $!
@ -984,7 +1049,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Done with SOCKETSHR $! Done with SOCKETSHR
$! $!
@ -1010,13 +1075,13 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
$ THEN $ THEN
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
$ ELSE $ ELSE
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
$ ENDIF $ ENDIF
$! $!
$! Done with UCX $! Done with UCX
@ -1030,7 +1095,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP (post UCX). $! Set the library to use TCPIP (post UCX).
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Done with TCPIP $! Done with TCPIP
$! $!
@ -1051,7 +1116,7 @@ $ ENDIF
$! $!
$! Print info $! Print info
$! $!
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
$! $!
$! Else The User Entered An Invalid Argument. $! Else The User Entered An Invalid Argument.
$! $!

View File

@ -4,6 +4,8 @@ $!
$! Exit status = 1 (success) if all tests passed, $! Exit status = 1 (success) if all tests passed,
$! 0 (warning) if any test failed. $! 0 (warning) if any test failed.
$! $!
$! 2011-02-20 SMS. Added code to skip "#" comments in the input file.
$!
$! 2010-04-05 SMS. New. Based (loosely) on perl code in bntest-vms.sh. $! 2010-04-05 SMS. New. Based (loosely) on perl code in bntest-vms.sh.
$! $!
$! Expect data like: $! Expect data like:
@ -35,6 +37,11 @@ $!
$ read_loop: $ read_loop:
$ read /end = read_loop_end /error = tidy result_file line $ read /end = read_loop_end /error = tidy result_file line
$ t1 = f$element( 0, " ", line) $ t1 = f$element( 0, " ", line)
$!
$! Skip "#" comment lines.
$ if (f$extract( 0, 1, f$edit( line, "TRIM")) .eqs. "#") then -
goto read_loop
$!
$ if (t1 .eqs. "test") $ if (t1 .eqs. "test")
$ then $ then
$ passed = passed+ 1 $ passed = passed+ 1

View File

@ -56,8 +56,8 @@
my $ossl_path; my $ossl_path;
my $redir = " 2> cms.err > cms.out"; my $redir = " 2> cms.err > cms.out";
# Make VMS work # Make VMS work
if ( $^O eq "VMS" && -f "$ENV{EXE_DIR}openssl.exe" ) { if ( $^O eq "VMS" && -f "OSSLX:openssl.exe" ) {
$ossl_path = "pipe mcr $ENV{EXE_DIR}openssl.exe"; $ossl_path = "pipe mcr OSSLX:openssl";
} }
# Make MSYS work # Make MSYS work
elsif ( $^O eq "MSWin32" && -f "../apps/openssl.exe" ) { elsif ( $^O eq "MSWin32" && -f "../apps/openssl.exe" ) {

View File

@ -36,54 +36,84 @@ $! SOCKETSHR for SOCKETSHR+NETLIB
$! $!
$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
$! $!
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P5.
$! For 32 bit architectures (VAX), P5 is ignored.
$! Currently supported values are:
$! $!
$! 32 To ge a library compiled with /POINTER_SIZE=32 $! P5, if defined, specifies the C pointer size. Ignored on VAX.
$! 64 To ge a library compiled with /POINTER_SIZE=64 $! Supported values are:
$! $!
$! "" Compile with default (/NOPOINTER_SIZE)
$! 32 Compile with /POINTER_SIZE=32 (SHORT)
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
$!
$! P6, if defined, specifies a directory where ZLIB files (zlib.h,
$! libz.olb) may be found. Optionally, a non-default object library
$! name may be included ("dev:[dir]libz_64.olb", for example).
$!
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$! $!
$! Define A TCP/IP Library That We Will Need To Link To. $! Define A TCP/IP Library That We Will Need To Link To.
$! (That is, If Wee Need To Link To One.) $! (That is, If We Need To Link To One.)
$! $!
$ TCPIP_LIB = "" $ TCPIP_LIB = ""
$ ZLIB_LIB = ""
$! $!
$! Check Which Architecture We Are Using. $! Check Which Architecture We Are Using.
$! $!
$ if (f$getsyi( "HW_MODEL") .lt. 1024) $ if (f$getsyi( "cpu") .lt. 128)
$ then $ then
$ arch = "VAX" $ ARCH = "VAX"
$ else $ else
$ arch = "" $ ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ arch = arch+ f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") $ if (ARCH .eqs. "") then ARCH = "UNK"
$ if (arch .eqs. "") then arch = "UNK"
$ endif $ endif
$! $!
$! Define The OBJ and EXE Directories (EXE before CHECK_OPTIONS). $ ARCHD = ARCH
$! $ LIB32 = "32"
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.TEST] $ OPT_FILE = ""
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.TEST] $ POINTER_SIZE = ""
$! $!
$! Check To Make Sure We Have Valid Command Line Parameters. $! Check To Make Sure We Have Valid Command Line Parameters.
$! $!
$ GOSUB CHECK_OPTIONS $ GOSUB CHECK_OPTIONS
$! $!
$! Define The OBJ and EXE Directories.
$!
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST]
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST]
$!
$! Specify the destination directory in any /MAP option.
$!
$ if (LINKMAP .eqs. "MAP")
$ then
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
$ endif
$!
$! Add the location prefix to the linker options file name.
$!
$ if (OPT_FILE .nes. "")
$ then
$ OPT_FILE = EXE_DIR+ OPT_FILE
$ endif
$!
$! Initialise logical names and such $! Initialise logical names and such
$! $!
$ GOSUB INITIALISE $ GOSUB INITIALISE
$! $!
$! Tell The User What Kind of Machine We Run On. $! Tell The User What Kind of Machine We Run On.
$! $!
$ WRITE SYS$OUTPUT "Compiling On ''ARCH'." $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
$! $!
$! Define The CRYPTO-LIB We Are To Use. $! Define The CRYPTO-LIB We Are To Use.
$! $!
$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO'LIB32'.OLB $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
$! $!
$! Define The SSL We Are To Use. $! Define The SSL We Are To Use.
$! $!
$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL'LIB32'.OLB $ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
$! $!
$! Create the OBJ and EXE Directories, if needed. $! Create the OBJ and EXE Directories, if needed.
$! $!
@ -231,33 +261,15 @@ $!
$! Link The Program, Check To See If We Need To Link With RSAREF Or Not. $! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
$! Check To See If We Are To Link With A Specific TCP/IP Library. $! Check To See If We Are To Link With A Specific TCP/IP Library.
$! $!
$ IF (TCPIP_LIB.NES."")
$ THEN
$!
$! Don't Link With The RSAREF Routines And TCP/IP Library. $! Don't Link With The RSAREF Routines And TCP/IP Library.
$! $!
$ LINK /'DEBUGGER' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' - $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' -
'OBJECT_FILE', - 'OBJECT_FILE', -
'SSL_LIB' /LIBRARY, - 'SSL_LIB' /LIBRARY, -
'CRYPTO_LIB' /LIBRARY, - 'CRYPTO_LIB' /LIBRARY -
'TCPIP_LIB', - 'TCPIP_LIB' -
'OPT_FILE' /OPTIONS 'ZLIB_LIB' -
$! ,'OPT_FILE' /OPTIONS
$! Else...
$!
$ ELSE
$!
$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
$!
$ LINK /'DEBUGGER' /'TRACEBACK' /EXECUTABLE = 'EXE_FILE' -
'OBJECT_FILE', -
'SSL_LIB' /LIBRARY, -
'CRYPTO_LIB' /LIBRARY, -
'OPT_FILE' /OPTIONS
$!
$! End The TCP/IP Library Check.
$!
$ ENDIF
$! $!
$! Go Back And Do It Again. $! Go Back And Do It Again.
$! $!
@ -321,7 +333,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
GNU_CC:[000000]GCCLIB.OLB /LIBRARY GNU_CC:[000000]GCCLIB.OLB /LIBRARY
@ -356,7 +368,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File To Link Agianst ! Default System Options File To Link Against
! The Sharable DEC C Runtime Library. ! The Sharable DEC C Runtime Library.
! !
SYS$SHARE:DECC$SHR.EXE /SHAREABLE SYS$SHARE:DECC$SHR.EXE /SHAREABLE
@ -371,7 +383,7 @@ $!
$ CREATE 'OPT_FILE' $ CREATE 'OPT_FILE'
$DECK $DECK
! !
! Default System Options File For non-VAX To Link Agianst ! Default System Options File For non-VAX To Link Against
! The Sharable C Runtime Library. ! The Sharable C Runtime Library.
! !
SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE
@ -450,19 +462,24 @@ $! Check The User's Options.
$! $!
$ CHECK_OPTIONS: $ CHECK_OPTIONS:
$! $!
$! Set basic C compiler /INCLUDE directories.
$!
$ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
$!
$! Check To See If P1 Is Blank. $! Check To See If P1 Is Blank.
$! $!
$ IF (P1.EQS."NODEBUG") $ IF (P1.EQS."NODEBUG")
$ THEN $ THEN
$! $!
$! P1 Is NODEBUG, So Compile Without Debugger Information. $! P1 Is NODEBUG, So Compile Without Debugger Information.
$! $!
$ DEBUGGER = "NODEBUG" $ DEBUGGER = "NODEBUG"
$ TRACEBACK = "NOTRACEBACK" $ LINKMAP = "NOMAP"
$ GCC_OPTIMIZE = "OPTIMIZE" $ TRACEBACK = "NOTRACEBACK"
$ CC_OPTIMIZE = "OPTIMIZE" $ GCC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." $ CC_OPTIMIZE = "OPTIMIZE"
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
$! $!
$! Else... $! Else...
$! $!
@ -476,6 +493,7 @@ $!
$! Compile With Debugger Information. $! Compile With Debugger Information.
$! $!
$ DEBUGGER = "DEBUG" $ DEBUGGER = "DEBUG"
$ LINKMAP = "MAP"
$ TRACEBACK = "TRACEBACK" $ TRACEBACK = "TRACEBACK"
$ GCC_OPTIMIZE = "NOOPTIMIZE" $ GCC_OPTIMIZE = "NOOPTIMIZE"
$ CC_OPTIMIZE = "NOOPTIMIZE" $ CC_OPTIMIZE = "NOOPTIMIZE"
@ -486,7 +504,7 @@ $! Else...
$! $!
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
@ -499,7 +517,7 @@ $! Time To EXIT.
$! $!
$ EXIT $ EXIT
$! $!
$! End The Valid Arguement Check. $! End The Valid Argument Check.
$! $!
$ ENDIF $ ENDIF
$! $!
@ -507,55 +525,42 @@ $! End The P1 Check.
$! $!
$ ENDIF $ ENDIF
$! $!
$! Check To See If P5 Is Blank. $! Check P5 (POINTER_SIZE).
$! $!
$ IF (P5.EQS."") $ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX")
$ THEN $ THEN
$ POINTER_SIZE = ""
$ ELSE
$! $!
$! Check is P5 Is Valid $ IF (P5 .EQS. "32")
$!
$ IF (P5.EQS."32")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32" $ POINTER_SIZE = "/POINTER_SIZE=32"
$ IF ARCH .EQS. "VAX"
$ THEN
$ LIB32 = ""
$ ELSE
$ LIB32 = "32"
$ ENDIF
$ ELSE $ ELSE
$ IF (P5.EQS."64") $ IF (P5 .EQS. "64")
$ THEN $ THEN
$ POINTER_SIZE = "/POINTER_SIZE=64=ARGV"
$ ARCHD = ARCH+ "_64"
$ LIB32 = "" $ LIB32 = ""
$ IF ARCH .EQS. "VAX"
$ THEN
$ POINTER_SIZE = "/POINTER_SIZE=32"
$ ELSE
$ POINTER_SIZE = "/POINTER_SIZE=64"
$ ENDIF
$ ELSE $ ELSE
$! $!
$! Tell The User Entered An Invalid Option.. $! Tell The User Entered An Invalid Option.
$! $!
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "The Option ", P5, -
" Is Invalid. The Valid Options Are:"
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size" $ WRITE SYS$OUTPUT " """" : Compile with default (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size" $ WRITE SYS$OUTPUT " 32 : Compile with 32-bit (short) pointers."
$ WRITE SYS$OUTPUT " 64 : Compile with 64-bit (long) pointers."
$ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT ""
$! $!
$! Time To EXIT. $! Time To EXIT.
$! $!
$ GOTO TIDY $ EXIT
$!
$! End The Valid Arguement Check.
$! $!
$ ENDIF $ ENDIF
$!
$ ENDIF $ ENDIF
$! $!
$! End The P5 Check. $! End The P5 (POINTER_SIZE) Check.
$! $!
$ ENDIF $ ENDIF
$! $!
@ -663,7 +668,60 @@ $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$! $!
$! Check To See If The User Entered A Valid Paramter. $! Check To See If We Have A ZLIB Option.
$!
$ ZLIB = P6
$ IF (ZLIB .NES. "")
$ THEN
$!
$! Check for expected ZLIB files.
$!
$ err = 0
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
$ if (f$search( file1) .eqs. "")
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
$ err = 1
$ endif
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
$!
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
$ if (f$search( file2) .eqs. "")
$ then
$ if (err .eq. 0)
$ then
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
$ endif
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
$ WRITE SYS$OUTPUT ""
$ err = err+ 2
$ endif
$ if (err .eq. 1)
$ then
$ WRITE SYS$OUTPUT ""
$ endif
$!
$ if (err .ne. 0)
$ then
$ GOTO EXIT
$ endif
$!
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
$ ZLIB_LIB = ", ''file2' /library"
$!
$! Print info
$!
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
$!
$! End The P8 Check.
$!
$ ENDIF
$!
$! Check To See If The User Entered A Valid Parameter.
$! $!
$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC") $ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
$ THEN $ THEN
@ -686,13 +744,13 @@ $!
$ CC = "CC" $ CC = "CC"
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
THEN CC = "CC /DECC" THEN CC = "CC /DECC"
$ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=ANSI89 ''POINTER_SIZE'" + - $ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
"/NOLIST /PREFIX=ALL" + - "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" $ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
$! $!
$! End DECC Check. $! End DECC Check.
$! $!
@ -721,7 +779,7 @@ $ EXIT
$ ENDIF $ ENDIF
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC" $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC"
$ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - $ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$ CCDEFS = CCDEFS + ",""VAXC""" $ CCDEFS = CCDEFS + ",""VAXC"""
$! $!
$! Define <sys> As SYS$COMMON:[SYSLIB] $! Define <sys> As SYS$COMMON:[SYSLIB]
@ -730,7 +788,7 @@ $ DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB]
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
$! $!
$! End VAXC Check $! End VAXC Check
$! $!
@ -752,11 +810,11 @@ $!
$! Use GNU C... $! Use GNU C...
$! $!
$ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - $ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
"/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
$! $!
$! Define The Linker Options File Name. $! Define The Linker Options File Name.
$! $!
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
$! $!
$! End The GNU C Check. $! End The GNU C Check.
$! $!
@ -788,7 +846,7 @@ $! Show user the result
$! $!
$ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC $ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC
$! $!
$! Else The User Entered An Invalid Arguement. $! Else The User Entered An Invalid Argument.
$! $!
$ ELSE $ ELSE
$! $!
@ -820,7 +878,7 @@ $ THEN
$! $!
$! Set the library to use SOCKETSHR $! Set the library to use SOCKETSHR
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
$! $!
$! Done with SOCKETSHR $! Done with SOCKETSHR
$! $!
@ -846,13 +904,13 @@ $ THEN
$! $!
$! Set the library to use UCX. $! Set the library to use UCX.
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
$ THEN $ THEN
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
$ ELSE $ ELSE
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
$ ENDIF $ ENDIF
$! $!
$! Done with UCX $! Done with UCX
@ -866,7 +924,7 @@ $ THEN
$! $!
$! Set the library to use TCPIP (post UCX). $! Set the library to use TCPIP (post UCX).
$! $!
$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
$! $!
$! Done with TCPIP $! Done with TCPIP
$! $!
@ -887,9 +945,9 @@ $ ENDIF
$! $!
$! Print info $! Print info
$! $!
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
$! $!
$! Else The User Entered An Invalid Arguement. $! Else The User Entered An Invalid Argument.
$! $!
$ ELSE $ ELSE
$! $!

View File

@ -1,14 +1,17 @@
$! TCRL.COM -- Tests crl keys $! TCRL.COM -- Tests crl keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl crl $ cmd = "mcr ''exe_dir'openssl crl"
$ $
$ t := testcrl.pem $ t = "testcrl.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing CRL conversions" $ write sys$output "testing CRL conversions"

View File

@ -1,11 +1,13 @@
$! TESTCA.COM $! TESTCA.COM
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$!
$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
$ $
$ openssl := mcr 'exe_dir'openssl $ openssl = "mcr ''exe_dir'openssl"
$ $
$ SSLEAY_CONFIG="-config ""CAss.cnf""" $ SSLEAY_CONFIG="-config ""CAss.cnf"""
$ $

View File

@ -1,13 +1,16 @@
$! TESTENC.COM -- Test encoding and decoding $! TESTENC.COM -- Test encoding and decoding
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$!
$ if (p1 .eqs. 64) then __arch = __arch+ "_64"
$ $
$ testsrc := makefile. $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ test := p.txt $ testsrc = "makefile."
$ cmd := mcr 'exe_dir'openssl $ test = "p.txt"
$ cmd = "mcr ''exe_dir'openssl"
$ $
$ if f$search(test) .nes. "" then delete 'test';* $ if f$search(test) .nes. "" then delete 'test';*
$ convert/fdl=sys$input: 'testsrc' 'test' $ convert/fdl=sys$input: 'testsrc' 'test'

View File

@ -1,14 +1,15 @@
$! TETSGEN.COM $! TESTGEN.COM
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $ if (p1 .eqs. 64) then __arch = __arch+ "_64"
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ T := testcert $ T = "testcert"
$ KEY = 512 $ KEY = 512
$ CA := [-.certs]testca.pem $ CA = "[-.certs]testca.pem"
$ $
$ set noon $ set noon
$ if f$search(T+".1;*") .nes. "" then delete 'T'.1;* $ if f$search(T+".1;*") .nes. "" then delete 'T'.1;*
@ -20,7 +21,8 @@ $ write sys$output "generating certificate request"
$ $
$ append/new nl: .rnd $ append/new nl: .rnd
$ open/append random_file .rnd $ open/append random_file .rnd
$ write random_file "string to make the random number generator think it has entropy" $ write random_file -
"string to make the random number generator think it has entropy"
$ close random_file $ close random_file
$ $
$ set noon $ set noon
@ -33,8 +35,10 @@ $ then
$ req_new="-newkey dsa:[-.apps]dsa512.pem" $ req_new="-newkey dsa:[-.apps]dsa512.pem"
$ else $ else
$ req_new="-new" $ req_new="-new"
$ write sys$output "There should be a 2 sequences of .'s and some +'s." $ write sys$output -
$ write sys$output "There should not be more that at most 80 per line" "There should be a 2 sequences of .'s and some +'s."
$ write sys$output -
"There should not be more that at most 80 per line"
$ endif $ endif
$ $
$ write sys$output "This could take some time." $ write sys$output "This could take some time."

View File

@ -1,16 +1,32 @@
$! TESTS.COM -- Performs the necessary tests $! TESTS.COM -- Performs the necessary tests
$! $!
$! P1 tests to be performed. Empty means all. $! P1 tests to be performed. Empty means all.
$ $! P2 Pointer size: "", "32", or "64".
$!
$! Announce/identify.
$!
$ proc = f$environment( "procedure")
$ write sys$output "@@@ "+ -
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
$!
$ __proc = f$element(0,";",f$environment("procedure")) $ __proc = f$element(0,";",f$environment("procedure"))
$ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;" $ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;"
$ __save_default = f$environment("default") $ __save_default = f$environment("default")
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ texe_dir := sys$disk:[-.'__arch'.exe.test] $!
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $ __archd = __arch
$ pointer_size = ""
$ if (p2 .eq. "64")
$ then
$ pointer_size = "64"
$ __archd = __arch+ "_64"
$ endif
$!
$ texe_dir := sys$disk:[-.'__archd'.exe.test]
$ exe_dir := sys$disk:[-.'__archd'.exe.apps]
$ $
$ set default '__here' $ set default '__here'
$ $
@ -76,7 +92,7 @@ $ EVPTEST := evp_test
$ IGETEST := igetest $ IGETEST := igetest
$ JPAKETEST := jpaketest $ JPAKETEST := jpaketest
$ ASN1TEST := asn1test $ ASN1TEST := asn1test
$ $!
$ tests_i = 0 $ tests_i = 0
$ loop_tests: $ loop_tests:
$ tests_e = f$element(tests_i,",",tests) $ tests_e = f$element(tests_i,",",tests)
@ -139,58 +155,69 @@ $ test_rand:
$ mcr 'texe_dir''randtest' $ mcr 'texe_dir''randtest'
$ return $ return
$ test_enc: $ test_enc:
$ @testenc.com $ @testenc.com 'pointer_size'
$ return $ return
$ test_x509: $ test_x509:
$ define sys$error nla0: $ set noon
$ define sys$error test_x509.err
$ write sys$output "test normal x509v1 certificate" $ write sys$output "test normal x509v1 certificate"
$ @tx509.com $ @tx509.com "" 'pointer_size'
$ write sys$output "test first x509v3 certificate" $ write sys$output "test first x509v3 certificate"
$ @tx509.com v3-cert1.pem $ @tx509.com v3-cert1.pem 'pointer_size'
$ write sys$output "test second x509v3 certificate" $ write sys$output "test second x509v3 certificate"
$ @tx509.com v3-cert2.pem $ @tx509.com v3-cert2.pem 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ set on
$ return $ return
$ test_rsa: $ test_rsa:
$ define sys$error nla0: $ set noon
$ @trsa.com $ define sys$error test_rsa.err
$ @trsa.com "" 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ mcr 'texe_dir''rsatest' $ mcr 'texe_dir''rsatest'
$ set on
$ return $ return
$ test_crl: $ test_crl:
$ define sys$error nla0: $ set noon
$ @tcrl.com $ define sys$error test_crl.err
$ @tcrl.com "" 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ set on
$ return $ return
$ test_sid: $ test_sid:
$ define sys$error nla0: $ set noon
$ @tsid.com $ define sys$error test_sid.err
$ @tsid.com "" 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ set on
$ return $ return
$ test_req: $ test_req:
$ define sys$error nla0: $ set noon
$ @treq.com $ define sys$error test_req.err
$ @treq.com testreq2.pem $ @treq.com "" 'pointer_size'
$ @treq.com testreq2.pem 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ set on
$ return $ return
$ test_pkcs7: $ test_pkcs7:
$ define sys$error nla0: $ set noon
$ @tpkcs7.com $ define sys$error test_pkcs7.err
$ @tpkcs7d.com $ @tpkcs7.com "" 'pointer_size'
$ @tpkcs7d.com "" 'pointer_size'
$ deassign sys$error $ deassign sys$error
$ set on
$ return $ return
$ test_bn: $ test_bn:
$ write sys$output - $ write sys$output -
"starting big number library test, could take a while..." "starting big number library test, could take a while..."
$ set noon $ set noon
$ define sys$error nl: $ define sys$error test_bn.err
$ define sys$output nl: $ define sys$output test_bn.out
$ @ bctest.com $ @ bctest.com
$ status = $status $ status = $status
$ deassign sys$error $ deassign sys$error
$ deassign sys$output $ deassign sys$output
$ on control_y then goto exit $ set on
$ on error then goto exit
$ if (status) $ if (status)
$ then $ then
$ create /fdl = sys$input bntest-vms.tmp $ create /fdl = sys$input bntest-vms.tmp
@ -219,7 +246,7 @@ RECORD
$ open /append bntest_file bntest-vms.sh $ open /append bntest_file bntest-vms.sh
$ type /output = bntest_file sys$input: $ type /output = bntest_file sys$input:
<< __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"' << __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"'
$ define/user sys$output bntest-vms.tmp $ define /user_mode sys$output bntest-vms.tmp
$ mcr 'texe_dir''bntest' $ mcr 'texe_dir''bntest'
$ copy bntest-vms.tmp bntest_file $ copy bntest-vms.tmp bntest_file
$ delete bntest-vms.tmp;* $ delete bntest-vms.tmp;*
@ -249,7 +276,7 @@ $ return
$ test_verify: $ test_verify:
$ write sys$output "The following command should have some OK's and some failures" $ write sys$output "The following command should have some OK's and some failures"
$ write sys$output "There are definitly a few expired certificates" $ write sys$output "There are definitly a few expired certificates"
$ @tverify.com $ @tverify.com 'pointer_size'
$ return $ return
$ test_dh: $ test_dh:
$ write sys$output "Generate a set of DH parameters" $ write sys$output "Generate a set of DH parameters"
@ -261,7 +288,7 @@ $ mcr 'texe_dir''dsatest'
$ return $ return
$ test_gen: $ test_gen:
$ write sys$output "Generate and verify a certificate request" $ write sys$output "Generate and verify a certificate request"
$ @testgen.com $ @testgen.com 'pointer_size'
$ return $ return
$ maybe_test_ss: $ maybe_test_ss:
$ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT")) $ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT"))
@ -274,7 +301,7 @@ $ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then -
$ return $ return
$ test_ss: $ test_ss:
$ write sys$output "Generate and certify a test certificate" $ write sys$output "Generate and certify a test certificate"
$ @testss.com $ @testss.com 'pointer_size'
$ return $ return
$ test_engine: $ test_engine:
$ write sys$output "Manipulate the ENGINE structures" $ write sys$output "Manipulate the ENGINE structures"
@ -283,11 +310,11 @@ $ return
$ test_ssl: $ test_ssl:
$ write sys$output "test SSL protocol" $ write sys$output "test SSL protocol"
$ gosub maybe_test_ss $ gosub maybe_test_ss
$ @testssl.com keyU.ss certU.ss certCA.ss $ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size'
$ return $ return
$ test_ca: $ test_ca:
$ set noon $ set noon
$ define/user sys$output nla0: $ define /user_mode sys$output test_ca.out
$ mcr 'exe_dir'openssl no-rsa $ mcr 'exe_dir'openssl no-rsa
$ save_severity=$SEVERITY $ save_severity=$SEVERITY
$ set on $ set on
@ -296,7 +323,7 @@ $ then
$ write sys$output "skipping CA.com test -- requires RSA" $ write sys$output "skipping CA.com test -- requires RSA"
$ else $ else
$ write sys$output "Generate and certify a test certificate via the 'ca' program" $ write sys$output "Generate and certify a test certificate via the 'ca' program"
$ @testca.com $ @testca.com 'pointer_size'
$ endif $ endif
$ return $ return
$ test_aes: $ test_aes:
@ -305,7 +332,7 @@ $! !mcr 'texe_dir''aestest'
$ return $ return
$ test_tsa: $ test_tsa:
$ set noon $ set noon
$ define/user sys$output nla0: $ define /user_mode sys$output nla0:
$ mcr 'exe_dir'openssl no-rsa $ mcr 'exe_dir'openssl no-rsa
$ save_severity=$SEVERITY $ save_severity=$SEVERITY
$ set on $ set on
@ -313,7 +340,7 @@ $ if save_severity
$ then $ then
$ write sys$output "skipping testtsa.com test -- requires RSA" $ write sys$output "skipping testtsa.com test -- requires RSA"
$ else $ else
$ @testtsa.com $ @testtsa.com "" "" "" 'pointer_size'
$ endif $ endif
$ return $ return
$ test_ige: $ test_ige:
@ -326,8 +353,8 @@ $ mcr 'texe_dir''jpaketest'
$ return $ return
$ test_cms: $ test_cms:
$ write sys$output "CMS consistency test" $ write sys$output "CMS consistency test"
$ ! The following makes perl include the DCL symbol table in the env. $ ! Define the logical name used to find openssl.exe in the perl script.
$ define/user perl_env_tables clisym_local,lnm$file_dev,ctrl_env $ define /user_mode osslx 'exe_dir'
$ perl CMS-TEST.PL $ perl CMS-TEST.PL
$ return $ return
$ $

View File

@ -1,16 +1,19 @@
$! TESTSS.COM $! TESTSS.COM
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ digest="-md5" $ digest="-md5"
$ reqcmd := mcr 'exe_dir'openssl req $ reqcmd = "mcr ''exe_dir'openssl req"
$ x509cmd := mcr 'exe_dir'openssl x509 'digest' $ x509cmd = "mcr ''exe_dir'openssl x509 ''digest'"
$ verifycmd := mcr 'exe_dir'openssl verify $ verifycmd = "mcr ''exe_dir'openssl verify"
$ dummycnf := sys$disk:[-.apps]openssl-vms.cnf $ dummycnf = "sys$disk:[-.apps]openssl-vms.cnf"
$ $
$ CAkey="""keyCA.ss""" $ CAkey="""keyCA.ss"""
$ CAcert="""certCA.ss""" $ CAcert="""certCA.ss"""

View File

@ -1,11 +1,14 @@
$! TESTSSL.COM $! TESTSSL.COM
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ texe_dir := sys$disk:[-.'__arch'.exe.test] $!
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $ if (p4 .eqs. "64") then __arch = __arch+ "_64"
$!
$ texe_dir = "sys$disk:[-.''__arch'.exe.test]"
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ if p1 .eqs. "" $ if p1 .eqs. ""
$ then $ then
@ -19,8 +22,9 @@ $ cert="[-.apps]server.pem"
$ else $ else
$ cert=p2 $ cert=p2
$ endif $ endif
$ ssltest := mcr 'texe_dir'ssltest -key 'key' -cert 'cert' -c_key 'key' -c_cert 'cert' $ ssltest = "mcr ''texe_dir'ssltest -key ''key'"+ -
$ " -cert ''cert' -c_key ''key' -c_cert ''cert'"
$!
$ set noon $ set noon
$ define/user sys$output testssl-x509-output. $ define/user sys$output testssl-x509-output.
$ define/user sys$error nla0: $ define/user sys$error nla0:
@ -29,9 +33,9 @@ $ define/user sys$error nla0:
$ search/output=nla0: testssl-x509-output. "DSA Public Key"/exact $ search/output=nla0: testssl-x509-output. "DSA Public Key"/exact
$ if $severity .eq. 1 $ if $severity .eq. 1
$ then $ then
$ dsa_cert := YES $ dsa_cert = "YES"
$ else $ else
$ dsa_cert := NO $ dsa_cert = "NO"
$ endif $ endif
$ delete testssl-x509-output.;* $ delete testssl-x509-output.;*
$ $

View File

@ -2,14 +2,17 @@ $!
$! A few very basic tests for the 'ts' time stamping authority command. $! A few very basic tests for the 'ts' time stamping authority command.
$! $!
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p4 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ openssl := mcr 'f$parse(exe_dir+"openssl.exe")' $ openssl = "mcr ''f$parse(exe_dir+"openssl.exe")'"
$ OPENSSL_CONF := [-]CAtsa.cnf $ OPENSSL_CONF = "[-]CAtsa.cnf"
$ ! Because that's what ../apps/CA.sh really looks at $ ! Because that's what ../apps/CA.sh really looks at
$ SSLEAY_CONFIG = "-config " + OPENSSL_CONF $ SSLEAY_CONFIG = "-config " + OPENSSL_CONF
$ $
@ -114,8 +117,8 @@ $
$ time_stamp_response_token_test: $ time_stamp_response_token_test:
$ subroutine $ subroutine
$ $
$ RESPONSE2:='p2'.copy_tsr $ RESPONSE2 = p2+ "-copy_tsr"
$ TOKEN_DER:='p2'.token_der $ TOKEN_DER = p2+ "-token_der"
$ openssl ts -reply -in 'p2' -out 'TOKEN_DER' -token_out $ openssl ts -reply -in 'p2' -out 'TOKEN_DER' -token_out
$ if $severity .ne. 1 then call error $ if $severity .ne. 1 then call error
$ openssl ts -reply -in 'TOKEN_DER' -token_in -out 'RESPONSE2' $ openssl ts -reply -in 'TOKEN_DER' -token_in -out 'RESPONSE2'
@ -145,13 +148,13 @@ $ verify_time_stamp_token:
$ subroutine $ subroutine
$ $
$ ! create the token from the response first $ ! create the token from the response first
$ openssl ts -reply -in 'p2' -out 'p2'.token -token_out $ openssl ts -reply -in "''p2'" -out "''p2'-token" -token_out
$ if $severity .ne. 1 then call error $ if $severity .ne. 1 then call error
$ openssl ts -verify -queryfile 'p1' -in 'p2'.token -token_in - $ openssl ts -verify -queryfile "''p1'" -in "''p2'-token" -
"-CAfile" tsaca.pem -untrusted tsa_cert1.pem -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
$ if $severity .ne. 1 then call error $ if $severity .ne. 1 then call error
$ openssl ts -verify -data 'p3' -in 'p2'.token -token_in - $ openssl ts -verify -data "''p3'" -in "''p2'-token" -
"-CAfile" tsaca.pem -untrusted tsa_cert1.pem -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem
$ if $severity .ne. 1 then call error $ if $severity .ne. 1 then call error
$ endsubroutine $ endsubroutine
$ $
@ -185,64 +188,64 @@ $ write sys$output "Creating req1.req time stamp request for file testtsa..."
$ call create_time_stamp_request1 $ call create_time_stamp_request1
$ $
$ write sys$output "Printing req1.req..." $ write sys$output "Printing req1.req..."
$ call print_request req1.tsq $ call print_request "req1.tsq"
$ $
$ write sys$output "Generating valid response for req1.req..." $ write sys$output "Generating valid response for req1.req..."
$ call create_time_stamp_response req1.tsq resp1.tsr tsa_config1 $ call create_time_stamp_response "req1.tsq" "resp1.tsr" "tsa_config1"
$ $
$ write sys$output "Printing response..." $ write sys$output "Printing response..."
$ call print_response resp1.tsr $ call print_response "resp1.tsr"
$ $
$ write sys$output "Verifying valid response..." $ write sys$output "Verifying valid response..."
$ call verify_time_stamp_response req1.tsq resp1.tsr [-]testtsa.com $ call verify_time_stamp_response "req1.tsq" "resp1.tsr" "[-]testtsa.com"
$ $
$ write sys$output "Verifying valid token..." $ write sys$output "Verifying valid token..."
$ call verify_time_stamp_token req1.tsq resp1.tsr [-]testtsa.com $ call verify_time_stamp_token "req1.tsq" "resp1.tsr" "[-]testtsa.com"
$ $
$ ! The tests below are commented out, because invalid signer certificates $ ! The tests below are commented out, because invalid signer certificates
$ ! can no longer be specified in the config file. $ ! can no longer be specified in the config file.
$ $
$ ! write sys$output "Generating _invalid_ response for req1.req..." $ ! write sys$output "Generating _invalid_ response for req1.req..."
$ ! call create_time_stamp_response req1.tsq resp1_bad.tsr tsa_config2 $ ! call create_time_stamp_response "req1.tsq" "resp1_bad.tsr" "tsa_config2"
$ $
$ ! write sys$output "Printing response..." $ ! write sys$output "Printing response..."
$ ! call print_response resp1_bad.tsr $ ! call print_response "resp1_bad.tsr"
$ $
$ ! write sys$output "Verifying invalid response, it should fail..." $ ! write sys$output "Verifying invalid response, it should fail..."
$ ! call verify_time_stamp_response_fail req1.tsq resp1_bad.tsr $ ! call verify_time_stamp_response_fail "req1.tsq" "resp1_bad.tsr"
$ $
$ write sys$output "Creating req2.req time stamp request for file testtsa..." $ write sys$output "Creating req2.req time stamp request for file testtsa..."
$ call create_time_stamp_request2 $ call create_time_stamp_request2
$ $
$ write sys$output "Printing req2.req..." $ write sys$output "Printing req2.req..."
$ call print_request req2.tsq $ call print_request "req2.tsq"
$ $
$ write sys$output "Generating valid response for req2.req..." $ write sys$output "Generating valid response for req2.req..."
$ call create_time_stamp_response req2.tsq resp2.tsr tsa_config1 $ call create_time_stamp_response "req2.tsq" "resp2.tsr" "tsa_config1"
$ $
$ write sys$output "Checking '-token_in' and '-token_out' options with '-reply'..." $ write sys$output "Checking '-token_in' and '-token_out' options with '-reply'..."
$ call time_stamp_response_token_test req2.tsq resp2.tsr $ call time_stamp_response_token_test "req2.tsq" "resp2.tsr"
$ $
$ write sys$output "Printing response..." $ write sys$output "Printing response..."
$ call print_response resp2.tsr $ call print_response "resp2.tsr"
$ $
$ write sys$output "Verifying valid response..." $ write sys$output "Verifying valid response..."
$ call verify_time_stamp_response req2.tsq resp2.tsr [-]testtsa.com $ call verify_time_stamp_response "req2.tsq" "resp2.tsr" "[-]testtsa.com"
$ $
$ write sys$output "Verifying response against wrong request, it should fail..." $ write sys$output "Verifying response against wrong request, it should fail..."
$ call verify_time_stamp_response_fail req1.tsq resp2.tsr $ call verify_time_stamp_response_fail "req1.tsq" "resp2.tsr"
$ $
$ write sys$output "Verifying response against wrong request, it should fail..." $ write sys$output "Verifying response against wrong request, it should fail..."
$ call verify_time_stamp_response_fail req2.tsq resp1.tsr $ call verify_time_stamp_response_fail "req2.tsq" "resp1.tsr"
$ $
$ write sys$output "Creating req3.req time stamp request for file CAtsa.cnf..." $ write sys$output "Creating req3.req time stamp request for file CAtsa.cnf..."
$ call create_time_stamp_request3 $ call create_time_stamp_request3
$ $
$ write sys$output "Printing req3.req..." $ write sys$output "Printing req3.req..."
$ call print_request req3.tsq $ call print_request "req3.tsq"
$ $
$ write sys$output "Verifying response against wrong request, it should fail..." $ write sys$output "Verifying response against wrong request, it should fail..."
$ call verify_time_stamp_response_fail req3.tsq resp1.tsr $ call verify_time_stamp_response_fail "req3.tsq" "resp1.tsr"
$ $
$ write sys$output "Cleaning up..." $ write sys$output "Cleaning up..."
$ call clean_up_dir $ call clean_up_dir

View File

@ -1,14 +1,17 @@
$! TPKCS7.COM -- Tests pkcs7 keys $! TPKCS7.COM -- Tests pkcs7 keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl pkcs7 $ cmd = "mcr ''exe_dir'openssl pkcs7"
$ $
$ t := testp7.pem $ t = "testp7.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing PKCS7 conversions" $ write sys$output "testing PKCS7 conversions"

View File

@ -1,14 +1,17 @@
$! TPKCS7.COM -- Tests pkcs7 keys $! TPKCS7.COM -- Tests pkcs7 keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl pkcs7 $ cmd = "mcr ''exe_dir'openssl pkcs7"
$ $
$ t := pkcs7-1.pem $ t = "pkcs7-1.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing PKCS7 conversions (2)" $ write sys$output "testing PKCS7 conversions (2)"

View File

@ -1,14 +1,17 @@
$! TREQ.COM -- Tests req keys $! TREQ.COM -- Tests req keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl req -config [-.apps]openssl-vms.cnf $ cmd = "mcr ''exe_dir'openssl req -config [-.apps]openssl-vms.cnf"
$ $
$ t := testreq.pem $ t = "testreq.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing req conversions" $ write sys$output "testing req conversions"

View File

@ -1,10 +1,13 @@
$! TRSA.COM -- Tests rsa keys $! TRSA.COM -- Tests rsa keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ set noon $ set noon
$ define/user sys$output nla0: $ define/user sys$output nla0:
@ -17,9 +20,9 @@ $ write sys$output "skipping RSA conversion test"
$ exit $ exit
$ endif $ endif
$ $
$ cmd := mcr 'exe_dir'openssl rsa $ cmd = "mcr ''exe_dir'openssl rsa"
$ $
$ t := testrsa.pem $ t = "testrsa.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing RSA conversions" $ write sys$output "testing RSA conversions"

View File

@ -1,14 +1,17 @@
$! TSID.COM -- Tests sid keys $! TSID.COM -- Tests sid keys
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl sess_id $ cmd = "mcr ''exe_dir'openssl sess_id"
$ $
$ t := testsid.pem $ t = "testsid.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing session-id conversions" $ write sys$output "testing session-id conversions"

View File

@ -1,13 +1,15 @@
$! TVERIFY.COM $! TVERIFY.COM
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$!
$ if (p1 .eqs. "64") then __arch = __arch+ "_64"
$! $!
$ line_max = 255 ! Could be longer on modern non-VAX. $ line_max = 255 ! Could be longer on modern non-VAX.
$ temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp" $ temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'" $ cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'"
$ cmd_len = f$length( cmd) $ cmd_len = f$length( cmd)
$ pems = "[-.certs...]*.pem" $ pems = "[-.certs...]*.pem"
@ -19,7 +21,7 @@ $!
$! Loop through all the certificate files. $! Loop through all the certificate files.
$! $!
$ args = "" $ args = ""
$ old_f := $ old_f = ""
$ loop_file: $ loop_file:
$ f = f$search( pems) $ f = f$search( pems)
$ if ((f .nes. "") .and. (f .nes. old_f)) $ if ((f .nes. "") .and. (f .nes. old_f))

View File

@ -1,14 +1,17 @@
$! TX509.COM -- Tests x509 certificates $! TX509.COM -- Tests x509 certificates
$ $
$ __arch := VAX $ __arch = "VAX"
$ if f$getsyi("cpu") .ge. 128 then - $ if f$getsyi("cpu") .ge. 128 then -
__arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$ if __arch .eqs. "" then __arch := UNK $ if __arch .eqs. "" then __arch = "UNK"
$ exe_dir := sys$disk:[-.'__arch'.exe.apps] $!
$ if (p2 .eqs. "64") then __arch = __arch+ "_64"
$!
$ exe_dir = "sys$disk:[-.''__arch'.exe.apps]"
$ $
$ cmd := mcr 'exe_dir'openssl x509 $ cmd = "mcr ''exe_dir'openssl x509"
$ $
$ t := testx509.pem $ t = "testx509.pem"
$ if p1 .nes. "" then t = p1 $ if p1 .nes. "" then t = p1
$ $
$ write sys$output "testing X509 conversions" $ write sys$output "testing X509 conversions"

View File

@ -4205,3 +4205,4 @@ SRP_Calc_A 4576 EXIST::FUNCTION:SRP
SRP_Verify_A_mod_N 4577 EXIST::FUNCTION:SRP SRP_Verify_A_mod_N 4577 EXIST::FUNCTION:SRP
SRP_VBASE_init 4578 EXIST::FUNCTION:SRP SRP_VBASE_init 4578 EXIST::FUNCTION:SRP
SRP_Verify_B_mod_N 4579 EXIST::FUNCTION:SRP SRP_Verify_B_mod_N 4579 EXIST::FUNCTION:SRP
OPENSSL_strcasecmp 4594 EXIST::FUNCTION: