3 $! Written By: Richard Levitte
6 $! This command file compiles and creates the various engines in form
7 $! of shared images. They are placed in [.xxx.EXE.ENGINES], where "xxx"
8 $! is ALPHA, IA64 or VAX, depending on your hardware.
10 $! P1 if this is ENGINES or ALL, the engines will build, otherwise not.
12 $! P2 DEBUG or NODEBUG to compile with or without debugger information.
16 $! GNUC for GNU C (untested)
18 $! P4 if defined, sets the TCP/IP libraries to use. UCX or TCPIP is
19 $! used by default since most other implementations come with a
20 $! compatibility library. The value must be one of the following:
23 $! SOCKETSHR for SOCKETSHR+NETLIB
24 $! TCPIP for TCPIP (post UCX)
26 $! P5 if defined, tells the compiler not to use special threads.
28 $! P6 if defined, denotes which engines to build. If not defined,
29 $! all available engines are built.
31 $!-----------------------------------------------------------------------------
33 $! Set the names of the engines we want to build
34 $! NOTE: Some might think this list ugly. However, it's made this way to
35 $! reflect the LIBNAMES variable in Makefile as closely as possible,
36 $! thereby making it fairly easy to verify that the lists are the same.
37 $! NOTE: gmp isn't built, as it's mostly a test engine and brings in another
38 $! library that isn't necessarely ported to VMS.
41 $ IF ENGINES .EQS. "," THEN -
42 ENGINES = ",4758cca,aep,atalla,cswift,chil,nuron,sureware,ubsec,padlock,ccgost"
44 $! Set the default TCP/IP library to link against if needed
48 $! Check What Architecture We Are Using.
50 $ IF (F$GETSYI("CPU").LT.128)
53 $! The Architecture Is VAX.
61 $! The Architecture Is Alpha, IA64 or whatever comes in the future.
63 $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
64 $ IF (ARCH .EQS. "") THEN ARCH = "UNK"
66 $! End The Architecture Check.
70 $! Set the goal directories, and creat them if necessary
72 $ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.ENGINES]
73 $ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.ENGINES]
74 $ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR'
75 $ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR'
77 $! Set the goal files, and create them if necessary
79 $ CRYPTO_LIB :=SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
80 $ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB'
82 $! OK, time to check options and initialise
85 $ ACCEPT_PHASE = "ALL,ENGINES"
89 $ OPT_SPECIAL_THREADS = P5
93 $ GOSUB CHECK_OPT_FILE
95 $! Define what goes into each engine. VAX includes a transfer vector.
101 $ ENGINE_ = "engine_vector.mar"
102 $ TV_OBJ_NAME = OBJ_DIR + F$PARSE(ENGINE_,,,"NAME","SYNTAX_ONLY") + ".OBJ"
103 $ TV_OBJ = ",''TV_OBJ_NAME'"
105 $ ENGINE_4758CCA = "e_4758cca"
106 $ ENGINE_aep = "e_aep"
107 $ ENGINE_atalla = "e_atalla"
108 $ ENGINE_cswift = "e_cswift"
109 $ ENGINE_chil = "e_chil"
110 $ ENGINE_nuron = "e_nuron"
111 $ ENGINE_sureware = "e_sureware"
112 $ ENGINE_ubsec = "e_ubsec"
113 $ ENGINE_ubsec = "e_padlock"
115 $ ENGINE_ccgost_SUBDIR = "ccgost"
116 $ ENGINE_ccgost = "e_gost_err,gost2001_keyx,gost2001,gost89,gost94_keyx,"+ -
117 "gost_ameth,gost_asn1,gost_crypt,gost_ctl,gost_eng,"+ -
118 "gosthash,gost_keywrap,gost_md,gost_params,gost_pmeth,"+ -
121 $! Define which programs need to be linked with a TCP/IP library
123 $ TCPIP_ENGINES = ",,"
124 $ IF COMPILER .EQS. "VAXC" THEN -
127 $! Set up two loops, one that keeps track of the engines,
128 $! and one that keeps track of all the files going into
129 $! the current engine.
131 $! Here's the start of the engine loop.
136 $! Extract the current engine name, and if we've reached the end, stop
138 $ ENGINE_NAME = F$ELEMENT(ENGINE_COUNTER,",",ENGINES)
139 $ IF (ENGINE_NAME.EQS.",") THEN GOTO ENGINE_DONE
141 $ ENGINE_COUNTER = ENGINE_COUNTER + 1
143 $! Set up the engine library names.
145 $ LIB_ENGINE = "ENGINE_" + ENGINE_NAME
147 $! Check if the library module name actually is defined
149 $ IF F$TYPE('LIB_ENGINE') .EQS. ""
152 $ WRITE SYS$ERROR "The module ",ENGINE_NAME," does not exist. Continuing..."
159 $ IF ENGINE_NAME .NES. ""
161 $ WRITE SYS$OUTPUT "Compiling The ",ENGINE_NAME," Library Files. (",BUILDALL,")"
163 $ WRITE SYS$OUTPUT "Compiling Support Files. (",BUILDALL,")"
166 $! Create a .OPT file for the object files
168 $ OPEN/WRITE OBJECTS 'EXE_DIR''ENGINE_NAME'.OPT
170 $! Here's the start of per-engine module loop.
175 $! Extract the file name from the file list, and if we've reached the end, stop
177 $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_ENGINE')
178 $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
180 $ FILE_COUNTER = FILE_COUNTER + 1
182 $ IF FILE_NAME .EQS. "" THEN GOTO FILE_NEXT
184 $! Set up the source and object reference
186 $ IF F$TYPE('LIB_ENGINE'_SUBDIR) .EQS. ""
188 $ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[].C",,,"SYNTAX_ONLY")
190 $ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[."+'LIB_ENGINE'_SUBDIR+"].C",,,"SYNTAX_ONLY")
192 $ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ"
194 $! If we get some problem, we just go on trying to build the next module.
195 $ ON WARNING THEN GOTO FILE_NEXT
197 $! Check if the module we want to compile is actually there.
199 $ IF F$SEARCH(SOURCE_FILE) .EQS. ""
201 $ WRITE SYS$OUTPUT ""
202 $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
203 $ WRITE SYS$OUTPUT ""
209 $ WRITE SYS$OUTPUT " ",FILE_NAME,""
211 $! Do the dirty work.
213 $ ON ERROR THEN GOTO FILE_NEXT
214 $ IF FILE_NAME - ".MAR" .NES. FILE_NAME
216 $ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
218 $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
220 $ WRITE OBJECTS OBJECT_FILE
229 $! Do not link the support files.
231 $ IF ENGINE_NAME .EQS. "" THEN GOTO ENGINE_NEXT
233 $! Do not link the support files.
235 $ IF ENGINE_NAME .EQS. "" THEN GOTO ENGINE_NEXT
237 $! Now, there are two ways to handle this. We can either build
238 $! shareable images or stick the engine object file into libcrypto.
239 $! For now, the latter is NOT supported.
241 $!!!!! LIBRARY/REPLACE 'CRYPTO_LIB' 'OBJECT_FILE'
243 $! For shareable libraries, we need to do things a little differently
244 $! depending on if we link with a TCP/IP library or not.
246 $ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT
247 $ IF TCPIP_LIB .NES. ""
249 $ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
250 'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', -
251 'CRYPTO_LIB'/LIBRARY, -
252 'ENGINE_OPT'/OPTION,'TCPIP_LIB','OPT_FILE'/OPTION
254 $ LINK/'DEBUGGER'/'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE -
255 'EXE_DIR''ENGINE_NAME'.OPT/OPTION'TV_OBJ', -
256 'CRYPTO_LIB'/LIBRARY, -
257 'ENGINE_OPT'/OPTION,'OPT_FILE'/OPTION
268 $ WRITE SYS$OUTPUT "All Done..."
273 $! Check For The Link Option FIle.
277 $! Check To See If We Need To Make A VAX C Option File.
279 $ IF (COMPILER.EQS."VAXC")
282 $! Check To See If We Already Have A VAX C Linker Option File.
284 $ IF (F$SEARCH(OPT_FILE).EQS."")
287 $! We Need A VAX C Linker Option File.
292 ! Default System Options File To Link Agianst
293 ! The Sharable VAX C Runtime Library.
295 SYS$SHARE:VAXCRTL.EXE/SHARE
298 $! End The Option File Check.
302 $! End The VAXC Check.
306 $! Check To See If We Need A GNU C Option File.
308 $ IF (COMPILER.EQS."GNUC")
311 $! Check To See If We Already Have A GNU C Linker Option File.
313 $ IF (F$SEARCH(OPT_FILE).EQS."")
316 $! We Need A GNU C Linker Option File.
321 ! Default System Options File To Link Agianst
322 ! The Sharable C Runtime Library.
324 GNU_CC:[000000]GCCLIB/LIBRARY
325 SYS$SHARE:VAXCRTL/SHARE
328 $! End The Option File Check.
332 $! End The GNU C Check.
336 $! Check To See If We Need A DEC C Option File.
338 $ IF (COMPILER.EQS."DECC")
341 $! Check To See If We Already Have A DEC C Linker Option File.
343 $ IF (F$SEARCH(OPT_FILE).EQS."")
346 $! Figure Out If We Need A non-VAX Or A VAX Linker Option File.
348 $ IF ARCH .EQS. "VAX"
351 $! We Need A DEC C Linker Option File For VAX.
356 ! Default System Options File To Link Agianst
357 ! The Sharable DEC C Runtime Library.
359 SYS$SHARE:DECC$SHR.EXE/SHARE
366 $! Create The non-VAX Linker Option File.
371 ! Default System Options File For non-VAX To Link Agianst
372 ! The Sharable C Runtime Library.
374 SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
375 SYS$SHARE:CMA$OPEN_RTL/SHARE
378 $! End The DEC C Option File Check.
382 $! End The Option File Search.
386 $! End The DEC C Check.
390 $! Tell The User What Linker Option File We Are Using.
392 $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
398 $! Check The User's Options.
402 $! Check To See If OPT_PHASE Is Blank.
404 $ IF (OPT_PHASE.EQS."ALL")
407 $! OPT_PHASE Is Blank, So Build Everything.
415 $! Else, Check To See If OPT_PHASE Has A Valid Arguement.
417 $ IF ("," + ACCEPT_PHASE + ",") - ("," + OPT_PHASE + ",") -
418 .NES. ("," + ACCEPT_PHASE + ",")
421 $! A Valid Arguement.
423 $ BUILDALL = OPT_PHASE
429 $! Tell The User We Don't Know What They Want.
431 $ WRITE SYS$OUTPUT ""
432 $ WRITE SYS$OUTPUT "The option ",OPT_PHASE," is invalid. The valid options are:"
433 $ WRITE SYS$OUTPUT ""
434 $ IF ("," + ACCEPT_PHASE + ",") - ",ALL," -
435 .NES. ("," + ACCEPT_PHASE + ",") THEN -
436 WRITE SYS$OUTPUT " ALL : just build everything."
437 $ IF ("," + ACCEPT_PHASE + ",") - ",ENGINES," -
438 .NES. ("," + ACCEPT_PHASE + ",") THEN -
439 WRITE SYS$OUTPUT " ENGINES : to compile just the [.xxx.EXE.ENGINES]*.EXE hareable images."
440 $ WRITE SYS$OUTPUT ""
441 $ WRITE SYS$OUTPUT " where 'xxx' stands for:"
442 $ WRITE SYS$OUTPUT ""
443 $ WRITE SYS$OUTPUT " ALPHA : Alpha architecture."
444 $ WRITE SYS$OUTPUT " IA64 : IA64 architecture."
445 $ WRITE SYS$OUTPUT " VAX : VAX architecture."
446 $ WRITE SYS$OUTPUT ""
452 $! End The Valid Arguement Check.
456 $! End The OPT_PHASE Check.
460 $! Check To See If OPT_DEBUG Is Blank.
462 $ IF (OPT_DEBUG.EQS."NODEBUG")
465 $! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information.
467 $ DEBUGGER = "NODEBUG"
468 $ TRACEBACK = "NOTRACEBACK"
469 $ GCC_OPTIMIZE = "OPTIMIZE"
470 $ CC_OPTIMIZE = "OPTIMIZE"
471 $ MACRO_OPTIMIZE = "OPTIMIZE"
472 $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
473 $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
476 $! Check To See If We Are To Compile With Debugger Information.
478 $ IF (OPT_DEBUG.EQS."DEBUG")
481 $! Compile With Debugger Information.
484 $ TRACEBACK = "TRACEBACK"
485 $ GCC_OPTIMIZE = "NOOPTIMIZE"
486 $ CC_OPTIMIZE = "NOOPTIMIZE"
487 $ MACRO_OPTIMIZE = "NOOPTIMIZE"
488 $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
489 $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
492 $! They Entered An Invalid Option..
494 $ WRITE SYS$OUTPUT ""
495 $ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:"
496 $ WRITE SYS$OUTPUT ""
497 $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
498 $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
499 $ WRITE SYS$OUTPUT ""
505 $! End The Valid Arguement Check.
509 $! End The OPT_DEBUG Check.
513 $! Special Threads For OpenVMS v7.1 Or Later
515 $! Written By: Richard Levitte
516 $! richard@levitte.org
519 $! Check To See If We Have A Option For OPT_SPECIAL_THREADS.
521 $ IF (OPT_SPECIAL_THREADS.EQS."")
524 $! Get The Version Of VMS We Are Using.
527 $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
528 $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
530 $! Check To See If The VMS Version Is v7.1 Or Later.
535 $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
537 $ ISSEVEN := ,PTHREAD_USE_D4
539 $! End The VMS Version Check.
543 $! End The OPT_SPECIAL_THREADS Check.
547 $! Check To See If OPT_COMPILER Is Blank.
549 $ IF (OPT_COMPILER.EQS."")
552 $! O.K., The User Didn't Specify A Compiler, Let's Try To
553 $! Find Out Which One To Use.
555 $! Check To See If We Have GNU C.
557 $ IF (F$TRNLNM("GNU_CC").NES."")
560 $! Looks Like GNUC, Set To Use GNUC.
562 $ OPT_COMPILER = "GNUC"
568 $! Check To See If We Have VAXC Or DECC.
570 $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
573 $! Looks Like DECC, Set To Use DECC.
575 $ OPT_COMPILER = "DECC"
581 $! Looks Like VAXC, Set To Use VAXC.
583 $ OPT_COMPILER = "VAXC"
585 $! End The VAXC Compiler Check.
589 $! End The DECC & VAXC Compiler Check.
593 $! End The Compiler Check.
597 $! Check To See If We Have A Option For OPT_TCPIP_LIB.
599 $ IF (OPT_TCPIP_LIB.EQS."")
602 $! Find out what socket library we have available
604 $ IF F$PARSE("SOCKETSHR:") .NES. ""
607 $! We have SOCKETSHR, and it is my opinion that it's the best to use.
609 $ OPT_TCPIP_LIB = "SOCKETSHR"
613 $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
615 $! Else, let's look for something else
619 $! Like UCX (the reason to do this before Multinet is that the UCX
620 $! emulation is easier to use...)
622 $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
623 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
624 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
627 $! Last resort: a UCX or UCX-compatible library
629 $ OPT_TCPIP_LIB = "UCX"
633 $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
641 $! Set Up Initial CC Definitions, Possibly With User Ones
643 $ CCDEFS = "TCPIP_TYPE_''OPT_TCPIP_LIB',DSO_VMS"
644 $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
646 $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
647 $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX"
648 $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
649 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
651 $! Check To See If The User Entered A Valid Paramter.
653 $ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC")
656 $! Check To See If The User Wanted DECC.
658 $ IF (OPT_COMPILER.EQS."DECC")
661 $! Looks Like DECC, Set To Use DECC.
665 $! Tell The User We Are Using DECC.
667 $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
672 $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
674 $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
675 "/NOLIST/PREFIX=ALL" + -
676 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS])" + -
679 $! Define The Linker Options File Name.
681 $ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT"
687 $! Check To See If We Are To Use VAXC.
689 $ IF (OPT_COMPILER.EQS."VAXC")
692 $! Looks Like VAXC, Set To Use VAXC.
696 $! Tell The User We Are Using VAX C.
698 $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
700 $! Compile Using VAXC.
705 $ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
708 $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
709 $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
710 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
712 $ CCDEFS = """VAXC""," + CCDEFS
714 $! Define <sys> As SYS$COMMON:[SYSLIB]
716 $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
718 $! Define The Linker Options File Name.
720 $ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT"
726 $! Check To See If We Are To Use GNU C.
728 $ IF (OPT_COMPILER.EQS."GNUC")
731 $! Looks Like GNUC, Set To Use GNUC.
735 $! Tell The User We Are Using GNUC.
737 $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
741 $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
742 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
745 $! Define The Linker Options File Name.
747 $ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT"
749 $! End The GNU C Check.
753 $! Set up default defines
755 $ CCDEFS = """FLAT_INC=1""," + CCDEFS
757 $! Finish up the definition of CC.
759 $ IF COMPILER .EQS. "DECC"
761 $ IF CCDISABLEWARNINGS .NES. ""
763 $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
766 $ CCDISABLEWARNINGS = ""
768 $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
770 $! Show user the result
772 $ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC
774 $! Else The User Entered An Invalid Arguement.
778 $! Tell The User We Don't Know What They Want.
780 $ WRITE SYS$OUTPUT ""
781 $ WRITE SYS$OUTPUT "The Option ",OPT_COMPILER," Is Invalid. The Valid Options Are:"
782 $ WRITE SYS$OUTPUT ""
783 $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
784 $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
785 $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
786 $ WRITE SYS$OUTPUT ""
792 $! End The Valid Arguement Check.
796 $! Build a MACRO command for the architecture at hand
798 $ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'"
799 $ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
801 $! Show user the result
803 $ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO
805 $! Time to check the contents, and to make sure we get the correct library.
807 $ IF OPT_TCPIP_LIB.EQS."SOCKETSHR" .OR. OPT_TCPIP_LIB.EQS."MULTINET" -
808 .OR. OPT_TCPIP_LIB.EQS."UCX" .OR. OPT_TCPIP_LIB.EQS."TCPIP" -
809 .OR. OPT_TCPIP_LIB.EQS."NONE"
812 $! Check to see if SOCKETSHR was chosen
814 $ IF OPT_TCPIP_LIB.EQS."SOCKETSHR"
817 $! Set the library to use SOCKETSHR
819 $ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
821 $! Done with SOCKETSHR
825 $! Check to see if MULTINET was chosen
827 $ IF OPT_TCPIP_LIB.EQS."MULTINET"
830 $! Set the library to use UCX emulation.
832 $ OPT_TCPIP_LIB = "UCX"
834 $! Done with MULTINET
838 $! Check to see if UCX was chosen
840 $ IF OPT_TCPIP_LIB.EQS."UCX"
843 $! Set the library to use UCX.
845 $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
846 $ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
848 $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
850 $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
851 TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
858 $! Check to see if TCPIP was chosen
860 $ IF OPT_TCPIP_LIB.EQS."TCPIP"
863 $! Set the library to use TCPIP (post UCX).
865 $ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
871 $! Check to see if NONE was chosen
873 $ IF OPT_TCPIP_LIB.EQS."NONE"
876 $! Do not use a TCPIP library.
886 $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
888 $! Else The User Entered An Invalid Arguement.
892 $! Tell The User We Don't Know What They Want.
894 $ WRITE SYS$OUTPUT ""
895 $ WRITE SYS$OUTPUT "The Option ",OPT_TCPIP_LIB," Is Invalid. The Valid Options Are:"
896 $ WRITE SYS$OUTPUT ""
897 $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
898 $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
899 $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
900 $ WRITE SYS$OUTPUT ""
906 $! Done with TCP/IP libraries
916 $! Save old value of the logical name OPENSSL
918 $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
920 $! Save directory information
922 $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
923 $ __HERE = F$EDIT(__HERE,"UPCASE")
924 $ __TOP = __HERE - "ENGINES]"
925 $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
927 $! Set up the logical name OPENSSL to point at the include directory
929 $ DEFINE OPENSSL/NOLOG '__INCLUDE'
937 $! Restore the logical name OPENSSL if it had a value
939 $ IF __SAVE_OPENSSL .EQS. ""
943 $ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'