]> git.ipfire.org Git - thirdparty/openssl.git/blame - makevms.com
Fix Wmaybe-uninitialized: initialize variable
[thirdparty/openssl.git] / makevms.com
CommitLineData
d02b48c6 1$!
7d7d2cbc
UM
2$! MAKEVMS.COM
3$! Original Author: UNKNOWN
4$! Rewritten By: Robert Byer
5$! Vice-President
6$! A-Com Computing, Inc.
7$! byer@mail.all-net.net
8$!
9$! Changes by Richard Levitte <richard@levitte.org>
407a4101 10$! Zoltan Arpadffy <zoli@polarhome.com>
7d7d2cbc
UM
11$!
12$! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB"
b6d0defb 13$! "[.xxx.EXE.SSL]LIBSSL.OLB"
cc8cc9a3 14$! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX.
7d7d2cbc
UM
15$!
16$! This procedures accepts two command line options listed below.
17$!
537c9823 18$! P1 specifies one of the following build options:
7d7d2cbc
UM
19$!
20$! ALL Just build "everything".
88868c07
RL
21$! CONFIG Just build the "[.CRYPTO._xxx]OPENSSLCONF.H" file.
22$! BUILDINF Just build the "[.CRYPTO._xxx]BUILDINF.H" file.
7d7d2cbc 23$! SOFTLINKS Just fix the Unix soft links.
2e904727 24$! BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done.
7d7d2cbc 25$! CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
2db90e3a
RL
26$! CRYPTO/x Just build the x part of the
27$! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
7d7d2cbc 28$! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
7d7d2cbc
UM
29$! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
30$! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
ad22b914 31$! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
7d7d2cbc 32$!
537c9823 33$! P2, if defined, specifies the C pointer size. Ignored on VAX.
4ec3e8ca 34$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
3a660e73 35$! Supported values are:
7d7d2cbc 36$!
4ec3e8ca
RL
37$! "" Compile with default (/NOPOINTER_SIZE).
38$! 32 Compile with /POINTER_SIZE=32 (SHORT).
39$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]).
40$! (Automatically select ARGV if compiler supports it.)
41$! 64= Compile with /POINTER_SIZE=64 (LONG).
42$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
b7ef916c 43$!
537c9823
RL
44$! P3 specifies DEBUG or NODEBUG, to compile with or without debugging
45$! information.
b7ef916c 46$!
537c9823 47$! P4 specifies which compiler to try to compile under.
7d7d2cbc
UM
48$!
49$! VAXC For VAX C.
50$! DECC For DEC C.
51$! GNUC For GNU C.
52$! LINK To only link the programs from existing object files.
58dc480f 53$! (not yet implemented)
7d7d2cbc 54$!
537c9823 55$! If you don't specify a compiler, it will try to determine which
7d7d2cbc
UM
56$! "C" compiler to use.
57$!
b935754c
RL
58$! P5, if defined, sets a TCP/IP library to use, through one of the following
59$! keywords:
7d7d2cbc
UM
60$!
61$! UCX for UCX or UCX emulation
b935754c
RL
62$! TCPIP for TCP/IP Services or TCP/IP Services emulation
63$! (this is prefered over UCX)
7d7d2cbc 64$! SOCKETSHR for SOCKETSHR+NETLIB
b935754c
RL
65$! NONE to avoid specifying which TCP/IP implementation to
66$! use at build time (this works with DEC C). This is
67$! the default.
7d7d2cbc 68$!
537c9823
RL
69$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up).
70$!
71$! P7, if defined, specifies a directory where ZLIB files (zlib.h,
72$! libz.olb) may be found. Optionally, a non-default object library
73$! name may be included ("dev:[dir]libz_64.olb", for example).
74$!
7d7d2cbc 75$!
537c9823
RL
76$! Announce/identify.
77$!
78$ proc = f$environment( "procedure")
79$ write sys$output "@@@ "+ -
80 f$parse( proc, , , "name")+ f$parse( proc, , , "type")
7d7d2cbc 81$!
cc8cc9a3
RL
82$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
83$ ON ERROR THEN GOTO TIDY
84$ ON CONTROL_C THEN GOTO TIDY
85$!
2e904727
RL
86$! Check if we're in a batch job, and make sure we get to
87$! the directory this script is in
88$!
89$ IF F$MODE() .EQS. "BATCH"
90$ THEN
91$ COMNAME=F$ENVIRONMENT("PROCEDURE")
92$ COMPATH=F$PARSE("A.;",COMNAME) - "A.;"
93$ SET DEF 'COMPATH'
94$ ENDIF
95$!
cc8cc9a3 96$! Check What Architecture We Are Using.
7d7d2cbc 97$!
cc8cc9a3 98$ IF (F$GETSYI("CPU").LT.128)
7d7d2cbc
UM
99$ THEN
100$!
cc8cc9a3 101$! The Architecture Is VAX.
7d7d2cbc 102$!
537c9823 103$ ARCH = "VAX"
7d7d2cbc
UM
104$!
105$! Else...
106$!
107$ ELSE
108$!
cc8cc9a3 109$! The Architecture Is Alpha, IA64 or whatever comes in the future.
7d7d2cbc 110$!
cc8cc9a3
RL
111$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
112$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
7d7d2cbc
UM
113$!
114$! End The Architecture Check.
115$!
116$ ENDIF
117$!
537c9823
RL
118$ ARCHD = ARCH
119$ LIB32 = "32"
120$ POINTER_SIZE = ""
121$!
122$! Get VMS version.
123$!
124$ VMS_VERSION = f$edit( f$getsyi( "VERSION"), "TRIM")
125$!
7d7d2cbc
UM
126$! Check To Make Sure We Have Valid Command Line Parameters.
127$!
128$ GOSUB CHECK_OPTIONS
129$!
130$! Check To See What We Are To Do.
131$!
2e904727 132$ IF (BUILDCOMMAND.EQS."ALL")
7d7d2cbc
UM
133$ THEN
134$!
2e904727 135$! Start with building the OpenSSL configuration file.
7d7d2cbc 136$!
2e904727 137$ GOSUB CONFIG
7d7d2cbc 138$!
8c197cc5 139$! Create The "BUILDINF.H" Include File.
7d7d2cbc 140$!
8c197cc5 141$ GOSUB BUILDINF
7d7d2cbc 142$!
2e904727
RL
143$! Fix The Unix Softlinks.
144$!
145$ GOSUB SOFTLINKS
146$!
147$ ENDIF
148$!
149$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL")
150$ THEN
151$!
7d7d2cbc
UM
152$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
153$!
154$ GOSUB CRYPTO
155$!
156$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
157$!
158$ GOSUB SSL
159$!
7d7d2cbc
UM
160$! Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
161$!
162$ GOSUB TEST
163$!
164$! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
165$!
166$ GOSUB APPS
167$!
ad22b914
RL
168$! Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines.
169$!
170$ GOSUB ENGINES
171$!
7d7d2cbc
UM
172$! Else...
173$!
174$ ELSE
175$!
176$! Build Just What The User Wants Us To Build.
177$!
2e904727
RL
178$ GOSUB 'BUILDCOMMAND'
179$!
7d7d2cbc
UM
180$ ENDIF
181$!
182$! Time To EXIT.
183$!
cc8cc9a3 184$ GOTO TIDY
2e904727 185$!
88868c07 186$! Rebuild The [.CRYPTO._xxx]OPENSSLCONF.H" file.
2e904727
RL
187$!
188$ CONFIG:
189$!
88868c07 190$! Tell The User We Are Creating The [.CRYPTO._xxx]OPENSSLCONF.H File.
cc8cc9a3 191$!
537c9823 192$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']OPENSSLCONF.H Include File."
2e904727 193$!
cc8cc9a3 194$! First, make sure the directory exists.
2e904727 195$!
537c9823
RL
196$ IF F$PARSE("SYS$DISK:[.CRYPTO.''ARCHD']") .EQS. "" THEN -
197 CREATE/DIRECTORY SYS$DISK:[.CRYPTO.'ARCHD']
198$!
199$! Different tar/UnZip versions/option may have named the file differently
200$ IF F$SEARCH("[.crypto]opensslconf.h_in") .NES. ""
201$ THEN
202$ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h_in"
203$ ELSE
204$ IF F$SEARCH( "[.crypto]opensslconf_h.in") .NES. ""
205$ THEN
206$ OPENSSLCONF_H_IN = "[.crypto]opensslconf_h.in"
207$ ELSE
208$ ! For ODS-5
209$ IF F$SEARCH( "[.crypto]opensslconf.h.in") .NES. ""
210$ THEN
211$ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h.in"
212$ ELSE
213$ WRITE SYS$ERROR "Couldn't find a [.crypto]opensslconf.h.in. Exiting!"
214$ $STATUS = %X00018294 ! "%RMS-F-FNF, file not found".
215$ GOTO TIDY
216$ ENDIF
217$ ENDIF
218$ ENDIF
2e904727 219$!
88868c07 220$! Create The [.CRYPTO._xxx]OPENSSLCONF.H File.
cc8cc9a3 221$! Make sure it has the right format.
2e904727 222$!
537c9823 223$ OSCH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']OPENSSLCONF.H"
cc8cc9a3
RL
224$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME'
225RECORD
226 FORMAT stream_lf
227$ OPEN /APPEND H_FILE 'OSCH_NAME'
228$!
88868c07 229$! Write The [.CRYPTO._xxx]OPENSSLCONF.H File.
2e904727
RL
230$!
231$ WRITE H_FILE "/* This file was automatically built using makevms.com */"
537c9823 232$ WRITE H_FILE "/* and ''OPENSSLCONF_H_IN' */"
6525ced5
RL
233$!
234$! Write a few macros that indicate how this system was built.
235$!
236$ WRITE H_FILE ""
237$ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS"
238$ WRITE H_FILE "# define OPENSSL_SYS_VMS"
239$ WRITE H_FILE "#endif"
537c9823 240$
36759bb7
RL
241$!
242$! Defined the full SDIRS here. It will be pruned depending on configuration.
243$! This is an exact copy of what's found in Makefile.org, with spaces replaced
244$! with commas.
245$!
246$ SDIRS := -
247 objects,-
248 md2,md4,md5,sha,mdc2,hmac,ripemd,whrlpool,-
249 des,aes,rc2,rc4,rc5,idea,bf,cast,camellia,seed,modes,-
250 bn,ec,rsa,dsa,ecdsa,dh,ecdh,dso,engine,-
251 buffer,bio,stack,lhash,rand,err,-
252 evp,asn1,pem,x509,x509v3,conf,txt_db,pkcs7,pkcs12,comp,ocsp,ui,krb5,-
253 cms,pqueue,ts,jpake,srp,store,cmac
254$
537c9823
RL
255$! One of the best way to figure out what the list should be is to do
256$! the following on a Unix system:
36759bb7 257$! grep OPENSSL_NO_ crypto/include/internal/*.h crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq
537c9823
RL
258$! For that reason, the list will also always end up in alphabetical order
259$ CONFIG_LOGICALS := AES,-
260 ASM,INLINE_ASM,-
261 BF,-
537c9823
RL
262 CAMELLIA,-
263 CAST,-
264 CMS,-
265 COMP,-
266 DEPRECATED,-
267 DES,-
268 DGRAM,-
269 DH,-
270 DSA,-
271 EC,-
272 EC2M,-
273 ECDH,-
274 ECDSA,-
ada35f9c 275 EC_NISTP_64_GCC_128,-
537c9823
RL
276 ENGINE,-
277 ERR,-
537c9823
RL
278 GMP,-
279 GOST,-
36759bb7 280 HEARTBEATS,-
537c9823
RL
281 HMAC,-
282 IDEA,-
283 JPAKE,-
284 KRB5,-
537c9823
RL
285 MD2,-
286 MD4,-
287 MD5,-
288 MDC2,-
289 NEXTPROTONEG,-
36759bb7 290 OCB,-
537c9823
RL
291 OCSP,-
292 PSK,-
293 RC2,-
294 RC4,-
295 RC5,-
36759bb7 296 RMD160,-
537c9823 297 RSA,-
36759bb7 298 SCTP,-
537c9823 299 SEED,-
537c9823
RL
300 SOCK,-
301 SRP,-
36759bb7
RL
302 SRTP,-
303 SSL3_METHOD,-
36759bb7 304 SSL_TRACE,-
537c9823
RL
305 STATIC_ENGINE,-
306 STDIO,-
307 STORE,-
308 TLSEXT,-
36759bb7 309 UNIT_TEST,-
c73ad690 310 WHIRLPOOL
36759bb7
RL
311$ CONFIG_EXPERIMENTAL := JPAKE,-
312 STORE
537c9823
RL
313$! The following rules, which dictate how some algorithm choices affect
314$! others, are picked from Configure.
315$! Quick syntax:
316$! list = item[ ; list]
317$! item = algos / dependents
318$! algos = algo [, algos]
319$! dependents = dependent [, dependents]
320$! When a list of algos is specified in one item, it means that they must
321$! all be disabled for the rule to apply.
322$! When a list of dependents is specified in one item, it means that they
323$! will all be disabled if the rule applies.
324$! Rules are checked sequentially. If a rule disables an algorithm, it will
325$! affect all following rules that depend on that algorithm being disabled.
326$! To force something to be enabled or disabled, have no algorithms in the
327$! algos part.
328$ CONFIG_DISABLE_RULES := RIJNDAEL/AES;-
36759bb7 329 RMD160/RIPEMD;-
537c9823
RL
330 DES/MDC2;-
331 EC/ECDSA,ECDH;-
45f55f6a 332 MD5/SSL3,TLS1;-
537c9823 333 SHA/SSL3,TLS1;-
36759bb7 334 RSA,DSA/SSL3,TLS1;-
537c9823
RL
335 DH/SSL3,TLS1;-
336 TLS1/TLSEXT;-
337 EC/GOST;-
338 DSA/GOST;-
339 DH/GOST;-
36759bb7 340 TLSEXT/SRP,HEARTBEAT;-
537c9823 341 /STATIC_ENGINE;-
ada35f9c 342 /KRB5;-
36759bb7
RL
343 /DEPRECATED;-
344 /EC_NISTP_64_GCC_128;-
345 /GMP;-
346 /MD2;-
347 /RC5;-
348 /RFC3779;-
349 /SCTP;-
350 /SSL_TRACE;-
351 /UNIT_TEST
537c9823
RL
352$ CONFIG_ENABLE_RULES := ZLIB_DYNAMIC/ZLIB;-
353 /THREADS
354$
355$! Architecture specific rule addtions
356$ IF ARCH .EQS. "VAX"
357$ THEN
358$ ! Disable algorithms that require 64-bit integers in C
359$ CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + -
360 ";/GOST" + -
361 ";/WHIRLPOOL"
362$ ENDIF
363$
36759bb7
RL
364$! Keep track of things to remove from SDIRS, have the items surrounded
365$! with commas
366$ SKIP_SDIRS = ","
367$
6525ced5 368$ CONFIG_LOG_I = 0
36759bb7 369$ CONFIG_LOG_LOOP11:
537c9823 370$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
6525ced5 371$ CONFIG_LOG_I = CONFIG_LOG_I + 1
36759bb7
RL
372$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP11
373$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP11_END
537c9823 374$ IF F$TRNLNM("OPENSSL_NO_"+CONFIG_LOG_E)
6525ced5 375$ THEN
537c9823
RL
376$ CONFIG_DISABLED_'CONFIG_LOG_E' := YES
377$ CONFIG_ENABLED_'CONFIG_LOG_E' := NO
378$ CONFIG_CHANGED_'CONFIG_LOG_E' := YES
36759bb7
RL
379$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
380 SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
537c9823
RL
381$ ELSE
382$ CONFIG_DISABLED_'CONFIG_LOG_E' := NO
383$ CONFIG_ENABLED_'CONFIG_LOG_E' := YES
36759bb7
RL
384$ ! Because all non-experimental algorithms are assumed
385$ ! enabled by default
537c9823 386$ CONFIG_CHANGED_'CONFIG_LOG_E' := NO
36759bb7
RL
387$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
388 SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
537c9823 389$ ENDIF
36759bb7
RL
390$ GOTO CONFIG_LOG_LOOP11
391$ CONFIG_LOG_LOOP11_END:
392$
393$ CONFIG_LOG_I = 0
394$ CONFIG_LOG_LOOP12:
395$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_EXPERIMENTAL),"TRIM")
396$ CONFIG_LOG_I = CONFIG_LOG_I + 1
397$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP12
398$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP12_END
399$ IF F$TRNLNM("OPENSSL_EXPERIMENTAL_"+CONFIG_LOG_E)
400$ THEN
401$ CONFIG_DISABLED_'CONFIG_LOG_E' := NO
402$ CONFIG_ENABLED_'CONFIG_LOG_E' := YES
403$ CONFIG_CHANGED_'CONFIG_LOG_E' := YES
404$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
405 SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
406$ ELSE
407$ CONFIG_DISABLED_'CONFIG_LOG_E' := YES
408$ CONFIG_ENABLED_'CONFIG_LOG_E' := NO
409$ ! Because all experimental algorithms are assumed
410$ ! disabled by default
411$ CONFIG_CHANGED_'CONFIG_LOG_E' := NO
412$ IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
413 SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
414$ ENDIF
415$ GOTO CONFIG_LOG_LOOP12
416$ CONFIG_LOG_LOOP12_END:
537c9823
RL
417$
418$! Apply cascading disable rules
419$ CONFIG_DISABLE_I = 0
420$ CONFIG_DISABLE_LOOP0:
421$ CONFIG_DISABLE_E = F$EDIT(F$ELEMENT(CONFIG_DISABLE_I,";", -
422 CONFIG_DISABLE_RULES),"TRIM")
423$ CONFIG_DISABLE_I = CONFIG_DISABLE_I + 1
424$ IF CONFIG_DISABLE_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP0
425$ IF CONFIG_DISABLE_E .EQS. ";" THEN GOTO CONFIG_DISABLE_LOOP0_END
426$
427$ CONFIG_DISABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_DISABLE_E),"TRIM")
428$ CONFIG_DISABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_DISABLE_E),"TRIM")
429$ TO_DISABLE := YES
430$ CONFIG_ALGO_I = 0
431$ CONFIG_DISABLE_LOOP1:
432$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
433 CONFIG_DISABLE_ALGOS),"TRIM")
434$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
435$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP1
436$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP1_END
437$ IF F$TYPE(CONFIG_DISABLED_'CONFIG_ALGO_E') .EQS. ""
6525ced5 438$ THEN
537c9823
RL
439$ TO_DISABLE := NO
440$ ELSE
441$ IF .NOT. CONFIG_DISABLED_'CONFIG_ALGO_E' THEN TO_DISABLE := NO
6525ced5 442$ ENDIF
537c9823
RL
443$ GOTO CONFIG_DISABLE_LOOP1
444$ CONFIG_DISABLE_LOOP1_END:
445$
446$ IF TO_DISABLE
447$ THEN
448$ CONFIG_DEPENDENT_I = 0
449$ CONFIG_DISABLE_LOOP2:
450$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
451 CONFIG_DISABLE_DEPENDENTS),"TRIM")
452$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
453$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP2
454$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP2_END
455$ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := YES
456$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO
457$ ! Better not to assume defaults at this point...
458$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
36759bb7
RL
459$ IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .EQS. SKIP_SDIRS THEN -
460 SKIP_SDIRS = SKIP_SDIRS + CONFIG_DEPENDENT_E + ","
537c9823
RL
461$ WRITE SYS$ERROR -
462 "''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'"
463$ GOTO CONFIG_DISABLE_LOOP2
464$ CONFIG_DISABLE_LOOP2_END:
465$ ENDIF
466$ GOTO CONFIG_DISABLE_LOOP0
467$ CONFIG_DISABLE_LOOP0_END:
468$
469$! Apply cascading enable rules
470$ CONFIG_ENABLE_I = 0
471$ CONFIG_ENABLE_LOOP0:
472$ CONFIG_ENABLE_E = F$EDIT(F$ELEMENT(CONFIG_ENABLE_I,";", -
473 CONFIG_ENABLE_RULES),"TRIM")
474$ CONFIG_ENABLE_I = CONFIG_ENABLE_I + 1
475$ IF CONFIG_ENABLE_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP0
476$ IF CONFIG_ENABLE_E .EQS. ";" THEN GOTO CONFIG_ENABLE_LOOP0_END
477$
478$ CONFIG_ENABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_ENABLE_E),"TRIM")
479$ CONFIG_ENABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_ENABLE_E),"TRIM")
480$ TO_ENABLE := YES
481$ CONFIG_ALGO_I = 0
482$ CONFIG_ENABLE_LOOP1:
483$ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", -
484 CONFIG_ENABLE_ALGOS),"TRIM")
485$ CONFIG_ALGO_I = CONFIG_ALGO_I + 1
486$ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP1
487$ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP1_END
488$ IF F$TYPE(CONFIG_ENABLED_'CONFIG_ALGO_E') .EQS. ""
6525ced5 489$ THEN
537c9823
RL
490$ TO_ENABLE := NO
491$ ELSE
492$ IF .NOT. CONFIG_ENABLED_'CONFIG_ALGO_E' THEN TO_ENABLE := NO
6525ced5 493$ ENDIF
537c9823
RL
494$ GOTO CONFIG_ENABLE_LOOP1
495$ CONFIG_ENABLE_LOOP1_END:
496$
497$ IF TO_ENABLE
498$ THEN
499$ CONFIG_DEPENDENT_I = 0
500$ CONFIG_ENABLE_LOOP2:
501$ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", -
502 CONFIG_ENABLE_DEPENDENTS),"TRIM")
503$ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1
504$ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP2
505$ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP2_END
506$ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := NO
507$ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES
508$ ! Better not to assume defaults at this point...
509$ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
36759bb7
RL
510$ IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .NES. SKIP_SDIRS THEN -
511 SKIP_SDIRS = SKIP_SDIRS - (CONFIG_DEPENDENT_E + ",")
537c9823
RL
512$ WRITE SYS$ERROR -
513 "''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'"
514$ GOTO CONFIG_ENABLE_LOOP2
515$ CONFIG_ENABLE_LOOP2_END:
6525ced5 516$ ENDIF
537c9823
RL
517$ GOTO CONFIG_ENABLE_LOOP0
518$ CONFIG_ENABLE_LOOP0_END:
519$
36759bb7
RL
520$! Fix SDIRS
521$ SDIRS = ","+F$EDIT(SDIRS,"COLLAPSE")+","
522$ CONFIG_SKIP_I = 0
523$ CONFIG_SDIRS_LOOP1:
524$ CONFIG_SKIP_E = F$EDIT(F$ELEMENT(CONFIG_SKIP_I,",",SKIP_SDIRS),"TRIM")
525$ CONFIG_SKIP_I = CONFIG_SKIP_I + 1
526$ IF CONFIG_SKIP_E .EQS. "" THEN GOTO CONFIG_SDIRS_LOOP1
527$ IF CONFIG_SKIP_E .EQS. "," THEN GOTO CONFIG_SDIRS_LOOP1_END
528$ IF (SDIRS - (","+CONFIG_SKIP_E+",")) .NES. SDIRS THEN -
529 SDIRS = SDIRS - (CONFIG_SKIP_E+",")
530$ GOTO CONFIG_SDIRS_LOOP1
531$ CONFIG_SDIRS_LOOP1_END:
532$
537c9823
RL
533$! Write to the configuration
534$ CONFIG_LOG_I = 0
535$ CONFIG_LOG_LOOP2:
536$ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
537$ CONFIG_LOG_I = CONFIG_LOG_I + 1
538$ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP2
539$ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP2_END
36759bb7 540$ IF CONFIG_DISABLED_'CONFIG_LOG_E'
2e904727 541$ THEN
36759bb7
RL
542$ WRITE H_FILE "#ifndef OPENSSL_NO_",CONFIG_LOG_E
543$ WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
544$ WRITE H_FILE "#endif"
545$ ELSE
546$ IF CONFIG_CHANGED_'CONFIG_LOG_E'
7b5ffd68 547$ THEN
36759bb7
RL
548$ WRITE H_FILE "#ifndef OPENSSL_EXPERIMENTAL_",CONFIG_LOG_E
549$ WRITE H_FILE "# ifndef OPENSSL_NO_",CONFIG_LOG_E
550$ WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
551$ WRITE H_FILE "# endif"
537c9823 552$ WRITE H_FILE "#endif"
36759bb7
RL
553$
554$ IF F$TYPE(USER_CCDEFS) .NES. ""
555$ THEN
556$ USER_CCDEFS = USER_CCDEFS + ",OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
557$ ELSE
558$ USER_CCDEFS = "OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
559$ ENDIF
7b5ffd68 560$ ENDIF
2e904727 561$ ENDIF
537c9823
RL
562$ GOTO CONFIG_LOG_LOOP2
563$ CONFIG_LOG_LOOP2_END:
36759bb7
RL
564$
565$ WRITE/SYMBOL SYS$ERROR "SDIRS = """,SDIRS,""""
537c9823
RL
566$!
567$ WRITE H_FILE ""
a36fb725
DSH
568$ WRITE H_FILE "/* STCP support comes with TCPIP 5.7 ECO 2 "
569$ WRITE H_FILE " * enable on newer systems / 2012-02-24 arpadffy */"
570$ WRITE H_FILE "#define OPENSSL_NO_SCTP"
537c9823
RL
571$ WRITE H_FILE ""
572$!
573$! Add in the common "crypto/opensslconf.h.in".
574$!
575$ TYPE 'OPENSSLCONF_H_IN' /OUTPUT=H_FILE:
576$!
407a4101 577$ IF ARCH .NES. "VAX"
2e904727
RL
578$ THEN
579$!
407a4101 580$! Write the non-VAX specific data
2e904727
RL
581$!
582$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
583$ WRITE H_FILE "#undef RC4_INT"
584$ WRITE H_FILE "#define RC4_INT unsigned int"
585$ WRITE H_FILE "#undef RC4_CHUNK"
586$ WRITE H_FILE "#define RC4_CHUNK unsigned long long"
587$ WRITE H_FILE "#endif"
588$!
589$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
590$ WRITE H_FILE "#undef DES_LONG"
591$ WRITE H_FILE "#define DES_LONG unsigned int"
592$ WRITE H_FILE "#undef DES_PTR"
593$ WRITE H_FILE "#define DES_PTR"
594$ WRITE H_FILE "#undef DES_RISC1"
595$ WRITE H_FILE "#undef DES_RISC2"
596$ WRITE H_FILE "#define DES_RISC1"
597$ WRITE H_FILE "#undef DES_UNROLL"
598$ WRITE H_FILE "#define DES_UNROLL"
599$ WRITE H_FILE "#endif"
600$!
601$ WRITE H_FILE "#if defined(HEADER_BN_H)"
256b5d58 602$ WRITE H_FILE "#undef BN_LLONG" ! Never define with SIXTY_FOUR_BIT
2e904727
RL
603$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
604$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
5a16d270 605$ WRITE H_FILE "#define SIXTY_FOUR_BIT"
2e904727
RL
606$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
607$ WRITE H_FILE "#undef SIXTEEN_BIT"
608$ WRITE H_FILE "#undef EIGHT_BIT"
609$ WRITE H_FILE "#endif"
62dc5aad
RL
610$
611$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
2e904727
RL
612$!
613$! Else...
614$!
615$ ELSE
616$!
617$! Write the VAX specific data
618$!
619$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
620$ WRITE H_FILE "#undef RC4_INT"
621$ WRITE H_FILE "#define RC4_INT unsigned char"
622$ WRITE H_FILE "#undef RC4_CHUNK"
623$ WRITE H_FILE "#define RC4_CHUNK unsigned long"
624$ WRITE H_FILE "#endif"
625$!
626$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
627$ WRITE H_FILE "#undef DES_LONG"
628$ WRITE H_FILE "#define DES_LONG unsigned long"
629$ WRITE H_FILE "#undef DES_PTR"
630$ WRITE H_FILE "#define DES_PTR"
631$ WRITE H_FILE "#undef DES_RISC1"
632$ WRITE H_FILE "#undef DES_RISC2"
633$ WRITE H_FILE "#undef DES_UNROLL"
634$ WRITE H_FILE "#endif"
635$!
636$ WRITE H_FILE "#if defined(HEADER_BN_H)"
256b5d58 637$ WRITE H_FILE "#undef BN_LLONG" ! VAX C/DEC C doesn't have long long
2e904727
RL
638$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
639$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
2e904727 640$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
4cce8244 641$ WRITE H_FILE "#define THIRTY_TWO_BIT"
2e904727
RL
642$ WRITE H_FILE "#undef SIXTEEN_BIT"
643$ WRITE H_FILE "#undef EIGHT_BIT"
644$ WRITE H_FILE "#endif"
42fe218b 645$!
62dc5aad
RL
646$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
647$ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION"
2e904727
RL
648$!
649$! End
650$!
651$ ENDIF
652$!
88868c07 653$! Close the [.CRYPTO._xxx]OPENSSLCONF.H file
2e904727
RL
654$!
655$ CLOSE H_FILE
656$!
88868c07 657$! Purge The [.CRYPTO._xxx]OPENSSLCONF.H file
cc8cc9a3 658$!
537c9823 659$ PURGE SYS$DISK:[.CRYPTO.'ARCHD']OPENSSLCONF.H
cc8cc9a3 660$!
2e904727
RL
661$! That's All, Time To RETURN.
662$!
663$ RETURN
7d7d2cbc 664$!
88868c07 665$! Rebuild The "[.CRYPTO._xxx]BUILDINF.H" file.
7d7d2cbc 666$!
8c197cc5 667$ BUILDINF:
7d7d2cbc 668$!
88868c07 669$! Tell The User We Are Creating The [.CRYPTO._xxx]BUILDINF.H File.
7d7d2cbc 670$!
537c9823 671$ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']BUILDINF.H Include File."
7d7d2cbc 672$!
88868c07 673$! Create The [.CRYPTO._xxx]BUILDINF.H File.
7d7d2cbc 674$!
537c9823 675$ BIH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']BUILDINF.H"
cc8cc9a3
RL
676$ CREATE /FDL=SYS$INPUT: 'BIH_NAME'
677RECORD
678 FORMAT stream_lf
679$!
680$ OPEN /APPEND H_FILE 'bih_name'
7d7d2cbc
UM
681$!
682$! Get The Current Date & Time.
683$!
684$ TIME = F$TIME()
685$!
88868c07 686$! Write The [.CRYPTO._xxx]BUILDINF.H File.
7d7d2cbc 687$!
537c9823
RL
688$ CFLAGS = ""
689$ if (POINTER_SIZE .nes. "")
690$ then
691$ CFLAGS = CFLAGS+ "/POINTER_SIZE=''POINTER_SIZE'"
692$ endif
693$ if (ZLIB .nes. "")
694$ then
695$ if (CFLAGS .nes. "") then CFLAGS = CFLAGS+ " "
696$ CFLAGS = CFLAGS+ "/DEFINE=ZLIB"
697$ endif
698$!
699$ WRITE H_FILE "#define CFLAGS ""''CFLAGS'"""
700$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCHD' ''VMS_VERSION'"""
7d7d2cbc
UM
701$ WRITE H_FILE "#define DATE ""''TIME'"" "
702$!
88868c07 703$! Close The [.CRYPTO._xxx]BUILDINF.H File.
7d7d2cbc
UM
704$!
705$ CLOSE H_FILE
706$!
88868c07 707$! Purge The [.CRYPTO._xxx]BUILDINF.H File.
cc8cc9a3 708$!
537c9823 709$ PURGE SYS$DISK:[.CRYPTO.'ARCHD']BUILDINF.H
cc8cc9a3 710$!
feb592bc
RL
711$! Delete [.CRYPTO]BUILDINF.H File, as there might be some residue from Unix.
712$!
713$ IF F$SEARCH("[.CRYPTO]BUILDINF.H") .NES. "" THEN -
714 DELETE SYS$DISK:[.CRYPTO]BUILDINF.H;*
715$!
7d7d2cbc
UM
716$! That's All, Time To RETURN.
717$!
718$ RETURN
719$!
720$! Copy a lot of files around.
721$!
722$ SOFTLINKS:
723$!
537c9823
RL
724$!!!! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
725$!!!!
726$!!! WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RD160.C' Files."
727$!!!!
728$!!! DELETE SYS$DISK:[.APPS]MD4.C;*,MD5.C;*,RMD160.C;*
729$!!!!
730$!!!! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
731$!!!!
732$!!! COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
733$!!!!
734$!!!! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
735$!!!! Tell The User We Are Rebuilding The [.include.openssl] Directory.
736$!!!!
737$!!!! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
738$!!!!
739$!!! COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
740$!
741$! Ensure that the [.include.openssl] directory contains a full set of
742$! real header files. The distribution kit may have left real or fake
743$! symlinks there. Rather than think about what's there, simply delete
744$! the destination files (fake or real symlinks) before copying the real
745$! header files in. (Copying a real header file onto a real symlink
746$! merely duplicates the real header file at its source.)
747$!
748$! Tell The User We Are Rebuilding The [.include.openssl] Directory.
749$!
750$ WRITE SYS$OUTPUT "Rebuilding The '[.include.openssl]' Directory."
751$!
752$! First, make sure the directory exists. If it did exist, delete all
753$! the existing header files (or fake or real symlinks).
754$!
755$ if f$parse( "sys$disk:[.include.openssl]") .eqs. ""
756$ then
757$ create /directory sys$disk:[.include.openssl]
758$ else
759$ delete sys$disk:[.include.openssl]*.h;*
760$ endif
7d7d2cbc
UM
761$!
762$! Copy All The ".H" Files From The Main Directory.
763$!
41d2a336 764$ EXHEADER := e_os2.h
537c9823 765$ copy 'exheader' sys$disk:[.include.openssl]
7d7d2cbc
UM
766$!
767$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
768$!
36759bb7 769$ HEADER_SDIRS := , -
537c9823
RL
770 'ARCHD', -
771 OBJECTS, -
772 MD2, MD4, MD5, SHA, MDC2, HMAC, RIPEMD, WHRLPOOL, -
773 DES, AES, RC2, RC4, RC5, IDEA, BF, CAST, CAMELLIA, SEED, MODES, -
774 BN, EC, RSA, DSA, ECDSA, DH, ECDH, DSO, ENGINE, -
775 BUFFER, BIO, STACK, LHASH, RAND, ERR, -
776 EVP, ASN1, PEM, X509, X509V3, CONF, TXT_DB, PKCS7, PKCS12, -
777 COMP, OCSP, UI, KRB5, -
778 CMS, PQUEUE, TS, JPAKE, SRP, STORE, CMAC
779$!
780$ EXHEADER_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
781$ EXHEADER_'ARCHD' := opensslconf.h
782$ EXHEADER_OBJECTS := objects.h, obj_mac.h
7d7d2cbc 783$ EXHEADER_MD2 := md2.h
eec79f9b 784$ EXHEADER_MD4 := md4.h
7d7d2cbc
UM
785$ EXHEADER_MD5 := md5.h
786$ EXHEADER_SHA := sha.h
787$ EXHEADER_MDC2 := mdc2.h
788$ EXHEADER_HMAC := hmac.h
789$ EXHEADER_RIPEMD := ripemd.h
adab8005 790$ EXHEADER_WHRLPOOL := whrlpool.h
24956ca0 791$ EXHEADER_DES := des.h
26397d2e 792$ EXHEADER_AES := aes.h
7d7d2cbc
UM
793$ EXHEADER_RC2 := rc2.h
794$ EXHEADER_RC4 := rc4.h
795$ EXHEADER_RC5 := rc5.h
796$ EXHEADER_IDEA := idea.h
797$ EXHEADER_BF := blowfish.h
798$ EXHEADER_CAST := cast.h
2d093724 799$ EXHEADER_CAMELLIA := camellia.h
96afc1cf 800$ EXHEADER_SEED := seed.h
792bbc23 801$ EXHEADER_MODES := modes.h
7d7d2cbc 802$ EXHEADER_BN := bn.h
9bd35f63 803$ EXHEADER_EC := ec.h
7d7d2cbc
UM
804$ EXHEADER_RSA := rsa.h
805$ EXHEADER_DSA := dsa.h
1f4eada3 806$ EXHEADER_ECDSA := ecdsa.h
7d7d2cbc 807$ EXHEADER_DH := dh.h
4705bd9b 808$ EXHEADER_ECDH := ecdh.h
eec79f9b 809$ EXHEADER_DSO := dso.h
5270e702 810$ EXHEADER_ENGINE := engine.h
7d7d2cbc
UM
811$ EXHEADER_BUFFER := buffer.h
812$ EXHEADER_BIO := bio.h
537c9823 813$ EXHEADER_STACK := stack.h, safestack.h
7d7d2cbc
UM
814$ EXHEADER_LHASH := lhash.h
815$ EXHEADER_RAND := rand.h
816$ EXHEADER_ERR := err.h
7d7d2cbc 817$ EXHEADER_EVP := evp.h
537c9823
RL
818$ EXHEADER_ASN1 := asn1.h, asn1_mac.h, asn1t.h
819$ EXHEADER_PEM := pem.h, pem2.h
820$ EXHEADER_X509 := x509.h, x509_vfy.h
7d7d2cbc 821$ EXHEADER_X509V3 := x509v3.h
537c9823 822$ EXHEADER_CONF := conf.h, conf_api.h
7d7d2cbc
UM
823$ EXHEADER_TXT_DB := txt_db.h
824$ EXHEADER_PKCS7 := pkcs7.h
825$ EXHEADER_PKCS12 := pkcs12.h
826$ EXHEADER_COMP := comp.h
6525ced5 827$ EXHEADER_OCSP := ocsp.h
05c3234d 828$ EXHEADER_UI := ui.h
114697be 829$ EXHEADER_KRB5 := krb5_asn.h
fc003bce 830$ EXHEADER_CMS := cms.h
6e6ada18 831$ EXHEADER_PQUEUE := pqueue.h
19017d40 832$ EXHEADER_TS := ts.h
26397d2e 833$ EXHEADER_JPAKE := jpake.h
537c9823
RL
834$ EXHEADER_SRP := srp.h
835$!!! EXHEADER_STORE := store.h, str_compat.h
c8f0610d
RL
836$ EXHEADER_STORE := store.h
837$ EXHEADER_CMAC := cmac.h
537c9823
RL
838$!
839$ i = 0
36759bb7
RL
840$ loop_header_sdirs:
841$ sdir = f$edit( f$element( i, ",", header_sdirs), "trim")
537c9823 842$ i = i + 1
36759bb7 843$ if (sdir .eqs. ",") then goto loop_header_sdirs_end
537c9823
RL
844$ hdr_list = exheader_'sdir'
845$ if (sdir .nes. "") then sdir = "."+ sdir
846$ copy [.crypto'sdir']'hdr_list' sys$disk:[.include.openssl]
36759bb7
RL
847$ goto loop_header_sdirs
848$ loop_header_sdirs_end:
7d7d2cbc 849$!
7d7d2cbc
UM
850$! Copy All The ".H" Files From The [.SSL] Directory.
851$!
537c9823 852$! (keep these in the same order as ssl/Makefile)
36759bb7 853$ EXHEADER := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, kssl.h, srtp.h
537c9823 854$ copy sys$disk:[.ssl]'exheader' sys$disk:[.include.openssl]
7d7d2cbc 855$!
537c9823 856$! Purge the [.include.openssl] header files.
7d7d2cbc 857$!
537c9823 858$ purge sys$disk:[.include.openssl]*.h
7d7d2cbc
UM
859$!
860$! That's All, Time To RETURN.
861$!
862$ RETURN
863$!
537c9823 864$! Build The "[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB" Library.
7d7d2cbc
UM
865$!
866$ CRYPTO:
867$!
868$! Tell The User What We Are Doing.
869$!
870$ WRITE SYS$OUTPUT ""
537c9823
RL
871$ WRITE SYS$OUTPUT -
872 "Building The [.",ARCHD,".EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB Library."
7d7d2cbc
UM
873$!
874$! Go To The [.CRYPTO] Directory.
875$!
876$ SET DEFAULT SYS$DISK:[.CRYPTO]
877$!
878$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
879$!
537c9823
RL
880$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
881 "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
7be760be 882$!
7d7d2cbc
UM
883$! Go Back To The Main Directory.
884$!
885$ SET DEFAULT [-]
886$!
887$! Time To RETURN.
888$!
889$ RETURN
890$!
537c9823 891$! Build The "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library.
7d7d2cbc
UM
892$!
893$ SSL:
894$!
895$! Tell The User What We Are Doing.
896$!
897$ WRITE SYS$OUTPUT ""
537c9823
RL
898$ WRITE SYS$OUTPUT -
899 "Building The [.",ARCHD,".EXE.SSL]SSL_LIBSSL''LIB32'.OLB Library."
7d7d2cbc
UM
900$!
901$! Go To The [.SSL] Directory.
902$!
903$ SET DEFAULT SYS$DISK:[.SSL]
904$!
905$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
906$!
537c9823
RL
907$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
908 "''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'"
7d7d2cbc
UM
909$!
910$! Go Back To The Main Directory.
911$!
912$ SET DEFAULT [-]
913$!
914$! Time To Return.
915$!
916$ RETURN
917$!
7d7d2cbc
UM
918$! Build The OpenSSL Test Programs.
919$!
920$ TEST:
921$!
922$! Tell The User What We Are Doing.
923$!
924$ WRITE SYS$OUTPUT ""
537c9823 925$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCHD,".EXE.TEST] Test Utilities."
7d7d2cbc
UM
926$!
927$! Go To The [.TEST] Directory.
928$!
929$ SET DEFAULT SYS$DISK:[.TEST]
930$!
931$! Build The Test Programs.
932$!
537c9823
RL
933$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
934 "''POINTER_SIZE'" "''ZLIB'"
7d7d2cbc
UM
935$!
936$! Go Back To The Main Directory.
937$!
938$ SET DEFAULT [-]
939$!
940$! That's All, Time To RETURN.
941$!
942$ RETURN
943$!
944$! Build The OpenSSL Application Programs.
945$!
946$ APPS:
947$!
948$! Tell The User What We Are Doing.
949$!
950$ WRITE SYS$OUTPUT ""
537c9823 951$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.APPS] Applications."
7d7d2cbc
UM
952$!
953$! Go To The [.APPS] Directory.
954$!
955$ SET DEFAULT SYS$DISK:[.APPS]
956$!
957$! Build The Application Programs.
958$!
537c9823
RL
959$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" -
960 "" "''POINTER_SIZE'" "''ZLIB'"
7d7d2cbc
UM
961$!
962$! Go Back To The Main Directory.
963$!
964$ SET DEFAULT [-]
965$!
966$! That's All, Time To RETURN.
967$!
968$ RETURN
969$!
ad22b914
RL
970$! Build The OpenSSL Application Programs.
971$!
972$ ENGINES:
973$!
974$! Tell The User What We Are Doing.
975$!
976$ WRITE SYS$OUTPUT ""
537c9823 977$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.ENGINES] Engines."
ad22b914
RL
978$!
979$! Go To The [.ENGINES] Directory.
980$!
981$ SET DEFAULT SYS$DISK:[.ENGINES]
982$!
983$! Build The Application Programs.
984$!
537c9823
RL
985$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
986 "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
ad22b914
RL
987$!
988$! Go Back To The Main Directory.
989$!
990$ SET DEFAULT [-]
991$!
992$! That's All, Time To RETURN.
993$!
994$ RETURN
995$!
7d7d2cbc
UM
996$! Check The User's Options.
997$!
998$ CHECK_OPTIONS:
999$!
2db90e3a
RL
1000$! Check if there's a "part", and separate it out
1001$!
1002$ BUILDPART = F$ELEMENT(1,"/",P1)
1003$ IF BUILDPART .EQS. "/"
1004$ THEN
1005$ BUILDPART = ""
1006$ ELSE
1007$ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
1008$ ENDIF
1009$!
7d7d2cbc
UM
1010$! Check To See If P1 Is Blank.
1011$!
1012$ IF (P1.EQS."ALL")
1013$ THEN
1014$!
1015$! P1 Is ALL, So Build Everything.
1016$!
2e904727 1017$ BUILDCOMMAND = "ALL"
7d7d2cbc
UM
1018$!
1019$! Else...
1020$!
1021$ ELSE
1022$!
537c9823 1023$! Else, Check To See If P1 Has A Valid Argument.
7d7d2cbc 1024$!
e33f347a
RL
1025$ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
1026 .OR.(P1.EQS."BUILDALL") -
b6d0defb 1027 .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") -
5098c029 1028 .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
407a4101 1029 .OR.(P1.EQS."ENGINES")
7d7d2cbc
UM
1030$ THEN
1031$!
537c9823 1032$! A Valid Argument.
7d7d2cbc 1033$!
2e904727 1034$ BUILDCOMMAND = P1
7d7d2cbc
UM
1035$!
1036$! Else...
1037$!
1038$ ELSE
1039$!
1040$! Tell The User We Don't Know What They Want.
1041$!
1042$ WRITE SYS$OUTPUT ""
b7ef916c 1043$ WRITE SYS$OUTPUT "USAGE: @MAKEVMS.COM [Target] [Pointer size] [Debug option] <Compiler>"
407a4101
RL
1044$ WRITE SYS$OUTPUT ""
1045$ WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL """" NODEBUG "
1046$ WRITE SYS$OUTPUT ""
1047$ WRITE SYS$OUTPUT "The Target ",P1," Is Invalid. The Valid Target Options Are:"
7d7d2cbc
UM
1048$ WRITE SYS$OUTPUT ""
1049$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
88868c07
RL
1050$ WRITE SYS$OUTPUT " CONFIG : Just build the [.CRYPTO._xxx]OPENSSLCONF.H file."
1051$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO._xxx]BUILDINF.H file."
7d7d2cbc 1052$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
2e904727 1053$ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
7d7d2cbc 1054$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
2db90e3a
RL
1055$ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The"
1056$ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
7d7d2cbc 1057$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
7d7d2cbc
UM
1058$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
1059$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
407a4101 1060$ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES"
7d7d2cbc
UM
1061$ WRITE SYS$OUTPUT ""
1062$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
1063$ WRITE SYS$OUTPUT ""
537c9823
RL
1064$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
1065$ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
cc8cc9a3 1066$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
7d7d2cbc
UM
1067$ WRITE SYS$OUTPUT ""
1068$!
1069$! Time To EXIT.
1070$!
cc8cc9a3 1071$ GOTO TIDY
7d7d2cbc
UM
1072$!
1073$! End The Valid Argument Check.
1074$!
1075$ ENDIF
1076$!
1077$! End The P1 Check.
1078$!
1079$ ENDIF
1080$!
537c9823 1081$! Check P2 (POINTER_SIZE).
b7ef916c 1082$!
537c9823 1083$ IF (P2 .NES. "") .AND. (ARCH .NES. "VAX")
b7ef916c 1084$ THEN
b7ef916c 1085$!
537c9823 1086$ IF (P2 .EQS. "32")
b7ef916c
RL
1087$ THEN
1088$ POINTER_SIZE = "32"
b7ef916c 1089$ ELSE
4ec3e8ca
RL
1090$ POINTER_SIZE = F$EDIT( P2, "COLLAPSE, UPCASE")
1091$ IF ((POINTER_SIZE .EQS. "64") .OR. -
1092 (POINTER_SIZE .EQS. "64=") .OR. -
1093 (POINTER_SIZE .EQS. "64=ARGV"))
b7ef916c 1094$ THEN
537c9823 1095$ ARCHD = ARCH+ "_64"
b7ef916c 1096$ LIB32 = ""
b7ef916c
RL
1097$ ELSE
1098$!
537c9823 1099$! Tell The User Entered An Invalid Option.
b7ef916c
RL
1100$!
1101$ WRITE SYS$OUTPUT ""
537c9823
RL
1102$ WRITE SYS$OUTPUT "The Option ", P2, -
1103 " Is Invalid. The Valid Options Are:"
b7ef916c 1104$ WRITE SYS$OUTPUT ""
4ec3e8ca
RL
1105$ WRITE SYS$OUTPUT -
1106 " """" : Compile with default (short) pointers."
1107$ WRITE SYS$OUTPUT -
1108 " 32 : Compile with 32-bit (short) pointers."
1109$ WRITE SYS$OUTPUT -
1110 " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
1111$ WRITE SYS$OUTPUT -
1112 " 64= : Compile with 64-bit (long) pointers (no ARGV)."
1113$ WRITE SYS$OUTPUT -
1114 " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
b7ef916c 1115$ WRITE SYS$OUTPUT ""
537c9823 1116$!
b7ef916c
RL
1117$! Time To EXIT.
1118$!
1119$ GOTO TIDY
1120$!
b7ef916c 1121$ ENDIF
537c9823 1122$!
b7ef916c
RL
1123$ ENDIF
1124$!
537c9823 1125$! End The P2 (POINTER_SIZE) Check.
b7ef916c
RL
1126$!
1127$ ENDIF
1128$!
7d7d2cbc
UM
1129$! Check To See If P3 Is Blank.
1130$!
1131$ IF (P3.EQS."NODEBUG")
1132$ THEN
1133$!
1134$! P3 Is NODEBUG, So Compile Without Debugger Information.
1135$!
1136$ DEBUGGER = "NODEBUG"
1137$!
1138$! Else...
1139$!
1140$ ELSE
1141$!
1142$! Check To See If We Are To Compile With Debugger Information.
1143$!
1144$ IF (P3.EQS."DEBUG")
1145$ THEN
1146$!
1147$! Compile With Debugger Information.
1148$!
1149$ DEBUGGER = "DEBUG"
1150$!
1151$! Else...
1152$!
1153$ ELSE
1154$!
537c9823 1155$! Tell The User Entered An Invalid Option.
7d7d2cbc
UM
1156$!
1157$ WRITE SYS$OUTPUT ""
1158$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
1159$ WRITE SYS$OUTPUT ""
1160$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
1161$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
1162$ WRITE SYS$OUTPUT ""
1163$!
1164$! Time To EXIT.
1165$!
cc8cc9a3 1166$ GOTO TIDY
7d7d2cbc 1167$!
537c9823 1168$! End The Valid Argument Check.
7d7d2cbc
UM
1169$!
1170$ ENDIF
1171$!
1172$! End The P3 Check.
1173$!
1174$ ENDIF
1175$!
1176$! Check To See If P4 Is Blank.
1177$!
1178$ IF (P4.EQS."")
1179$ THEN
1180$!
1181$! O.K., The User Didn't Specify A Compiler, Let's Try To
1182$! Find Out Which One To Use.
1183$!
1184$! Check To See If We Have GNU C.
1185$!
1186$ IF (F$TRNLNM("GNU_CC").NES."")
1187$ THEN
1188$!
1189$! Looks Like GNUC, Set To Use GNUC.
1190$!
1191$ COMPILER = "GNUC"
1192$!
1193$! Tell The User We Are Using GNUC.
1194$!
1195$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
1196$!
1197$! End The GNU C Compiler Check.
1198$!
1199$ ENDIF
1200$!
1201$! Check To See If We Have VAXC Or DECC.
1202$!
1203$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
1204$ THEN
1205$!
1206$! Looks Like DECC, Set To Use DECC.
1207$!
1208$ COMPILER = "DECC"
1209$!
1210$! Tell The User We Are Using DECC.
1211$!
1212$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
1213$!
1214$! Else...
1215$!
1216$ ELSE
1217$!
1218$! Looks Like VAXC, Set To Use VAXC.
1219$!
1220$ COMPILER = "VAXC"
1221$!
1222$! Tell The User We Are Using VAX C.
1223$!
1224$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
1225$!
1226$! End The DECC & VAXC Compiler Check.
1227$!
1228$ ENDIF
1229$!
1230$! Else...
1231$!
1232$ ELSE
1233$!
537c9823 1234$! Check To See If The User Entered A Valid Parameter.
7d7d2cbc 1235$!
58dc480f 1236$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
7d7d2cbc
UM
1237$ THEN
1238$!
1239$! Check To See If The User Wanted To Just LINK.
1240$!
1241$ IF (P4.EQS."LINK")
1242$ THEN
1243$!
1244$! Looks Like LINK-only
1245$!
1246$ COMPILER = "LINK"
1247$!
1248$! Tell The User We Are Only Linking.
1249$!
1250$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
1251$!
1252$! End LINK Check.
1253$!
1254$ ENDIF
1255$!
1256$! Check To See If The User Wanted DECC.
1257$!
1258$ IF (P4.EQS."DECC")
1259$ THEN
1260$!
1261$! Looks Like DECC, Set To Use DECC.
1262$!
1263$ COMPILER = "DECC"
1264$!
1265$! Tell The User We Are Using DECC.
1266$!
1267$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
1268$!
1269$! End DECC Check.
1270$!
1271$ ENDIF
1272$!
1273$! Check To See If We Are To Use VAXC.
1274$!
1275$ IF (P4.EQS."VAXC")
1276$ THEN
1277$!
1278$! Looks Like VAXC, Set To Use VAXC.
1279$!
1280$ COMPILER = "VAXC"
1281$!
1282$! Tell The User We Are Using VAX C.
1283$!
1284$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
1285$!
1286$! End VAXC Check
1287$!
1288$ ENDIF
1289$!
1290$! Check To See If We Are To Use GNU C.
1291$!
1292$ IF (P4.EQS."GNUC")
1293$ THEN
1294$!
1295$! Looks Like GNUC, Set To Use GNUC.
1296$!
1297$ COMPILER = "GNUC"
1298$!
1299$! Tell The User We Are Using GNUC.
1300$!
1301$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
1302$!
1303$! End The GNU C Check.
1304$!
1305$ ENDIF
1306$!
537c9823 1307$! Else The User Entered An Invalid Argument.
7d7d2cbc
UM
1308$!
1309$ ELSE
1310$!
1311$! Tell The User We Don't Know What They Want.
1312$!
1313$ WRITE SYS$OUTPUT ""
1314$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
1315$ WRITE SYS$OUTPUT ""
1316$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
1317$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
1318$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
1319$ WRITE SYS$OUTPUT ""
1320$!
1321$! Time To EXIT.
1322$!
cc8cc9a3 1323$ GOTO TIDY
7d7d2cbc 1324$!
537c9823 1325$! End The Valid Argument Check.
7d7d2cbc
UM
1326$!
1327$ ENDIF
1328$!
1329$! End The P4 Check.
1330$!
1331$ ENDIF
1332$!
537c9823
RL
1333$! Time to check the contents of P5, and to make sure we get the correct
1334$! library.
7d7d2cbc 1335$!
b935754c
RL
1336$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" -
1337 .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE"
7d7d2cbc
UM
1338$ THEN
1339$!
1340$! Check to see if SOCKETSHR was chosen
1341$!
1342$ IF P5.EQS."SOCKETSHR"
1343$ THEN
1344$!
1345$! Set the library to use SOCKETSHR
1346$!
537c9823 1347$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
7d7d2cbc
UM
1348$!
1349$! Tell the user
1350$!
1351$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
1352$!
1353$! Done with SOCKETSHR
1354$!
1355$ ENDIF
1356$!
1357$! Check to see if MULTINET was chosen
1358$!
1359$ IF P5.EQS."MULTINET"
1360$ THEN
1361$!
1362$! Set the library to use UCX emulation.
1363$!
1364$ P5 = "UCX"
1365$!
1366$! Tell the user
1367$!
1368$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
1369$!
1370$! Done with MULTINET
1371$!
1372$ ENDIF
1373$!
1374$! Check to see if UCX was chosen
1375$!
1376$ IF P5.EQS."UCX"
1377$ THEN
1378$!
1379$! Set the library to use UCX.
1380$!
537c9823 1381$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
7d7d2cbc
UM
1382$!
1383$! Tell the user
1384$!
1385$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
1386$!
1387$! Done with UCX
1388$!
1389$ ENDIF
1390$!
b935754c
RL
1391$! Check to see if TCPIP was chosen
1392$!
1393$ IF P5.EQS."TCPIP"
1394$ THEN
1395$!
1396$! Set the library to use TCPIP (post UCX).
1397$!
537c9823 1398$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
b935754c
RL
1399$!
1400$! Tell the user
1401$!
1402$ WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP"
1403$!
1404$! Done with TCPIP
1405$!
1406$ ENDIF
1407$!
1408$! Check to see if NONE was chosen
1409$!
1410$ IF P5.EQS."NONE"
1411$ THEN
1412$!
1413$! Do not use a TCPIP library.
1414$!
1415$ TCPIP_LIB = ""
1416$!
1417$! Tell the user
1418$!
1419$ WRITE SYS$OUTPUT "A specific TCPIP library will not be used."
1420$!
1421$! Done with NONE.
1422$!
1423$ ENDIF
1424$!
7d7d2cbc
UM
1425$! Set the TCPIP_TYPE symbol
1426$!
1427$ TCPIP_TYPE = P5
1428$!
1429$! Print info
1430$!
1431$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
1432$!
537c9823 1433$! Else The User Entered An Invalid Argument.
7d7d2cbc
UM
1434$!
1435$ ELSE
1436$ IF P5 .NES. ""
1437$ THEN
1438$!
1439$! Tell The User We Don't Know What They Want.
1440$!
1441$ WRITE SYS$OUTPUT ""
1442$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
1443$ WRITE SYS$OUTPUT ""
1444$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
1445$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
b935754c
RL
1446$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP TCP/IP (post UCX) library."
1447$ WRITE SYS$OUTPUT " NONE : To not link with a specific TCP/IP library."
7d7d2cbc
UM
1448$ WRITE SYS$OUTPUT ""
1449$!
1450$! Time To EXIT.
1451$!
cc8cc9a3 1452$ GOTO TIDY
7d7d2cbc
UM
1453$ ELSE
1454$!
b935754c
RL
1455$! If TCPIP is not defined, then hardcode it to make
1456$! it clear that no TCPIP is desired.
1457$!
1458$ IF P5 .EQS. ""
1459$ THEN
1460$ TCPIP_LIB = ""
1461$ TCPIP_TYPE = "NONE"
1462$ ELSE
1463$!
7d7d2cbc
UM
1464$! Set the TCPIP_TYPE symbol
1465$!
b935754c
RL
1466$ TCPIP_TYPE = P5
1467$ ENDIF
7d7d2cbc
UM
1468$ ENDIF
1469$!
1470$! Done with TCP/IP libraries
1471$!
1472$ ENDIF
1473$!
1474$! Special Threads For OpenVMS v7.1 Or Later
1475$!
1476$! Written By: Richard Levitte
1477$! richard@levitte.org
1478$!
1479$!
1480$! Check To See If We Have A Option For P6.
1481$!
1482$ IF (P6.EQS."")
1483$ THEN
1484$!
1485$! Get The Version Of VMS We Are Using.
1486$!
1487$ ISSEVEN :=
537c9823 1488$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,VMS_VERSION))
7d7d2cbc
UM
1489$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1490$!
1491$! Check To See If The VMS Version Is v7.1 Or Later.
1492$!
1493$ IF (TMP.GE.71)
1494$ THEN
1495$!
1496$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1497$!
1498$ ISSEVEN := ,PTHREAD_USE_D4
1499$!
1500$! End The VMS Version Check.
1501$!
1502$ ENDIF
1503$!
1504$! End The P6 Check.
1505$!
1506$ ENDIF
1507$!
537c9823
RL
1508$!
1509$! Check To See If We Have A ZLIB Option.
1510$!
1511$ ZLIB = P7
1512$ IF (ZLIB .NES. "")
1513$ THEN
1514$!
1515$! Check for expected ZLIB files.
1516$!
1517$ err = 0
1518$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
1519$ if (f$search( file1) .eqs. "")
1520$ then
1521$ WRITE SYS$OUTPUT ""
1522$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
1523$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
1524$ err = 1
1525$ endif
1526$!
1527$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
1528$ if (f$search( file2) .eqs. "")
1529$ then
1530$ if (err .eq. 0)
1531$ then
1532$ WRITE SYS$OUTPUT ""
1533$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
1534$ endif
1535$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
1536$ WRITE SYS$OUTPUT ""
1537$ err = err+ 2
1538$ endif
1539$ if (err .eq. 1)
1540$ then
1541$ WRITE SYS$OUTPUT ""
1542$ endif
1543$!
1544$ if (err .ne. 0)
1545$ then
1546$ GOTO TIDY
1547$ endif
1548$!
1549$! Print info
1550$!
1551$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
1552$!
1553$! End The ZLIB Check.
1554$!
1555$ ENDIF
1556$!
7d7d2cbc
UM
1557$! Time To RETURN...
1558$!
1559$ RETURN
cc8cc9a3
RL
1560$!
1561$ TIDY:
537c9823
RL
1562$!
1563$! Close any open files.
1564$!
1565$ if (f$trnlnm( "h_file", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then -
1566 close h_file
1567$!
1568$! Restore the original default device:[directory].
1569$!
cc8cc9a3 1570$ SET DEFAULT 'DEF_ORIG'
537c9823 1571$!
cc8cc9a3
RL
1572$ EXIT
1573$!