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