]>
Commit | Line | Data |
---|---|---|
7d7d2cbc UM |
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> | |
995d08d1 | 9 | $! Zoltan Arpadffy <arpadffy@polarhome.com> |
7d7d2cbc UM |
10 | $! |
11 | $! This command files compiles and creates all the various different | |
12 | $! "test" programs for the different types of encryption for OpenSSL. | |
13 | $! It was written so it would try to determine what "C" compiler to | |
14 | $! use or you can specify which "C" compiler to use. | |
15 | $! | |
006c7c6b RL |
16 | $! The test "executables" will be placed in a directory called |
17 | $! [.xxx.EXE.TEST] where "xxx" denotes ALPHA, IA64, or VAX, depending | |
18 | $! on your machine architecture. | |
7d7d2cbc | 19 | $! |
b6d0defb | 20 | $! Specify DEBUG or NODEBUG P1 to compile with or without debugger |
7d7d2cbc UM |
21 | $! information. |
22 | $! | |
b6d0defb | 23 | $! Specify which compiler at P2 to try to compile under. |
7d7d2cbc UM |
24 | $! |
25 | $! VAXC For VAX C. | |
26 | $! DECC For DEC C. | |
27 | $! GNUC For GNU C. | |
28 | $! | |
d135906d | 29 | $! If you don't specify a compiler, it will try to determine which |
7d7d2cbc UM |
30 | $! "C" compiler to use. |
31 | $! | |
b6d0defb | 32 | $! P3, if defined, sets a TCP/IP library to use, through one of the following |
7d7d2cbc UM |
33 | $! keywords: |
34 | $! | |
35 | $! UCX for UCX | |
36 | $! SOCKETSHR for SOCKETSHR+NETLIB | |
37 | $! | |
b6d0defb | 38 | $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) |
7d7d2cbc | 39 | $! |
90d02be7 | 40 | $! |
01d2e27a | 41 | $! P5, if defined, specifies the C pointer size. Ignored on VAX. |
ecff2e5c | 42 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) |
01d2e27a | 43 | $! Supported values are: |
90d02be7 | 44 | $! |
ecff2e5c RL |
45 | $! "" Compile with default (/NOPOINTER_SIZE) |
46 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | |
47 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]) | |
d135906d RL |
48 | $! (Automatically select ARGV if compiler supports it.) |
49 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | |
50 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | |
01d2e27a RL |
51 | $! |
52 | $! P6, if defined, specifies a directory where ZLIB files (zlib.h, | |
53 | $! libz.olb) may be found. Optionally, a non-default object library | |
54 | $! name may be included ("dev:[dir]libz_64.olb", for example). | |
55 | $! | |
56 | $! | |
57 | $! Announce/identify. | |
58 | $! | |
59 | $ proc = f$environment( "procedure") | |
60 | $ write sys$output "@@@ "+ - | |
61 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | |
7d7d2cbc UM |
62 | $! |
63 | $! Define A TCP/IP Library That We Will Need To Link To. | |
01d2e27a | 64 | $! (That is, If We Need To Link To One.) |
7d7d2cbc UM |
65 | $! |
66 | $ TCPIP_LIB = "" | |
01d2e27a | 67 | $ ZLIB_LIB = "" |
7d7d2cbc | 68 | $! |
72d57050 | 69 | $! Check Which Architecture We Are Using. |
7d7d2cbc | 70 | $! |
01d2e27a | 71 | $ if (f$getsyi( "cpu") .lt. 128) |
72d57050 | 72 | $ then |
01d2e27a | 73 | $ ARCH = "VAX" |
72d57050 | 74 | $ else |
01d2e27a RL |
75 | $ ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") |
76 | $ if (ARCH .eqs. "") then ARCH = "UNK" | |
72d57050 | 77 | $ endif |
7d7d2cbc | 78 | $! |
01d2e27a RL |
79 | $ ARCHD = ARCH |
80 | $ LIB32 = "32" | |
81 | $ OPT_FILE = "" | |
82 | $ POINTER_SIZE = "" | |
006c7c6b | 83 | $! |
7d7d2cbc UM |
84 | $! Check To Make Sure We Have Valid Command Line Parameters. |
85 | $! | |
86 | $ GOSUB CHECK_OPTIONS | |
87 | $! | |
01d2e27a RL |
88 | $! Define The OBJ and EXE Directories. |
89 | $! | |
90 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST] | |
91 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST] | |
92 | $! | |
93 | $! Specify the destination directory in any /MAP option. | |
94 | $! | |
95 | $ if (LINKMAP .eqs. "MAP") | |
96 | $ then | |
97 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | |
98 | $ endif | |
99 | $! | |
100 | $! Add the location prefix to the linker options file name. | |
101 | $! | |
102 | $ if (OPT_FILE .nes. "") | |
103 | $ then | |
104 | $ OPT_FILE = EXE_DIR+ OPT_FILE | |
105 | $ endif | |
106 | $! | |
7d7d2cbc UM |
107 | $! Initialise logical names and such |
108 | $! | |
109 | $ GOSUB INITIALISE | |
110 | $! | |
111 | $! Tell The User What Kind of Machine We Run On. | |
112 | $! | |
01d2e27a | 113 | $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'" |
7d7d2cbc UM |
114 | $! |
115 | $! Define The CRYPTO-LIB We Are To Use. | |
116 | $! | |
01d2e27a | 117 | $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB |
7d7d2cbc | 118 | $! |
7d7d2cbc UM |
119 | $! Define The SSL We Are To Use. |
120 | $! | |
01d2e27a | 121 | $ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB |
7d7d2cbc | 122 | $! |
72d57050 | 123 | $! Create the OBJ and EXE Directories, if needed. |
7d7d2cbc | 124 | $! |
72d57050 RL |
125 | $ IF (F$PARSE(OBJ_DIR).EQS."") THEN - |
126 | CREATE /DIRECTORY 'OBJ_DIR' | |
127 | $ IF (F$PARSE(EXE_DIR).EQS."") THEN - | |
128 | CREATE /DIRECTORY 'EXE_DIR' | |
7d7d2cbc UM |
129 | $! |
130 | $! Check To See If We Have The Proper Libraries. | |
131 | $! | |
132 | $ GOSUB LIB_CHECK | |
133 | $! | |
134 | $! Check To See If We Have A Linker Option File. | |
135 | $! | |
136 | $ GOSUB CHECK_OPT_FILE | |
137 | $! | |
138 | $! Define The TEST Files. | |
006c7c6b RL |
139 | $! NOTE: Some might think this list ugly. However, it's made this way to |
140 | $! reflect the EXE variable in Makefile as closely as possible, | |
141 | $! thereby making it fairly easy to verify that the lists are the same. | |
7d7d2cbc | 142 | $! |
da0bca64 | 143 | $ TEST_FILES = "BNTEST,ECTEST,ECDSATEST,ECDHTEST,IDEATEST,"+ - |
0e8e6f19 | 144 | "MD2TEST,MD4TEST,MD5TEST,HMACTEST,WP_TEST,"+ - |
7d7d2cbc | 145 | "RC2TEST,RC4TEST,RC5TEST,"+ - |
4d692e1b RL |
146 | "DESTEST,SHATEST,SHA1TEST,SHA256T,SHA512T,"+ - |
147 | "MDC2TEST,RMDTEST,"+ - | |
abb48d5a | 148 | "RANDTEST,DHTEST,ENGINETEST,"+ - |
3a457cca | 149 | "BFTEST,CASTTEST,SSLTEST,EXPTEST,DSATEST,RSA_TEST,"+ - |
8a2ce3a3 | 150 | "EVP_TEST,EVP_EXTRA_TEST,IGETEST,JPAKETEST,SRPTEST,"+ - |
ef8055cb | 151 | "ASN1TEST,V3NAMETEST,HEARTBEAT_TEST,"+ - |
8a2ce3a3 | 152 | "CONSTANT_TIME_TEST,VERIFY_EXTRA_TEST,"+ - |
ceee07ce RL |
153 | "CLIENTHELLOTEST,SSLV2CONFTEST,DTLSTEST,"+ - |
154 | "BAD_DTLS_TEST,FATALERRTEST" | |
72d57050 RL |
155 | $! |
156 | $! Additional directory information. | |
157 | $ T_D_BNTEST := [-.crypto.bn] | |
158 | $ T_D_ECTEST := [-.crypto.ec] | |
159 | $ T_D_ECDSATEST := [-.crypto.ecdsa] | |
160 | $ T_D_ECDHTEST := [-.crypto.ecdh] | |
161 | $ T_D_IDEATEST := [-.crypto.idea] | |
162 | $ T_D_MD2TEST := [-.crypto.md2] | |
163 | $ T_D_MD4TEST := [-.crypto.md4] | |
164 | $ T_D_MD5TEST := [-.crypto.md5] | |
165 | $ T_D_HMACTEST := [-.crypto.hmac] | |
166 | $ T_D_WP_TEST := [-.crypto.whrlpool] | |
167 | $ T_D_RC2TEST := [-.crypto.rc2] | |
168 | $ T_D_RC4TEST := [-.crypto.rc4] | |
169 | $ T_D_RC5TEST := [-.crypto.rc5] | |
170 | $ T_D_DESTEST := [-.crypto.des] | |
171 | $ T_D_SHATEST := [-.crypto.sha] | |
172 | $ T_D_SHA1TEST := [-.crypto.sha] | |
173 | $ T_D_SHA256T := [-.crypto.sha] | |
174 | $ T_D_SHA512T := [-.crypto.sha] | |
175 | $ T_D_MDC2TEST := [-.crypto.mdc2] | |
176 | $ T_D_RMDTEST := [-.crypto.ripemd] | |
177 | $ T_D_RANDTEST := [-.crypto.rand] | |
178 | $ T_D_DHTEST := [-.crypto.dh] | |
179 | $ T_D_ENGINETEST := [-.crypto.engine] | |
180 | $ T_D_BFTEST := [-.crypto.bf] | |
181 | $ T_D_CASTTEST := [-.crypto.cast] | |
182 | $ T_D_SSLTEST := [-.ssl] | |
183 | $ T_D_EXPTEST := [-.crypto.bn] | |
184 | $ T_D_DSATEST := [-.crypto.dsa] | |
185 | $ T_D_RSA_TEST := [-.crypto.rsa] | |
186 | $ T_D_EVP_TEST := [-.crypto.evp] | |
8a2ce3a3 | 187 | $ T_D_EVP_EXTRA_TEST := [-.crypto.evp] |
72d57050 | 188 | $ T_D_IGETEST := [-.test] |
deb35e3e | 189 | $ T_D_JPAKETEST := [-.crypto.jpake] |
4692b334 | 190 | $ T_D_SRPTEST := [-.crypto.srp] |
995d08d1 | 191 | $ T_D_V3NAMETEST := [-.crypto.x509v3] |
deb35e3e | 192 | $ T_D_ASN1TEST := [-.test] |
995d08d1 | 193 | $ T_D_HEARTBEAT_TEST := [-.ssl] |
ef8055cb | 194 | $ T_D_CONSTANT_TIME_TEST := [-.crypto] |
8a2ce3a3 RL |
195 | $ T_D_VERIFY_EXTRA_TEST := [-.crypto.x509] |
196 | $ T_D_CLIENTHELLOTEST := [-.ssl] | |
ceee07ce | 197 | $ T_D_BAD_DTLS_TEST := [-.ssl] |
8a2ce3a3 | 198 | $ T_D_SSLV2CONFTEST := [-.ssl] |
66e70832 | 199 | $ T_D_DTLSTEST := [-.ssl] |
ceee07ce | 200 | $ T_D_FATALERRTEST := [-.ssl] |
66e70832 RL |
201 | $ |
202 | $ EXOBJ_DTLSTEST := SSLTESTLIB | |
ceee07ce | 203 | $ EXOBJ_FATALERRTEST := SSLTESTLIB |
72d57050 | 204 | $! |
7d7d2cbc UM |
205 | $ TCPIP_PROGRAMS = ",," |
206 | $ IF COMPILER .EQS. "VAXC" THEN - | |
207 | TCPIP_PROGRAMS = ",SSLTEST," | |
208 | $! | |
72d57050 | 209 | $! Define A File Counter And Set It To "0". |
7d7d2cbc UM |
210 | $! |
211 | $ FILE_COUNTER = 0 | |
212 | $! | |
213 | $! Top Of The File Loop. | |
214 | $! | |
215 | $ NEXT_FILE: | |
216 | $! | |
217 | $! O.K, Extract The File Name From The File List. | |
218 | $! | |
219 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES) | |
220 | $! | |
221 | $! Check To See If We Are At The End Of The File List. | |
222 | $! | |
223 | $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE | |
224 | $! | |
225 | $! Increment The Counter. | |
226 | $! | |
227 | $ FILE_COUNTER = FILE_COUNTER + 1 | |
228 | $! | |
229 | $! Create The Source File Name. | |
230 | $! | |
72d57050 | 231 | $ SOURCE_FILE = "SYS$DISK:" + T_D_'FILE_NAME' + FILE_NAME + ".C" |
7d7d2cbc UM |
232 | $! |
233 | $! Create The Object File Name. | |
234 | $! | |
235 | $ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ" | |
66e70832 | 236 | $ OBJECT_FILES = OBJECT_FILE |
7d7d2cbc UM |
237 | $! |
238 | $! Create The Executable File Name. | |
239 | $! | |
240 | $ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE" | |
66e70832 RL |
241 | $! |
242 | $! Do the same for the possible extra unit | |
243 | $! | |
244 | $ IF F$TYPE(EXOBJ_'FILE_NAME') .NES. "" | |
245 | $ THEN | |
246 | $ EXOBJ_SOURCE_FILE = "SYS$DISK:" + EXOBJ_'FILE_NAME' + ".C" | |
247 | $ EXOBJ_OBJECT_FILE = OBJ_DIR + EXOBJ_'FILE_NAME' + ".OBJ" | |
248 | $ OBJECT_FILES = OBJECT_FILES + "," + EXOBJ_OBJECT_FILE | |
249 | $ ENDIF | |
250 | $! | |
7d7d2cbc UM |
251 | $ ON WARNING THEN GOTO NEXT_FILE |
252 | $! | |
253 | $! Check To See If The File We Want To Compile Actually Exists. | |
254 | $! | |
255 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | |
256 | $ THEN | |
257 | $! | |
258 | $! Tell The User That The File Dosen't Exist. | |
259 | $! | |
260 | $ WRITE SYS$OUTPUT "" | |
261 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist." | |
262 | $ WRITE SYS$OUTPUT "" | |
263 | $! | |
264 | $! Exit The Build. | |
265 | $! | |
266 | $ GOTO EXIT | |
267 | $ ENDIF | |
268 | $! | |
269 | $! Tell The User What We Are Building. | |
270 | $! | |
271 | $ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program." | |
272 | $! | |
273 | $! Compile The File. | |
274 | $! | |
275 | $ ON ERROR THEN GOTO NEXT_FILE | |
72d57050 | 276 | $ CC /OBJECT='OBJECT_FILE' 'SOURCE_FILE' |
66e70832 RL |
277 | $ IF F$TYPE(EXOBJ_'FILE_NAME') .NES. "" |
278 | $ THEN | |
279 | $ CC /OBJECT='EXOBJ_OBJECT_FILE' 'EXOBJ_SOURCE_FILE' | |
280 | $ ENDIF | |
7d7d2cbc UM |
281 | $ ON WARNING THEN GOTO NEXT_FILE |
282 | $! | |
283 | $! Check If What We Are About To Compile Works Without A TCP/IP Library. | |
284 | $! | |
285 | $ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS)) | |
286 | $ THEN | |
287 | $! | |
288 | $! Inform The User That A TCP/IP Library Is Needed To Compile This Program. | |
289 | $! | |
72d57050 RL |
290 | $ WRITE SYS$OUTPUT - |
291 | FILE_NAME," Needs A TCP/IP Library. Can't Link. Skipping..." | |
7d7d2cbc UM |
292 | $ GOTO NEXT_FILE |
293 | $! | |
294 | $! End The TCP/IP Library Check. | |
295 | $! | |
296 | $ ENDIF | |
297 | $! | |
298 | $! Link The Program, Check To See If We Need To Link With RSAREF Or Not. | |
b6d0defb | 299 | $! Check To See If We Are To Link With A Specific TCP/IP Library. |
7d7d2cbc | 300 | $! |
b6d0defb | 301 | $! Don't Link With The RSAREF Routines And TCP/IP Library. |
7d7d2cbc | 302 | $! |
01d2e27a | 303 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' - |
66e70832 | 304 | 'OBJECT_FILES', - |
01d2e27a RL |
305 | 'SSL_LIB' /LIBRARY, - |
306 | 'CRYPTO_LIB' /LIBRARY - | |
307 | 'TCPIP_LIB' - | |
308 | 'ZLIB_LIB' - | |
309 | ,'OPT_FILE' /OPTIONS | |
7d7d2cbc UM |
310 | $! |
311 | $! Go Back And Do It Again. | |
312 | $! | |
313 | $ GOTO NEXT_FILE | |
314 | $! | |
315 | $! All Done With This Library Part. | |
316 | $! | |
317 | $ FILE_DONE: | |
318 | $! | |
319 | $! All Done, Time To Exit. | |
320 | $! | |
321 | $ EXIT: | |
322 | $ GOSUB CLEANUP | |
323 | $ EXIT | |
324 | $! | |
325 | $! Check For The Link Option FIle. | |
326 | $! | |
327 | $ CHECK_OPT_FILE: | |
328 | $! | |
329 | $! Check To See If We Need To Make A VAX C Option File. | |
330 | $! | |
331 | $ IF (COMPILER.EQS."VAXC") | |
332 | $ THEN | |
333 | $! | |
334 | $! Check To See If We Already Have A VAX C Linker Option File. | |
335 | $! | |
336 | $ IF (F$SEARCH(OPT_FILE).EQS."") | |
337 | $ THEN | |
338 | $! | |
339 | $! We Need A VAX C Linker Option File. | |
340 | $! | |
341 | $ CREATE 'OPT_FILE' | |
342 | $DECK | |
343 | ! | |
72d57050 | 344 | ! Default System Options File To Link Against |
7d7d2cbc UM |
345 | ! The Sharable VAX C Runtime Library. |
346 | ! | |
72d57050 | 347 | SYS$SHARE:VAXCRTL.EXE /SHAREABLE |
7d7d2cbc UM |
348 | $EOD |
349 | $! | |
350 | $! End The Option File Check. | |
351 | $! | |
352 | $ ENDIF | |
353 | $! | |
354 | $! End The VAXC Check. | |
355 | $! | |
356 | $ ENDIF | |
357 | $! | |
358 | $! Check To See If We Need A GNU C Option File. | |
359 | $! | |
360 | $ IF (COMPILER.EQS."GNUC") | |
361 | $ THEN | |
362 | $! | |
363 | $! Check To See If We Already Have A GNU C Linker Option File. | |
364 | $! | |
365 | $ IF (F$SEARCH(OPT_FILE).EQS."") | |
366 | $ THEN | |
367 | $! | |
368 | $! We Need A GNU C Linker Option File. | |
369 | $! | |
370 | $ CREATE 'OPT_FILE' | |
371 | $DECK | |
372 | ! | |
01d2e27a | 373 | ! Default System Options File To Link Against |
7d7d2cbc UM |
374 | ! The Sharable C Runtime Library. |
375 | ! | |
72d57050 RL |
376 | GNU_CC:[000000]GCCLIB.OLB /LIBRARY |
377 | SYS$SHARE:VAXCRTL.EXE /SHAREABLE | |
7d7d2cbc UM |
378 | $EOD |
379 | $! | |
380 | $! End The Option File Check. | |
381 | $! | |
382 | $ ENDIF | |
383 | $! | |
384 | $! End The GNU C Check. | |
385 | $! | |
386 | $ ENDIF | |
387 | $! | |
388 | $! Check To See If We Need A DEC C Option File. | |
389 | $! | |
390 | $ IF (COMPILER.EQS."DECC") | |
391 | $ THEN | |
392 | $! | |
393 | $! Check To See If We Already Have A DEC C Linker Option File. | |
394 | $! | |
395 | $ IF (F$SEARCH(OPT_FILE).EQS."") | |
396 | $ THEN | |
397 | $! | |
006c7c6b | 398 | $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. |
7d7d2cbc UM |
399 | $! |
400 | $ IF (ARCH.EQS."VAX") | |
401 | $ THEN | |
402 | $! | |
403 | $! We Need A DEC C Linker Option File For VAX. | |
404 | $! | |
405 | $ CREATE 'OPT_FILE' | |
406 | $DECK | |
407 | ! | |
01d2e27a | 408 | ! Default System Options File To Link Against |
7d7d2cbc UM |
409 | ! The Sharable DEC C Runtime Library. |
410 | ! | |
72d57050 | 411 | SYS$SHARE:DECC$SHR.EXE /SHAREABLE |
7d7d2cbc UM |
412 | $EOD |
413 | $! | |
414 | $! Else... | |
415 | $! | |
416 | $ ELSE | |
417 | $! | |
006c7c6b | 418 | $! Create The non-VAX Linker Option File. |
7d7d2cbc UM |
419 | $! |
420 | $ CREATE 'OPT_FILE' | |
421 | $DECK | |
422 | ! | |
01d2e27a | 423 | ! Default System Options File For non-VAX To Link Against |
7d7d2cbc UM |
424 | ! The Sharable C Runtime Library. |
425 | ! | |
72d57050 RL |
426 | SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE |
427 | SYS$SHARE:CMA$OPEN_RTL.EXE /SHAREABLE | |
7d7d2cbc UM |
428 | $EOD |
429 | $! | |
006c7c6b | 430 | $! End The DEC C Option File Check. |
7d7d2cbc UM |
431 | $! |
432 | $ ENDIF | |
433 | $! | |
434 | $! End The Option File Search. | |
435 | $! | |
436 | $ ENDIF | |
437 | $! | |
438 | $! End The DEC C Check. | |
439 | $! | |
440 | $ ENDIF | |
441 | $! | |
442 | $! Tell The User What Linker Option File We Are Using. | |
443 | $! | |
444 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | |
445 | $! | |
446 | $! Time To RETURN. | |
447 | $! | |
448 | $ RETURN | |
449 | $! | |
450 | $! Check To See If We Have The Appropiate Libraries. | |
451 | $! | |
452 | $ LIB_CHECK: | |
453 | $! | |
454 | $! Look For The Library LIBCRYPTO.OLB. | |
455 | $! | |
456 | $ IF (F$SEARCH(CRYPTO_LIB).EQS."") | |
457 | $ THEN | |
458 | $! | |
459 | $! Tell The User We Can't Find The LIBCRYPTO.OLB Library. | |
460 | $! | |
461 | $ WRITE SYS$OUTPUT "" | |
462 | $ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"." | |
463 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | |
464 | $ WRITE SYS$OUTPUT "" | |
465 | $! | |
466 | $! Since We Can't Link Without It, Exit. | |
467 | $! | |
468 | $ EXIT | |
469 | $! | |
470 | $! End The Crypto Library Check. | |
471 | $! | |
472 | $ ENDIF | |
473 | $! | |
7d7d2cbc UM |
474 | $! Look For The Library LIBSSL.OLB. |
475 | $! | |
476 | $ IF (F$SEARCH(SSL_LIB).EQS."") | |
477 | $ THEN | |
478 | $! | |
479 | $! Tell The User We Can't Find The LIBSSL.OLB Library. | |
480 | $! | |
481 | $ WRITE SYS$OUTPUT "" | |
482 | $ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"." | |
483 | $ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It." | |
484 | $ WRITE SYS$OUTPUT "" | |
485 | $! | |
486 | $! Since We Can't Link Without It, Exit. | |
487 | $! | |
488 | $ EXIT | |
489 | $! | |
490 | $! End The SSL Library Check. | |
491 | $! | |
492 | $ ENDIF | |
493 | $! | |
494 | $! Time To Return. | |
495 | $! | |
496 | $ RETURN | |
497 | $! | |
498 | $! Check The User's Options. | |
499 | $! | |
500 | $ CHECK_OPTIONS: | |
501 | $! | |
01d2e27a RL |
502 | $! Set basic C compiler /INCLUDE directories. |
503 | $! | |
66e70832 | 504 | $ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO],SYS$DISK:[-.TEST]" |
01d2e27a | 505 | $! |
7d7d2cbc UM |
506 | $! Check To See If P1 Is Blank. |
507 | $! | |
b6d0defb | 508 | $ IF (P1.EQS."NODEBUG") |
7d7d2cbc UM |
509 | $ THEN |
510 | $! | |
01d2e27a | 511 | $! P1 Is NODEBUG, So Compile Without Debugger Information. |
7d7d2cbc | 512 | $! |
01d2e27a RL |
513 | $ DEBUGGER = "NODEBUG" |
514 | $ LINKMAP = "NOMAP" | |
515 | $ TRACEBACK = "NOTRACEBACK" | |
516 | $ GCC_OPTIMIZE = "OPTIMIZE" | |
517 | $ CC_OPTIMIZE = "OPTIMIZE" | |
518 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | |
519 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | |
7d7d2cbc UM |
520 | $! |
521 | $! Else... | |
522 | $! | |
523 | $ ELSE | |
524 | $! | |
525 | $! Check To See If We Are To Compile With Debugger Information. | |
526 | $! | |
b6d0defb | 527 | $ IF (P1.EQS."DEBUG") |
7d7d2cbc UM |
528 | $ THEN |
529 | $! | |
530 | $! Compile With Debugger Information. | |
531 | $! | |
532 | $ DEBUGGER = "DEBUG" | |
01d2e27a | 533 | $ LINKMAP = "MAP" |
7d7d2cbc UM |
534 | $ TRACEBACK = "TRACEBACK" |
535 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | |
536 | $ CC_OPTIMIZE = "NOOPTIMIZE" | |
537 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | |
538 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | |
539 | $! | |
540 | $! Else... | |
541 | $! | |
542 | $ ELSE | |
543 | $! | |
01d2e27a | 544 | $! Tell The User Entered An Invalid Option. |
7d7d2cbc UM |
545 | $! |
546 | $ WRITE SYS$OUTPUT "" | |
b6d0defb | 547 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" |
7d7d2cbc UM |
548 | $ WRITE SYS$OUTPUT "" |
549 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | |
550 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | |
551 | $ WRITE SYS$OUTPUT "" | |
552 | $! | |
553 | $! Time To EXIT. | |
554 | $! | |
555 | $ EXIT | |
556 | $! | |
01d2e27a | 557 | $! End The Valid Argument Check. |
7d7d2cbc UM |
558 | $! |
559 | $ ENDIF | |
560 | $! | |
90d02be7 RL |
561 | $! End The P1 Check. |
562 | $! | |
563 | $ ENDIF | |
564 | $! | |
01d2e27a | 565 | $! Check P5 (POINTER_SIZE). |
90d02be7 | 566 | $! |
01d2e27a | 567 | $ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX") |
90d02be7 | 568 | $ THEN |
90d02be7 | 569 | $! |
01d2e27a | 570 | $ IF (P5 .EQS. "32") |
90d02be7 | 571 | $ THEN |
ecff2e5c | 572 | $ POINTER_SIZE = " /POINTER_SIZE=32" |
90d02be7 | 573 | $ ELSE |
d135906d RL |
574 | $ POINTER_SIZE = F$EDIT( P5, "COLLAPSE, UPCASE") |
575 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | |
576 | (POINTER_SIZE .EQS. "64=") .OR. - | |
577 | (POINTER_SIZE .EQS. "64=ARGV")) | |
90d02be7 | 578 | $ THEN |
d135906d RL |
579 | $ ARCHD = ARCH+ "_64" |
580 | $ LIB32 = "" | |
581 | $ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=") | |
582 | $ THEN | |
ecff2e5c RL |
583 | $! Explicit user choice: "64" or "64=ARGV". |
584 | $ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64" | |
d135906d | 585 | $ ELSE |
ecff2e5c | 586 | $ SET NOON |
d135906d RL |
587 | $ DEFINE /USER_MODE SYS$OUTPUT NL: |
588 | $ DEFINE /USER_MODE SYS$ERROR NL: | |
589 | $ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL: | |
ecff2e5c RL |
590 | $ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000 |
591 | $ THEN | |
592 | $ ! If we got here, it means DCL complained like this: | |
593 | $ ! %DCL-W-NOVALU, value not allowed - remove value specification | |
594 | $ ! \64=\ | |
595 | $ ! | |
596 | $ ! If the compiler was run, logicals defined in /USER would | |
597 | $ ! have been deassigned automatically. However, when DCL | |
598 | $ ! complains, they aren't, so we do it here (it might be | |
599 | $ ! unnecessary, but just in case there will be another error | |
600 | $ ! message further on that we don't want to miss) | |
d135906d RL |
601 | $ DEASSIGN /USER_MODE SYS$ERROR |
602 | $ DEASSIGN /USER_MODE SYS$OUTPUT | |
ecff2e5c RL |
603 | $ ELSE |
604 | $ POINTER_SIZE = POINTER_SIZE + "=ARGV" | |
605 | $ ENDIF | |
606 | $ SET ON | |
d135906d | 607 | $ ENDIF |
ecff2e5c | 608 | $ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'" |
90d02be7 RL |
609 | $ ELSE |
610 | $! | |
01d2e27a | 611 | $! Tell The User Entered An Invalid Option. |
90d02be7 RL |
612 | $! |
613 | $ WRITE SYS$OUTPUT "" | |
01d2e27a RL |
614 | $ WRITE SYS$OUTPUT "The Option ", P5, - |
615 | " Is Invalid. The Valid Options Are:" | |
90d02be7 | 616 | $ WRITE SYS$OUTPUT "" |
d135906d RL |
617 | $ WRITE SYS$OUTPUT - |
618 | " """" : Compile with default (short) pointers." | |
619 | $ WRITE SYS$OUTPUT - | |
620 | " 32 : Compile with 32-bit (short) pointers." | |
621 | $ WRITE SYS$OUTPUT - | |
622 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | |
623 | $ WRITE SYS$OUTPUT - | |
624 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | |
625 | $ WRITE SYS$OUTPUT - | |
626 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | |
90d02be7 | 627 | $ WRITE SYS$OUTPUT "" |
01d2e27a | 628 | $! |
90d02be7 RL |
629 | $! Time To EXIT. |
630 | $! | |
01d2e27a | 631 | $ EXIT |
90d02be7 RL |
632 | $! |
633 | $ ENDIF | |
01d2e27a | 634 | $! |
90d02be7 RL |
635 | $ ENDIF |
636 | $! | |
01d2e27a | 637 | $! End The P5 (POINTER_SIZE) Check. |
7d7d2cbc UM |
638 | $! |
639 | $ ENDIF | |
640 | $! | |
b6d0defb | 641 | $! Check To See If P2 Is Blank. |
7d7d2cbc | 642 | $! |
b6d0defb | 643 | $ IF (P2.EQS."") |
7d7d2cbc UM |
644 | $ THEN |
645 | $! | |
646 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | |
647 | $! Find Out Which One To Use. | |
648 | $! | |
649 | $! Check To See If We Have GNU C. | |
650 | $! | |
651 | $ IF (F$TRNLNM("GNU_CC").NES."") | |
652 | $ THEN | |
653 | $! | |
654 | $! Looks Like GNUC, Set To Use GNUC. | |
655 | $! | |
b6d0defb | 656 | $ P2 = "GNUC" |
7d7d2cbc UM |
657 | $! |
658 | $! End The GNU C Compiler Check. | |
659 | $! | |
660 | $ ELSE | |
661 | $! | |
662 | $! Check To See If We Have VAXC Or DECC. | |
663 | $! | |
006c7c6b | 664 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") |
7d7d2cbc UM |
665 | $ THEN |
666 | $! | |
667 | $! Looks Like DECC, Set To Use DECC. | |
668 | $! | |
b6d0defb | 669 | $ P2 = "DECC" |
7d7d2cbc UM |
670 | $! |
671 | $! Else... | |
672 | $! | |
673 | $ ELSE | |
674 | $! | |
675 | $! Looks Like VAXC, Set To Use VAXC. | |
676 | $! | |
b6d0defb | 677 | $ P2 = "VAXC" |
7d7d2cbc UM |
678 | $! |
679 | $! End The VAXC Compiler Check. | |
680 | $! | |
681 | $ ENDIF | |
682 | $! | |
683 | $! End The DECC & VAXC Compiler Check. | |
684 | $! | |
685 | $ ENDIF | |
686 | $! | |
687 | $! End The Compiler Check. | |
688 | $! | |
689 | $ ENDIF | |
690 | $! | |
b6d0defb | 691 | $! Check To See If We Have A Option For P3. |
7d7d2cbc | 692 | $! |
b6d0defb | 693 | $ IF (P3.EQS."") |
7d7d2cbc UM |
694 | $ THEN |
695 | $! | |
696 | $! Find out what socket library we have available | |
697 | $! | |
698 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | |
699 | $ THEN | |
700 | $! | |
701 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | |
702 | $! | |
b6d0defb | 703 | $ P3 = "SOCKETSHR" |
7d7d2cbc UM |
704 | $! |
705 | $! Tell the user | |
706 | $! | |
707 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | |
708 | $! | |
709 | $! Else, let's look for something else | |
710 | $! | |
711 | $ ELSE | |
712 | $! | |
713 | $! Like UCX (the reason to do this before Multinet is that the UCX | |
714 | $! emulation is easier to use...) | |
715 | $! | |
716 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | |
717 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | |
718 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | |
719 | $ THEN | |
720 | $! | |
721 | $! Last resort: a UCX or UCX-compatible library | |
722 | $! | |
b6d0defb | 723 | $ P3 = "UCX" |
7d7d2cbc UM |
724 | $! |
725 | $! Tell the user | |
726 | $! | |
727 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | |
728 | $! | |
729 | $! That was all... | |
730 | $! | |
731 | $ ENDIF | |
732 | $ ENDIF | |
733 | $ ENDIF | |
734 | $! | |
735 | $! Set Up Initial CC Definitions, Possibly With User Ones | |
736 | $! | |
b6d0defb | 737 | $ CCDEFS = "TCPIP_TYPE_''P3'" |
7d7d2cbc UM |
738 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS |
739 | $ CCEXTRAFLAGS = "" | |
740 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | |
ecff2e5c | 741 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" |
7d7d2cbc | 742 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - |
cde28e18 | 743 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS |
7d7d2cbc | 744 | $! |
01d2e27a RL |
745 | $! Check To See If We Have A ZLIB Option. |
746 | $! | |
747 | $ ZLIB = P6 | |
748 | $ IF (ZLIB .NES. "") | |
749 | $ THEN | |
750 | $! | |
751 | $! Check for expected ZLIB files. | |
752 | $! | |
753 | $ err = 0 | |
754 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | |
755 | $ if (f$search( file1) .eqs. "") | |
756 | $ then | |
757 | $ WRITE SYS$OUTPUT "" | |
758 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | |
759 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | |
760 | $ err = 1 | |
761 | $ endif | |
762 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | |
763 | $! | |
764 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | |
765 | $ if (f$search( file2) .eqs. "") | |
766 | $ then | |
767 | $ if (err .eq. 0) | |
768 | $ then | |
769 | $ WRITE SYS$OUTPUT "" | |
770 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | |
771 | $ endif | |
772 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | |
773 | $ WRITE SYS$OUTPUT "" | |
774 | $ err = err+ 2 | |
775 | $ endif | |
776 | $ if (err .eq. 1) | |
777 | $ then | |
778 | $ WRITE SYS$OUTPUT "" | |
779 | $ endif | |
780 | $! | |
781 | $ if (err .ne. 0) | |
782 | $ then | |
783 | $ GOTO EXIT | |
784 | $ endif | |
785 | $! | |
786 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | |
787 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | |
788 | $ ZLIB_LIB = ", ''file2' /library" | |
789 | $! | |
790 | $! Print info | |
791 | $! | |
792 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | |
793 | $! | |
794 | $! End The P8 Check. | |
795 | $! | |
796 | $ ENDIF | |
797 | $! | |
798 | $! Check To See If The User Entered A Valid Parameter. | |
7d7d2cbc | 799 | $! |
b6d0defb | 800 | $ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC") |
7d7d2cbc UM |
801 | $ THEN |
802 | $! | |
803 | $! Check To See If The User Wanted DECC. | |
804 | $! | |
b6d0defb | 805 | $ IF (P2.EQS."DECC") |
7d7d2cbc UM |
806 | $ THEN |
807 | $! | |
808 | $! Looks Like DECC, Set To Use DECC. | |
809 | $! | |
810 | $ COMPILER = "DECC" | |
811 | $! | |
812 | $! Tell The User We Are Using DECC. | |
813 | $! | |
814 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | |
815 | $! | |
816 | $! Use DECC... | |
817 | $! | |
818 | $ CC = "CC" | |
819 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | |
72d57050 | 820 | THEN CC = "CC /DECC" |
ecff2e5c | 821 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - |
01d2e27a | 822 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - |
ecff2e5c | 823 | " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS |
7d7d2cbc UM |
824 | $! |
825 | $! Define The Linker Options File Name. | |
826 | $! | |
01d2e27a | 827 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" |
7d7d2cbc UM |
828 | $! |
829 | $! End DECC Check. | |
830 | $! | |
831 | $ ENDIF | |
832 | $! | |
833 | $! Check To See If We Are To Use VAXC. | |
834 | $! | |
b6d0defb | 835 | $ IF (P2.EQS."VAXC") |
7d7d2cbc UM |
836 | $ THEN |
837 | $! | |
838 | $! Looks Like VAXC, Set To Use VAXC. | |
839 | $! | |
840 | $ COMPILER = "VAXC" | |
841 | $! | |
842 | $! Tell The User We Are Using VAX C. | |
843 | $! | |
844 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | |
845 | $! | |
846 | $! Compile Using VAXC. | |
847 | $! | |
848 | $ CC = "CC" | |
006c7c6b | 849 | $ IF ARCH.NES."VAX" |
7d7d2cbc | 850 | $ THEN |
006c7c6b | 851 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" |
7d7d2cbc UM |
852 | $ EXIT |
853 | $ ENDIF | |
72d57050 RL |
854 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC" |
855 | $ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - | |
01d2e27a | 856 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS |
7d7d2cbc UM |
857 | $ CCDEFS = CCDEFS + ",""VAXC""" |
858 | $! | |
859 | $! Define <sys> As SYS$COMMON:[SYSLIB] | |
860 | $! | |
72d57050 | 861 | $ DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB] |
7d7d2cbc UM |
862 | $! |
863 | $! Define The Linker Options File Name. | |
864 | $! | |
01d2e27a | 865 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" |
7d7d2cbc UM |
866 | $! |
867 | $! End VAXC Check | |
868 | $! | |
869 | $ ENDIF | |
870 | $! | |
871 | $! Check To See If We Are To Use GNU C. | |
872 | $! | |
b6d0defb | 873 | $ IF (P2.EQS."GNUC") |
7d7d2cbc UM |
874 | $ THEN |
875 | $! | |
876 | $! Looks Like GNUC, Set To Use GNUC. | |
877 | $! | |
878 | $ COMPILER = "GNUC" | |
879 | $! | |
880 | $! Tell The User We Are Using GNUC. | |
881 | $! | |
882 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | |
883 | $! | |
884 | $! Use GNU C... | |
885 | $! | |
72d57050 | 886 | $ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - |
01d2e27a | 887 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS |
7d7d2cbc UM |
888 | $! |
889 | $! Define The Linker Options File Name. | |
890 | $! | |
01d2e27a | 891 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" |
7d7d2cbc UM |
892 | $! |
893 | $! End The GNU C Check. | |
894 | $! | |
895 | $ ENDIF | |
896 | $! | |
897 | $! Set up default defines | |
898 | $! | |
899 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | |
900 | $! | |
7d7d2cbc UM |
901 | $! Finish up the definition of CC. |
902 | $! | |
903 | $ IF COMPILER .EQS. "DECC" | |
904 | $ THEN | |
905 | $ IF CCDISABLEWARNINGS .EQS. "" | |
906 | $ THEN | |
907 | $ CC4DISABLEWARNINGS = "DOLLARID" | |
908 | $ ELSE | |
909 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | |
ecff2e5c | 910 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" |
7d7d2cbc | 911 | $ ENDIF |
ecff2e5c | 912 | $ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" |
7d7d2cbc UM |
913 | $ ELSE |
914 | $ CCDISABLEWARNINGS = "" | |
915 | $ CC4DISABLEWARNINGS = "" | |
916 | $ ENDIF | |
ecff2e5c | 917 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS |
7d7d2cbc UM |
918 | $! |
919 | $! Show user the result | |
920 | $! | |
72d57050 | 921 | $ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC |
7d7d2cbc | 922 | $! |
01d2e27a | 923 | $! Else The User Entered An Invalid Argument. |
7d7d2cbc UM |
924 | $! |
925 | $ ELSE | |
926 | $! | |
927 | $! Tell The User We Don't Know What They Want. | |
928 | $! | |
929 | $ WRITE SYS$OUTPUT "" | |
b6d0defb | 930 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" |
7d7d2cbc UM |
931 | $ WRITE SYS$OUTPUT "" |
932 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | |
933 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | |
934 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | |
935 | $ WRITE SYS$OUTPUT "" | |
936 | $! | |
937 | $! Time To EXIT. | |
938 | $! | |
939 | $ EXIT | |
940 | $ ENDIF | |
941 | $! | |
942 | $! Time to check the contents, and to make sure we get the correct library. | |
943 | $! | |
b6d0defb RL |
944 | $ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" - |
945 | .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE" | |
7d7d2cbc UM |
946 | $ THEN |
947 | $! | |
948 | $! Check to see if SOCKETSHR was chosen | |
949 | $! | |
b6d0defb | 950 | $ IF P3.EQS."SOCKETSHR" |
7d7d2cbc UM |
951 | $ THEN |
952 | $! | |
953 | $! Set the library to use SOCKETSHR | |
954 | $! | |
01d2e27a | 955 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" |
7d7d2cbc UM |
956 | $! |
957 | $! Done with SOCKETSHR | |
958 | $! | |
959 | $ ENDIF | |
960 | $! | |
961 | $! Check to see if MULTINET was chosen | |
962 | $! | |
b6d0defb | 963 | $ IF P3.EQS."MULTINET" |
7d7d2cbc UM |
964 | $ THEN |
965 | $! | |
72d57050 | 966 | $! Set the library to use UCX emulation. |
7d7d2cbc | 967 | $! |
b6d0defb | 968 | $ P3 = "UCX" |
7d7d2cbc UM |
969 | $! |
970 | $! Done with MULTINET | |
971 | $! | |
972 | $ ENDIF | |
973 | $! | |
974 | $! Check to see if UCX was chosen | |
975 | $! | |
b6d0defb | 976 | $ IF P3.EQS."UCX" |
7d7d2cbc UM |
977 | $ THEN |
978 | $! | |
979 | $! Set the library to use UCX. | |
980 | $! | |
01d2e27a | 981 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" |
7d7d2cbc UM |
982 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" |
983 | $ THEN | |
01d2e27a | 984 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" |
7d7d2cbc UM |
985 | $ ELSE |
986 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | |
01d2e27a | 987 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" |
7d7d2cbc UM |
988 | $ ENDIF |
989 | $! | |
990 | $! Done with UCX | |
991 | $! | |
992 | $ ENDIF | |
993 | $! | |
b2c04539 RL |
994 | $! Check to see if TCPIP was chosen |
995 | $! | |
b6d0defb | 996 | $ IF P3.EQS."TCPIP" |
b2c04539 RL |
997 | $ THEN |
998 | $! | |
999 | $! Set the library to use TCPIP (post UCX). | |
1000 | $! | |
01d2e27a | 1001 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" |
b2c04539 RL |
1002 | $! |
1003 | $! Done with TCPIP | |
1004 | $! | |
1005 | $ ENDIF | |
1006 | $! | |
1007 | $! Check to see if NONE was chosen | |
1008 | $! | |
b6d0defb | 1009 | $ IF P3.EQS."NONE" |
b2c04539 RL |
1010 | $ THEN |
1011 | $! | |
1012 | $! Do not use a TCPIP library. | |
1013 | $! | |
1014 | $ TCPIP_LIB = "" | |
1015 | $! | |
1016 | $! Done with NONE | |
1017 | $! | |
1018 | $ ENDIF | |
1019 | $! | |
7d7d2cbc UM |
1020 | $! Print info |
1021 | $! | |
01d2e27a | 1022 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," |
7d7d2cbc | 1023 | $! |
01d2e27a | 1024 | $! Else The User Entered An Invalid Argument. |
7d7d2cbc UM |
1025 | $! |
1026 | $ ELSE | |
1027 | $! | |
1028 | $! Tell The User We Don't Know What They Want. | |
1029 | $! | |
1030 | $ WRITE SYS$OUTPUT "" | |
b6d0defb | 1031 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" |
7d7d2cbc UM |
1032 | $ WRITE SYS$OUTPUT "" |
1033 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | |
1034 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | |
b2c04539 | 1035 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." |
7d7d2cbc UM |
1036 | $ WRITE SYS$OUTPUT "" |
1037 | $! | |
1038 | $! Time To EXIT. | |
1039 | $! | |
1040 | $ EXIT | |
1041 | $! | |
1042 | $! Done with TCP/IP libraries | |
1043 | $! | |
1044 | $ ENDIF | |
1045 | $! | |
1046 | $! Special Threads For OpenVMS v7.1 Or Later | |
1047 | $! | |
1048 | $! Written By: Richard Levitte | |
1049 | $! richard@levitte.org | |
1050 | $! | |
1051 | $! | |
b6d0defb | 1052 | $! Check To See If We Have A Option For P4. |
7d7d2cbc | 1053 | $! |
b6d0defb | 1054 | $ IF (P4.EQS."") |
7d7d2cbc UM |
1055 | $ THEN |
1056 | $! | |
1057 | $! Get The Version Of VMS We Are Using. | |
1058 | $! | |
1059 | $ ISSEVEN := | |
1060 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | |
1061 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | |
1062 | $! | |
1063 | $! Check To See If The VMS Version Is v7.1 Or Later. | |
1064 | $! | |
1065 | $ IF (TMP.GE.71) | |
1066 | $ THEN | |
1067 | $! | |
1068 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | |
1069 | $! | |
1070 | $ ISSEVEN := ,PTHREAD_USE_D4 | |
1071 | $! | |
1072 | $! End The VMS Version Check. | |
1073 | $! | |
1074 | $ ENDIF | |
1075 | $! | |
b6d0defb | 1076 | $! End The P4 Check. |
7d7d2cbc UM |
1077 | $! |
1078 | $ ENDIF | |
1079 | $! | |
1080 | $! Time To RETURN... | |
1081 | $! | |
1082 | $ RETURN | |
1083 | $! | |
1084 | $ INITIALISE: | |
1085 | $! | |
1086 | $! Save old value of the logical name OPENSSL | |
1087 | $! | |
1088 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | |
1089 | $! | |
1090 | $! Save directory information | |
1091 | $! | |
1092 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | |
7b5ffd68 | 1093 | $ __HERE = F$EDIT(__HERE,"UPCASE") |
7d7d2cbc UM |
1094 | $ __TOP = __HERE - "TEST]" |
1095 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | |
1096 | $! | |
1097 | $! Set up the logical name OPENSSL to point at the include directory | |
1098 | $! | |
72d57050 | 1099 | $ DEFINE OPENSSL /NOLOG '__INCLUDE' |
7d7d2cbc UM |
1100 | $! |
1101 | $! Done | |
1102 | $! | |
1103 | $ RETURN | |
1104 | $! | |
1105 | $ CLEANUP: | |
1106 | $! | |
1107 | $! Restore the logical name OPENSSL if it had a value | |
1108 | $! | |
1109 | $ IF __SAVE_OPENSSL .EQS. "" | |
1110 | $ THEN | |
1111 | $ DEASSIGN OPENSSL | |
1112 | $ ELSE | |
72d57050 | 1113 | $ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL' |
7d7d2cbc UM |
1114 | $ ENDIF |
1115 | $! | |
1116 | $! Done | |
1117 | $! | |
1118 | $ RETURN |