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