Commit 537c9823 authored by Richard Levitte's avatar Richard Levitte
Browse files

After some adjustments, apply the changes OpenSSL 1.0.0d on OpenVMS

submitted by Steven M. Schweda <sms@antinode.info>
parent 5904882e
Loading
Loading
Loading
Loading
+23 −29
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ the top to understand how to use them. However, if you want to
compile all you can get, the simplest is to use MAKEVMS.COM in the top
directory.  The syntax is the following:

  @MAKEVMS <option> <rsaref-p> <debug-p> [<compiler>]
  @MAKEVMS <option> <bits> <debug-p> [<compiler>]

<option> must be one of the following:

@@ -87,24 +87,11 @@ directory. The syntax is the following:
      TEST      Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
      APPS      Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.

<rsaref-p> must be one of the following:
<bits> must be one of the following:

      RSAREF    compile using the RSAREF Library
      NORSAREF  compile without using RSAREF

Note 0: The RSAREF library IS NO LONGER NEEDED.  The RSA patent
        expires September 20, 2000, and RSA Security chose to make
        the algorithm public domain two weeks before that.

Note 1: If you still want to use RSAREF, the library is NOT INCLUDED
        and you have to download it.  RSA Security doesn't carry it
        any more, but there are a number of places where you can find
        it.  You have to get the ".tar-Z" file as the ".zip" file
        doesn't have the directory structure stored.  You have to
        extract the file into the [.RSAREF] directory as that is where
        the scripts will look for the files.

Note 2: I have never done this, so I've no idea if it works or not.
      ""        compile using default pointer size
      32        compile using 32 bit pointer size
      64        compile using 64 bit pointer size

<debug-p> must be one of the following:

@@ -117,12 +104,13 @@ Note 2: I have never done this, so I've no idea if it works or not.
      GNUC      For GNU C.


You will find the crypto library in [.xxx.EXE.CRYPTO], called LIBCRYPTO.OLB,
where xxx is VAX or AXP.  You will find the SSL library in [.xxx.EXE.SSL],
named LIBSSL.OLB, and you will find a bunch of useful programs in
[.xxx.EXE.APPS].  However, these shouldn't be used right off unless it's
just to test them.  For production use, make sure you install first, see
Installation below.
You will find the crypto library in [.xxx.EXE.CRYPTO] (where xxx is VAX,
ALPHA or IA64), called SSL_LIBCRYPTO32.OLB or SSL_LIBCRYPTO.OLB depending
on how it was built.  You will find the SSL library in [.xxx.EXE.SSL],
named SSL_LIBSSL32.OLB or SSL_LIBSSL.OLB, and you will find a bunch of
useful programs in [.xxx.EXE.APPS].  However, these shouldn't be used
right off unless it's just to test them.  For production use, make sure
you install first, see Installation below.

Note 1: Some programs in this package require a TCP/IP library.

@@ -170,12 +158,14 @@ Installation:

Installation is easy, just do the following:

  @INSTALL <root>
  @INSTALL <root> <bits>

<root> is the directory in which everything will be installed,
subdirectories, libraries, header files, programs and startup command
procedures.

<bits> works the same way as for MAKEVMS.COM

N.B.: INSTALL.COM builds a new directory structure, different from
the directory tree where you have now build OpenSSL.

@@ -196,6 +186,10 @@ following command procedures:
        sets up the symbols to the applications.  Should be called
        from for example SYS$MANAGER:SYLOGIN.COM 

  OPENSSL_UNDO.COM

	deassigns the logical names created with OPENSSL_STARTUP.COM.

The logical names that are set up are the following:

  SSLROOT       a dotted concealed logical name pointing at the
@@ -203,7 +197,6 @@ The logical names that are set up are the following:

  SSLCERTS      Initially an empty directory, this is the default
		location for certificate files.
  SSLMISC	Various scripts.
  SSLPRIVATE	Initially an empty directory, this is the default
		location for private key files.

@@ -211,8 +204,9 @@ The logical names that are set up are the following:
		programs.
  SSLINCLUDE    Contains the header files needed if you want to
		compile programs with libcrypto or libssl.
  SSLLIB        Contains the OpenSSL library files (LIBCRYPTO.OLB
		and LIBSSL.OLB) themselves.
  SSLLIB        Contains the OpenSSL library files themselves:
  		- SSL_LIBCRYPTO32.OLB and SSL_LIBSSL32.OLB or
		- SSL_LIBCRYPTO.OLB and SSL_LIBSSL.OLB

  OPENSSL	Same as SSLINCLUDE.  This is because the standard
		way to include OpenSSL header files from version
@@ -296,4 +290,4 @@ have any ideas.

--
Richard Levitte <richard@levitte.org>
2000-02-27
2000-02-27, 2011-03-18

VMS/install-vms.com

0 → 100755
+67 −0
Original line number Diff line number Diff line
$! 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
$!

VMS/install.com

deleted100644 → 0
+0 −79
Original line number Diff line number Diff line
$! 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
+152 −90
Original line number Diff line number Diff line
$! 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)
$ then
$     arch := VAX
$   arch_vax = 1
$   arch = "VAX"
$ else
$   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
@@ -132,7 +190,7 @@ $! The creator routine
$ create_nonvax_shr:
$   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
@@ -215,7 +274,7 @@ $ close mar
$   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:
@@ -267,9 +327,10 @@ $ 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"))
$     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)
@@ -286,7 +347,7 @@ $ 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
$!
+108 −0
Original line number Diff line number Diff line
$!
$! 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'
$!
Loading