X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=makevms.com;h=632f9c80f0563d44d66009e20ab40d3387e7d8b3;hp=30d53848ac77e4c5032e65addfbfac002f4fcf5d;hb=81f169e95c86fe9b2c3a7ba51a85f7a00763a0e7;hpb=7d7d2cbcb02206f3393681f2bce198e11e2e185b diff --git a/makevms.com b/makevms.com index 30d53848ac..632f9c80f0 100755 --- a/makevms.com +++ b/makevms.com @@ -17,10 +17,14 @@ $! $! 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. +$! BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done. $! RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library. $! 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. @@ -47,6 +51,7 @@ $! 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. @@ -60,6 +65,16 @@ $! $! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) $! $! +$! 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 Which Architecture We Are Using. $! $ IF (F$GETSYI("CPU").GE.128) @@ -87,17 +102,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. +$! Start with building the OpenSSL configuration file. +$! +$ GOSUB CONFIG +$! +$! Create The "BUILDINF.H" Include File. +$! +$ GOSUB BUILDINF +$! +$! Fix The Unix Softlinks. $! $ GOSUB SOFTLINKS $! -$! Create The "DATE.H" Include File. +$ ENDIF $! -$ GOSUB DATE +$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL") +$ THEN $! $! Check To See If We Are Going To Be Building The $! [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library. @@ -139,34 +162,145 @@ $ ELSE $! $! Build Just What The User Wants Us To Build. $! -$ GOSUB 'BUILDALL' +$ GOSUB 'BUILDCOMMAND' +$! $ ENDIF $! $! Time To EXIT. $! -$ EXIT +$ EXIT +$! +$! Rebuild The "[.CRYPTO]OPENSSLCONF.H" file. +$! +$ CONFIG: +$! +$! Tell The User We Are Creating The [.CRYPTO]OPENSSLCONF.H File. +$! +$ WRITE SYS$OUTPUT "Creating [.CRYPTO]OPENSSLCONF.H Include File." +$! +$! Create The [.CRYPTO]OPENSSLCONF.H File. +$! +$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]OPENSSLCONF.H +$! +$! Write The [.CRYPTO]OPENSSLCONF.H File. +$! +$ WRITE H_FILE "/* This file was automatically built using makevms.com */" +$ WRITE H_FILE "/* and [.CRYPTO]OPENSSLCONF.H_IN */" +$ +$! 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 +$ WRITE SYS$ERROR "Couldn't find a [.CRYPTO]OPENSSLCONF.H_IN. Exiting!" +$ EXIT 0 +$ ENDIF +$ ENDIF +$! +$ IF ARCH .EQS. "AXP" +$ 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 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" +$! +$! 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 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" +$! +$! End $! -$! Rebuild The "[.INCLUDE.OPENSSL]DATE.H" file. +$ ENDIF +$! +$! Close the [.CRYPTO]OPENSSLCONF.H file +$! +$ CLOSE H_FILE $! -$ DATE: +$! That's All, Time To RETURN. +$! +$ RETURN $! -$! Tell The User We Are Creating The [.CRYPTO]DATE.H File. +$! Rebuild The "[.CRYPTO]BUILDINF.H" file. $! -$ WRITE SYS$OUTPUT "Creating [.CRYPTO]DATE.H Include File." +$ BUILDINF: $! -$! Create The [.CRYPTO]DATE.H File. +$! Tell The User We Are Creating The [.CRYPTO]BUILDINF.H File. $! -$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]DATE.H +$ WRITE SYS$OUTPUT "Creating [.CRYPTO]BUILDINF.H Include File." +$! +$! Create The [.CRYPTO]BUILDINF.H File. +$! +$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]BUILDINF.H $! $! 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""" $ WRITE H_FILE "#define DATE ""''TIME'"" " $! -$! Close The [.CRYPTO]DATE.H File. +$! Close The [.CRYPTO]BUILDINF.H File. $! $ CLOSE H_FILE $! @@ -182,7 +316,11 @@ $! Tell The User We Are Partly Rebuilding The [.TEST] Directory. $! $ WRITE SYS$OUTPUT "Rebuilding The '[.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] $! @@ -220,19 +358,19 @@ $ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN - $! $! Copy All The ".H" Files From The Main Directory. $! -$ EXHEADER := e_os.h +$ EXHEADER := e_os.h,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,- +$ SDIRS := ,MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,- DES,RC2,RC4,RC5,IDEA,BF,CAST,- - BN,RSA,DSA,DH,- + BN,RSA,DSA,DH,DSO,ENGINE,RIJNDAEL,- 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 + EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP +$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h,ebcdic.h,symhacks.h $ EXHEADER_MD2 := md2.h +$ EXHEADER_MD4 := md4.h $ EXHEADER_MD5 := md5.h $ EXHEADER_SHA := sha.h $ EXHEADER_MDC2 := mdc2.h @@ -249,19 +387,22 @@ $ EXHEADER_BN := bn.h $ EXHEADER_RSA := rsa.h $ EXHEADER_DSA := dsa.h $ EXHEADER_DH := dh.h +$ EXHEADER_DSO := dso.h +$ EXHEADER_ENGINE := engine.h +$ EXHEADER_RIJNDAEL := rd_fst.h,rijndael.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_OBJECTS := objects.h,obj_mac.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 @@ -275,21 +416,21 @@ $ 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] +$! 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,kssl.h $ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] $! $! Purge all doubles @@ -315,7 +456,11 @@ $ SET DEFAULT SYS$DISK:[.CRYPTO] $! $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. $! -$ @CRYPTO-LIB 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' +$ @CRYPTO-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" +$! +$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications. +$! +$ @CRYPTO-LIB APPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' $! $! Go Back To The Main Directory. $! @@ -328,6 +473,9 @@ $! $! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library. $! $ RSAREF: +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "RSAref glue library not built, since it's no longer needed" +$ RETURN $! $! Tell The User What We Are Doing. $! @@ -454,6 +602,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 +619,7 @@ $ THEN $! $! P1 Is ALL, So Build Everything. $! -$ BUILDALL = "TRUE" +$ BUILDCOMMAND = "ALL" $! $! Else... $! @@ -469,14 +627,15 @@ $ 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."RSAREF") - + .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") $ THEN $! $! A Valid Arguement. $! -$ BUILDALL = P1 +$ BUILDCOMMAND = P1 $! $! Else... $! @@ -488,10 +647,13 @@ $ WRITE SYS$OUTPUT "" $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid 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]OPENSSLCONF.H file." +$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO]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." @@ -517,6 +679,7 @@ $ ENDIF $! $! Check To See If P2 Is Blank. $! +$ P2 = "NORSAREF" $ IF (P2.EQS."NORSAREF") $ THEN $! @@ -669,7 +832,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.