]> git.ipfire.org Git - thirdparty/openssl.git/blob - rsaref/rsaref-lib.com
VMS support.
[thirdparty/openssl.git] / rsaref / rsaref-lib.com
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 !
360 SYS$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 !
389 GNU_CC:[000000]GCCLIB/LIBRARY
390 SYS$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 !
424 SYS$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 !
439 SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
440 SYS$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 $!
809 $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
810 "/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
811 $!
812 $! Define The Linker Options File Name.
813 $!
814 $ OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
815 $!
816 $! End The GNU C Check.
817 $!
818 $ ENDIF
819 $!
820 $! Set up default defines
821 $!
822 $ CCDEFS = """FLAT_INC=1""," + CCDEFS
823 $ CCDEFS = CCDEFS + ",""RSAref=1"""
824 $!
825 $! Finish up the definition of CC.
826 $!
827 $ IF COMPILER .EQS. "DECC"
828 $ THEN
829 $ IF CCDISABLEWARNINGS .NES. ""
830 $ THEN
831 $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
832 $ ENDIF
833 $ ELSE
834 $ CCDISABLEWARNINGS = ""
835 $ ENDIF
836 $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
837 $!
838 $! Show user the result
839 $!
840 $ WRITE SYS$OUTPUT "Main Compiling Command: ",CC
841 $!
842 $! Else The User Entered An Invalid Arguement.
843 $!
844 $ ELSE
845 $!
846 $! Tell The User We Don't Know What They Want.
847 $!
848 $ WRITE SYS$OUTPUT ""
849 $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
850 $ WRITE SYS$OUTPUT ""
851 $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
852 $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
853 $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
854 $ WRITE SYS$OUTPUT ""
855 $!
856 $! Time To EXIT.
857 $!
858 $ EXIT
859 $!
860 $! End The P3 Check.
861 $!
862 $ ENDIF
863 $!
864 $! Time To RETURN...
865 $!
866 $ RETURN
867 $!
868 $ INITIALISE:
869 $!
870 $! Save old value of the logical name OPENSSL
871 $!
872 $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
873 $!
874 $! Save directory information
875 $!
876 $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
877 $ __TOP = __HERE - "RSAREF]"
878 $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
879 $!
880 $! Set up the logical name OPENSSL to point at the include directory
881 $!
882 $ DEFINE OPENSSL/NOLOG '__INCLUDE'
883 $!
884 $! Done
885 $!
886 $ RETURN
887 $!
888 $ CLEANUP:
889 $!
890 $! Restore the logical name OPENSSL if it had a value
891 $!
892 $ IF __SAVE_OPENSSL .EQS. ""
893 $ THEN
894 $ DEASSIGN OPENSSL
895 $ ELSE
896 $ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
897 $ ENDIF
898 $!
899 $! Done
900 $!
901 $ RETURN