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