Sync usage with man page.
[netbsd-mini2440.git] / crypto / external / bsd / openssl / dist / engines / makeengines.com
blobe1400549119e443e7d89f03dbeec7ed8f5c738ef
1 $!
2 $!  MAKEENGINES.COM
3 $!  Written By:  Richard Levitte
4 $!               richard@levitte.org
5 $!
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.
9 $!
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.
14 $!  P3  VAXC            for VAX C
15 $!      DECC            for DEC C
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:
22 $!      UCX             for UCX
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.
40 $ ENGINES = "," + P6
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
46 $ TCPIP_LIB = ""
48 $! Check What Architecture We Are Using.
50 $ IF (F$GETSYI("CPU").LT.128)
51 $ THEN
53 $!  The Architecture Is VAX.
55 $   ARCH := VAX
57 $! Else...
59 $ ELSE
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.
68 $ ENDIF
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
84 $ OPT_PHASE = P1
85 $ ACCEPT_PHASE = "ALL,ENGINES"
86 $ OPT_DEBUG = P2
87 $ OPT_COMPILER = P3
88 $ OPT_TCPIP_LIB = P4
89 $ OPT_SPECIAL_THREADS = P5
91 $ GOSUB CHECK_OPTIONS
92 $ GOSUB INITIALISE
93 $ GOSUB CHECK_OPT_FILE
95 $! Define what goes into each engine.  VAX includes a transfer vector.
97 $ ENGINE_ = ""
98 $ TV_OBJ = ""
99 $ IF ARCH .EQS. "VAX"
100 $ THEN
101 $   ENGINE_ = "engine_vector.mar"
102 $   TV_OBJ_NAME = OBJ_DIR + F$PARSE(ENGINE_,,,"NAME","SYNTAX_ONLY") + ".OBJ"
103 $   TV_OBJ = ",''TV_OBJ_NAME'"
104 $ ENDIF
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,"+ -
119                   "gost_sign"
121 $! Define which programs need to be linked with a TCP/IP library
123 $ TCPIP_ENGINES = ",,"
124 $ IF COMPILER .EQS. "VAXC" THEN -
125      TCPIP_ENGINES = ",,"
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.
133 $ ENGINE_COUNTER = 0
134 $ ENGINE_NEXT:
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. ""
150 $ THEN
151 $   WRITE SYS$ERROR ""
152 $   WRITE SYS$ERROR "The module ",ENGINE_NAME," does not exist.  Continuing..."
153 $   WRITE SYS$ERROR ""
154 $   GOTO ENGINE_NEXT
155 $ ENDIF
157 $! Talk to the user
159 $ IF ENGINE_NAME .NES. ""
160 $ THEN
161 $   WRITE SYS$OUTPUT "Compiling The ",ENGINE_NAME," Library Files. (",BUILDALL,")"
162 $ ELSE
163 $   WRITE SYS$OUTPUT "Compiling Support Files. (",BUILDALL,")"
164 $ ENDIF
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.
172 $ FILE_COUNTER = 0
173 $ FILE_NEXT:
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. ""
187 $ THEN
188 $     SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[].C",,,"SYNTAX_ONLY")
189 $ ELSE
190 $     SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[."+'LIB_ENGINE'_SUBDIR+"].C",,,"SYNTAX_ONLY")
191 $ ENDIF
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. ""
200 $ THEN
201 $   WRITE SYS$OUTPUT ""
202 $   WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
203 $   WRITE SYS$OUTPUT ""
204 $   GOTO EXIT
205 $ ENDIF
207 $! Talk to the user.
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
215 $ THEN
216 $   MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
217 $ ELSE
218 $   CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
219 $ ENDIF
220 $ WRITE OBJECTS OBJECT_FILE
222 $! Next file
224 $ GOTO FILE_NEXT
226 $ FILE_DONE:
227 $ CLOSE OBJECTS
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. ""
248 $ THEN
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
253 $ ELSE
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
258 $ ENDIF
260 $! Next engine
262 $ GOTO ENGINE_NEXT
264 $ ENGINE_DONE:
266 $! Talk to the user
268 $ WRITE SYS$OUTPUT "All Done..."
269 $ EXIT:
270 $ GOSUB CLEANUP
271 $ EXIT
273 $! Check For The Link Option FIle.
275 $ CHECK_OPT_FILE:
277 $! Check To See If We Need To Make A VAX C Option File.
279 $ IF (COMPILER.EQS."VAXC")
280 $ THEN
282 $!  Check To See If We Already Have A VAX C Linker Option File.
284 $   IF (F$SEARCH(OPT_FILE).EQS."")
285 $   THEN
287 $!    We Need A VAX C Linker Option File.
289 $     CREATE 'OPT_FILE'
290 $DECK
292 ! Default System Options File To Link Agianst 
293 ! The Sharable VAX C Runtime Library.
295 SYS$SHARE:VAXCRTL.EXE/SHARE
296 $EOD
298 $!  End The Option File Check.
300 $   ENDIF
302 $! End The VAXC Check.
304 $ ENDIF
306 $! Check To See If We Need A GNU C Option File.
308 $ IF (COMPILER.EQS."GNUC")
309 $ THEN
311 $!  Check To See If We Already Have A GNU C Linker Option File.
313 $   IF (F$SEARCH(OPT_FILE).EQS."")
314 $   THEN
316 $!    We Need A GNU C Linker Option File.
318 $     CREATE 'OPT_FILE'
319 $DECK
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
326 $EOD
328 $!  End The Option File Check.
330 $   ENDIF
332 $! End The GNU C Check.
334 $ ENDIF
336 $! Check To See If We Need A DEC C Option File.
338 $ IF (COMPILER.EQS."DECC")
339 $ THEN
341 $!  Check To See If We Already Have A DEC C Linker Option File.
343 $   IF (F$SEARCH(OPT_FILE).EQS."")
344 $   THEN
346 $!    Figure Out If We Need A non-VAX Or A VAX Linker Option File.
348 $     IF ARCH .EQS. "VAX"
349 $     THEN
351 $!      We Need A DEC C Linker Option File For VAX.
353 $       CREATE 'OPT_FILE'
354 $DECK
356 ! Default System Options File To Link Agianst 
357 ! The Sharable DEC C Runtime Library.
359 SYS$SHARE:DECC$SHR.EXE/SHARE
360 $EOD
362 $!    Else...
364 $     ELSE
366 $!      Create The non-VAX Linker Option File.
368 $       CREATE 'OPT_FILE'
369 $DECK
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
376 $EOD
378 $!    End The DEC C Option File Check.
380 $     ENDIF
382 $!  End The Option File Search.
384 $   ENDIF
386 $! End The DEC C Check.
388 $ ENDIF
390 $!  Tell The User What Linker Option File We Are Using.
392 $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."     
394 $! Time To RETURN.
396 $ RETURN
398 $! Check The User's Options.
400 $ CHECK_OPTIONS:
402 $! Check To See If OPT_PHASE Is Blank.
404 $ IF (OPT_PHASE.EQS."ALL")
405 $ THEN
407 $!   OPT_PHASE Is Blank, So Build Everything.
409 $    BUILDALL = "ALL"
411 $! Else...
413 $ ELSE
415 $!  Else, Check To See If OPT_PHASE Has A Valid Arguement.
417 $   IF ("," + ACCEPT_PHASE + ",") - ("," + OPT_PHASE + ",") -
418        .NES. ("," + ACCEPT_PHASE + ",")
419 $   THEN
421 $!    A Valid Arguement.
423 $     BUILDALL = OPT_PHASE
425 $!  Else...
427 $   ELSE
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 ""
448 $!    Time To EXIT.
450 $     EXIT
452 $!  End The Valid Arguement Check.
454 $   ENDIF
456 $! End The OPT_PHASE Check.
458 $ ENDIF
460 $! Check To See If OPT_DEBUG Is Blank.
462 $ IF (OPT_DEBUG.EQS."NODEBUG")
463 $ THEN
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."
474 $ ELSE
476 $!  Check To See If We Are To Compile With Debugger Information.
478 $   IF (OPT_DEBUG.EQS."DEBUG")
479 $   THEN
481 $!    Compile With Debugger Information.
483 $     DEBUGGER = "DEBUG"
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."
490 $   ELSE 
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 ""
501 $!    Time To EXIT.
503 $     EXIT
505 $!  End The Valid Arguement Check.
507 $   ENDIF
509 $! End The OPT_DEBUG Check.
511 $ ENDIF
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."")
522 $ THEN
524 $!  Get The Version Of VMS We Are Using.
526 $   ISSEVEN :=
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.
532 $   IF (TMP.GE.71)
533 $   THEN
535 $!    We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
537 $     ISSEVEN := ,PTHREAD_USE_D4
539 $!  End The VMS Version Check.
541 $   ENDIF
543 $! End The OPT_SPECIAL_THREADS Check.
545 $ ENDIF
547 $! Check To See If OPT_COMPILER Is Blank.
549 $ IF (OPT_COMPILER.EQS."")
550 $ THEN
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."")
558 $   THEN
560 $!    Looks Like GNUC, Set To Use GNUC.
562 $     OPT_COMPILER = "GNUC"
564 $!  Else...
566 $   ELSE
568 $!    Check To See If We Have VAXC Or DECC.
570 $     IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
571 $     THEN 
573 $!      Looks Like DECC, Set To Use DECC.
575 $       OPT_COMPILER = "DECC"
577 $!    Else...
579 $     ELSE
581 $!      Looks Like VAXC, Set To Use VAXC.
583 $       OPT_COMPILER = "VAXC"
585 $!    End The VAXC Compiler Check.
587 $     ENDIF
589 $!  End The DECC & VAXC Compiler Check.
591 $   ENDIF
593 $!  End The Compiler Check.
595 $ ENDIF
597 $! Check To See If We Have A Option For OPT_TCPIP_LIB.
599 $ IF (OPT_TCPIP_LIB.EQS."")
600 $ THEN
602 $!  Find out what socket library we have available
604 $   IF F$PARSE("SOCKETSHR:") .NES. ""
605 $   THEN
607 $!    We have SOCKETSHR, and it is my opinion that it's the best to use.
609 $     OPT_TCPIP_LIB = "SOCKETSHR"
611 $!    Tell the user
613 $     WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
615 $!    Else, let's look for something else
617 $   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. ""
625 $     THEN
627 $!      Last resort: a UCX or UCX-compatible library
629 $       OPT_TCPIP_LIB = "UCX"
631 $!      Tell the user
633 $       WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
635 $!      That was all...
637 $     ENDIF
638 $   ENDIF
639 $ ENDIF
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
645 $ CCEXTRAFLAGS = ""
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")
654 $ THEN
656 $!    Check To See If The User Wanted DECC.
658 $   IF (OPT_COMPILER.EQS."DECC")
659 $   THEN
661 $!    Looks Like DECC, Set To Use DECC.
663 $     COMPILER = "DECC"
665 $!    Tell The User We Are Using DECC.
667 $     WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
669 $!    Use DECC...
671 $     CC = "CC"
672 $     IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
673          THEN CC = "CC/DECC"
674 $     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
675            "/NOLIST/PREFIX=ALL" + -
676            "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS])" + -
677            CCEXTRAFLAGS
679 $!    Define The Linker Options File Name.
681 $     OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT"
683 $!  End DECC Check.
685 $   ENDIF
687 $!  Check To See If We Are To Use VAXC.
689 $   IF (OPT_COMPILER.EQS."VAXC")
690 $   THEN
692 $!    Looks Like VAXC, Set To Use VAXC.
694 $     COMPILER = "VAXC"
696 $!    Tell The User We Are Using VAX C.
698 $     WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
700 $!    Compile Using VAXC.
702 $     CC = "CC"
703 $     IF ARCH.NES."VAX"
704 $     THEN
705 $       WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
706 $       EXIT
707 $     ENDIF
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])" + -
711            CCEXTRAFLAGS
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"
722 $!  End VAXC Check
724 $   ENDIF
726 $!  Check To See If We Are To Use GNU C.
728 $   IF (OPT_COMPILER.EQS."GNUC")
729 $   THEN
731 $!    Looks Like GNUC, Set To Use GNUC.
733 $     COMPILER = "GNUC"
735 $!    Tell The User We Are Using GNUC.
737 $     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
739 $!    Use GNU C...
741 $     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
742            "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
743            CCEXTRAFLAGS
745 $!    Define The Linker Options File Name.
747 $     OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT"
749 $!  End The GNU C Check.
751 $   ENDIF
753 $!  Set up default defines
755 $   CCDEFS = """FLAT_INC=1""," + CCDEFS
757 $!  Finish up the definition of CC.
759 $   IF COMPILER .EQS. "DECC"
760 $   THEN
761 $     IF CCDISABLEWARNINGS .NES. ""
762 $     THEN
763 $       CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
764 $     ENDIF
765 $   ELSE
766 $     CCDISABLEWARNINGS = ""
767 $   ENDIF
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.
776 $ ELSE
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 ""
788 $!  Time To EXIT.
790 $   EXIT
792 $! End The Valid Arguement Check.
794 $ ENDIF
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"
810 $ THEN
812 $!  Check to see if SOCKETSHR was chosen
814 $   IF OPT_TCPIP_LIB.EQS."SOCKETSHR"
815 $   THEN
817 $!    Set the library to use SOCKETSHR
819 $     TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
821 $!    Done with SOCKETSHR
823 $   ENDIF
825 $!  Check to see if MULTINET was chosen
827 $   IF OPT_TCPIP_LIB.EQS."MULTINET"
828 $   THEN
830 $!    Set the library to use UCX emulation.
832 $     OPT_TCPIP_LIB = "UCX"
834 $!    Done with MULTINET
836 $   ENDIF
838 $!  Check to see if UCX was chosen
840 $   IF OPT_TCPIP_LIB.EQS."UCX"
841 $   THEN
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. ""
847 $     THEN
848 $       TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
849 $     ELSE
850 $       IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
851           TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
852 $     ENDIF
854 $!    Done with UCX
856 $   ENDIF
858 $!  Check to see if TCPIP was chosen
860 $   IF OPT_TCPIP_LIB.EQS."TCPIP"
861 $   THEN
863 $!    Set the library to use TCPIP (post UCX).
865 $     TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
867 $!    Done with TCPIP
869 $   ENDIF
871 $!  Check to see if NONE was chosen
873 $   IF OPT_TCPIP_LIB.EQS."NONE"
874 $   THEN
876 $!    Do not use a TCPIP library.
878 $     TCPIP_LIB = ""
880 $!    Done with TCPIP
882 $   ENDIF
884 $!  Print info
886 $   WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
888 $!  Else The User Entered An Invalid Arguement.
890 $ ELSE
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 ""
902 $!  Time To EXIT.
904 $   EXIT
906 $!  Done with TCP/IP libraries
908 $ ENDIF
910 $!  Time To RETURN...
912 $ RETURN
914 $ INITIALISE:
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'
931 $! Done
933 $ RETURN
935 $ CLEANUP:
937 $! Restore the logical name OPENSSL if it had a value
939 $ IF __SAVE_OPENSSL .EQS. ""
940 $ THEN
941 $   DEASSIGN OPENSSL
942 $ ELSE
943 $   DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
944 $ ENDIF
946 $! Done
948 $ RETURN