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