]> git.ipfire.org Git - thirdparty/openssl.git/blame - makevms.com
* tests.com: Add the symbol openssl_conf, so the openssl application
[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$!
18$! Specify one of the following build options for P1.
19$!
20$! ALL Just build "everything".
cd6bc02b
RL
21$! CONFIG Just build the "[.xxx.CRYPTO]OPENSSLCONF.H" file.
22$! BUILDINF Just build the "[.xxx.CRYPTO]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
UM
28$! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
29$! SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program.
30$! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
31$! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
ad22b914 32$! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
7d7d2cbc
UM
33$!
34$!
b6d0defb
RL
35$! P2 is ignored (it was used to denote if RSAref should be used or not,
36$! and is simply kept so surrounding scripts don't get confused)
7d7d2cbc
UM
37$!
38$! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging
39$! information.
40$!
407a4101 41$! Specify which compiler as P4 to try to compile under.
7d7d2cbc
UM
42$!
43$! VAXC For VAX C.
44$! DECC For DEC C.
45$! GNUC For GNU C.
46$! LINK To only link the programs from existing object files.
58dc480f 47$! (not yet implemented)
7d7d2cbc
UM
48$!
49$! If you don't speficy a compiler, it will try to determine which
50$! "C" compiler to use.
51$!
b935754c
RL
52$! P5, if defined, sets a TCP/IP library to use, through one of the following
53$! keywords:
7d7d2cbc
UM
54$!
55$! UCX for UCX or UCX emulation
b935754c
RL
56$! TCPIP for TCP/IP Services or TCP/IP Services emulation
57$! (this is prefered over UCX)
7d7d2cbc 58$! SOCKETSHR for SOCKETSHR+NETLIB
b935754c
RL
59$! NONE to avoid specifying which TCP/IP implementation to
60$! use at build time (this works with DEC C). This is
61$! the default.
7d7d2cbc
UM
62$!
63$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
64$!
65$!
cc8cc9a3
RL
66$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
67$ ON ERROR THEN GOTO TIDY
68$ ON CONTROL_C THEN GOTO TIDY
69$!
2e904727
RL
70$! Check if we're in a batch job, and make sure we get to
71$! the directory this script is in
72$!
73$ IF F$MODE() .EQS. "BATCH"
74$ THEN
75$ COMNAME=F$ENVIRONMENT("PROCEDURE")
76$ COMPATH=F$PARSE("A.;",COMNAME) - "A.;"
77$ SET DEF 'COMPATH'
78$ ENDIF
79$!
cc8cc9a3 80$! Check What Architecture We Are Using.
7d7d2cbc 81$!
cc8cc9a3 82$ IF (F$GETSYI("CPU").LT.128)
7d7d2cbc
UM
83$ THEN
84$!
cc8cc9a3 85$! The Architecture Is VAX.
7d7d2cbc 86$!
cc8cc9a3 87$ ARCH := VAX
7d7d2cbc
UM
88$!
89$! Else...
90$!
91$ ELSE
92$!
cc8cc9a3 93$! The Architecture Is Alpha, IA64 or whatever comes in the future.
7d7d2cbc 94$!
cc8cc9a3
RL
95$ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
96$ IF (ARCH .EQS. "") THEN ARCH = "UNK"
7d7d2cbc
UM
97$!
98$! End The Architecture Check.
99$!
100$ ENDIF
101$!
102$! Check To Make Sure We Have Valid Command Line Parameters.
103$!
104$ GOSUB CHECK_OPTIONS
105$!
106$! Check To See What We Are To Do.
107$!
2e904727 108$ IF (BUILDCOMMAND.EQS."ALL")
7d7d2cbc
UM
109$ THEN
110$!
2e904727 111$! Start with building the OpenSSL configuration file.
7d7d2cbc 112$!
2e904727 113$ GOSUB CONFIG
7d7d2cbc 114$!
8c197cc5 115$! Create The "BUILDINF.H" Include File.
7d7d2cbc 116$!
8c197cc5 117$ GOSUB BUILDINF
7d7d2cbc 118$!
2e904727
RL
119$! Fix The Unix Softlinks.
120$!
121$ GOSUB SOFTLINKS
122$!
123$ ENDIF
124$!
125$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL")
126$ THEN
127$!
7d7d2cbc
UM
128$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
129$!
130$ GOSUB CRYPTO
131$!
132$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
133$!
134$ GOSUB SSL
135$!
136$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE DECNet SSL Engine.
137$!
138$ GOSUB SSL_TASK
139$!
140$! Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
141$!
142$ GOSUB TEST
143$!
144$! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
145$!
146$ GOSUB APPS
147$!
ad22b914
RL
148$! Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines.
149$!
150$ GOSUB ENGINES
151$!
7d7d2cbc
UM
152$! Else...
153$!
154$ ELSE
155$!
156$! Build Just What The User Wants Us To Build.
157$!
2e904727
RL
158$ GOSUB 'BUILDCOMMAND'
159$!
7d7d2cbc
UM
160$ ENDIF
161$!
162$! Time To EXIT.
163$!
cc8cc9a3 164$ GOTO TIDY
2e904727 165$!
cd6bc02b 166$! Rebuild The [.xxx.CRYPTO]OPENSSLCONF.H" file.
2e904727
RL
167$!
168$ CONFIG:
169$!
cd6bc02b 170$! Tell The User We Are Creating The [.xxx.CRYPTO]OPENSSLCONF.H File.
cc8cc9a3 171$!
cd6bc02b 172$ WRITE SYS$OUTPUT "Creating [.''ARCH'.CRYPTO]OPENSSLCONF.H Include File."
2e904727 173$!
cc8cc9a3 174$! First, make sure the directory exists.
2e904727 175$!
cd6bc02b
RL
176$ IF F$PARSE("SYS$DISK:[.''ARCH'.CRYPTO]") .EQS. "" THEN -
177 CREATE/DIRECTORY SYS$DISK:[.'ARCH'.CRYPTO]
2e904727 178$!
cd6bc02b 179$! Create The [.xxx.CRYPTO]OPENSSLCONF.H File.
cc8cc9a3 180$! Make sure it has the right format.
2e904727 181$!
cd6bc02b 182$ OSCH_NAME = "SYS$DISK:[.''ARCH'.CRYPTO]OPENSSLCONF.H"
cc8cc9a3
RL
183$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME'
184RECORD
185 FORMAT stream_lf
186$ OPEN /APPEND H_FILE 'OSCH_NAME'
187$!
cd6bc02b 188$! Write The [.xxx.CRYPTO]OPENSSLCONF.H File.
2e904727
RL
189$!
190$ WRITE H_FILE "/* This file was automatically built using makevms.com */"
cd6bc02b 191$ WRITE H_FILE "/* and [.''ARCH'.CRYPTO]OPENSSLCONF.H_IN */"
6525ced5
RL
192$!
193$! Write a few macros that indicate how this system was built.
194$!
195$ WRITE H_FILE ""
196$ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS"
197$ WRITE H_FILE "# define OPENSSL_SYS_VMS"
198$ WRITE H_FILE "#endif"
adab8005 199$ CONFIG_LOGICALS := NO_ASM,NO_RSA,NO_DSA,NO_DH,NO_MD2,NO_MD5,NO_RIPEMD,WHRLPOOL,-
6525ced5 200 NO_SHA,NO_SHA0,NO_SHA1,NO_DES/NO_MDC2;NO_MDC2,NO_RC2,NO_RC4,NO_RC5,-
96afc1cf 201 NO_IDEA,NO_BF,NO_CAST,NO_CAMELLIA,NO_SEED,NO_HMAC,NO_SSL2
6525ced5
RL
202$ CONFIG_LOG_I = 0
203$ CONFIG_LOG_LOOP:
204$ CONFIG_LOG_E1 = F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS)
205$ CONFIG_LOG_I = CONFIG_LOG_I + 1
206$ IF CONFIG_LOG_E1 .EQS. "" THEN GOTO CONFIG_LOG_LOOP
207$ IF CONFIG_LOG_E1 .EQS. "," THEN GOTO CONFIG_LOG_LOOP_END
208$ CONFIG_LOG_E2 = F$EDIT(CONFIG_LOG_E1,"TRIM")
209$ CONFIG_LOG_E1 = F$ELEMENT(0,";",CONFIG_LOG_E2)
210$ CONFIG_LOG_E2 = F$ELEMENT(1,";",CONFIG_LOG_E2)
211$ CONFIG_LOG_E0 = F$ELEMENT(0,"/",CONFIG_LOG_E1)
212$ CONFIG_LOG_E1 = F$ELEMENT(1,"/",CONFIG_LOG_E1)
213$ IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E0)
214$ THEN
215$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E0
216$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E0
217$ WRITE H_FILE "#endif"
218$ IF CONFIG_LOG_E1 .NES. "/"
219$ THEN
220$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E1
221$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E1
222$ WRITE H_FILE "#endif"
223$ ENDIF
224$ ELSE
225$ IF CONFIG_LOG_E2 .NES. ";"
226$ THEN
227$ IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E2)
228$ THEN
229$ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E2
230$ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E2
231$ WRITE H_FILE "#endif"
232$ ENDIF
233$ ENDIF
234$ ENDIF
235$ GOTO CONFIG_LOG_LOOP
236$ CONFIG_LOG_LOOP_END:
ad22b914
RL
237$ WRITE H_FILE "#ifndef OPENSSL_NO_STATIC_ENGINE"
238$ WRITE H_FILE "# define OPENSSL_NO_STATIC_ENGINE"
239$ WRITE H_FILE "#endif"
6525ced5
RL
240$ WRITE H_FILE "#ifndef OPENSSL_THREADS"
241$ WRITE H_FILE "# define OPENSSL_THREADS"
242$ WRITE H_FILE "#endif"
243$ WRITE H_FILE "#ifndef OPENSSL_NO_KRB5"
244$ WRITE H_FILE "# define OPENSSL_NO_KRB5"
245$ WRITE H_FILE "#endif"
246$ WRITE H_FILE ""
247$!
2e904727
RL
248$! Different tar version may have named the file differently
249$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H_IN") .NES. ""
250$ THEN
251$ TYPE [.CRYPTO]OPENSSLCONF.H_IN /OUTPUT=H_FILE:
252$ ELSE
253$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF_H.IN") .NES. ""
254$ THEN
255$ TYPE [.CRYPTO]OPENSSLCONF_H.IN /OUTPUT=H_FILE:
256$ ELSE
7b5ffd68
RL
257$ ! For ODS-5
258$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H.IN") .NES. ""
259$ THEN
260$ TYPE [.CRYPTO]OPENSSLCONF.H.IN /OUTPUT=H_FILE:
261$ ELSE
262$ WRITE SYS$ERROR "Couldn't find a [.CRYPTO]OPENSSLCONF.H_IN. Exiting!"
cc8cc9a3
RL
263$ $STATUS = %X00018294 ! "%RMS-F-FNF, file not found".
264$ GOTO TIDY
7b5ffd68 265$ ENDIF
2e904727
RL
266$ ENDIF
267$ ENDIF
407a4101 268$ IF ARCH .NES. "VAX"
2e904727
RL
269$ THEN
270$!
407a4101 271$! Write the non-VAX specific data
2e904727
RL
272$!
273$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
274$ WRITE H_FILE "#undef RC4_INT"
275$ WRITE H_FILE "#define RC4_INT unsigned int"
276$ WRITE H_FILE "#undef RC4_CHUNK"
277$ WRITE H_FILE "#define RC4_CHUNK unsigned long long"
278$ WRITE H_FILE "#endif"
279$!
280$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
281$ WRITE H_FILE "#undef DES_LONG"
282$ WRITE H_FILE "#define DES_LONG unsigned int"
283$ WRITE H_FILE "#undef DES_PTR"
284$ WRITE H_FILE "#define DES_PTR"
285$ WRITE H_FILE "#undef DES_RISC1"
286$ WRITE H_FILE "#undef DES_RISC2"
287$ WRITE H_FILE "#define DES_RISC1"
288$ WRITE H_FILE "#undef DES_UNROLL"
289$ WRITE H_FILE "#define DES_UNROLL"
290$ WRITE H_FILE "#endif"
291$!
292$ WRITE H_FILE "#if defined(HEADER_BN_H)"
256b5d58 293$ WRITE H_FILE "#undef BN_LLONG" ! Never define with SIXTY_FOUR_BIT
2e904727
RL
294$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
295$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
5a16d270 296$ WRITE H_FILE "#define SIXTY_FOUR_BIT"
2e904727
RL
297$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
298$ WRITE H_FILE "#undef SIXTEEN_BIT"
299$ WRITE H_FILE "#undef EIGHT_BIT"
300$ WRITE H_FILE "#endif"
62dc5aad
RL
301$
302$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
2e904727
RL
303$!
304$! Else...
305$!
306$ ELSE
307$!
308$! Write the VAX specific data
309$!
310$ WRITE H_FILE "#if defined(HEADER_RC4_H)"
311$ WRITE H_FILE "#undef RC4_INT"
312$ WRITE H_FILE "#define RC4_INT unsigned char"
313$ WRITE H_FILE "#undef RC4_CHUNK"
314$ WRITE H_FILE "#define RC4_CHUNK unsigned long"
315$ WRITE H_FILE "#endif"
316$!
317$ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
318$ WRITE H_FILE "#undef DES_LONG"
319$ WRITE H_FILE "#define DES_LONG unsigned long"
320$ WRITE H_FILE "#undef DES_PTR"
321$ WRITE H_FILE "#define DES_PTR"
322$ WRITE H_FILE "#undef DES_RISC1"
323$ WRITE H_FILE "#undef DES_RISC2"
324$ WRITE H_FILE "#undef DES_UNROLL"
325$ WRITE H_FILE "#endif"
326$!
327$ WRITE H_FILE "#if defined(HEADER_BN_H)"
256b5d58 328$ WRITE H_FILE "#undef BN_LLONG" ! VAX C/DEC C doesn't have long long
2e904727
RL
329$ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
330$ WRITE H_FILE "#undef SIXTY_FOUR_BIT"
2e904727 331$ WRITE H_FILE "#undef THIRTY_TWO_BIT"
4cce8244 332$ WRITE H_FILE "#define THIRTY_TWO_BIT"
2e904727
RL
333$ WRITE H_FILE "#undef SIXTEEN_BIT"
334$ WRITE H_FILE "#undef EIGHT_BIT"
335$ WRITE H_FILE "#endif"
42fe218b 336$!
cc8cc9a3
RL
337$! Oddly enough, the following symbol is tested in crypto/sha/sha512.c
338$! before sha.h gets included (and HEADER_SHA_H defined), so we will not
339$! protect this one...
42fe218b
RL
340$ WRITE H_FILE "#undef OPENSSL_NO_SHA512"
341$ WRITE H_FILE "#define OPENSSL_NO_SHA512"
42fe218b 342$!
62dc5aad
RL
343$ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
344$ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION"
2e904727
RL
345$!
346$! End
347$!
348$ ENDIF
349$!
cd6bc02b 350$! Close the [.xxx.CRYPTO]OPENSSLCONF.H file
2e904727
RL
351$!
352$ CLOSE H_FILE
353$!
cd6bc02b 354$! Purge The [.xxx.CRYPTO]OPENSSLCONF.H file
cc8cc9a3 355$!
cd6bc02b 356$ PURGE SYS$DISK:[.'ARCH'.CRYPTO]OPENSSLCONF.H
cc8cc9a3 357$!
2e904727
RL
358$! That's All, Time To RETURN.
359$!
360$ RETURN
7d7d2cbc 361$!
cd6bc02b 362$! Rebuild The "[.xxx.CRYPTO]BUILDINF.H" file.
7d7d2cbc 363$!
8c197cc5 364$ BUILDINF:
7d7d2cbc 365$!
cd6bc02b 366$! Tell The User We Are Creating The [.xxx.CRYPTO]BUILDINF.H File.
7d7d2cbc 367$!
cd6bc02b 368$ WRITE SYS$OUTPUT "Creating [.''ARCH'.CRYPTO]BUILDINF.H Include File."
7d7d2cbc 369$!
cd6bc02b 370$! Create The [.xxx.CRYPTO]BUILDINF.H File.
7d7d2cbc 371$!
cd6bc02b 372$ BIH_NAME = "SYS$DISK:[.''ARCH'.CRYPTO]BUILDINF.H"
cc8cc9a3
RL
373$ CREATE /FDL=SYS$INPUT: 'BIH_NAME'
374RECORD
375 FORMAT stream_lf
376$!
377$ OPEN /APPEND H_FILE 'bih_name'
7d7d2cbc
UM
378$!
379$! Get The Current Date & Time.
380$!
381$ TIME = F$TIME()
382$!
cd6bc02b 383$! Write The [.xxx.CRYPTO]BUILDINF.H File.
7d7d2cbc 384$!
8c197cc5 385$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */"
cc8cc9a3 386$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCH' ''VMS_VER'"""
7d7d2cbc
UM
387$ WRITE H_FILE "#define DATE ""''TIME'"" "
388$!
cd6bc02b 389$! Close The [.xxx.CRYPTO]BUILDINF.H File.
7d7d2cbc
UM
390$!
391$ CLOSE H_FILE
392$!
cd6bc02b 393$! Purge The [.xxx.CRYPTO]BUILDINF.H File.
cc8cc9a3 394$!
cd6bc02b 395$ PURGE SYS$DISK:[.'ARCH'.CRYPTO]BUILDINF.H
cc8cc9a3 396$!
7d7d2cbc
UM
397$! That's All, Time To RETURN.
398$!
399$ RETURN
400$!
401$! Copy a lot of files around.
402$!
403$ SOFTLINKS:
404$!
2b6174c4 405$! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
7d7d2cbc 406$!
b935754c 407$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
7d7d2cbc 408$!
eec79f9b
RL
409$ DELETE SYS$DISK:[.APPS]MD4.C;*,MD5.C;*,RMD160.C;*
410$!
411$! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
412$!
413$ COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
7d7d2cbc
UM
414$!
415$! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
416$!
417$ COPY SYS$DISK:[.CRYPTO.MD5]MD5.C SYS$DISK:[.APPS]
418$!
419$! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
420$!
421$ COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
422$!
423$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
424$!
425$ WRITE SYS$OUTPUT "Rebuilding The '[.TEST]*.C' Files."
426$!
427$! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete
428$! All The "C" Files That Are Currently There Now.
429$!
430$ DELETE SYS$DISK:[.TEST]*.C;*
46788970 431$ DELETE SYS$DISK:[.TEST]EVPTESTS.TXT;*
7d7d2cbc
UM
432$!
433$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
434$!
435$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
2b6174c4 436$ COPY SYS$DISK:[.CRYPTO.SHA]SHA%%%T.C SYS$DISK:[.TEST]
46788970 437$ COPY SYS$DISK:[.CRYPTO.EVP]EVPTESTS.TXT SYS$DISK:[.TEST]
7d7d2cbc
UM
438$!
439$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
440$!
441$ COPY SYS$DISK:[.SSL]%*TEST.C SYS$DISK:[.TEST]
442$!
443$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
444$!
445$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
446$!
447$! First, make sure the directory exists
448$!
449$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
450 CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
451$!
452$! Copy All The ".H" Files From The Main Directory.
453$!
41d2a336 454$ EXHEADER := e_os2.h
7d7d2cbc
UM
455$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
456$!
457$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
458$!
a08e05d1 459$ SDIRS := ,-
1d62de03 460 _'ARCH',-
a08e05d1 461 OBJECTS,-
adab8005 462 MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,WHRLPOOL,-
4ded7b44 463 DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,MODES,-
26397d2e 464 BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,-
a08e05d1
RL
465 BUFFER,BIO,STACK,LHASH,RAND,ERR,-
466 EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,-
c8f0610d 467 CMS,PQUEUE,TS,JPAKE,STORE,CMAC
1d62de03
RL
468$ EXHEADER_ := crypto.h,opensslv.h,ebcdic.h,symhacks.h,ossl_typ.h
469$ EXHEADER__'ARCH' := opensslconf.h
a08e05d1 470$ EXHEADER_OBJECTS := objects.h,obj_mac.h
7d7d2cbc 471$ EXHEADER_MD2 := md2.h
eec79f9b 472$ EXHEADER_MD4 := md4.h
7d7d2cbc
UM
473$ EXHEADER_MD5 := md5.h
474$ EXHEADER_SHA := sha.h
475$ EXHEADER_MDC2 := mdc2.h
476$ EXHEADER_HMAC := hmac.h
477$ EXHEADER_RIPEMD := ripemd.h
adab8005 478$ EXHEADER_WHRLPOOL := whrlpool.h
c2e4f17c 479$ EXHEADER_DES := des.h,des_old.h
26397d2e 480$ EXHEADER_AES := aes.h
7d7d2cbc
UM
481$ EXHEADER_RC2 := rc2.h
482$ EXHEADER_RC4 := rc4.h
483$ EXHEADER_RC5 := rc5.h
484$ EXHEADER_IDEA := idea.h
485$ EXHEADER_BF := blowfish.h
486$ EXHEADER_CAST := cast.h
2d093724 487$ EXHEADER_CAMELLIA := camellia.h
96afc1cf 488$ EXHEADER_SEED := seed.h
792bbc23 489$ EXHEADER_MODES := modes.h
7d7d2cbc 490$ EXHEADER_BN := bn.h
9bd35f63 491$ EXHEADER_EC := ec.h
7d7d2cbc
UM
492$ EXHEADER_RSA := rsa.h
493$ EXHEADER_DSA := dsa.h
1f4eada3 494$ EXHEADER_ECDSA := ecdsa.h
7d7d2cbc 495$ EXHEADER_DH := dh.h
4705bd9b 496$ EXHEADER_ECDH := ecdh.h
eec79f9b 497$ EXHEADER_DSO := dso.h
5270e702 498$ EXHEADER_ENGINE := engine.h
7d7d2cbc
UM
499$ EXHEADER_BUFFER := buffer.h
500$ EXHEADER_BIO := bio.h
501$ EXHEADER_STACK := stack.h,safestack.h
502$ EXHEADER_LHASH := lhash.h
503$ EXHEADER_RAND := rand.h
504$ EXHEADER_ERR := err.h
7d7d2cbc 505$ EXHEADER_EVP := evp.h
66a0def8 506$ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h
7d7d2cbc
UM
507$ EXHEADER_PEM := pem.h,pem2.h
508$ EXHEADER_X509 := x509.h,x509_vfy.h
509$ EXHEADER_X509V3 := x509v3.h
4b88270b 510$ EXHEADER_CONF := conf.h,conf_api.h
7d7d2cbc
UM
511$ EXHEADER_TXT_DB := txt_db.h
512$ EXHEADER_PKCS7 := pkcs7.h
513$ EXHEADER_PKCS12 := pkcs12.h
514$ EXHEADER_COMP := comp.h
6525ced5 515$ EXHEADER_OCSP := ocsp.h
81b31b70 516$ EXHEADER_UI := ui.h,ui_compat.h
114697be 517$ EXHEADER_KRB5 := krb5_asn.h
fc003bce 518$ EXHEADER_CMS := cms.h
6e6ada18 519$ EXHEADER_PQUEUE := pqueue.h
19017d40 520$ EXHEADER_TS := ts.h
26397d2e 521$ EXHEADER_JPAKE := jpake.h
c8f0610d
RL
522$!EXHEADER_STORE := store.h,str_compat.h
523$ EXHEADER_STORE := store.h
524$ EXHEADER_CMAC := cmac.h
7d7d2cbc
UM
525$
526$ I = 0
527$ LOOP_SDIRS:
528$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
529$ I = I + 1
530$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
531$ tmp = EXHEADER_'D'
532$ IF D .EQS. ""
533$ THEN
1d62de03
RL
534$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
535$ ELSE
749af8cb
RL
536$ IF D .EQS. "_''ARCH'"
537$ THEN
cd6bc02b
RL
538$ COPY [.'ARCH'.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
539$ ELSE
1d62de03 540$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
cd6bc02b 541$ ENDIF
7d7d2cbc
UM
542$ ENDIF
543$ GOTO LOOP_SDIRS
544$ LOOP_SDIRS_END:
545$!
7d7d2cbc
UM
546$! Copy All The ".H" Files From The [.SSL] Directory.
547$!
75c00536 548$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h
7d7d2cbc
UM
549$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
550$!
551$! Purge all doubles
552$!
553$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
554$!
555$! That's All, Time To RETURN.
556$!
557$ RETURN
558$!
559$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
560$!
561$ CRYPTO:
562$!
563$! Tell The User What We Are Doing.
564$!
565$ WRITE SYS$OUTPUT ""
566$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
567$!
568$! Go To The [.CRYPTO] Directory.
569$!
570$ SET DEFAULT SYS$DISK:[.CRYPTO]
571$!
572$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
573$!
b6d0defb 574$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
7be760be
RL
575$!
576$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
577$!
b6d0defb 578$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'"
7d7d2cbc
UM
579$!
580$! Go Back To The Main Directory.
581$!
582$ SET DEFAULT [-]
583$!
584$! Time To RETURN.
585$!
586$ RETURN
587$!
7d7d2cbc
UM
588$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
589$!
590$ SSL:
591$!
592$! Tell The User What We Are Doing.
593$!
594$ WRITE SYS$OUTPUT ""
595$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
596$!
597$! Go To The [.SSL] Directory.
598$!
599$ SET DEFAULT SYS$DISK:[.SSL]
600$!
601$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
602$!
b6d0defb 603$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
7d7d2cbc
UM
604$!
605$! Go Back To The Main Directory.
606$!
607$ SET DEFAULT [-]
608$!
609$! Time To Return.
610$!
611$ RETURN
612$!
613$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
614$!
615$ SSL_TASK:
616$!
617$! Tell The User What We Are Doing.
618$!
619$ WRITE SYS$OUTPUT ""
620$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
621$!
622$! Go To The [.SSL] Directory.
623$!
624$ SET DEFAULT SYS$DISK:[.SSL]
625$!
626$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
627$!
b6d0defb 628$ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
7d7d2cbc
UM
629$!
630$! Go Back To The Main Directory.
631$!
632$ SET DEFAULT [-]
633$!
634$! That's All, Time To RETURN.
635$!
636$ RETURN
637$!
638$! Build The OpenSSL Test Programs.
639$!
640$ TEST:
641$!
642$! Tell The User What We Are Doing.
643$!
644$ WRITE SYS$OUTPUT ""
645$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
646$!
647$! Go To The [.TEST] Directory.
648$!
649$ SET DEFAULT SYS$DISK:[.TEST]
650$!
651$! Build The Test Programs.
652$!
b6d0defb 653$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
7d7d2cbc
UM
654$!
655$! Go Back To The Main Directory.
656$!
657$ SET DEFAULT [-]
658$!
659$! That's All, Time To RETURN.
660$!
661$ RETURN
662$!
663$! Build The OpenSSL Application Programs.
664$!
665$ APPS:
666$!
667$! Tell The User What We Are Doing.
668$!
669$ WRITE SYS$OUTPUT ""
670$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
671$!
672$! Go To The [.APPS] Directory.
673$!
674$ SET DEFAULT SYS$DISK:[.APPS]
675$!
676$! Build The Application Programs.
677$!
b6d0defb 678$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
7d7d2cbc
UM
679$!
680$! Go Back To The Main Directory.
681$!
682$ SET DEFAULT [-]
683$!
684$! That's All, Time To RETURN.
685$!
686$ RETURN
687$!
ad22b914
RL
688$! Build The OpenSSL Application Programs.
689$!
690$ ENGINES:
691$!
692$! Tell The User What We Are Doing.
693$!
694$ WRITE SYS$OUTPUT ""
695$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.ENGINES] Engines."
696$!
697$! Go To The [.ENGINES] Directory.
698$!
699$ SET DEFAULT SYS$DISK:[.ENGINES]
700$!
701$! Build The Application Programs.
702$!
703$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'"
704$!
705$! Go Back To The Main Directory.
706$!
707$ SET DEFAULT [-]
708$!
709$! That's All, Time To RETURN.
710$!
711$ RETURN
712$!
7d7d2cbc
UM
713$! Check The User's Options.
714$!
715$ CHECK_OPTIONS:
716$!
2db90e3a
RL
717$! Check if there's a "part", and separate it out
718$!
719$ BUILDPART = F$ELEMENT(1,"/",P1)
720$ IF BUILDPART .EQS. "/"
721$ THEN
722$ BUILDPART = ""
723$ ELSE
724$ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
725$ ENDIF
726$!
7d7d2cbc
UM
727$! Check To See If P1 Is Blank.
728$!
729$ IF (P1.EQS."ALL")
730$ THEN
731$!
732$! P1 Is ALL, So Build Everything.
733$!
2e904727 734$ BUILDCOMMAND = "ALL"
7d7d2cbc
UM
735$!
736$! Else...
737$!
738$ ELSE
739$!
740$! Else, Check To See If P1 Has A Valid Arguement.
741$!
e33f347a
RL
742$ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
743 .OR.(P1.EQS."BUILDALL") -
b6d0defb 744 .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") -
407a4101
RL
745 .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
746 .OR.(P1.EQS."ENGINES")
7d7d2cbc
UM
747$ THEN
748$!
749$! A Valid Arguement.
750$!
2e904727 751$ BUILDCOMMAND = P1
7d7d2cbc
UM
752$!
753$! Else...
754$!
755$ ELSE
756$!
757$! Tell The User We Don't Know What They Want.
758$!
759$ WRITE SYS$OUTPUT ""
407a4101
RL
760$ WRITE SYS$OUTPUT "USAGE: @MAKEVMS.COM [Target] [not-used option] [Debug option] <Compiler>"
761$ WRITE SYS$OUTPUT ""
762$ WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL """" NODEBUG "
763$ WRITE SYS$OUTPUT ""
764$ WRITE SYS$OUTPUT "The Target ",P1," Is Invalid. The Valid Target Options Are:"
7d7d2cbc
UM
765$ WRITE SYS$OUTPUT ""
766$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
cd6bc02b
RL
767$ WRITE SYS$OUTPUT " CONFIG : Just build the [.xxx.CRYPTO]OPENSSLCONF.H file."
768$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.xxx.CRYPTO]BUILDINF.H file."
7d7d2cbc 769$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
2e904727 770$ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
7d7d2cbc 771$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
2db90e3a
RL
772$ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The"
773$ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
7d7d2cbc
UM
774$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
775$ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
776$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
777$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
407a4101 778$ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES"
7d7d2cbc
UM
779$ WRITE SYS$OUTPUT ""
780$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
781$ WRITE SYS$OUTPUT ""
cc8cc9a3
RL
782$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture."
783$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture."
784$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
7d7d2cbc
UM
785$ WRITE SYS$OUTPUT ""
786$!
787$! Time To EXIT.
788$!
cc8cc9a3 789$ GOTO TIDY
7d7d2cbc
UM
790$!
791$! End The Valid Argument Check.
792$!
793$ ENDIF
794$!
795$! End The P1 Check.
796$!
797$ ENDIF
798$!
7d7d2cbc
UM
799$! Check To See If P3 Is Blank.
800$!
801$ IF (P3.EQS."NODEBUG")
802$ THEN
803$!
804$! P3 Is NODEBUG, So Compile Without Debugger Information.
805$!
806$ DEBUGGER = "NODEBUG"
807$!
808$! Else...
809$!
810$ ELSE
811$!
812$! Check To See If We Are To Compile With Debugger Information.
813$!
814$ IF (P3.EQS."DEBUG")
815$ THEN
816$!
817$! Compile With Debugger Information.
818$!
819$ DEBUGGER = "DEBUG"
820$!
821$! Else...
822$!
823$ ELSE
824$!
825$! Tell The User Entered An Invalid Option..
826$!
827$ WRITE SYS$OUTPUT ""
828$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
829$ WRITE SYS$OUTPUT ""
830$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
831$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
832$ WRITE SYS$OUTPUT ""
833$!
834$! Time To EXIT.
835$!
cc8cc9a3 836$ GOTO TIDY
7d7d2cbc
UM
837$!
838$! End The Valid Arguement Check.
839$!
840$ ENDIF
841$!
842$! End The P3 Check.
843$!
844$ ENDIF
845$!
846$! Check To See If P4 Is Blank.
847$!
848$ IF (P4.EQS."")
849$ THEN
850$!
851$! O.K., The User Didn't Specify A Compiler, Let's Try To
852$! Find Out Which One To Use.
853$!
854$! Check To See If We Have GNU C.
855$!
856$ IF (F$TRNLNM("GNU_CC").NES."")
857$ THEN
858$!
859$! Looks Like GNUC, Set To Use GNUC.
860$!
861$ COMPILER = "GNUC"
862$!
863$! Tell The User We Are Using GNUC.
864$!
865$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
866$!
867$! End The GNU C Compiler Check.
868$!
869$ ENDIF
870$!
871$! Check To See If We Have VAXC Or DECC.
872$!
873$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
874$ THEN
875$!
876$! Looks Like DECC, Set To Use DECC.
877$!
878$ COMPILER = "DECC"
879$!
880$! Tell The User We Are Using DECC.
881$!
882$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
883$!
884$! Else...
885$!
886$ ELSE
887$!
888$! Looks Like VAXC, Set To Use VAXC.
889$!
890$ COMPILER = "VAXC"
891$!
892$! Tell The User We Are Using VAX C.
893$!
894$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
895$!
896$! End The DECC & VAXC Compiler Check.
897$!
898$ ENDIF
899$!
900$! Else...
901$!
902$ ELSE
903$!
904$! Check To See If The User Entered A Valid Paramter.
905$!
58dc480f 906$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
7d7d2cbc
UM
907$ THEN
908$!
909$! Check To See If The User Wanted To Just LINK.
910$!
911$ IF (P4.EQS."LINK")
912$ THEN
913$!
914$! Looks Like LINK-only
915$!
916$ COMPILER = "LINK"
917$!
918$! Tell The User We Are Only Linking.
919$!
920$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
921$!
922$! End LINK Check.
923$!
924$ ENDIF
925$!
926$! Check To See If The User Wanted DECC.
927$!
928$ IF (P4.EQS."DECC")
929$ THEN
930$!
931$! Looks Like DECC, Set To Use DECC.
932$!
933$ COMPILER = "DECC"
934$!
935$! Tell The User We Are Using DECC.
936$!
937$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
938$!
939$! End DECC Check.
940$!
941$ ENDIF
942$!
943$! Check To See If We Are To Use VAXC.
944$!
945$ IF (P4.EQS."VAXC")
946$ THEN
947$!
948$! Looks Like VAXC, Set To Use VAXC.
949$!
950$ COMPILER = "VAXC"
951$!
952$! Tell The User We Are Using VAX C.
953$!
954$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
955$!
956$! End VAXC Check
957$!
958$ ENDIF
959$!
960$! Check To See If We Are To Use GNU C.
961$!
962$ IF (P4.EQS."GNUC")
963$ THEN
964$!
965$! Looks Like GNUC, Set To Use GNUC.
966$!
967$ COMPILER = "GNUC"
968$!
969$! Tell The User We Are Using GNUC.
970$!
971$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
972$!
973$! End The GNU C Check.
974$!
975$ ENDIF
976$!
977$! Else The User Entered An Invalid Arguement.
978$!
979$ ELSE
980$!
981$! Tell The User We Don't Know What They Want.
982$!
983$ WRITE SYS$OUTPUT ""
984$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
985$ WRITE SYS$OUTPUT ""
986$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
987$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
988$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
989$ WRITE SYS$OUTPUT ""
990$!
991$! Time To EXIT.
992$!
cc8cc9a3 993$ GOTO TIDY
7d7d2cbc
UM
994$!
995$! End The Valid Arguement Check.
996$!
997$ ENDIF
998$!
999$! End The P4 Check.
1000$!
1001$ ENDIF
1002$!
1003$! Time to check the contents of P5, and to make sure we get the correct library.
1004$!
b935754c
RL
1005$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" -
1006 .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE"
7d7d2cbc
UM
1007$ THEN
1008$!
1009$! Check to see if SOCKETSHR was chosen
1010$!
1011$ IF P5.EQS."SOCKETSHR"
1012$ THEN
1013$!
1014$! Set the library to use SOCKETSHR
1015$!
b935754c 1016$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
7d7d2cbc
UM
1017$!
1018$! Tell the user
1019$!
1020$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
1021$!
1022$! Done with SOCKETSHR
1023$!
1024$ ENDIF
1025$!
1026$! Check to see if MULTINET was chosen
1027$!
1028$ IF P5.EQS."MULTINET"
1029$ THEN
1030$!
1031$! Set the library to use UCX emulation.
1032$!
1033$ P5 = "UCX"
1034$!
1035$! Tell the user
1036$!
1037$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
1038$!
1039$! Done with MULTINET
1040$!
1041$ ENDIF
1042$!
1043$! Check to see if UCX was chosen
1044$!
1045$ IF P5.EQS."UCX"
1046$ THEN
1047$!
1048$! Set the library to use UCX.
1049$!
b935754c 1050$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
7d7d2cbc
UM
1051$!
1052$! Tell the user
1053$!
1054$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
1055$!
1056$! Done with UCX
1057$!
1058$ ENDIF
1059$!
b935754c
RL
1060$! Check to see if TCPIP was chosen
1061$!
1062$ IF P5.EQS."TCPIP"
1063$ THEN
1064$!
1065$! Set the library to use TCPIP (post UCX).
1066$!
1067$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
1068$!
1069$! Tell the user
1070$!
1071$ WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP"
1072$!
1073$! Done with TCPIP
1074$!
1075$ ENDIF
1076$!
1077$! Check to see if NONE was chosen
1078$!
1079$ IF P5.EQS."NONE"
1080$ THEN
1081$!
1082$! Do not use a TCPIP library.
1083$!
1084$ TCPIP_LIB = ""
1085$!
1086$! Tell the user
1087$!
1088$ WRITE SYS$OUTPUT "A specific TCPIP library will not be used."
1089$!
1090$! Done with NONE.
1091$!
1092$ ENDIF
1093$!
7d7d2cbc
UM
1094$! Set the TCPIP_TYPE symbol
1095$!
1096$ TCPIP_TYPE = P5
1097$!
1098$! Print info
1099$!
1100$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
1101$!
1102$! Else The User Entered An Invalid Arguement.
1103$!
1104$ ELSE
1105$ IF P5 .NES. ""
1106$ THEN
1107$!
1108$! Tell The User We Don't Know What They Want.
1109$!
1110$ WRITE SYS$OUTPUT ""
1111$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
1112$ WRITE SYS$OUTPUT ""
1113$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
1114$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
b935754c
RL
1115$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP TCP/IP (post UCX) library."
1116$ WRITE SYS$OUTPUT " NONE : To not link with a specific TCP/IP library."
7d7d2cbc
UM
1117$ WRITE SYS$OUTPUT ""
1118$!
1119$! Time To EXIT.
1120$!
cc8cc9a3 1121$ GOTO TIDY
7d7d2cbc
UM
1122$ ELSE
1123$!
b935754c
RL
1124$! If TCPIP is not defined, then hardcode it to make
1125$! it clear that no TCPIP is desired.
1126$!
1127$ IF P5 .EQS. ""
1128$ THEN
1129$ TCPIP_LIB = ""
1130$ TCPIP_TYPE = "NONE"
1131$ ELSE
1132$!
7d7d2cbc
UM
1133$! Set the TCPIP_TYPE symbol
1134$!
b935754c
RL
1135$ TCPIP_TYPE = P5
1136$ ENDIF
7d7d2cbc
UM
1137$ ENDIF
1138$!
1139$! Done with TCP/IP libraries
1140$!
1141$ ENDIF
1142$!
1143$! Special Threads For OpenVMS v7.1 Or Later
1144$!
1145$! Written By: Richard Levitte
1146$! richard@levitte.org
1147$!
1148$!
1149$! Check To See If We Have A Option For P6.
1150$!
1151$ IF (P6.EQS."")
1152$ THEN
1153$!
1154$! Get The Version Of VMS We Are Using.
1155$!
1156$ ISSEVEN :=
1157$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
1158$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1159$!
1160$! Check To See If The VMS Version Is v7.1 Or Later.
1161$!
1162$ IF (TMP.GE.71)
1163$ THEN
1164$!
1165$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1166$!
1167$ ISSEVEN := ,PTHREAD_USE_D4
1168$!
1169$! End The VMS Version Check.
1170$!
1171$ ENDIF
1172$!
1173$! End The P6 Check.
1174$!
1175$ ENDIF
1176$!
1177$! Time To RETURN...
1178$!
1179$ RETURN
cc8cc9a3
RL
1180$!
1181$ TIDY:
1182$ SET DEFAULT 'DEF_ORIG'
1183$ EXIT
1184$!