X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=makevms.com;h=9fda190f416ec8ed0af2ce0ee137da038bd261b5;hp=c8547dceec542f241c55225a6beb06d67ac3422c;hb=9117b9d17abadc372a2ab7b64f42566a6f09ba41;hpb=9dff4cc05100b9989998e4fe061e58d0fbfd6d8e diff --git a/makevms.com b/makevms.com index c8547dceec..9fda190f41 100755 --- a/makevms.com +++ b/makevms.com @@ -7,36 +7,33 @@ $! A-Com Computing, Inc. $! byer@mail.all-net.net $! $! Changes by Richard Levitte +$! Zoltan Arpadffy $! $! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" -$! "[.xxx.EXE.SSL]LIBSSL.OLB" and if specified "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB". -$! The "xxx" denotes the machine architecture of AXP or VAX. +$! "[.xxx.EXE.SSL]LIBSSL.OLB" +$! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX. $! $! This procedures accepts two command line options listed below. $! $! Specify one of the following build options for P1. $! $! ALL Just build "everything". -$! DATE Just build the "[.INCLUDE.OPENSSL]DATE.H" file. +$! CONFIG Just build the "[.CRYPTO.]OPENSSLCONF.H" file. +$! BUILDINF Just build the "[.CRYPTO.]BUILDINF.H" file. $! SOFTLINKS Just fix the Unix soft links. -$! RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library. +$! BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done. $! CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library. +$! CRYPTO/x Just build the x part of the +$! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library. $! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library. $! SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program. $! TEST Just build the "[.xxx.EXE.TEST]" test 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. $! $! -$! Specify RSAREF as P2 to compile using the RSAREF Library. -$! If you specify NORSAREF, it will compile without using RSAREF. -$! (If in the United States, You Must Compile Using RSAREF). -$! -$! Note: The RSAREF libraries are NOT INCLUDED and you have to -$! download it from "ftp://ftp.rsa.com/rsaref". You have to -$! get the ".tar-Z" file as the ".zip" file dosen'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. +$! P2 is ignored (it was used to denote if RSAref should be used or not, +$! and is simply kept so surrounding scripts don't get confused) $! $! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging $! information. @@ -47,35 +44,56 @@ $! VAXC For VAX C. $! DECC For DEC C. $! GNUC For GNU C. $! LINK To only link the programs from existing object files. +$! (not yet implemented) $! $! If you don't speficy a compiler, it will try to determine which $! "C" compiler to use. $! -$! P5, if defined, sets a TCP/IP library to use, through one of the following -$! keywords: +$! P5, if defined, sets a TCP/IP library to use, through one of the following +$! keywords: $! $! UCX for UCX or UCX emulation +$! TCPIP for TCP/IP Services or TCP/IP Services emulation +$! (this is prefered over UCX) $! SOCKETSHR for SOCKETSHR+NETLIB +$! NONE to avoid specifying which TCP/IP implementation to +$! use at build time (this works with DEC C). This is +$! the default. $! $! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) $! $! -$! Check Which Architecture We Are Using. +$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT") +$ ON ERROR THEN GOTO TIDY +$ ON CONTROL_C THEN GOTO TIDY +$! +$! Check if we're in a batch job, and make sure we get to +$! the directory this script is in +$! +$ IF F$MODE() .EQS. "BATCH" +$ THEN +$ COMNAME=F$ENVIRONMENT("PROCEDURE") +$ COMPATH=F$PARSE("A.;",COMNAME) - "A.;" +$ SET DEF 'COMPATH' +$ ENDIF +$! +$! Check What Architecture We Are Using. $! -$ IF (F$GETSYI("CPU").GE.128) +$ IF (F$GETSYI("CPU").LT.128) $ THEN $! -$! The Architecture Is AXP. +$! The Architecture Is VAX. $! -$ ARCH := AXP +$ ARCH := VAX $! $! Else... $! $ ELSE $! -$! The Architecture Is VAX. +$! The Architecture Is Alpha, IA64 or whatever comes in the future. $! -$ ARCH := VAX +$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") +$ IF (ARCH .EQS. "") THEN ARCH = "UNK" $! $! End The Architecture Check. $! @@ -87,31 +105,25 @@ $ GOSUB CHECK_OPTIONS $! $! Check To See What We Are To Do. $! -$ IF (BUILDALL.EQS."TRUE") +$ IF (BUILDCOMMAND.EQS."ALL") $ THEN $! -$! Since Nothing Special Was Specified, Do Everything. -$! First, Fix The Unix Softlinks. -$! -$ GOSUB SOFTLINKS -$! -$! Create The "DATE.H" Include File. +$! Start with building the OpenSSL configuration file. $! -$ GOSUB DATE +$ GOSUB CONFIG $! -$! Check To See If We Are Going To Be Building The -$! [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library. +$! Create The "BUILDINF.H" Include File. $! -$ IF (RSAREF.EQS."RSAREF") -$ THEN +$ GOSUB BUILDINF $! -$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library. +$! Fix The Unix Softlinks. $! -$ GOSUB RSAREF +$ GOSUB SOFTLINKS $! -$! End The RSAREF Check. +$ ENDIF $! -$ ENDIF +$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL") +$ THEN $! $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. $! @@ -133,43 +145,259 @@ $! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities. $! $ GOSUB APPS $! +$! Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines. +$! +$ GOSUB ENGINES +$! $! Else... $! $ ELSE $! $! Build Just What The User Wants Us To Build. $! -$ GOSUB 'BUILDALL' +$ GOSUB 'BUILDCOMMAND' +$! $ ENDIF $! $! Time To EXIT. $! -$ EXIT +$ GOTO TIDY +$! +$! Rebuild The "[.CRYPTO.''ARCH']OPENSSLCONF.H" file. +$! +$ CONFIG: +$! +$! Tell The User We Are Creating The [.CRYPTO.]OPENSSLCONF.H File. $! -$! Rebuild The "[.INCLUDE.OPENSSL]DATE.H" file. +$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCH']OPENSSLCONF.H Include File." $! -$ DATE: +$! First, make sure the directory exists. $! -$! Tell The User We Are Creating The [.CRYPTO]DATE.H File. +$ IF F$PARSE("SYS$DISK:[.CRYPTO.''ARCH']") .EQS. "" THEN - + CREATE/DIRECTORY SYS$DISK:[.CRYPTO.'ARCH'] $! -$ WRITE SYS$OUTPUT "Creating [.CRYPTO]DATE.H Include File." +$! Create The [.CRYPTO.]OPENSSLCONF.H File. +$! Make sure it has the right format. $! -$! Create The [.CRYPTO]DATE.H File. +$ OSCH_NAME = "SYS$DISK:[.CRYPTO.''ARCH']OPENSSLCONF.H" +$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME' +RECORD + FORMAT stream_lf +$ OPEN /APPEND H_FILE 'OSCH_NAME' $! -$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]DATE.H +$! Write The [.CRYPTO.]OPENSSLCONF.H File. +$! +$ WRITE H_FILE "/* This file was automatically built using makevms.com */" +$ WRITE H_FILE "/* and [.CRYPTO.''ARCH']OPENSSLCONF.H_IN */" +$! +$! Write a few macros that indicate how this system was built. +$! +$ WRITE H_FILE "" +$ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS" +$ WRITE H_FILE "# define OPENSSL_SYS_VMS" +$ WRITE H_FILE "#endif" +$ CONFIG_LOGICALS := NO_ASM,NO_RSA,NO_DSA,NO_DH,NO_MD2,NO_MD5,NO_RIPEMD,WHRLPOOL,- + NO_SHA,NO_SHA0,NO_SHA1,NO_DES/NO_MDC2;NO_MDC2,NO_RC2,NO_RC4,NO_RC5,- + NO_IDEA,NO_BF,NO_CAST,NO_CAMELLIA,NO_SEED,NO_HMAC,NO_SSL2 +$ CONFIG_LOG_I = 0 +$ CONFIG_LOG_LOOP: +$ CONFIG_LOG_E1 = F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS) +$ CONFIG_LOG_I = CONFIG_LOG_I + 1 +$ IF CONFIG_LOG_E1 .EQS. "" THEN GOTO CONFIG_LOG_LOOP +$ IF CONFIG_LOG_E1 .EQS. "," THEN GOTO CONFIG_LOG_LOOP_END +$ CONFIG_LOG_E2 = F$EDIT(CONFIG_LOG_E1,"TRIM") +$ CONFIG_LOG_E1 = F$ELEMENT(0,";",CONFIG_LOG_E2) +$ CONFIG_LOG_E2 = F$ELEMENT(1,";",CONFIG_LOG_E2) +$ CONFIG_LOG_E0 = F$ELEMENT(0,"/",CONFIG_LOG_E1) +$ CONFIG_LOG_E1 = F$ELEMENT(1,"/",CONFIG_LOG_E1) +$ IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E0) +$ THEN +$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E0 +$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E0 +$ WRITE H_FILE "#endif" +$ IF CONFIG_LOG_E1 .NES. "/" +$ THEN +$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E1 +$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E1 +$ WRITE H_FILE "#endif" +$ ENDIF +$ ELSE +$ IF CONFIG_LOG_E2 .NES. ";" +$ THEN +$ IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E2) +$ THEN +$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E2 +$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E2 +$ WRITE H_FILE "#endif" +$ ENDIF +$ ENDIF +$ ENDIF +$ GOTO CONFIG_LOG_LOOP +$ CONFIG_LOG_LOOP_END: +$ WRITE H_FILE "#ifndef OPENSSL_NO_STATIC_ENGINE" +$ WRITE H_FILE "# define OPENSSL_NO_STATIC_ENGINE" +$ WRITE H_FILE "#endif" +$ WRITE H_FILE "#ifndef OPENSSL_THREADS" +$ WRITE H_FILE "# define OPENSSL_THREADS" +$ WRITE H_FILE "#endif" +$ WRITE H_FILE "#ifndef OPENSSL_NO_KRB5" +$ WRITE H_FILE "# define OPENSSL_NO_KRB5" +$ WRITE H_FILE "#endif" +$ WRITE H_FILE "" +$! +$! Different tar version may have named the file differently +$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H_IN") .NES. "" +$ THEN +$ TYPE [.CRYPTO]OPENSSLCONF.H_IN /OUTPUT=H_FILE: +$ ELSE +$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF_H.IN") .NES. "" +$ THEN +$ TYPE [.CRYPTO]OPENSSLCONF_H.IN /OUTPUT=H_FILE: +$ ELSE +$ ! For ODS-5 +$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H.IN") .NES. "" +$ THEN +$ TYPE [.CRYPTO]OPENSSLCONF.H.IN /OUTPUT=H_FILE: +$ ELSE +$ WRITE SYS$ERROR "Couldn't find a [.CRYPTO]OPENSSLCONF.H_IN. Exiting!" +$ $STATUS = %X00018294 ! "%RMS-F-FNF, file not found". +$ GOTO TIDY +$ ENDIF +$ ENDIF +$ ENDIF +$ IF ARCH .NES. "VAX" +$ THEN +$! +$! Write the Alpha specific data +$! +$ WRITE H_FILE "#if defined(HEADER_RC4_H)" +$ WRITE H_FILE "#undef RC4_INT" +$ WRITE H_FILE "#define RC4_INT unsigned int" +$ WRITE H_FILE "#undef RC4_CHUNK" +$ WRITE H_FILE "#define RC4_CHUNK unsigned long long" +$ WRITE H_FILE "#endif" +$! +$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)" +$ WRITE H_FILE "#undef DES_LONG" +$ WRITE H_FILE "#define DES_LONG unsigned int" +$ WRITE H_FILE "#undef DES_PTR" +$ WRITE H_FILE "#define DES_PTR" +$ WRITE H_FILE "#undef DES_RISC1" +$ WRITE H_FILE "#undef DES_RISC2" +$ WRITE H_FILE "#define DES_RISC1" +$ WRITE H_FILE "#undef DES_UNROLL" +$ WRITE H_FILE "#define DES_UNROLL" +$ WRITE H_FILE "#endif" +$! +$ WRITE H_FILE "#if defined(HEADER_BN_H)" +$ WRITE H_FILE "#undef BN_LLONG" ! Never define with SIXTY_FOUR_BIT +$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG" +$ WRITE H_FILE "#undef SIXTY_FOUR_BIT" +$ WRITE H_FILE "#define SIXTY_FOUR_BIT" +$ WRITE H_FILE "#undef THIRTY_TWO_BIT" +$ WRITE H_FILE "#undef SIXTEEN_BIT" +$ WRITE H_FILE "#undef EIGHT_BIT" +$ WRITE H_FILE "#endif" +$ +$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" +$! +$! Else... +$! +$ ELSE +$! +$! Write the VAX specific data +$! +$ WRITE H_FILE "#if defined(HEADER_RC4_H)" +$ WRITE H_FILE "#undef RC4_INT" +$ WRITE H_FILE "#define RC4_INT unsigned char" +$ WRITE H_FILE "#undef RC4_CHUNK" +$ WRITE H_FILE "#define RC4_CHUNK unsigned long" +$ WRITE H_FILE "#endif" +$! +$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)" +$ WRITE H_FILE "#undef DES_LONG" +$ WRITE H_FILE "#define DES_LONG unsigned long" +$ WRITE H_FILE "#undef DES_PTR" +$ WRITE H_FILE "#define DES_PTR" +$ WRITE H_FILE "#undef DES_RISC1" +$ WRITE H_FILE "#undef DES_RISC2" +$ WRITE H_FILE "#undef DES_UNROLL" +$ WRITE H_FILE "#endif" +$! +$ WRITE H_FILE "#if defined(HEADER_BN_H)" +$ WRITE H_FILE "#undef BN_LLONG" ! VAX C/DEC C doesn't have long long +$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG" +$ WRITE H_FILE "#undef SIXTY_FOUR_BIT" +$ WRITE H_FILE "#undef THIRTY_TWO_BIT" +$ WRITE H_FILE "#define THIRTY_TWO_BIT" +$ WRITE H_FILE "#undef SIXTEEN_BIT" +$ WRITE H_FILE "#undef EIGHT_BIT" +$ WRITE H_FILE "#endif" +$! +$! Oddly enough, the following symbol is tested in crypto/sha/sha512.c +$! before sha.h gets included (and HEADER_SHA_H defined), so we will not +$! protect this one... +$ WRITE H_FILE "#undef OPENSSL_NO_SHA512" +$ WRITE H_FILE "#define OPENSSL_NO_SHA512" +$! +$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" +$ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" +$! +$! End +$! +$ ENDIF +$! +$! There are many places where this is needed. +$! +$!!! WRITE H_FILE "#define _XOPEN_SOURCE_EXTENDED" +$! +$! Close the [.CRYPTO.]OPENSSLCONF.H file +$! +$ CLOSE H_FILE +$! +$! Purge The [.CRYPTO.]OPENSSLCONF.H file +$! +$ PURGE SYS$DISK:[.CRYPTO.'ARCH']OPENSSLCONF.H +$! +$! That's All, Time To RETURN. +$! +$ RETURN +$! +$! Rebuild The "[.CRYPTO.]BUILDINF.H" file. +$! +$ BUILDINF: +$! +$! Tell The User We Are Creating The [.CRYPTO.]BUILDINF.H File. +$! +$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCH']BUILDINF.H Include File." +$! +$! Create The [.CRYPTO.]BUILDINF.H File. +$! +$ BIH_NAME = "SYS$DISK:[.CRYPTO.''ARCH']BUILDINF.H" +$ CREATE /FDL=SYS$INPUT: 'BIH_NAME' +RECORD + FORMAT stream_lf +$! +$ OPEN /APPEND H_FILE 'bih_name' $! $! Get The Current Date & Time. $! $ TIME = F$TIME() $! -$! Write The [.CRYPTO]DATE.H File. +$! Write The [.CRYPTO.]BUILDINF.H File. $! +$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */" +$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCH' ''VMS_VER'""" $ WRITE H_FILE "#define DATE ""''TIME'"" " $! -$! Close The [.CRYPTO]DATE.H File. +$! Close The [.CRYPTO.]BUILDINF.H File. $! $ CLOSE H_FILE $! +$! Purge The [.CRYPTO.]BUILDINF.H File. +$! +$ PURGE SYS$DISK:[.CRYPTO.'ARCH']BUILDINF.H +$! $! That's All, Time To RETURN. $! $ RETURN @@ -178,11 +406,15 @@ $! Copy a lot of files around. $! $ SOFTLINKS: $! -$! Tell The User We Are Partly Rebuilding The [.TEST] Directory. +$! Tell The User We Are Partly Rebuilding The [.APPS] Directory. $! -$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files." +$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files." $! -$ DELETE SYS$DISK:[.APPS]MD5.C;*,RMD160.C;* +$ DELETE SYS$DISK:[.APPS]MD4.C;*,MD5.C;*,RMD160.C;* +$! +$! Copy MD4.C from [.CRYPTO.MD4] into [.APPS] +$! +$ COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS] $! $! Copy MD5.C from [.CRYPTO.MD5] into [.APPS] $! @@ -200,10 +432,13 @@ $! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete $! All The "C" Files That Are Currently There Now. $! $ DELETE SYS$DISK:[.TEST]*.C;* +$ DELETE SYS$DISK:[.TEST]EVPTESTS.TXT;* $! $! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST] $! $ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST] +$ COPY SYS$DISK:[.CRYPTO.SHA]SHA%%%T.C SYS$DISK:[.TEST] +$ COPY SYS$DISK:[.CRYPTO.EVP]EVPTESTS.TXT SYS$DISK:[.TEST] $! $! Copy all the *TEST.C files from [.SSL...] into [.TEST] $! @@ -220,52 +455,76 @@ $ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN - $! $! Copy All The ".H" Files From The Main Directory. $! -$ EXHEADER := e_os.h,e_os2.h +$ EXHEADER := e_os2.h $ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] $! $! Copy All The ".H" Files From The [.CRYPTO] Directory Tree. $! -$ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,- - DES,RC2,RC4,RC5,IDEA,BF,CAST,- - BN,RSA,DSA,DH,- - BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,- - EVP,ASN1,PEM,X509,X509V3,- - CONF,TXT_DB,PKCS7,PKCS12,COMP -$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h +$ SDIRS := ,- + 'ARCH',- + OBJECTS,- + MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,WHRLPOOL,- + DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,MODES,- + 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_DES := des.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_OBJECTS := objects.h $ EXHEADER_EVP := evp.h -$ EXHEADER_ASN1 := asn1.h,asn1_mac.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 +$ 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 $ $ I = 0 $ LOOP_SDIRS: @@ -275,21 +534,16 @@ $ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END $ tmp = EXHEADER_'D' $ IF D .EQS. "" $ THEN -$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG +$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG $ ELSE -$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG +$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG $ ENDIF $ GOTO LOOP_SDIRS $ LOOP_SDIRS_END: $! -$! Copy All The ".H" Files From The [.RSAREF] Directory. -$! -$ EXHEADER := rsaref.h -$ COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] -$! $! Copy All The ".H" Files From The [.SSL] Directory. $! -$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h +$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h $ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] $! $! Purge all doubles @@ -315,38 +569,17 @@ $ SET DEFAULT SYS$DISK:[.CRYPTO] $! $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. $! -$ @CRYPTO-LIB 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' -$! -$! Go Back To The Main Directory. -$! -$ SET DEFAULT [-] -$! -$! Time To RETURN. -$! -$ RETURN -$! -$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library. -$! -$ RSAREF: -$! -$! Tell The User What We Are Doing. -$! -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library." -$! -$! Go To The [.RSAREF] Directory. -$! -$ SET DEFAULT SYS$DISK:[.RSAREF] +$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" $! -$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library. -$! -$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN' +$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications. +$! +$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'" $! $! Go Back To The Main Directory. $! $ SET DEFAULT [-] $! -$! Time To Return. +$! Time To RETURN. $! $ RETURN $! @@ -365,7 +598,7 @@ $ SET DEFAULT SYS$DISK:[.SSL] $! $! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library. $! -$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' $! $! Go Back To The Main Directory. $! @@ -390,7 +623,7 @@ $ SET DEFAULT SYS$DISK:[.SSL] $! $! Build The [.xxx.EXE.SSL]SSL_TASK.EXE $! -$ @SSL-LIB SSL_TASK 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' $! $! Go Back To The Main Directory. $! @@ -415,7 +648,7 @@ $ SET DEFAULT SYS$DISK:[.TEST] $! $! Build The Test Programs. $! -$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' $! $! Go Back To The Main Directory. $! @@ -440,7 +673,32 @@ $ SET DEFAULT SYS$DISK:[.APPS] $! $! Build The Application Programs. $! -$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$! +$! Go Back To The Main Directory. +$! +$ SET DEFAULT [-] +$! +$! That's All, Time To RETURN. +$! +$ RETURN +$! +$! Build The OpenSSL Application Programs. +$! +$ ENGINES: +$! +$! Tell The User What We Are Doing. +$! +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.ENGINES] Engines." +$! +$! Go To The [.ENGINES] Directory. +$! +$ SET DEFAULT SYS$DISK:[.ENGINES] +$! +$! Build The Application Programs. +$! +$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'" $! $! Go Back To The Main Directory. $! @@ -454,6 +712,16 @@ $! Check The User's Options. $! $ CHECK_OPTIONS: $! +$! Check if there's a "part", and separate it out +$! +$ BUILDPART = F$ELEMENT(1,"/",P1) +$ IF BUILDPART .EQS. "/" +$ THEN +$ BUILDPART = "" +$ ELSE +$ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1) +$ ENDIF +$! $! Check To See If P1 Is Blank. $! $ IF (P1.EQS."ALL") @@ -461,7 +729,7 @@ $ THEN $! $! P1 Is ALL, So Build Everything. $! -$ BUILDALL = "TRUE" +$ BUILDCOMMAND = "ALL" $! $! Else... $! @@ -469,14 +737,16 @@ $ ELSE $! $! Else, Check To See If P1 Has A Valid Arguement. $! -$ IF (P1.EQS."DATE").OR.(P1.EQS."SOFTLINKS").OR.(P1.EQS."CRYPTO") - - .OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF").OR.(P1.EQS."SSL_TASK") - - .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") +$ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") - + .OR.(P1.EQS."BUILDALL") - + .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") - + .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") - + .OR.(P1.EQS."ENGINES") $ THEN $! $! A Valid Arguement. $! -$ BUILDALL = P1 +$ BUILDCOMMAND = P1 $! $! Else... $! @@ -485,27 +755,36 @@ $! $! Tell The User We Don't Know What They Want. $! $ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" +$ WRITE SYS$OUTPUT "USAGE: @MAKEVMS.COM [Target] [not-used option] [Debug option] " +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL NORSAREF NODEBUG " +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "The Target ",P1," Is Invalid. The Valid Target Options Are:" $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT " ALL : Just Build Everything." -$ WRITE SYS$OUTPUT " DATE : Just build the [.INCLUDE.OPENSSL]DATE.H file." +$ WRITE SYS$OUTPUT " CONFIG : Just build the [.CRYPTO.''ARCH']OPENSSLCONF.H file." +$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO.''ARCH']BUILDINF.H file." $ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links." -$ WRITE SYS$OUTPUT " RSAREF : To Build Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library." +$ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done." $ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library." +$ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The" +$ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library." $ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library." $ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program." $ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs." $ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs." +$ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES" $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" $ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT " AXP : Alpha Architecture." -$ WRITE SYS$OUTPUT " VAX : VAX Architecture." +$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." +$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." +$ WRITE SYS$OUTPUT " VAX : VAX Architecture." $ WRITE SYS$OUTPUT "" $! $! Time To EXIT. $! -$ EXIT +$ GOTO TIDY $! $! End The Valid Argument Check. $! @@ -515,53 +794,6 @@ $! End The P1 Check. $! $ ENDIF $! -$! Check To See If P2 Is Blank. -$! -$ IF (P2.EQS."NORSAREF") -$ THEN -$! -$! P2 Is NORSAREF, So Compile Without RSAREF. -$! -$ RSAREF = "NORSAREF" -$! -$! Else... -$! -$ ELSE -$! -$! Check To See If We Are To Compile Using The RSAREF Library. -$! -$ IF (P2.EQS."RSAREF") -$ THEN -$! -$! Compile With RSAREF Library. -$! -$ RSAREF = "RSAREF" -$! -$! Else... -$! -$ ELSE -$! -$! Tell The User Entered An Invalid Option.. -$! -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT " RSAREF : To Compile With The RSAREF Library." -$ WRITE SYS$OUTPUT " NORSAREF : To Compile With The Regular RSA Library." -$ WRITE SYS$OUTPUT "" -$! -$! Time To EXIT. -$! -$ EXIT -$! -$! End The Valid Arguemnt Check. -$! -$ ENDIF -$! -$! End The P2 Check. -$! -$ ENDIF -$! $! Check To See If P3 Is Blank. $! $ IF (P3.EQS."NODEBUG") @@ -599,7 +831,7 @@ $ WRITE SYS$OUTPUT "" $! $! Time To EXIT. $! -$ EXIT +$ GOTO TIDY $! $! End The Valid Arguement Check. $! @@ -669,7 +901,7 @@ $ ELSE $! $! Check To See If The User Entered A Valid Paramter. $! -$ 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 $! $! Check To See If The User Wanted To Just LINK. @@ -756,7 +988,7 @@ $ WRITE SYS$OUTPUT "" $! $! Time To EXIT. $! -$ EXIT +$ GOTO TIDY $! $! End The Valid Arguement Check. $! @@ -768,7 +1000,8 @@ $ ENDIF $! $! 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" $ THEN $! $! Check to see if SOCKETSHR was chosen @@ -778,7 +1011,7 @@ $ THEN $! $! Set the library to use SOCKETSHR $! -$ TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT" +$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" $! $! Tell the user $! @@ -812,7 +1045,7 @@ $ THEN $! $! Set the library to use UCX. $! -$ TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT" +$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" $! $! Tell the user $! @@ -822,6 +1055,40 @@ $! Done with UCX $! $ ENDIF $! +$! Check to see if TCPIP was chosen +$! +$ IF P5.EQS."TCPIP" +$ THEN +$! +$! Set the library to use TCPIP (post UCX). +$! +$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" +$! +$! Tell the user +$! +$ WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP" +$! +$! Done with TCPIP +$! +$ ENDIF +$! +$! Check to see if NONE was chosen +$! +$ IF P5.EQS."NONE" +$ THEN +$! +$! Do not use a TCPIP library. +$! +$ TCPIP_LIB = "" +$! +$! Tell the user +$! +$ WRITE SYS$OUTPUT "A specific TCPIP library will not be used." +$! +$! Done with NONE. +$! +$ ENDIF +$! $! Set the TCPIP_TYPE symbol $! $ TCPIP_TYPE = P5 @@ -843,16 +1110,28 @@ $ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:" $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." +$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP TCP/IP (post UCX) library." +$ WRITE SYS$OUTPUT " NONE : To not link with a specific TCP/IP library." $ WRITE SYS$OUTPUT "" $! $! Time To EXIT. $! -$ EXIT +$ GOTO TIDY $ ELSE $! +$! If TCPIP is not defined, then hardcode it to make +$! it clear that no TCPIP is desired. +$! +$ IF P5 .EQS. "" +$ THEN +$ TCPIP_LIB = "" +$ TCPIP_TYPE = "NONE" +$ ELSE +$! $! Set the TCPIP_TYPE symbol $! -$ TCPIP_TYPE = P5 +$ TCPIP_TYPE = P5 +$ ENDIF $ ENDIF $! $! Done with TCP/IP libraries @@ -896,3 +1175,8 @@ $! $! Time To RETURN... $! $ RETURN +$! +$ TIDY: +$ SET DEFAULT 'DEF_ORIG' +$ EXIT +$!