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