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