28
28
$! P6 if defined, denotes which engines to build. If not defined,
29
29
$! all available engines are built.
31
$! For 64 bit architectures (Alpha and IA64), specify the pointer size as P7.
32
$! For 32 bit architectures (VAX), P7 is ignored.
33
$! Currently supported values are:
35
$! 32 To ge a library compiled with /POINTER_SIZE=32
36
$! 64 To ge a library compiled with /POINTER_SIZE=64
31
$! P7, if defined, specifies the C pointer size. Ignored on VAX.
32
$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
33
$! Supported values are:
35
$! "" Compile with default (/NOPOINTER_SIZE)
36
$! 32 Compile with /POINTER_SIZE=32 (SHORT)
37
$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
38
$! (Automatically select ARGV if compiler supports it.)
39
$! 64= Compile with /POINTER_SIZE=64 (LONG).
40
$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
42
$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
43
$! libz.olb) may be found. Optionally, a non-default object library
44
$! name may be included ("dev:[dir]libz_64.olb", for example).
38
46
$!-----------------------------------------------------------------------------
50
$ proc = f$environment( "procedure")
51
$ write sys$output "@@@ "+ -
52
f$parse( proc, , , "name")+ f$parse( proc, , , "type")
54
$ on control_c then goto exit
40
56
$! Set the default TCP/IP library to link against if needed
44
61
$! Check What Architecture We Are Using.
79
101
$ IF (ARCH .NES. "VAX") THEN -
80
102
ENGINES = ENGINES+ ",ccgost"
82
$! Set the goal directories, and create them if necessary
84
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.ENGINES]
85
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.ENGINES]
86
$ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
87
$ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
89
$! Set the goal files, and create them if necessary
91
$ CRYPTO_LIB :=SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO'LIB32'.OLB
92
$ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
94
$! OK, time to check options and initialise
97
107
$ ACCEPT_PHASE = "ALL,ENGINES"
100
110
$ OPT_TCPIP_LIB = P4
101
111
$ OPT_SPECIAL_THREADS = P5
102
112
$ OPT_POINTER_SIZE = P7
104
115
$ GOSUB CHECK_OPTIONS
117
$! Set the goal directories, and create them if necessary
119
$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.ENGINES]
120
$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.ENGINES]
121
$ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
122
$ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
124
$! Set the goal files, and create them if necessary
126
$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
127
$ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
129
$! Specify the destination directory in any /MAP option.
131
$ if (LINKMAP .eqs. "MAP")
133
$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
136
$! Add the location prefix to the linker options file name.
138
$ if (OPT_FILE .nes. "")
140
$ OPT_FILE = EXE_DIR+ OPT_FILE
105
145
$ GOSUB INITIALISE
106
146
$ GOSUB CHECK_OPT_FILE
265
305
$! depending on if we link with a TCP/IP library or not.
267
307
$ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT
268
$ IF TCPIP_LIB .NES. ""
270
$ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
271
'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', -
272
'CRYPTO_LIB'/LIBRARY, -
273
'ENGINE_OPT'/OPTION,'TCPIP_LIB','OPT_FILE'/OPTION
275
$ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
276
'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', -
277
'CRYPTO_LIB'/LIBRARY, -
278
'ENGINE_OPT'/OPTION,'OPT_FILE'/OPTION
308
$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
309
'EXE_DIR''ENGINE_NAME'.OPT /OPTIONS -
311
'CRYPTO_LIB' /LIBRARY, -
312
'ENGINE_OPT' /OPTIONS -
461
497
$ WRITE SYS$OUTPUT ""
462
498
$ WRITE SYS$OUTPUT " where 'xxx' stands for:"
463
499
$ WRITE SYS$OUTPUT ""
464
$ WRITE SYS$OUTPUT " ALPHA : Alpha architecture."
465
$ WRITE SYS$OUTPUT " IA64 : IA64 architecture."
500
$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha architecture."
501
$ WRITE SYS$OUTPUT " IA64[64] : IA64 architecture."
466
502
$ WRITE SYS$OUTPUT " VAX : VAX architecture."
467
503
$ WRITE SYS$OUTPUT ""
483
519
$ IF (OPT_DEBUG.EQS."NODEBUG")
486
$! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
522
$! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
488
$ DEBUGGER = "NODEBUG"
489
$ TRACEBACK = "NOTRACEBACK"
490
$ GCC_OPTIMIZE = "OPTIMIZE"
491
$ CC_OPTIMIZE = "OPTIMIZE"
492
$ MACRO_OPTIMIZE = "OPTIMIZE"
493
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
494
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
524
$ DEBUGGER = "NODEBUG"
526
$ TRACEBACK = "NOTRACEBACK"
527
$ GCC_OPTIMIZE = "OPTIMIZE"
528
$ CC_OPTIMIZE = "OPTIMIZE"
529
$ MACRO_OPTIMIZE = "OPTIMIZE"
530
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
531
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
497
534
$! Check To See If We Are To Compile With Debugger Information.
510
548
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
513
$! They Entered An Invalid Option..
551
$! They Entered An Invalid Option.
515
553
$ WRITE SYS$OUTPUT ""
516
554
$ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:"
568
$! Check To See If OPT_POINTER_SIZE Is Blank.
606
$! Check OPT_POINTER_SIZE (P7).
570
$ IF (OPT_POINTER_SIZE.EQS."")
608
$ IF (OPT_POINTER_SIZE .NES. "") .AND. (ARCH .NES. "VAX")
575
$! Check is OPT_POINTER_SIZE Is Valid
577
$ IF (OPT_POINTER_SIZE.EQS."32")
611
$ IF (OPT_POINTER_SIZE .EQS. "32")
579
$ POINTER_SIZE = "/POINTER_SIZE=32"
580
$ IF ARCH .EQS. "VAX"
613
$ POINTER_SIZE = " /POINTER_SIZE=32"
587
$ IF (OPT_POINTER_SIZE.EQS."64")
615
$ POINTER_SIZE = F$EDIT( OPT_POINTER_SIZE, "COLLAPSE, UPCASE")
616
$ IF ((POINTER_SIZE .EQS. "64") .OR. -
617
(POINTER_SIZE .EQS. "64=") .OR. -
618
(POINTER_SIZE .EQS. "64=ARGV"))
620
$ ARCHD = ARCH+ "_64"
590
$ IF ARCH .EQS. "VAX"
592
$ POINTER_SIZE = "/POINTER_SIZE=32"
594
$ POINTER_SIZE = "/POINTER_SIZE=64"
622
$ POINTER_SIZE = " /POINTER_SIZE=64"
598
$! Tell The User Entered An Invalid Option..
600
$ WRITE SYS$OUTPUT ""
601
$ WRITE SYS$OUTPUT "The Option ",OPT_POINTER_SIZE," Is Invalid. The Valid Options Are:"
602
$ WRITE SYS$OUTPUT ""
603
$ WRITE SYS$OUTPUT " 32 : Compile with 32 bit pointer size"
604
$ WRITE SYS$OUTPUT " 64 : Compile with 64 bit pointer size"
605
$ WRITE SYS$OUTPUT ""
625
$! Tell The User Entered An Invalid Option.
627
$ WRITE SYS$OUTPUT ""
628
$ WRITE SYS$OUTPUT "The Option ", OPT_POINTER_SIZE, -
629
" Is Invalid. The Valid Options Are:"
630
$ WRITE SYS$OUTPUT ""
632
" """" : Compile with default (short) pointers."
634
" 32 : Compile with 32-bit (short) pointers."
636
" 64 : Compile with 64-bit (long) pointers (auto ARGV)."
638
" 64= : Compile with 64-bit (long) pointers (no ARGV)."
640
" 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
641
$ WRITE SYS$OUTPUT ""
611
$! End The Valid Arguement Check.
616
651
$! End The OPT_POINTER_SIZE Check.
655
$! Set basic C compiler /INCLUDE directories.
657
$ CC_INCLUDES = "SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS]"
620
659
$! Check To See If OPT_COMPILER Is Blank.
622
661
$ IF (OPT_COMPILER.EQS."")
717
756
$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
718
757
$ CCEXTRAFLAGS = ""
719
758
$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
720
$ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX"
759
$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX"
721
760
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
722
761
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
724
$! Check To See If The User Entered A Valid Paramter.
763
$! Check To See If We Have A ZLIB Option.
768
$! Check for expected ZLIB files.
771
$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
772
$ if (f$search( file1) .eqs. "")
774
$ WRITE SYS$OUTPUT ""
775
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
776
$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
779
$ file1 = f$parse( "A.;", ZLIB)- "A.;"
781
$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
782
$ if (f$search( file2) .eqs. "")
786
$ WRITE SYS$OUTPUT ""
787
$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
789
$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
790
$ WRITE SYS$OUTPUT ""
795
$ WRITE SYS$OUTPUT ""
803
$ CCDEFS = """ZLIB=1"", "+ CCDEFS
804
$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
805
$ ZLIB_LIB = ", ''file2' /library"
809
$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
811
$! End The ZLIB Check.
815
$! Check To See If The User Entered A Valid Parameter.
726
817
$ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC")
745
836
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
746
837
THEN CC = "CC/DECC"
747
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89''POINTER_SIZE'" + -
748
"/NOLIST/PREFIX=ALL" + -
749
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS])" + -
838
$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
839
"''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
840
" /INCLUDE=(''CC_INCLUDES') " + -
752
843
$! Define The Linker Options File Name.
754
$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT"
845
$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
756
847
$! End DECC Check.
781
872
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
782
873
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
783
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.VENDOR_DEFNS])" + -
874
"/INCLUDE=(''CC_INCLUDES')" + -
785
876
$ CCDEFS = """VAXC""," + CCDEFS
814
905
$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
815
"/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.VENDOR_DEFNS])" + -
906
"/INCLUDE=(''CC_INCLUDES')" + -
818
909
$! Define The Linker Options File Name.
820
$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT"
911
$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
822
913
$! End The GNU C Check.
834
925
$ IF CCDISABLEWARNINGS .NES. ""
836
$ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
927
$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
839
930
$ CCDISABLEWARNINGS = ""
841
$ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
932
$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
843
934
$! Show user the result
869
960
$! Build a MACRO command for the architecture at hand
871
$ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'"
872
$ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
962
$ IF ARCH .EQS. "VAX"
964
$ MACRO = "MACRO/''DEBUGGER'"
966
$ MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
874
969
$! Show user the result
916
1011
$! Set the library to use UCX.
918
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
1013
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
919
1014
$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
921
$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
1016
$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
923
1018
$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
924
TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
1019
TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
927
1022
$! Done with UCX
959
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
1054
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
961
1056
$! Else The User Entered An Invalid Argument.
1010
$! Restore the logical name OPENSSL if it had a value
1012
$ IF __SAVE_OPENSSL .EQS. ""
1016
$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
1105
$! Restore the saved logical name OPENSSL, if it had a value.
1107
$ if (f$type( __SAVE_OPENSSL) .nes. "")
1109
$ IF __SAVE_OPENSSL .EQS. ""
1113
$ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
1117
$! Close any open files.
1119
$ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -