summaryrefslogtreecommitdiff
path: root/src/lib/libssl/test/maketests.com
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/test/maketests.com')
-rw-r--r--src/lib/libssl/test/maketests.com913
1 files changed, 913 insertions, 0 deletions
diff --git a/src/lib/libssl/test/maketests.com b/src/lib/libssl/test/maketests.com
new file mode 100644
index 0000000000..94621a655b
--- /dev/null
+++ b/src/lib/libssl/test/maketests.com
@@ -0,0 +1,913 @@
1$!
2$! MAKETESTS.COM
3$! Written By: Robert Byer
4$! Vice-President
5$! A-Com Computing, Inc.
6$! byer@mail.all-net.net
7$!
8$! Changes by Richard Levitte <richard@levitte.org>
9$!
10$! This command files compiles and creates all the various different
11$! "test" programs for the different types of encryption for OpenSSL.
12$! It was written so it would try to determine what "C" compiler to
13$! use or you can specify which "C" compiler to use.
14$!
15$! The test "executeables" will be placed in a directory called
16$! [.xxx.EXE.TEST] where "xxx" denotes AXP or VAX depending on your machines
17$! architecture.
18$!
19$! Specify DEBUG or NODEBUG P1 to compile with or without debugger
20$! information.
21$!
22$! Specify which compiler at P2 to try to compile under.
23$!
24$! VAXC For VAX C.
25$! DECC For DEC C.
26$! GNUC For GNU C.
27$!
28$! If you don't speficy a compiler, it will try to determine which
29$! "C" compiler to use.
30$!
31$! P3, if defined, sets a TCP/IP library to use, through one of the following
32$! keywords:
33$!
34$! UCX for UCX
35$! SOCKETSHR for SOCKETSHR+NETLIB
36$!
37$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
38$!
39$!
40$! Define A TCP/IP Library That We Will Need To Link To.
41$! (That is, If Wee Need To Link To One.)
42$!
43$ TCPIP_LIB = ""
44$!
45$! Check Which Architecture We Are Using.
46$!
47$ IF (F$GETSYI("CPU").GE.128)
48$ THEN
49$!
50$! The Architecture Is AXP.
51$!
52$ ARCH := AXP
53$!
54$! Else...
55$!
56$ ELSE
57$!
58$! The Architecture Is VAX.
59$!
60$ ARCH := VAX
61$!
62$! End The Architecture Check.
63$!
64$ ENDIF
65$!
66$! Check To Make Sure We Have Valid Command Line Parameters.
67$!
68$ GOSUB CHECK_OPTIONS
69$!
70$! Initialise logical names and such
71$!
72$ GOSUB INITIALISE
73$!
74$! Tell The User What Kind of Machine We Run On.
75$!
76$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine."
77$!
78$! Define The CRYPTO-LIB We Are To Use.
79$!
80$ CRYPTO_LIB := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]LIBCRYPTO.OLB
81$!
82$! Define The SSL We Are To Use.
83$!
84$ SSL_LIB := SYS$DISK:[-.'ARCH'.EXE.SSL]LIBSSL.OLB
85$!
86$! Define The OBJ Directory.
87$!
88$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.TEST]
89$!
90$! Check To See If The Architecture Specific OBJ Directory Exists.
91$!
92$ IF (F$PARSE(OBJ_DIR).EQS."")
93$ THEN
94$!
95$! The EXE Directory Dosen't Exist, So Create It.
96$!
97$ CREATE/DIRECTORY 'OBJ_DIR'
98$!
99$! End The Architecture Specific OBJ Directory Check.
100$!
101$ ENDIF
102$!
103$! Define The EXE Directory.
104$!
105$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.TEST]
106$!
107$! Check To See If The Architecture Specific EXE Directory Exists.
108$!
109$ IF (F$PARSE(EXE_DIR).EQS."")
110$ THEN
111$!
112$! The EXE Directory Dosen't Exist, So Create It.
113$!
114$ CREATE/DIRECTORY 'EXE_DIR'
115$!
116$! End The Architecture Specific EXE Directory Check.
117$!
118$ ENDIF
119$!
120$! Check To See If We Have The Proper Libraries.
121$!
122$ GOSUB LIB_CHECK
123$!
124$! Check To See If We Have A Linker Option File.
125$!
126$ GOSUB CHECK_OPT_FILE
127$!
128$! Define The TEST Files.
129$!
130$ TEST_FILES = "BNTEST,ECTEST,IDEATEST,MD2TEST,MD4TEST,MD5TEST,HMACTEST,"+ -
131 "RC2TEST,RC4TEST,RC5TEST,"+ -
132 "DESTEST,SHATEST,SHA1TEST,MDC2TEST,RMDTEST,"+ -
133 "RANDTEST,DHTEST,ENGINETEST,"+ -
134 "BFTEST,CASTTEST,SSLTEST,EXPTEST,DSATEST,RSA_TEST,"+ -
135 "EVP_TEST"
136$ TCPIP_PROGRAMS = ",,"
137$ IF COMPILER .EQS. "VAXC" THEN -
138 TCPIP_PROGRAMS = ",SSLTEST,"
139$!
140$! Define A File Counter And Set It To "0".
141$!
142$ FILE_COUNTER = 0
143$!
144$! Top Of The File Loop.
145$!
146$ NEXT_FILE:
147$!
148$! O.K, Extract The File Name From The File List.
149$!
150$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES)
151$!
152$! Check To See If We Are At The End Of The File List.
153$!
154$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
155$!
156$! Increment The Counter.
157$!
158$ FILE_COUNTER = FILE_COUNTER + 1
159$!
160$! Create The Source File Name.
161$!
162$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C"
163$!
164$! Create The Object File Name.
165$!
166$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
167$!
168$! Create The Executable File Name.
169$!
170$ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE"
171$ ON WARNING THEN GOTO NEXT_FILE
172$!
173$! Check To See If The File We Want To Compile Actually Exists.
174$!
175$ IF (F$SEARCH(SOURCE_FILE).EQS."")
176$ THEN
177$!
178$! Tell The User That The File Dosen't Exist.
179$!
180$ WRITE SYS$OUTPUT ""
181$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
182$ WRITE SYS$OUTPUT ""
183$!
184$! Exit The Build.
185$!
186$ GOTO EXIT
187$ ENDIF
188$!
189$! Tell The User What We Are Building.
190$!
191$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program."
192$!
193$! Compile The File.
194$!
195$ ON ERROR THEN GOTO NEXT_FILE
196$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
197$ ON WARNING THEN GOTO NEXT_FILE
198$!
199$! Check If What We Are About To Compile Works Without A TCP/IP Library.
200$!
201$ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS))
202$ THEN
203$!
204$! Inform The User That A TCP/IP Library Is Needed To Compile This Program.
205$!
206$ WRITE SYS$OUTPUT FILE_NAME," Needs A TCP/IP Library. Can't Link. Skipping..."
207$ GOTO NEXT_FILE
208$!
209$! End The TCP/IP Library Check.
210$!
211$ ENDIF
212$!
213$! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
214$! Check To See If We Are To Link With A Specific TCP/IP Library.
215$!
216$ IF (TCPIP_LIB.NES."")
217$ THEN
218$!
219$! Don't Link With The RSAREF Routines And TCP/IP Library.
220$!
221$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
222 'OBJECT_FILE', -
223 'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
224 'TCPIP_LIB','OPT_FILE'/OPTION
225$!
226$! Else...
227$!
228$ ELSE
229$!
230$! Don't Link With The RSAREF Routines And Link With A TCP/IP Library.
231$!
232$ LINK/'DEBUGGER'/'TRACEBACK' /EXE='EXE_FILE' -
233 'OBJECT_FILE', -
234 'SSL_LIB'/LIBRARY,'CRYPTO_LIB'/LIBRARY, -
235 'OPT_FILE'/OPTION
236$!
237$! End The TCP/IP Library Check.
238$!
239$ ENDIF
240$!
241$! Go Back And Do It Again.
242$!
243$ GOTO NEXT_FILE
244$!
245$! All Done With This Library Part.
246$!
247$ FILE_DONE:
248$!
249$! All Done, Time To Exit.
250$!
251$ EXIT:
252$ GOSUB CLEANUP
253$ EXIT
254$!
255$! Check For The Link Option FIle.
256$!
257$ CHECK_OPT_FILE:
258$!
259$! Check To See If We Need To Make A VAX C Option File.
260$!
261$ IF (COMPILER.EQS."VAXC")
262$ THEN
263$!
264$! Check To See If We Already Have A VAX C Linker Option File.
265$!
266$ IF (F$SEARCH(OPT_FILE).EQS."")
267$ THEN
268$!
269$! We Need A VAX C Linker Option File.
270$!
271$ CREATE 'OPT_FILE'
272$DECK
273!
274! Default System Options File To Link Agianst
275! The Sharable VAX C Runtime Library.
276!
277SYS$SHARE:VAXCRTL.EXE/SHARE
278$EOD
279$!
280$! End The Option File Check.
281$!
282$ ENDIF
283$!
284$! End The VAXC Check.
285$!
286$ ENDIF
287$!
288$! Check To See If We Need A GNU C Option File.
289$!
290$ IF (COMPILER.EQS."GNUC")
291$ THEN
292$!
293$! Check To See If We Already Have A GNU C Linker Option File.
294$!
295$ IF (F$SEARCH(OPT_FILE).EQS."")
296$ THEN
297$!
298$! We Need A GNU C Linker Option File.
299$!
300$ CREATE 'OPT_FILE'
301$DECK
302!
303! Default System Options File To Link Agianst
304! The Sharable C Runtime Library.
305!
306GNU_CC:[000000]GCCLIB/LIBRARY
307SYS$SHARE:VAXCRTL/SHARE
308$EOD
309$!
310$! End The Option File Check.
311$!
312$ ENDIF
313$!
314$! End The GNU C Check.
315$!
316$ ENDIF
317$!
318$! Check To See If We Need A DEC C Option File.
319$!
320$ IF (COMPILER.EQS."DECC")
321$ THEN
322$!
323$! Check To See If We Already Have A DEC C Linker Option File.
324$!
325$ IF (F$SEARCH(OPT_FILE).EQS."")
326$ THEN
327$!
328$! Figure Out If We Need An AXP Or A VAX Linker Option File.
329$!
330$ IF (ARCH.EQS."VAX")
331$ THEN
332$!
333$! We Need A DEC C Linker Option File For VAX.
334$!
335$ CREATE 'OPT_FILE'
336$DECK
337!
338! Default System Options File To Link Agianst
339! The Sharable DEC C Runtime Library.
340!
341SYS$SHARE:DECC$SHR.EXE/SHARE
342$EOD
343$!
344$! Else...
345$!
346$ ELSE
347$!
348$! Create The AXP Linker Option File.
349$!
350$ CREATE 'OPT_FILE'
351$DECK
352!
353! Default System Options File For AXP To Link Agianst
354! The Sharable C Runtime Library.
355!
356SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
357SYS$SHARE:CMA$OPEN_RTL/SHARE
358$EOD
359$!
360$! End The VAX/AXP DEC C Option File Check.
361$!
362$ ENDIF
363$!
364$! End The Option File Search.
365$!
366$ ENDIF
367$!
368$! End The DEC C Check.
369$!
370$ ENDIF
371$!
372$! Tell The User What Linker Option File We Are Using.
373$!
374$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
375$!
376$! Time To RETURN.
377$!
378$ RETURN
379$!
380$! Check To See If We Have The Appropiate Libraries.
381$!
382$ LIB_CHECK:
383$!
384$! Look For The Library LIBCRYPTO.OLB.
385$!
386$ IF (F$SEARCH(CRYPTO_LIB).EQS."")
387$ THEN
388$!
389$! Tell The User We Can't Find The LIBCRYPTO.OLB Library.
390$!
391$ WRITE SYS$OUTPUT ""
392$ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"."
393$ WRITE SYS$OUTPUT "We Can't Link Without It."
394$ WRITE SYS$OUTPUT ""
395$!
396$! Since We Can't Link Without It, Exit.
397$!
398$ EXIT
399$!
400$! End The Crypto Library Check.
401$!
402$ ENDIF
403$!
404$! Look For The Library LIBSSL.OLB.
405$!
406$ IF (F$SEARCH(SSL_LIB).EQS."")
407$ THEN
408$!
409$! Tell The User We Can't Find The LIBSSL.OLB Library.
410$!
411$ WRITE SYS$OUTPUT ""
412$ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"."
413$ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It."
414$ WRITE SYS$OUTPUT ""
415$!
416$! Since We Can't Link Without It, Exit.
417$!
418$ EXIT
419$!
420$! End The SSL Library Check.
421$!
422$ ENDIF
423$!
424$! Time To Return.
425$!
426$ RETURN
427$!
428$! Check The User's Options.
429$!
430$ CHECK_OPTIONS:
431$!
432$! Check To See If P1 Is Blank.
433$!
434$ IF (P1.EQS."NODEBUG")
435$ THEN
436$!
437$! P1 Is NODEBUG, So Compile Without Debugger Information.
438$!
439$ DEBUGGER = "NODEBUG"
440$ TRACEBACK = "NOTRACEBACK"
441$ GCC_OPTIMIZE = "OPTIMIZE"
442$ CC_OPTIMIZE = "OPTIMIZE"
443$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
444$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
445$!
446$! Else...
447$!
448$ ELSE
449$!
450$! Check To See If We Are To Compile With Debugger Information.
451$!
452$ IF (P1.EQS."DEBUG")
453$ THEN
454$!
455$! Compile With Debugger Information.
456$!
457$ DEBUGGER = "DEBUG"
458$ TRACEBACK = "TRACEBACK"
459$ GCC_OPTIMIZE = "NOOPTIMIZE"
460$ CC_OPTIMIZE = "NOOPTIMIZE"
461$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
462$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
463$!
464$! Else...
465$!
466$ ELSE
467$!
468$! Tell The User Entered An Invalid Option..
469$!
470$ WRITE SYS$OUTPUT ""
471$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
472$ WRITE SYS$OUTPUT ""
473$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
474$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
475$ WRITE SYS$OUTPUT ""
476$!
477$! Time To EXIT.
478$!
479$ EXIT
480$!
481$! End The Valid Arguement Check.
482$!
483$ ENDIF
484$!
485$! End The P2 Check.
486$!
487$ ENDIF
488$!
489$! Check To See If P2 Is Blank.
490$!
491$ IF (P2.EQS."")
492$ THEN
493$!
494$! O.K., The User Didn't Specify A Compiler, Let's Try To
495$! Find Out Which One To Use.
496$!
497$! Check To See If We Have GNU C.
498$!
499$ IF (F$TRNLNM("GNU_CC").NES."")
500$ THEN
501$!
502$! Looks Like GNUC, Set To Use GNUC.
503$!
504$ P2 = "GNUC"
505$!
506$! End The GNU C Compiler Check.
507$!
508$ ELSE
509$!
510$! Check To See If We Have VAXC Or DECC.
511$!
512$ IF (ARCH.EQS."AXP").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
513$ THEN
514$!
515$! Looks Like DECC, Set To Use DECC.
516$!
517$ P2 = "DECC"
518$!
519$! Else...
520$!
521$ ELSE
522$!
523$! Looks Like VAXC, Set To Use VAXC.
524$!
525$ P2 = "VAXC"
526$!
527$! End The VAXC Compiler Check.
528$!
529$ ENDIF
530$!
531$! End The DECC & VAXC Compiler Check.
532$!
533$ ENDIF
534$!
535$! End The Compiler Check.
536$!
537$ ENDIF
538$!
539$! Check To See If We Have A Option For P3.
540$!
541$ IF (P3.EQS."")
542$ THEN
543$!
544$! Find out what socket library we have available
545$!
546$ IF F$PARSE("SOCKETSHR:") .NES. ""
547$ THEN
548$!
549$! We have SOCKETSHR, and it is my opinion that it's the best to use.
550$!
551$ P3 = "SOCKETSHR"
552$!
553$! Tell the user
554$!
555$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
556$!
557$! Else, let's look for something else
558$!
559$ ELSE
560$!
561$! Like UCX (the reason to do this before Multinet is that the UCX
562$! emulation is easier to use...)
563$!
564$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
565 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
566 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
567$ THEN
568$!
569$! Last resort: a UCX or UCX-compatible library
570$!
571$ P3 = "UCX"
572$!
573$! Tell the user
574$!
575$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
576$!
577$! That was all...
578$!
579$ ENDIF
580$ ENDIF
581$ ENDIF
582$!
583$! Set Up Initial CC Definitions, Possibly With User Ones
584$!
585$ CCDEFS = "TCPIP_TYPE_''P3'"
586$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
587$ CCEXTRAFLAGS = ""
588$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
589$ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
590$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
591 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
592$!
593$! Check To See If The User Entered A Valid Paramter.
594$!
595$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
596$ THEN
597$!
598$! Check To See If The User Wanted DECC.
599$!
600$ IF (P2.EQS."DECC")
601$ THEN
602$!
603$! Looks Like DECC, Set To Use DECC.
604$!
605$ COMPILER = "DECC"
606$!
607$! Tell The User We Are Using DECC.
608$!
609$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
610$!
611$! Use DECC...
612$!
613$ CC = "CC"
614$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
615 THEN CC = "CC/DECC"
616$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
617 "/NOLIST/PREFIX=ALL" + -
618 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
619$!
620$! Define The Linker Options File Name.
621$!
622$ OPT_FILE = "SYS$DISK:[]VAX_DECC_OPTIONS.OPT"
623$!
624$! End DECC Check.
625$!
626$ ENDIF
627$!
628$! Check To See If We Are To Use VAXC.
629$!
630$ IF (P2.EQS."VAXC")
631$ THEN
632$!
633$! Looks Like VAXC, Set To Use VAXC.
634$!
635$ COMPILER = "VAXC"
636$!
637$! Tell The User We Are Using VAX C.
638$!
639$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
640$!
641$! Compile Using VAXC.
642$!
643$ CC = "CC"
644$ IF ARCH.EQS."AXP"
645$ THEN
646$ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
647$ EXIT
648$ ENDIF
649$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
650$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
651 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
652$ CCDEFS = CCDEFS + ",""VAXC"""
653$!
654$! Define <sys> As SYS$COMMON:[SYSLIB]
655$!
656$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
657$!
658$! Define The Linker Options File Name.
659$!
660$ OPT_FILE = "SYS$DISK:[]VAX_VAXC_OPTIONS.OPT"
661$!
662$! End VAXC Check
663$!
664$ ENDIF
665$!
666$! Check To See If We Are To Use GNU C.
667$!
668$ IF (P2.EQS."GNUC")
669$ THEN
670$!
671$! Looks Like GNUC, Set To Use GNUC.
672$!
673$ COMPILER = "GNUC"
674$!
675$! Tell The User We Are Using GNUC.
676$!
677$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
678$!
679$! Use GNU C...
680$!
681$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
682 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
683$!
684$! Define The Linker Options File Name.
685$!
686$ OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
687$!
688$! End The GNU C Check.
689$!
690$ ENDIF
691$!
692$! Set up default defines
693$!
694$ CCDEFS = """FLAT_INC=1""," + CCDEFS
695$!
696$! Finish up the definition of CC.
697$!
698$ IF COMPILER .EQS. "DECC"
699$ THEN
700$ IF CCDISABLEWARNINGS .EQS. ""
701$ THEN
702$ CC4DISABLEWARNINGS = "DOLLARID"
703$ ELSE
704$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
705$ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
706$ ENDIF
707$ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
708$ ELSE
709$ CCDISABLEWARNINGS = ""
710$ CC4DISABLEWARNINGS = ""
711$ ENDIF
712$ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
713$!
714$! Show user the result
715$!
716$ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC
717$!
718$! Else The User Entered An Invalid Arguement.
719$!
720$ ELSE
721$!
722$! Tell The User We Don't Know What They Want.
723$!
724$ WRITE SYS$OUTPUT ""
725$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
726$ WRITE SYS$OUTPUT ""
727$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
728$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
729$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
730$ WRITE SYS$OUTPUT ""
731$!
732$! Time To EXIT.
733$!
734$ EXIT
735$ ENDIF
736$!
737$! Time to check the contents, and to make sure we get the correct library.
738$!
739$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
740 .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
741$ THEN
742$!
743$! Check to see if SOCKETSHR was chosen
744$!
745$ IF P3.EQS."SOCKETSHR"
746$ THEN
747$!
748$! Set the library to use SOCKETSHR
749$!
750$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
751$!
752$! Done with SOCKETSHR
753$!
754$ ENDIF
755$!
756$! Check to see if MULTINET was chosen
757$!
758$ IF P3.EQS."MULTINET"
759$ THEN
760$!
761$! Set the library to use UXC emulation.
762$!
763$ P3 = "UCX"
764$!
765$! Done with MULTINET
766$!
767$ ENDIF
768$!
769$! Check to see if UCX was chosen
770$!
771$ IF P3.EQS."UCX"
772$ THEN
773$!
774$! Set the library to use UCX.
775$!
776$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
777$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
778$ THEN
779$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
780$ ELSE
781$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
782 TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
783$ ENDIF
784$!
785$! Done with UCX
786$!
787$ ENDIF
788$!
789$! Check to see if TCPIP was chosen
790$!
791$ IF P3.EQS."TCPIP"
792$ THEN
793$!
794$! Set the library to use TCPIP (post UCX).
795$!
796$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
797$!
798$! Done with TCPIP
799$!
800$ ENDIF
801$!
802$! Check to see if NONE was chosen
803$!
804$ IF P3.EQS."NONE"
805$ THEN
806$!
807$! Do not use a TCPIP library.
808$!
809$ TCPIP_LIB = ""
810$!
811$! Done with NONE
812$!
813$ ENDIF
814$!
815$! Print info
816$!
817$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
818$!
819$! Else The User Entered An Invalid Arguement.
820$!
821$ ELSE
822$!
823$! Tell The User We Don't Know What They Want.
824$!
825$ WRITE SYS$OUTPUT ""
826$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
827$ WRITE SYS$OUTPUT ""
828$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
829$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
830$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
831$ WRITE SYS$OUTPUT ""
832$!
833$! Time To EXIT.
834$!
835$ EXIT
836$!
837$! Done with TCP/IP libraries
838$!
839$ ENDIF
840$!
841$! Special Threads For OpenVMS v7.1 Or Later
842$!
843$! Written By: Richard Levitte
844$! richard@levitte.org
845$!
846$!
847$! Check To See If We Have A Option For P4.
848$!
849$ IF (P4.EQS."")
850$ THEN
851$!
852$! Get The Version Of VMS We Are Using.
853$!
854$ ISSEVEN :=
855$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
856$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
857$!
858$! Check To See If The VMS Version Is v7.1 Or Later.
859$!
860$ IF (TMP.GE.71)
861$ THEN
862$!
863$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
864$!
865$ ISSEVEN := ,PTHREAD_USE_D4
866$!
867$! End The VMS Version Check.
868$!
869$ ENDIF
870$!
871$! End The P4 Check.
872$!
873$ ENDIF
874$!
875$! Time To RETURN...
876$!
877$ RETURN
878$!
879$ INITIALISE:
880$!
881$! Save old value of the logical name OPENSSL
882$!
883$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
884$!
885$! Save directory information
886$!
887$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
888$ __HERE = F$EDIT(__HERE,"UPCASE")
889$ __TOP = __HERE - "TEST]"
890$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
891$!
892$! Set up the logical name OPENSSL to point at the include directory
893$!
894$ DEFINE OPENSSL/NOLOG '__INCLUDE'
895$!
896$! Done
897$!
898$ RETURN
899$!
900$ CLEANUP:
901$!
902$! Restore the logical name OPENSSL if it had a value
903$!
904$ IF __SAVE_OPENSSL .EQS. ""
905$ THEN
906$ DEASSIGN OPENSSL
907$ ELSE
908$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
909$ ENDIF
910$!
911$! Done
912$!
913$ RETURN