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