From 537c982306039df02d1e9410dfe205639b547e7a Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sat, 19 Mar 2011 10:58:14 +0000 Subject: After some adjustments, apply the changes OpenSSL 1.0.0d on OpenVMS submitted by Steven M. Schweda --- VMS/install-vms.com | 67 ++++++++++++++ VMS/install.com | 79 ---------------- VMS/mkshared.com | 242 ++++++++++++++++++++++++++++++------------------ VMS/openssl_startup.com | 108 +++++++++++++++++++++ VMS/openssl_undo.com | 20 ++++ 5 files changed, 347 insertions(+), 169 deletions(-) create mode 100755 VMS/install-vms.com delete mode 100644 VMS/install.com create mode 100755 VMS/openssl_startup.com create mode 100755 VMS/openssl_undo.com (limited to 'VMS') diff --git a/VMS/install-vms.com b/VMS/install-vms.com new file mode 100755 index 0000000000..7da8b2153b --- /dev/null +++ b/VMS/install-vms.com @@ -0,0 +1,67 @@ +$! install-vms.com -- Installs the files in a given directory tree +$! +$! Author: Richard Levitte +$! 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 +$! diff --git a/VMS/install.com b/VMS/install.com deleted file mode 100644 index 9c9c0e1e27..0000000000 --- a/VMS/install.com +++ /dev/null @@ -1,79 +0,0 @@ -$! INSTALL.COM -- Installs the files in a given directory tree -$! -$! Author: Richard Levitte -$! 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 " -$ 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 diff --git a/VMS/mkshared.com b/VMS/mkshared.com index 2f9167eeaa..d92a823f0b 100644 --- a/VMS/mkshared.com +++ b/VMS/mkshared.com @@ -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 -$! tree (the same directory where one finds INSTALL.VMS). +$! P1: "64" for 64-bit pointers. $! -$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB -$! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]LIBSSL.OLB -$! Output: [.xxx.EXE.CRYPTO]LIBCRYPTO.OPT,.MAP,.EXE -$! [.xxx.EXE.SSL]LIBSSL.OPT,.MAP,.EXE +$! P2: Zlib object library path (optional). +$! +$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO[32].OLB +$! [.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. $! =========================================================================== -$ +$! +$! 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 $ gosub read_version_info $ if libver .eqs. "" $ then $ write sys$error "ERROR: Couldn't find any library version info..." -$ exit +$ go to tidy: $ endif $ -$ if (f$getsyi("cpu").lt.128) +$ if (f$getsyi("cpu") .lt. 128) $ then -$ arch := VAX +$ arch_vax = 1 +$ arch = "VAX" $ else -$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") -$ if (arch .eqs. "") then arch = "UNK" +$ arch_vax = 0 +$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") +$ if (arch .eqs. "") then arch = "UNK" $ endif -$ -$ if arch .nes. "VAX" +$! +$ archd = arch +$ lib32 = "32" +$ shr = "SHR32" +$! +$ if (p1 .nes. "") $ 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 +$ 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" $ 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" +$ libdir = "[.''ARCHD'.EXE.CRYPTO]" +$ libmar = "''libdir'SSL_LIBCRYPTO_''shr'.MAR" +$ libolb = "''libdir'SSL_LIBCRYPTO''lib32'.OLB" +$ libopt = "''libdir'SSL_LIBCRYPTO_''shr'.OPT" +$ libobj = "''libdir'SSL_LIBCRYPTO_''shr'.OBJ" +$ libmap = "''libdir'SSL_LIBCRYPTO_''shr'.MAP" +$ libgoal= "''libdir'SSL_LIBCRYPTO_''shr'.EXE" $ libref = "" -$ if f$search(libdir+libolb) .nes. "" then gosub create_nonvax_shr +$ libvec = "LIBCRYPTO" +$ if f$search( libolb) .nes. "" then gosub create_vax_shr +$ libtit = "SSL_TRANSFER_VECTOR" $ 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 +$ libdir = "[.''ARCHD'.EXE.SSL]" +$ libmar = "''libdir'SSL_LIBSSL_''shr'.MAR" +$ libolb = "''libdir'SSL_LIBSSL''lib32'.OLB" +$ libopt = "''libdir'SSL_LIBSSL_''shr'.OPT" +$ libobj = "''libdir'SSL_LIBSSL_''shr'.OBJ" +$ libmap = "''libdir'SSL_LIBSSL_''shr'.MAP" +$ libgoal= "''libdir'SSL_LIBSSL_''shr'.EXE" +$ libref = "[.''ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO_''shr'.EXE" +$ libvec = "LIBSSL" +$ if f$search( libolb) .nes. "" then gosub create_vax_shr $ else -$ arch_vax = 1 -$ libtit = "CRYPTO_TRANSFER_VECTOR" $ libid = "Crypto" $ libnum = "[.UTIL]LIBEAY.NUM" -$ libdir = "[.''ARCH'.EXE.CRYPTO]" -$ libmar = "''libdir'LIBCRYPTO.MAR" -$ libolb = "''libdir'LIBCRYPTO.OLB" -$ libopt = "''libdir'LIBCRYPTO.OPT" -$ libobj = "''libdir'LIBCRYPTO.OBJ" -$ libmap = "''libdir'LIBCRYPTO.MAP" -$ libgoal= "''libdir'LIBCRYPTO.EXE" +$ 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 = "" -$ libvec = "LIBCRYPTO" -$ if f$search(libdir+libolb) .nes. "" then gosub create_vax_shr -$ libtit = "SSL_TRANSFER_VECTOR" +$ if f$search( libolb) .nes. "" then gosub create_nonvax_shr $ libid = "SSL" $ libnum = "[.UTIL]SSLEAY.NUM" -$ libdir = "[.''ARCH'.EXE.SSL]" -$ libmar = "''libdir'LIBSSL.MAR" -$ libolb = "''libdir'LIBSSL.OLB" -$ libopt = "''libdir'LIBSSL.OPT" -$ libobj = "''libdir'LIBSSL.OBJ" -$ libmap = "''libdir'LIBSSL.MAP" -$ libgoal= "''libdir'LIBSSL.EXE" -$ libref = "[.''ARCH'.EXE.CRYPTO]LIBCRYPTO.EXE" -$ libvec = "LIBSSL" -$ if f$search(libdir+libolb) .nes. "" then gosub create_vax_shr +$ 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 +$! +$ 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 $ $! ----- Subroutines to build the shareable libraries @@ -130,9 +188,9 @@ $! ----- Subroutines for non-VAX $! ----- $! The creator routine $ create_nonvax_shr: -$ open/write opt 'libopt' +$ open /write opt 'libopt' $ write opt "identification=""",libid," ",libverstr,"""" -$ write opt libolb,"/lib" +$ write opt libolb, " /library" $ if libref .nes. "" then write opt libref,"/SHARE" $ write opt "SYMBOL_VECTOR=(-" $ libfirstentry := true @@ -143,7 +201,8 @@ $ gosub read_func_num $ write opt ")" $ write opt "GSMATCH=",libvmatch,",",libver $ close opt -$ link/map='libmap'/full/share='libgoal' 'libopt'/option +$ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options - + 'zlib_lib' $ return $ $! The record writer routine @@ -177,7 +236,7 @@ $! ----- Subroutines for VAX $! ----- $! The creator routine $ create_vax_shr: -$ open/write mar 'libmar' +$ open /write mar 'libmar' $ type sys$input:/out=mar: ; ; Transfer vector for VAX shareable image @@ -212,10 +271,10 @@ $! libwriter := write_vax_vtransfer_entry $! gosub read_func_num $ write mar " .END" $ close mar -$ open/write opt 'libopt' +$ open /write opt 'libopt' $ write opt "identification=""",libid," ",libverstr,"""" $ write opt libobj -$ write opt libolb,"/lib" +$ write opt libolb, " /library" $ if libref .nes. "" then write opt libref,"/SHARE" $ type sys$input:/out=opt: ! @@ -234,7 +293,8 @@ $ libwriter := write_vax_psect_attr $ gosub read_func_num $ close opt $ macro/obj='libobj' 'libmar' -$ link/map='libmap'/full/share='libgoal' 'libopt'/option +$ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options - + 'zlib_lib' $ return $ $! The record writer routine for VAX functions @@ -256,9 +316,9 @@ $ return $ $! ----- Common subroutines $! ----- -$! The .num file reader. This one has great responsability. +$! The .num file reader. This one has great responsibility. $ read_func_num: -$ open libnum 'libnum' +$ open /read libnum 'libnum' $ goto read_nums $ $ read_nums: @@ -266,27 +326,28 @@ $ libentrynum=0 $ liblastentry:=false $ entrycount=0 $ loop: -$ read/end=loop_end/err=loop_end libnum line -$ entrynum=f$int(f$element(1," ",f$edit(line,"COMPRESS,TRIM"))) -$ entryinfo=f$element(2," ",f$edit(line,"COMPRESS,TRIM")) -$ curentry=f$element(0," ",f$edit(line,"COMPRESS,TRIM")) -$ info_exist=f$element(0,":",entryinfo) -$ info_platforms=","+f$element(1,":",entryinfo)+"," -$ info_kind=f$element(2,":",entryinfo) -$ info_algorithms=","+f$element(3,":",entryinfo)+"," +$ read /end=loop_end /err=loop_end libnum line +$ lin = f$edit( line, "COMPRESS,TRIM") +$ entrynum = f$int(f$element( 1, " ", lin)) +$ entryinfo = f$element( 2, " ", lin) +$ curentry = f$element( 0, " ", lin) +$ info_exist = f$element( 0, ":", entryinfo) +$ info_platforms = ","+ f$element(1, ":", entryinfo)+ "," +$ info_kind = f$element( 2, ":", entryinfo) +$ info_algorithms = ","+ f$element( 3, ":", entryinfo)+ "," $ if info_exist .eqs. "NOEXIST" then goto loop $ truesum = 0 $ falsesum = 0 $ negatives = 1 $ plat_i = 0 $ loop1: -$ plat_entry = f$element(plat_i,",",info_platforms) +$ plat_entry = f$element( plat_i, ",", info_platforms) $ plat_i = plat_i + 1 $ if plat_entry .eqs. "" then goto loop1 $ if plat_entry .nes. "," $ then $ if f$extract(0,1,plat_entry) .nes. "!" then negatives = 0 -$ if f$getsyi("CPU") .lt. 128 +$ if (arch_vax) $ then $ if plat_entry .eqs. "EXPORT_VAR_AS_FUNCTION" then - $ truesum = truesum + 1 @@ -295,6 +356,7 @@ $ falsesum = falsesum + 1 $ endif $! $ if ((plat_entry .eqs. "VMS") .or. - + ((plat_entry .eqs. "ZLIB") .and. (ZLIB .nes. "")) .or. - (arch_vax .and. (plat_entry .eqs. "VMSVAX"))) then - truesum = truesum + 1 $! @@ -364,7 +426,7 @@ $ $! The version number reader $ read_version_info: $ libver = "" -$ open/read vf [.CRYPTO]OPENSSLV.H +$ open /read vf [.CRYPTO]OPENSSLV.H $ loop_rvi: $ read/err=endloop_rvi/end=endloop_rvi vf rvi_line $ if rvi_line - "SHLIB_VERSION_NUMBER """ .eqs. rvi_line then - diff --git a/VMS/openssl_startup.com b/VMS/openssl_startup.com new file mode 100755 index 0000000000..04bbbde886 --- /dev/null +++ b/VMS/openssl_startup.com @@ -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 ": +$ 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' +$! diff --git a/VMS/openssl_undo.com b/VMS/openssl_undo.com new file mode 100755 index 0000000000..d1623a3160 --- /dev/null +++ b/VMS/openssl_undo.com @@ -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 +$! -- cgit v1.2.3