OLD | NEW |
| (Empty) |
1 $! | |
2 $! FIPS-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 FIPS parts of the | |
11 $! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library for OpenSSL. The "xxx" | |
12 $! denotes the machine architecture of ALPHA, IA64 or VAX. | |
13 $! | |
14 $! It was re-written so it would try to determine what "C" compiler to use | |
15 $! or you can specify which "C" compiler to use. | |
16 $! | |
17 $! Specify the following as P1 to build just that part or ALL to just | |
18 $! build everything. | |
19 $! | |
20 $! LIBRARY To just compile the [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Li
brary. | |
21 $! APPS To just compile the [.xxx.EXE.CRYPTO]*.EXE | |
22 $! ALL To do both LIBRARY and APPS | |
23 $! | |
24 $! Specify DEBUG or NODEBUG as P2 to compile with or without debugger | |
25 $! information. | |
26 $! | |
27 $! Specify which compiler at P3 to try to compile under. | |
28 $! | |
29 $! VAXC For VAX C. | |
30 $! DECC For DEC C. | |
31 $! GNUC For GNU C. | |
32 $! | |
33 $! If you don't speficy a compiler, it will try to determine which | |
34 $! "C" compiler to use. | |
35 $! | |
36 $! P4, if defined, sets a TCP/IP library to use, through one of the following | |
37 $! keywords: | |
38 $! | |
39 $! UCX for UCX | |
40 $! TCPIP for TCPIP (post UCX) | |
41 $! SOCKETSHR for SOCKETSHR+NETLIB | |
42 $! | |
43 $! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | |
44 $! | |
45 $! P6, if defined, sets a choice of crypto methods to compile. | |
46 $! WARNING: this should only be done to recompile some part of an already | |
47 $! fully compiled library. | |
48 $! | |
49 $! | |
50 $! Define A TCP/IP Library That We Will Need To Link To. | |
51 $! (That Is, If We Need To Link To One.) | |
52 $! | |
53 $ TCPIP_LIB = "" | |
54 $! | |
55 $! Check What Architecture We Are Using. | |
56 $! | |
57 $ IF (F$GETSYI("CPU").LT.128) | |
58 $ THEN | |
59 $! | |
60 $! The Architecture Is VAX. | |
61 $! | |
62 $ ARCH := VAX | |
63 $! | |
64 $! Else... | |
65 $! | |
66 $ ELSE | |
67 $! | |
68 $! The Architecture Is Alpha, IA64 or whatever comes in the future. | |
69 $! | |
70 $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | |
71 $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | |
72 $! | |
73 $! End The Architecture Check. | |
74 $! | |
75 $ ENDIF | |
76 $! | |
77 $! Define The Different Encryption Types. | |
78 $! | |
79 $ ENCRYPT_TYPES = "Basic,SHA,RAND,DES,AES,DSA,RSA,DH,HMAC" | |
80 $! | |
81 $! Define The OBJ Directory. | |
82 $! | |
83 $ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.CRYPTO] | |
84 $! | |
85 $! Define The EXE Directory. | |
86 $! | |
87 $ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.CRYPTO] | |
88 $! | |
89 $! Check To Make Sure We Have Valid Command Line Parameters. | |
90 $! | |
91 $ GOSUB CHECK_OPTIONS | |
92 $! | |
93 $! Initialise logical names and such | |
94 $! | |
95 $ GOSUB INITIALISE | |
96 $! | |
97 $! Tell The User What Kind of Machine We Run On. | |
98 $! | |
99 $ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." | |
100 $! | |
101 $! Check To See If The Architecture Specific OBJ Directory Exists. | |
102 $! | |
103 $ IF (F$PARSE(OBJ_DIR).EQS."") | |
104 $ THEN | |
105 $! | |
106 $! It Dosen't Exist, So Create It. | |
107 $! | |
108 $ CREATE/DIR 'OBJ_DIR' | |
109 $! | |
110 $! End The Architecture Specific OBJ Directory Check. | |
111 $! | |
112 $ ENDIF | |
113 $! | |
114 $! Check To See If The Architecture Specific Directory Exists. | |
115 $! | |
116 $ IF (F$PARSE(EXE_DIR).EQS."") | |
117 $ THEN | |
118 $! | |
119 $! It Dosen't Exist, So Create It. | |
120 $! | |
121 $ CREATE/DIRECTORY 'EXE_DIR' | |
122 $! | |
123 $! End The Architecture Specific Directory Check. | |
124 $! | |
125 $ ENDIF | |
126 $! | |
127 $! Define The Library Name. | |
128 $! | |
129 $ LIB_NAME := 'EXE_DIR'LIBCRYPTO.OLB | |
130 $! | |
131 $! Define The CRYPTO-LIB We Are To Use. | |
132 $! | |
133 $ CRYPTO_LIB := 'EXE_DIR'LIBCRYPTO.OLB | |
134 $! | |
135 $! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library... | |
136 $! | |
137 $ IF (F$SEARCH(LIB_NAME).EQS."") | |
138 $ THEN | |
139 $! | |
140 $! Guess Not, Create The Library. | |
141 $! | |
142 $ LIBRARY/CREATE/OBJECT 'LIB_NAME' | |
143 $! | |
144 $! End The Library Check. | |
145 $! | |
146 $ ENDIF | |
147 $! | |
148 $! Build our options file for the application | |
149 $! | |
150 $ GOSUB CHECK_OPT_FILE | |
151 $! | |
152 $! Define The Different Encryption "library" Strings. | |
153 $! | |
154 $ LIB_ = "fips,fips_err_wrapper" | |
155 $ LIB_SHA = "fips_sha1dgst,fips_sha1_selftest,fips_sha256,fips_sha512" | |
156 $ LIB_RAND = "fips_rand,fips_rand_selftest" | |
157 $ LIB_DES = "fips_des_enc,fips_des_selftest,fips_set_key" | |
158 $ LIB_AES = "fips_aes_core,fips_aes_selftest" | |
159 $ LIB_DSA = "fips_dsa_ossl,fips_dsa_gen,fips_dsa_selftest" | |
160 $ LIB_RSA = "fips_rsa_eay,fips_rsa_gen,fips_rsa_selftest,fips_rsa_x931g" | |
161 $ LIB_DH = "fips_dh_check,fips_dh_gen,fips_dh_key" | |
162 $ LIB_HMAC = "fips_hmac,fips_hmac_selftest" | |
163 $! | |
164 $! Setup exceptional compilations | |
165 $! | |
166 $ ! Add definitions for no threads on OpenVMS 7.1 and higher | |
167 $ COMPILEWITH_CC3 = ",bss_rtcp," | |
168 $ ! Disable the DOLLARID warning | |
169 $ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time," | |
170 $ ! Disable disjoint optimization | |
171 $ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - | |
172 "sha_dgst,sha1dgst,rmd_dgst,bf_enc," | |
173 $ ! Disable the MIXLINKAGE warning | |
174 $ COMPILEWITH_CC6 = ",fips_set_key," | |
175 $! | |
176 $! Figure Out What Other Modules We Are To Build. | |
177 $! | |
178 $ BUILD_SET: | |
179 $! | |
180 $! Define A Module Counter. | |
181 $! | |
182 $ MODULE_COUNTER = 0 | |
183 $! | |
184 $! Top Of The Loop. | |
185 $! | |
186 $ MODULE_NEXT: | |
187 $! | |
188 $! Extract The Module Name From The Encryption List. | |
189 $! | |
190 $ MODULE_NAME = F$ELEMENT(MODULE_COUNTER,",",ENCRYPT_TYPES) | |
191 $ IF MODULE_NAME.EQS."Basic" THEN MODULE_NAME = "" | |
192 $ MODULE_NAME1 = MODULE_NAME | |
193 $! | |
194 $! Check To See If We Are At The End Of The Module List. | |
195 $! | |
196 $ IF (MODULE_NAME.EQS.",") | |
197 $ THEN | |
198 $! | |
199 $! We Are At The End Of The Module List, Go To MODULE_DONE. | |
200 $! | |
201 $ GOTO MODULE_DONE | |
202 $! | |
203 $! End The Module List Check. | |
204 $! | |
205 $ ENDIF | |
206 $! | |
207 $! Increment The Moudle Counter. | |
208 $! | |
209 $ MODULE_COUNTER = MODULE_COUNTER + 1 | |
210 $! | |
211 $! Create The Library and Apps Module Names. | |
212 $! | |
213 $ LIB_MODULE = "LIB_" + MODULE_NAME | |
214 $ APPS_MODULE = "APPS_" + MODULE_NAME | |
215 $ IF (MODULE_NAME.EQS."ASN1_2") | |
216 $ THEN | |
217 $ MODULE_NAME = "ASN1" | |
218 $ ENDIF | |
219 $ IF (MODULE_NAME.EQS."EVP_2") | |
220 $ THEN | |
221 $ MODULE_NAME = "EVP" | |
222 $ ENDIF | |
223 $! | |
224 $! Set state (can be LIB and APPS) | |
225 $! | |
226 $ STATE = "LIB" | |
227 $ IF BUILDALL .EQS. "APPS" THEN STATE = "APPS" | |
228 $! | |
229 $! Check if the library module name actually is defined | |
230 $! | |
231 $ IF F$TYPE('LIB_MODULE') .EQS. "" | |
232 $ THEN | |
233 $ WRITE SYS$ERROR "" | |
234 $ WRITE SYS$ERROR "The module ",MODULE_NAME," does not exist. Continuing..." | |
235 $ WRITE SYS$ERROR "" | |
236 $ GOTO MODULE_NEXT | |
237 $ ENDIF | |
238 $! | |
239 $! Top Of The Module Loop. | |
240 $! | |
241 $ MODULE_AGAIN: | |
242 $! | |
243 $! Tell The User What Module We Are Building. | |
244 $! | |
245 $ IF (MODULE_NAME1.NES."") | |
246 $ THEN | |
247 $ IF STATE .EQS. "LIB" | |
248 $ THEN | |
249 $ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Library Files. (",BUILDAL
L,",",STATE,")" | |
250 $ ELSE IF F$TYPE('APPS_MODULE') .NES. "" | |
251 $ THEN | |
252 $ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Applications. (",BUILDA
LL,",",STATE,")" | |
253 $ ENDIF | |
254 $ ENDIF | |
255 $ ENDIF | |
256 $! | |
257 $! Define A File Counter And Set It To "0". | |
258 $! | |
259 $ FILE_COUNTER = 0 | |
260 $ APPLICATION = "" | |
261 $ APPLICATION_COUNTER = 0 | |
262 $! | |
263 $! Top Of The File Loop. | |
264 $! | |
265 $ NEXT_FILE: | |
266 $! | |
267 $! Look in the LIB_MODULE is we're in state LIB | |
268 $! | |
269 $ IF STATE .EQS. "LIB" | |
270 $ THEN | |
271 $! | |
272 $! O.K, Extract The File Name From The File List. | |
273 $! | |
274 $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_MODULE') | |
275 $! | |
276 $! else | |
277 $! | |
278 $ ELSE | |
279 $ FILE_NAME = "," | |
280 $! | |
281 $ IF F$TYPE('APPS_MODULE') .NES. "" | |
282 $ THEN | |
283 $! | |
284 $! Extract The File Name From The File List. | |
285 $! This part is a bit more complicated. | |
286 $! | |
287 $ IF APPLICATION .EQS. "" | |
288 $ THEN | |
289 $ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE') | |
290 $ APPLICATION_COUNTER = APPLICATION_COUNTER + 1 | |
291 $ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION) | |
292 $ APPLICATION = F$ELEMENT(0,"/",APPLICATION) | |
293 $ FILE_COUNTER = 0 | |
294 $ ENDIF | |
295 $ | |
296 $! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*" | |
297 $! SHOW SYMBOL APPLICATION* | |
298 $! | |
299 $ IF APPLICATION .NES. ";" | |
300 $ THEN | |
301 $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",APPLICATION_OBJECTS) | |
302 $ IF FILE_NAME .EQS. "," | |
303 $ THEN | |
304 $ APPLICATION = "" | |
305 $ GOTO NEXT_FILE | |
306 $ ENDIF | |
307 $ ENDIF | |
308 $ ENDIF | |
309 $ ENDIF | |
310 $! | |
311 $! Check To See If We Are At The End Of The File List. | |
312 $! | |
313 $ IF (FILE_NAME.EQS.",") | |
314 $ THEN | |
315 $! | |
316 $! We Are At The End Of The File List, Change State Or Goto FILE_DONE. | |
317 $! | |
318 $ IF STATE .EQS. "LIB" .AND. BUILDALL .NES. "LIBRARY" | |
319 $ THEN | |
320 $ STATE = "APPS" | |
321 $ GOTO MODULE_AGAIN | |
322 $ ELSE | |
323 $ GOTO FILE_DONE | |
324 $ ENDIF | |
325 $! | |
326 $! End The File List Check. | |
327 $! | |
328 $ ENDIF | |
329 $! | |
330 $! Increment The Counter. | |
331 $! | |
332 $ FILE_COUNTER = FILE_COUNTER + 1 | |
333 $! | |
334 $! Create The Source File Name. | |
335 $! | |
336 $ TMP_FILE_NAME = F$ELEMENT(1,"]",FILE_NAME) | |
337 $ IF TMP_FILE_NAME .EQS. "]" THEN TMP_FILE_NAME = FILE_NAME | |
338 $ IF F$ELEMENT(0,".",TMP_FILE_NAME) .EQS. TMP_FILE_NAME THEN - | |
339 FILE_NAME = FILE_NAME + ".c" | |
340 $ IF (MODULE_NAME.NES."") | |
341 $ THEN | |
342 $ SOURCE_FILE = "SYS$DISK:[." + MODULE_NAME+ "]" + FILE_NAME | |
343 $ ELSE | |
344 $ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME | |
345 $ ENDIF | |
346 $ SOURCE_FILE = SOURCE_FILE - "][" | |
347 $! | |
348 $! Create The Object File Name. | |
349 $! | |
350 $ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ" | |
351 $ ON WARNING THEN GOTO NEXT_FILE | |
352 $! | |
353 $! Check To See If The File We Want To Compile Is Actually There. | |
354 $! | |
355 $ IF (F$SEARCH(SOURCE_FILE).EQS."") | |
356 $ THEN | |
357 $! | |
358 $! Tell The User That The File Doesn't Exist. | |
359 $! | |
360 $ WRITE SYS$OUTPUT "" | |
361 $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist." | |
362 $ WRITE SYS$OUTPUT "" | |
363 $! | |
364 $! Exit The Build. | |
365 $! | |
366 $ GOTO EXIT | |
367 $! | |
368 $! End The File Exist Check. | |
369 $! | |
370 $ ENDIF | |
371 $! | |
372 $! Tell The User We Are Compiling The File. | |
373 $! | |
374 $ IF (MODULE_NAME.EQS."") | |
375 $ THEN | |
376 $ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME," File. (",BUILDALL,",",STATE,"
)" | |
377 $ ENDIF | |
378 $ IF (MODULE_NAME.NES."") | |
379 $ THEN | |
380 $ WRITE SYS$OUTPUT " ",FILE_NAME,"" | |
381 $ ENDIF | |
382 $! | |
383 $! Compile The File. | |
384 $! | |
385 $ ON ERROR THEN GOTO NEXT_FILE | |
386 $ FILE_NAME0 = F$ELEMENT(0,".",FILE_NAME) | |
387 $ IF FILE_NAME - ".mar" .NES. FILE_NAME | |
388 $ THEN | |
389 $ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
390 $ ELSE | |
391 $ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3 | |
392 $ THEN | |
393 $ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
394 $ ELSE | |
395 $ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4 | |
396 $ THEN | |
397 $ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
398 $ ELSE | |
399 $ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5 | |
400 $ THEN | |
401 $ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
402 $ ELSE | |
403 $ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6 | |
404 $ THEN | |
405 $ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
406 $ ELSE | |
407 $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | |
408 $ ENDIF | |
409 $ ENDIF | |
410 $ ENDIF | |
411 $ ENDIF | |
412 $ ENDIF | |
413 $ IF STATE .EQS. "LIB" | |
414 $ THEN | |
415 $! | |
416 $! Add It To The Library. | |
417 $! | |
418 $ LIBRARY/REPLACE 'LIB_NAME' 'OBJECT_FILE' | |
419 $! | |
420 $! Time To Clean Up The Object File. | |
421 $! | |
422 $ DELETE 'OBJECT_FILE';* | |
423 $ ENDIF | |
424 $! | |
425 $! Go Back And Do It Again. | |
426 $! | |
427 $ GOTO NEXT_FILE | |
428 $! | |
429 $! All Done With This Library Part. | |
430 $! | |
431 $ FILE_DONE: | |
432 $! | |
433 $! Time To Build Some Applications | |
434 $! | |
435 $ IF F$TYPE('APPS_MODULE') .NES. "" .AND. BUILDALL .NES. "LIBRARY" | |
436 $ THEN | |
437 $ APPLICATION_COUNTER = 0 | |
438 $ NEXT_APPLICATION: | |
439 $ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE') | |
440 $ IF APPLICATION .EQS. ";" THEN GOTO APPLICATION_DONE | |
441 $ | |
442 $ APPLICATION_COUNTER = APPLICATION_COUNTER + 1 | |
443 $ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION) | |
444 $ APPLICATION = F$ELEMENT(0,"/",APPLICATION) | |
445 $ | |
446 $! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*" | |
447 $! SHOW SYMBOL APPLICATION* | |
448 $! | |
449 $! Tell the user what happens | |
450 $! | |
451 $ WRITE SYS$OUTPUT " ",APPLICATION,".exe" | |
452 $! | |
453 $! Link The Program. | |
454 $! | |
455 $ ON ERROR THEN GOTO NEXT_APPLICATION | |
456 $! | |
457 $! Check To See If We Are To Link With A Specific TCP/IP Library. | |
458 $! | |
459 $ IF (TCPIP_LIB.NES."") | |
460 $ THEN | |
461 $! | |
462 $! Link With A TCP/IP Library. | |
463 $! | |
464 $ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE - | |
465 'OBJ_DIR''APPLICATION_OBJECTS', - | |
466 'CRYPTO_LIB'/LIBRARY, - | |
467 'TCPIP_LIB','OPT_FILE'/OPTION | |
468 $! | |
469 $! Else... | |
470 $! | |
471 $ ELSE | |
472 $! | |
473 $! Don't Link With A TCP/IP Library. | |
474 $! | |
475 $ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE - | |
476 'OBJ_DIR''APPLICATION_OBJECTS',- | |
477 'CRYPTO_LIB'/LIBRARY, - | |
478 'OPT_FILE'/OPTION | |
479 $! | |
480 $! End The TCP/IP Library Check. | |
481 $! | |
482 $ ENDIF | |
483 $ GOTO NEXT_APPLICATION | |
484 $ APPLICATION_DONE: | |
485 $ ENDIF | |
486 $! | |
487 $! Go Back And Get The Next Module. | |
488 $! | |
489 $ GOTO MODULE_NEXT | |
490 $! | |
491 $! All Done With This Module. | |
492 $! | |
493 $ MODULE_DONE: | |
494 $! | |
495 $! Tell The User That We Are All Done. | |
496 $! | |
497 $ WRITE SYS$OUTPUT "All Done..." | |
498 $ EXIT: | |
499 $ GOSUB CLEANUP | |
500 $ EXIT | |
501 $! | |
502 $! Check For The Link Option FIle. | |
503 $! | |
504 $ CHECK_OPT_FILE: | |
505 $! | |
506 $! Check To See If We Need To Make A VAX C Option File. | |
507 $! | |
508 $ IF (COMPILER.EQS."VAXC") | |
509 $ THEN | |
510 $! | |
511 $! Check To See If We Already Have A VAX C Linker Option File. | |
512 $! | |
513 $ IF (F$SEARCH(OPT_FILE).EQS."") | |
514 $ THEN | |
515 $! | |
516 $! We Need A VAX C Linker Option File. | |
517 $! | |
518 $ CREATE 'OPT_FILE' | |
519 $DECK | |
520 ! | |
521 ! Default System Options File To Link Agianst | |
522 ! The Sharable VAX C Runtime Library. | |
523 ! | |
524 SYS$SHARE:VAXCRTL.EXE/SHARE | |
525 $EOD | |
526 $! | |
527 $! End The Option File Check. | |
528 $! | |
529 $ ENDIF | |
530 $! | |
531 $! End The VAXC Check. | |
532 $! | |
533 $ ENDIF | |
534 $! | |
535 $! Check To See If We Need A GNU C Option File. | |
536 $! | |
537 $ IF (COMPILER.EQS."GNUC") | |
538 $ THEN | |
539 $! | |
540 $! Check To See If We Already Have A GNU C Linker Option File. | |
541 $! | |
542 $ IF (F$SEARCH(OPT_FILE).EQS."") | |
543 $ THEN | |
544 $! | |
545 $! We Need A GNU C Linker Option File. | |
546 $! | |
547 $ CREATE 'OPT_FILE' | |
548 $DECK | |
549 ! | |
550 ! Default System Options File To Link Agianst | |
551 ! The Sharable C Runtime Library. | |
552 ! | |
553 GNU_CC:[000000]GCCLIB/LIBRARY | |
554 SYS$SHARE:VAXCRTL/SHARE | |
555 $EOD | |
556 $! | |
557 $! End The Option File Check. | |
558 $! | |
559 $ ENDIF | |
560 $! | |
561 $! End The GNU C Check. | |
562 $! | |
563 $ ENDIF | |
564 $! | |
565 $! Check To See If We Need A DEC C Option File. | |
566 $! | |
567 $ IF (COMPILER.EQS."DECC") | |
568 $ THEN | |
569 $! | |
570 $! Check To See If We Already Have A DEC C Linker Option File. | |
571 $! | |
572 $ IF (F$SEARCH(OPT_FILE).EQS."") | |
573 $ THEN | |
574 $! | |
575 $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. | |
576 $! | |
577 $ IF ARCH .EQS. "VAX" | |
578 $ THEN | |
579 $! | |
580 $! We Need A DEC C Linker Option File For VAX. | |
581 $! | |
582 $ CREATE 'OPT_FILE' | |
583 $DECK | |
584 ! | |
585 ! Default System Options File To Link Agianst | |
586 ! The Sharable DEC C Runtime Library. | |
587 ! | |
588 SYS$SHARE:DECC$SHR.EXE/SHARE | |
589 $EOD | |
590 $! | |
591 $! Else... | |
592 $! | |
593 $ ELSE | |
594 $! | |
595 $! Create The non-VAX Linker Option File. | |
596 $! | |
597 $ CREATE 'OPT_FILE' | |
598 $DECK | |
599 ! | |
600 ! Default System Options File For non-VAX To Link Agianst | |
601 ! The Sharable C Runtime Library. | |
602 ! | |
603 SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | |
604 SYS$SHARE:CMA$OPEN_RTL/SHARE | |
605 $EOD | |
606 $! | |
607 $! End The DEC C Option File Check. | |
608 $! | |
609 $ ENDIF | |
610 $! | |
611 $! End The Option File Search. | |
612 $! | |
613 $ ENDIF | |
614 $! | |
615 $! End The DEC C Check. | |
616 $! | |
617 $ ENDIF | |
618 $! | |
619 $! Tell The User What Linker Option File We Are Using. | |
620 $! | |
621 $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | |
622 $! | |
623 $! Time To RETURN. | |
624 $! | |
625 $ RETURN | |
626 $! | |
627 $! Check The User's Options. | |
628 $! | |
629 $ CHECK_OPTIONS: | |
630 $! | |
631 $! Check To See If P1 Is Blank. | |
632 $! | |
633 $ IF (P1.EQS."ALL") | |
634 $ THEN | |
635 $! | |
636 $! P1 Is Blank, So Build Everything. | |
637 $! | |
638 $ BUILDALL = "TRUE" | |
639 $! | |
640 $! Else... | |
641 $! | |
642 $ ELSE | |
643 $! | |
644 $! Else, Check To See If P1 Has A Valid Arguement. | |
645 $! | |
646 $ IF (P1.EQS."LIBRARY").OR.(P1.EQS."APPS") | |
647 $ THEN | |
648 $! | |
649 $! A Valid Arguement. | |
650 $! | |
651 $ BUILDALL = P1 | |
652 $! | |
653 $! Else... | |
654 $! | |
655 $ ELSE | |
656 $! | |
657 $! Tell The User We Don't Know What They Want. | |
658 $! | |
659 $ WRITE SYS$OUTPUT "" | |
660 $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | |
661 $ WRITE SYS$OUTPUT "" | |
662 $ WRITE SYS$OUTPUT " ALL : Just Build Everything." | |
663 $ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIB
CRYPTO.OLB Library." | |
664 $ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.E
XE Programs." | |
665 $ WRITE SYS$OUTPUT "" | |
666 $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" | |
667 $ WRITE SYS$OUTPUT "" | |
668 $ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." | |
669 $ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." | |
670 $ WRITE SYS$OUTPUT " VAX : VAX Architecture." | |
671 $ WRITE SYS$OUTPUT "" | |
672 $! | |
673 $! Time To EXIT. | |
674 $! | |
675 $ EXIT | |
676 $! | |
677 $! End The Valid Arguement Check. | |
678 $! | |
679 $ ENDIF | |
680 $! | |
681 $! End The P1 Check. | |
682 $! | |
683 $ ENDIF | |
684 $! | |
685 $! Check To See If P2 Is Blank. | |
686 $! | |
687 $ IF (P2.EQS."NODEBUG") | |
688 $ THEN | |
689 $! | |
690 $! P2 Is NODEBUG, So Compile Without The Debugger Information. | |
691 $! | |
692 $ DEBUGGER = "NODEBUG" | |
693 $ TRACEBACK = "NOTRACEBACK" | |
694 $ GCC_OPTIMIZE = "OPTIMIZE" | |
695 $ CC_OPTIMIZE = "OPTIMIZE" | |
696 $ MACRO_OPTIMIZE = "OPTIMIZE" | |
697 $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | |
698 $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | |
699 $ ELSE | |
700 $! | |
701 $! Check To See If We Are To Compile With Debugger Information. | |
702 $! | |
703 $ IF (P2.EQS."DEBUG") | |
704 $ THEN | |
705 $! | |
706 $! Compile With Debugger Information. | |
707 $! | |
708 $ DEBUGGER = "DEBUG" | |
709 $ TRACEBACK = "TRACEBACK" | |
710 $ GCC_OPTIMIZE = "NOOPTIMIZE" | |
711 $ CC_OPTIMIZE = "NOOPTIMIZE" | |
712 $ MACRO_OPTIMIZE = "NOOPTIMIZE" | |
713 $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | |
714 $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | |
715 $ ELSE | |
716 $! | |
717 $! They Entered An Invalid Option.. | |
718 $! | |
719 $ WRITE SYS$OUTPUT "" | |
720 $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | |
721 $ WRITE SYS$OUTPUT "" | |
722 $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | |
723 $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information
." | |
724 $ WRITE SYS$OUTPUT "" | |
725 $! | |
726 $! Time To EXIT. | |
727 $! | |
728 $ EXIT | |
729 $! | |
730 $! End The Valid Arguement Check. | |
731 $! | |
732 $ ENDIF | |
733 $! | |
734 $! End The P2 Check. | |
735 $! | |
736 $ ENDIF | |
737 $! | |
738 $! Special Threads For OpenVMS v7.1 Or Later | |
739 $! | |
740 $! Written By: Richard Levitte | |
741 $! richard@levitte.org | |
742 $! | |
743 $! | |
744 $! Check To See If We Have A Option For P5. | |
745 $! | |
746 $ IF (P5.EQS."") | |
747 $ THEN | |
748 $! | |
749 $! Get The Version Of VMS We Are Using. | |
750 $! | |
751 $ ISSEVEN := | |
752 $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | |
753 $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | |
754 $! | |
755 $! Check To See If The VMS Version Is v7.1 Or Later. | |
756 $! | |
757 $ IF (TMP.GE.71) | |
758 $ THEN | |
759 $! | |
760 $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | |
761 $! | |
762 $ ISSEVEN := ,PTHREAD_USE_D4 | |
763 $! | |
764 $! End The VMS Version Check. | |
765 $! | |
766 $ ENDIF | |
767 $! | |
768 $! End The P5 Check. | |
769 $! | |
770 $ ENDIF | |
771 $! | |
772 $! Check To See If P3 Is Blank. | |
773 $! | |
774 $ IF (P3.EQS."") | |
775 $ THEN | |
776 $! | |
777 $! O.K., The User Didn't Specify A Compiler, Let's Try To | |
778 $! Find Out Which One To Use. | |
779 $! | |
780 $! Check To See If We Have GNU C. | |
781 $! | |
782 $ IF (F$TRNLNM("GNU_CC").NES."") | |
783 $ THEN | |
784 $! | |
785 $! Looks Like GNUC, Set To Use GNUC. | |
786 $! | |
787 $ P3 = "GNUC" | |
788 $! | |
789 $! Else... | |
790 $! | |
791 $ ELSE | |
792 $! | |
793 $! Check To See If We Have VAXC Or DECC. | |
794 $! | |
795 $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | |
796 $ THEN | |
797 $! | |
798 $! Looks Like DECC, Set To Use DECC. | |
799 $! | |
800 $ P3 = "DECC" | |
801 $! | |
802 $! Else... | |
803 $! | |
804 $ ELSE | |
805 $! | |
806 $! Looks Like VAXC, Set To Use VAXC. | |
807 $! | |
808 $ P3 = "VAXC" | |
809 $! | |
810 $! End The VAXC Compiler Check. | |
811 $! | |
812 $ ENDIF | |
813 $! | |
814 $! End The DECC & VAXC Compiler Check. | |
815 $! | |
816 $ ENDIF | |
817 $! | |
818 $! End The Compiler Check. | |
819 $! | |
820 $ ENDIF | |
821 $! | |
822 $! Check To See If We Have A Option For P4. | |
823 $! | |
824 $ IF (P4.EQS."") | |
825 $ THEN | |
826 $! | |
827 $! Find out what socket library we have available | |
828 $! | |
829 $ IF F$PARSE("SOCKETSHR:") .NES. "" | |
830 $ THEN | |
831 $! | |
832 $! We have SOCKETSHR, and it is my opinion that it's the best to use. | |
833 $! | |
834 $ P4 = "SOCKETSHR" | |
835 $! | |
836 $! Tell the user | |
837 $! | |
838 $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | |
839 $! | |
840 $! Else, let's look for something else | |
841 $! | |
842 $ ELSE | |
843 $! | |
844 $! Like UCX (the reason to do this before Multinet is that the UCX | |
845 $! emulation is easier to use...) | |
846 $! | |
847 $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | |
848 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | |
849 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | |
850 $ THEN | |
851 $! | |
852 $! Last resort: a UCX or UCX-compatible library | |
853 $! | |
854 $ P4 = "UCX" | |
855 $! | |
856 $! Tell the user | |
857 $! | |
858 $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | |
859 $! | |
860 $! That was all... | |
861 $! | |
862 $ ENDIF | |
863 $ ENDIF | |
864 $ ENDIF | |
865 $! | |
866 $! Set Up Initial CC Definitions, Possibly With User Ones | |
867 $! | |
868 $ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS" | |
869 $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | |
870 $ CCEXTRAFLAGS = "" | |
871 $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | |
872 $ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" | |
873 $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | |
874 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | |
875 $! | |
876 $! Check To See If The User Entered A Valid Paramter. | |
877 $! | |
878 $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") | |
879 $ THEN | |
880 $! | |
881 $! Check To See If The User Wanted DECC. | |
882 $! | |
883 $ IF (P3.EQS."DECC") | |
884 $ THEN | |
885 $! | |
886 $! Looks Like DECC, Set To Use DECC. | |
887 $! | |
888 $ COMPILER = "DECC" | |
889 $! | |
890 $! Tell The User We Are Using DECC. | |
891 $! | |
892 $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | |
893 $! | |
894 $! Use DECC... | |
895 $! | |
896 $ CC = "CC" | |
897 $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | |
898 THEN CC = "CC/DECC" | |
899 $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - | |
900 "/NOLIST/PREFIX=ALL" + - | |
901 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + - | |
902 CCEXTRAFLAGS | |
903 $! | |
904 $! Define The Linker Options File Name. | |
905 $! | |
906 $ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" | |
907 $! | |
908 $! End DECC Check. | |
909 $! | |
910 $ ENDIF | |
911 $! | |
912 $! Check To See If We Are To Use VAXC. | |
913 $! | |
914 $ IF (P3.EQS."VAXC") | |
915 $ THEN | |
916 $! | |
917 $! Looks Like VAXC, Set To Use VAXC. | |
918 $! | |
919 $ COMPILER = "VAXC" | |
920 $! | |
921 $! Tell The User We Are Using VAX C. | |
922 $! | |
923 $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | |
924 $! | |
925 $! Compile Using VAXC. | |
926 $! | |
927 $ CC = "CC" | |
928 $ IF ARCH.NES."VAX" | |
929 $ THEN | |
930 $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | |
931 $ EXIT | |
932 $ ENDIF | |
933 $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | |
934 $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | |
935 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + - | |
936 CCEXTRAFLAGS | |
937 $ CCDEFS = """VAXC""," + CCDEFS | |
938 $! | |
939 $! Define <sys> As SYS$COMMON:[SYSLIB] | |
940 $! | |
941 $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | |
942 $! | |
943 $! Define The Linker Options File Name. | |
944 $! | |
945 $ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" | |
946 $! | |
947 $! End VAXC Check | |
948 $! | |
949 $ ENDIF | |
950 $! | |
951 $! Check To See If We Are To Use GNU C. | |
952 $! | |
953 $ IF (P3.EQS."GNUC") | |
954 $ THEN | |
955 $! | |
956 $! Looks Like GNUC, Set To Use GNUC. | |
957 $! | |
958 $ COMPILER = "GNUC" | |
959 $! | |
960 $! Tell The User We Are Using GNUC. | |
961 $! | |
962 $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | |
963 $! | |
964 $! Use GNU C... | |
965 $! | |
966 $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | |
967 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + - | |
968 CCEXTRAFLAGS | |
969 $! | |
970 $! Define The Linker Options File Name. | |
971 $! | |
972 $ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" | |
973 $! | |
974 $! End The GNU C Check. | |
975 $! | |
976 $ ENDIF | |
977 $! | |
978 $! Set up default defines | |
979 $! | |
980 $ CCDEFS = """FLAT_INC=1""," + CCDEFS | |
981 $! | |
982 $! Finish up the definition of CC. | |
983 $! | |
984 $ IF COMPILER .EQS. "DECC" | |
985 $ THEN | |
986 $ IF CCDISABLEWARNINGS .EQS. "" | |
987 $ THEN | |
988 $ CC4DISABLEWARNINGS = "DOLLARID" | |
989 $ CC6DISABLEWARNINGS = "MIXLINKAGE" | |
990 $ ELSE | |
991 $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | |
992 $ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE" | |
993 $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | |
994 $ ENDIF | |
995 $ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | |
996 $ CC6DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))" | |
997 $ ELSE | |
998 $ CCDISABLEWARNINGS = "" | |
999 $ CC4DISABLEWARNINGS = "" | |
1000 $ CC6DISABLEWARNINGS = "" | |
1001 $ ENDIF | |
1002 $ CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS | |
1003 $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | |
1004 $ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG" | |
1005 $ THEN | |
1006 $ CC5 = CC + "/OPTIMIZE=NODISJOINT" | |
1007 $ ELSE | |
1008 $ CC5 = CC + "/NOOPTIMIZE" | |
1009 $ ENDIF | |
1010 $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS | |
1011 $ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS | |
1012 $! | |
1013 $! Show user the result | |
1014 $! | |
1015 $ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC | |
1016 $! | |
1017 $! Else The User Entered An Invalid Arguement. | |
1018 $! | |
1019 $ ELSE | |
1020 $! | |
1021 $! Tell The User We Don't Know What They Want. | |
1022 $! | |
1023 $ WRITE SYS$OUTPUT "" | |
1024 $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | |
1025 $ WRITE SYS$OUTPUT "" | |
1026 $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | |
1027 $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | |
1028 $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | |
1029 $ WRITE SYS$OUTPUT "" | |
1030 $! | |
1031 $! Time To EXIT. | |
1032 $! | |
1033 $ EXIT | |
1034 $! | |
1035 $! End The Valid Arguement Check. | |
1036 $! | |
1037 $ ENDIF | |
1038 $! | |
1039 $! Build a MACRO command for the architecture at hand | |
1040 $! | |
1041 $ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'" | |
1042 $ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE
'" | |
1043 $! | |
1044 $! Show user the result | |
1045 $! | |
1046 $ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO | |
1047 $! | |
1048 $! Time to check the contents, and to make sure we get the correct library. | |
1049 $! | |
1050 $ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" - | |
1051 .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE" | |
1052 $ THEN | |
1053 $! | |
1054 $! Check to see if SOCKETSHR was chosen | |
1055 $! | |
1056 $ IF P4.EQS."SOCKETSHR" | |
1057 $ THEN | |
1058 $! | |
1059 $! Set the library to use SOCKETSHR | |
1060 $! | |
1061 $ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" | |
1062 $! | |
1063 $! Done with SOCKETSHR | |
1064 $! | |
1065 $ ENDIF | |
1066 $! | |
1067 $! Check to see if MULTINET was chosen | |
1068 $! | |
1069 $ IF P4.EQS."MULTINET" | |
1070 $ THEN | |
1071 $! | |
1072 $! Set the library to use UCX emulation. | |
1073 $! | |
1074 $ P4 = "UCX" | |
1075 $! | |
1076 $! Done with MULTINET | |
1077 $! | |
1078 $ ENDIF | |
1079 $! | |
1080 $! Check to see if UCX was chosen | |
1081 $! | |
1082 $ IF P4.EQS."UCX" | |
1083 $ THEN | |
1084 $! | |
1085 $! Set the library to use UCX. | |
1086 $! | |
1087 $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" | |
1088 $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | |
1089 $ THEN | |
1090 $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" | |
1091 $ ELSE | |
1092 $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | |
1093 TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" | |
1094 $ ENDIF | |
1095 $! | |
1096 $! Done with UCX | |
1097 $! | |
1098 $ ENDIF | |
1099 $! | |
1100 $! Check to see if TCPIP was chosen | |
1101 $! | |
1102 $ IF P4.EQS."TCPIP" | |
1103 $ THEN | |
1104 $! | |
1105 $! Set the library to use TCPIP (post UCX). | |
1106 $! | |
1107 $ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" | |
1108 $! | |
1109 $! Done with TCPIP | |
1110 $! | |
1111 $ ENDIF | |
1112 $! | |
1113 $! Check to see if NONE was chosen | |
1114 $! | |
1115 $ IF P4.EQS."NONE" | |
1116 $ THEN | |
1117 $! | |
1118 $! Do not use a TCPIP library. | |
1119 $! | |
1120 $ TCPIP_LIB = "" | |
1121 $! | |
1122 $! Done with TCPIP | |
1123 $! | |
1124 $ ENDIF | |
1125 $! | |
1126 $! Print info | |
1127 $! | |
1128 $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB | |
1129 $! | |
1130 $! Else The User Entered An Invalid Arguement. | |
1131 $! | |
1132 $ ELSE | |
1133 $! | |
1134 $! Tell The User We Don't Know What They Want. | |
1135 $! | |
1136 $ WRITE SYS$OUTPUT "" | |
1137 $ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:" | |
1138 $ WRITE SYS$OUTPUT "" | |
1139 $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | |
1140 $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | |
1141 $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP lib
rary." | |
1142 $ WRITE SYS$OUTPUT "" | |
1143 $! | |
1144 $! Time To EXIT. | |
1145 $! | |
1146 $ EXIT | |
1147 $! | |
1148 $! Done with TCP/IP libraries | |
1149 $! | |
1150 $ ENDIF | |
1151 $! | |
1152 $! Check if the user wanted to compile just a subset of all the encryption | |
1153 $! methods. | |
1154 $! | |
1155 $ IF P6 .NES. "" | |
1156 $ THEN | |
1157 $ ENCRYPT_TYPES = P6 | |
1158 $ ENDIF | |
1159 $! | |
1160 $! Time To RETURN... | |
1161 $! | |
1162 $ RETURN | |
1163 $! | |
1164 $ INITIALISE: | |
1165 $! | |
1166 $! Save old value of the logical name OPENSSL | |
1167 $! | |
1168 $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | |
1169 $! | |
1170 $! Save directory information | |
1171 $! | |
1172 $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A
.;" | |
1173 $ __HERE = F$EDIT(__HERE,"UPCASE") | |
1174 $ __TOP = __HERE - "FIPS-1_0]" | |
1175 $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | |
1176 $! | |
1177 $! Set up the logical name OPENSSL to point at the include directory | |
1178 $! | |
1179 $ DEFINE OPENSSL/NOLOG '__INCLUDE' | |
1180 $! | |
1181 $! Done | |
1182 $! | |
1183 $ RETURN | |
1184 $! | |
1185 $ CLEANUP: | |
1186 $! | |
1187 $! Restore the logical name OPENSSL if it had a value | |
1188 $! | |
1189 $ IF __SAVE_OPENSSL .EQS. "" | |
1190 $ THEN | |
1191 $ DEASSIGN OPENSSL | |
1192 $ ELSE | |
1193 $ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL' | |
1194 $ ENDIF | |
1195 $! | |
1196 $! Done | |
1197 $! | |
1198 $ RETURN | |
OLD | NEW |