]> git.ipfire.org Git - thirdparty/openssl.git/blame - makevms.com
Add a cleanup function for MDs.
[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"
5a16d270 283$ WRITE H_FILE "#define SIXTY_FOUR_BIT"
2e904727
RL
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,-
9bd35f63 425 BN,EC,RSA,DSA,DH,DSO,ENGINE,RIJNDAEL,-
7d7d2cbc 426 BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
a63d5eaa 427 EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI
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
9bd35f63 444$ EXHEADER_EC := ec.h
7d7d2cbc
UM
445$ EXHEADER_RSA := rsa.h
446$ EXHEADER_DSA := dsa.h
447$ EXHEADER_DH := dh.h
eec79f9b 448$ EXHEADER_DSO := dso.h
5270e702 449$ EXHEADER_ENGINE := engine.h
01412ec6 450$ EXHEADER_RIJNDAEL := rd_fst.h,rijndael.h
7d7d2cbc
UM
451$ EXHEADER_BUFFER := buffer.h
452$ EXHEADER_BIO := bio.h
453$ EXHEADER_STACK := stack.h,safestack.h
454$ EXHEADER_LHASH := lhash.h
455$ EXHEADER_RAND := rand.h
456$ EXHEADER_ERR := err.h
eec79f9b 457$ EXHEADER_OBJECTS := objects.h,obj_mac.h
7d7d2cbc 458$ EXHEADER_EVP := evp.h
66a0def8 459$ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h
7d7d2cbc
UM
460$ EXHEADER_PEM := pem.h,pem2.h
461$ EXHEADER_X509 := x509.h,x509_vfy.h
462$ EXHEADER_X509V3 := x509v3.h
4b88270b 463$ EXHEADER_CONF := conf.h,conf_api.h
7d7d2cbc
UM
464$ EXHEADER_TXT_DB := txt_db.h
465$ EXHEADER_PKCS7 := pkcs7.h
466$ EXHEADER_PKCS12 := pkcs12.h
467$ EXHEADER_COMP := comp.h
6525ced5 468$ EXHEADER_OCSP := ocsp.h
81b31b70 469$ EXHEADER_UI := ui.h,ui_compat.h
7d7d2cbc
UM
470$
471$ I = 0
472$ LOOP_SDIRS:
473$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
474$ I = I + 1
475$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
476$ tmp = EXHEADER_'D'
477$ IF D .EQS. ""
478$ THEN
4f07317f 479$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
7d7d2cbc 480$ ELSE
4f07317f 481$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
7d7d2cbc
UM
482$ ENDIF
483$ GOTO LOOP_SDIRS
484$ LOOP_SDIRS_END:
485$!
486$! Copy All The ".H" Files From The [.RSAREF] Directory.
487$!
ccb9643f
RL
488$! EXHEADER := rsaref.h
489$! COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
7d7d2cbc
UM
490$!
491$! Copy All The ".H" Files From The [.SSL] Directory.
492$!
66a0def8 493$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,kssl.h
7d7d2cbc
UM
494$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
495$!
496$! Purge all doubles
497$!
498$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
499$!
500$! That's All, Time To RETURN.
501$!
502$ RETURN
503$!
504$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
505$!
506$ CRYPTO:
507$!
508$! Tell The User What We Are Doing.
509$!
510$ WRITE SYS$OUTPUT ""
511$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
512$!
513$! Go To The [.CRYPTO] Directory.
514$!
515$ SET DEFAULT SYS$DISK:[.CRYPTO]
516$!
517$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
518$!
2db90e3a 519$ @CRYPTO-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
7be760be
RL
520$!
521$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
522$!
523$ @CRYPTO-LIB APPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
7d7d2cbc
UM
524$!
525$! Go Back To The Main Directory.
526$!
527$ SET DEFAULT [-]
528$!
529$! Time To RETURN.
530$!
531$ RETURN
532$!
533$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library.
534$!
535$ RSAREF:
ccb9643f
RL
536$ WRITE SYS$OUTPUT ""
537$ WRITE SYS$OUTPUT "RSAref glue library not built, since it's no longer needed"
538$ RETURN
7d7d2cbc
UM
539$!
540$! Tell The User What We Are Doing.
541$!
542$ WRITE SYS$OUTPUT ""
543$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library."
544$!
545$! Go To The [.RSAREF] Directory.
546$!
547$ SET DEFAULT SYS$DISK:[.RSAREF]
548$!
549$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
550$!
551$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN'
552$!
553$! Go Back To The Main Directory.
554$!
555$ SET DEFAULT [-]
556$!
557$! Time To Return.
558$!
559$ RETURN
560$!
561$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
562$!
563$ SSL:
564$!
565$! Tell The User What We Are Doing.
566$!
567$ WRITE SYS$OUTPUT ""
568$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
569$!
570$! Go To The [.SSL] Directory.
571$!
572$ SET DEFAULT SYS$DISK:[.SSL]
573$!
574$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
575$!
576$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
577$!
578$! Go Back To The Main Directory.
579$!
580$ SET DEFAULT [-]
581$!
582$! Time To Return.
583$!
584$ RETURN
585$!
586$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
587$!
588$ SSL_TASK:
589$!
590$! Tell The User What We Are Doing.
591$!
592$ WRITE SYS$OUTPUT ""
593$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
594$!
595$! Go To The [.SSL] Directory.
596$!
597$ SET DEFAULT SYS$DISK:[.SSL]
598$!
599$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
600$!
601$ @SSL-LIB SSL_TASK 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
602$!
603$! Go Back To The Main Directory.
604$!
605$ SET DEFAULT [-]
606$!
607$! That's All, Time To RETURN.
608$!
609$ RETURN
610$!
611$! Build The OpenSSL Test Programs.
612$!
613$ TEST:
614$!
615$! Tell The User What We Are Doing.
616$!
617$ WRITE SYS$OUTPUT ""
618$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
619$!
620$! Go To The [.TEST] Directory.
621$!
622$ SET DEFAULT SYS$DISK:[.TEST]
623$!
624$! Build The Test Programs.
625$!
626$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
627$!
628$! Go Back To The Main Directory.
629$!
630$ SET DEFAULT [-]
631$!
632$! That's All, Time To RETURN.
633$!
634$ RETURN
635$!
636$! Build The OpenSSL Application Programs.
637$!
638$ APPS:
639$!
640$! Tell The User What We Are Doing.
641$!
642$ WRITE SYS$OUTPUT ""
643$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
644$!
645$! Go To The [.APPS] Directory.
646$!
647$ SET DEFAULT SYS$DISK:[.APPS]
648$!
649$! Build The Application Programs.
650$!
651$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
652$!
653$! Go Back To The Main Directory.
654$!
655$ SET DEFAULT [-]
656$!
657$! That's All, Time To RETURN.
658$!
659$ RETURN
660$!
661$! Check The User's Options.
662$!
663$ CHECK_OPTIONS:
664$!
2db90e3a
RL
665$! Check if there's a "part", and separate it out
666$!
667$ BUILDPART = F$ELEMENT(1,"/",P1)
668$ IF BUILDPART .EQS. "/"
669$ THEN
670$ BUILDPART = ""
671$ ELSE
672$ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
673$ ENDIF
674$!
7d7d2cbc
UM
675$! Check To See If P1 Is Blank.
676$!
677$ IF (P1.EQS."ALL")
678$ THEN
679$!
680$! P1 Is ALL, So Build Everything.
681$!
2e904727 682$ BUILDCOMMAND = "ALL"
7d7d2cbc
UM
683$!
684$! Else...
685$!
686$ ELSE
687$!
688$! Else, Check To See If P1 Has A Valid Arguement.
689$!
e33f347a
RL
690$ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
691 .OR.(P1.EQS."BUILDALL") -
692 .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF") -
693 .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS")
7d7d2cbc
UM
694$ THEN
695$!
696$! A Valid Arguement.
697$!
2e904727 698$ BUILDCOMMAND = P1
7d7d2cbc
UM
699$!
700$! Else...
701$!
702$ ELSE
703$!
704$! Tell The User We Don't Know What They Want.
705$!
706$ WRITE SYS$OUTPUT ""
707$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
708$ WRITE SYS$OUTPUT ""
709$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
2e904727 710$ WRITE SYS$OUTPUT " CONFIG : Just build the [.CRYPTO]OPENSSLCONF.H file."
8c197cc5 711$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO]BUILDINF.H file."
7d7d2cbc 712$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
2e904727 713$ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
7d7d2cbc 714$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
2db90e3a
RL
715$ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The"
716$ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
7d7d2cbc
UM
717$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
718$ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
719$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
720$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
721$ WRITE SYS$OUTPUT ""
722$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
723$ WRITE SYS$OUTPUT ""
724$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
725$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
726$ WRITE SYS$OUTPUT ""
727$!
728$! Time To EXIT.
729$!
730$ EXIT
731$!
732$! End The Valid Argument Check.
733$!
734$ ENDIF
735$!
736$! End The P1 Check.
737$!
738$ ENDIF
739$!
740$! Check To See If P2 Is Blank.
741$!
ccb9643f 742$ P2 = "NORSAREF"
7d7d2cbc
UM
743$ IF (P2.EQS."NORSAREF")
744$ THEN
745$!
746$! P2 Is NORSAREF, So Compile Without RSAREF.
747$!
748$ RSAREF = "NORSAREF"
749$!
750$! Else...
751$!
752$ ELSE
753$!
754$! Check To See If We Are To Compile Using The RSAREF Library.
755$!
756$ IF (P2.EQS."RSAREF")
757$ THEN
758$!
759$! Compile With RSAREF Library.
760$!
761$ RSAREF = "RSAREF"
762$!
763$! Else...
764$!
765$ ELSE
766$!
767$! Tell The User Entered An Invalid Option..
768$!
769$ WRITE SYS$OUTPUT ""
770$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
771$ WRITE SYS$OUTPUT ""
772$ WRITE SYS$OUTPUT " RSAREF : To Compile With The RSAREF Library."
773$ WRITE SYS$OUTPUT " NORSAREF : To Compile With The Regular RSA Library."
774$ WRITE SYS$OUTPUT ""
775$!
776$! Time To EXIT.
777$!
778$ EXIT
779$!
780$! End The Valid Arguemnt Check.
781$!
782$ ENDIF
783$!
784$! End The P2 Check.
785$!
786$ ENDIF
787$!
788$! Check To See If P3 Is Blank.
789$!
790$ IF (P3.EQS."NODEBUG")
791$ THEN
792$!
793$! P3 Is NODEBUG, So Compile Without Debugger Information.
794$!
795$ DEBUGGER = "NODEBUG"
796$!
797$! Else...
798$!
799$ ELSE
800$!
801$! Check To See If We Are To Compile With Debugger Information.
802$!
803$ IF (P3.EQS."DEBUG")
804$ THEN
805$!
806$! Compile With Debugger Information.
807$!
808$ DEBUGGER = "DEBUG"
809$!
810$! Else...
811$!
812$ ELSE
813$!
814$! Tell The User Entered An Invalid Option..
815$!
816$ WRITE SYS$OUTPUT ""
817$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
818$ WRITE SYS$OUTPUT ""
819$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
820$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
821$ WRITE SYS$OUTPUT ""
822$!
823$! Time To EXIT.
824$!
825$ EXIT
826$!
827$! End The Valid Arguement Check.
828$!
829$ ENDIF
830$!
831$! End The P3 Check.
832$!
833$ ENDIF
834$!
835$! Check To See If P4 Is Blank.
836$!
837$ IF (P4.EQS."")
838$ THEN
839$!
840$! O.K., The User Didn't Specify A Compiler, Let's Try To
841$! Find Out Which One To Use.
842$!
843$! Check To See If We Have GNU C.
844$!
845$ IF (F$TRNLNM("GNU_CC").NES."")
846$ THEN
847$!
848$! Looks Like GNUC, Set To Use GNUC.
849$!
850$ COMPILER = "GNUC"
851$!
852$! Tell The User We Are Using GNUC.
853$!
854$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
855$!
856$! End The GNU C Compiler Check.
857$!
858$ ENDIF
859$!
860$! Check To See If We Have VAXC Or DECC.
861$!
862$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
863$ THEN
864$!
865$! Looks Like DECC, Set To Use DECC.
866$!
867$ COMPILER = "DECC"
868$!
869$! Tell The User We Are Using DECC.
870$!
871$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
872$!
873$! Else...
874$!
875$ ELSE
876$!
877$! Looks Like VAXC, Set To Use VAXC.
878$!
879$ COMPILER = "VAXC"
880$!
881$! Tell The User We Are Using VAX C.
882$!
883$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
884$!
885$! End The DECC & VAXC Compiler Check.
886$!
887$ ENDIF
888$!
889$! Else...
890$!
891$ ELSE
892$!
893$! Check To See If The User Entered A Valid Paramter.
894$!
58dc480f 895$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
7d7d2cbc
UM
896$ THEN
897$!
898$! Check To See If The User Wanted To Just LINK.
899$!
900$ IF (P4.EQS."LINK")
901$ THEN
902$!
903$! Looks Like LINK-only
904$!
905$ COMPILER = "LINK"
906$!
907$! Tell The User We Are Only Linking.
908$!
909$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
910$!
911$! End LINK Check.
912$!
913$ ENDIF
914$!
915$! Check To See If The User Wanted DECC.
916$!
917$ IF (P4.EQS."DECC")
918$ THEN
919$!
920$! Looks Like DECC, Set To Use DECC.
921$!
922$ COMPILER = "DECC"
923$!
924$! Tell The User We Are Using DECC.
925$!
926$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
927$!
928$! End DECC Check.
929$!
930$ ENDIF
931$!
932$! Check To See If We Are To Use VAXC.
933$!
934$ IF (P4.EQS."VAXC")
935$ THEN
936$!
937$! Looks Like VAXC, Set To Use VAXC.
938$!
939$ COMPILER = "VAXC"
940$!
941$! Tell The User We Are Using VAX C.
942$!
943$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
944$!
945$! End VAXC Check
946$!
947$ ENDIF
948$!
949$! Check To See If We Are To Use GNU C.
950$!
951$ IF (P4.EQS."GNUC")
952$ THEN
953$!
954$! Looks Like GNUC, Set To Use GNUC.
955$!
956$ COMPILER = "GNUC"
957$!
958$! Tell The User We Are Using GNUC.
959$!
960$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
961$!
962$! End The GNU C Check.
963$!
964$ ENDIF
965$!
966$! Else The User Entered An Invalid Arguement.
967$!
968$ ELSE
969$!
970$! Tell The User We Don't Know What They Want.
971$!
972$ WRITE SYS$OUTPUT ""
973$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
974$ WRITE SYS$OUTPUT ""
975$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
976$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
977$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
978$ WRITE SYS$OUTPUT ""
979$!
980$! Time To EXIT.
981$!
982$ EXIT
983$!
984$! End The Valid Arguement Check.
985$!
986$ ENDIF
987$!
988$! End The P4 Check.
989$!
990$ ENDIF
991$!
992$! Time to check the contents of P5, and to make sure we get the correct library.
993$!
994$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX"
995$ THEN
996$!
997$! Check to see if SOCKETSHR was chosen
998$!
999$ IF P5.EQS."SOCKETSHR"
1000$ THEN
1001$!
1002$! Set the library to use SOCKETSHR
1003$!
1004$ TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT"
1005$!
1006$! Tell the user
1007$!
1008$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
1009$!
1010$! Done with SOCKETSHR
1011$!
1012$ ENDIF
1013$!
1014$! Check to see if MULTINET was chosen
1015$!
1016$ IF P5.EQS."MULTINET"
1017$ THEN
1018$!
1019$! Set the library to use UCX emulation.
1020$!
1021$ P5 = "UCX"
1022$!
1023$! Tell the user
1024$!
1025$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
1026$!
1027$! Done with MULTINET
1028$!
1029$ ENDIF
1030$!
1031$! Check to see if UCX was chosen
1032$!
1033$ IF P5.EQS."UCX"
1034$ THEN
1035$!
1036$! Set the library to use UCX.
1037$!
1038$ TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT"
1039$!
1040$! Tell the user
1041$!
1042$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
1043$!
1044$! Done with UCX
1045$!
1046$ ENDIF
1047$!
1048$! Set the TCPIP_TYPE symbol
1049$!
1050$ TCPIP_TYPE = P5
1051$!
1052$! Print info
1053$!
1054$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
1055$!
1056$! Else The User Entered An Invalid Arguement.
1057$!
1058$ ELSE
1059$ IF P5 .NES. ""
1060$ THEN
1061$!
1062$! Tell The User We Don't Know What They Want.
1063$!
1064$ WRITE SYS$OUTPUT ""
1065$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
1066$ WRITE SYS$OUTPUT ""
1067$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
1068$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
1069$ WRITE SYS$OUTPUT ""
1070$!
1071$! Time To EXIT.
1072$!
1073$ EXIT
1074$ ELSE
1075$!
1076$! Set the TCPIP_TYPE symbol
1077$!
1078$ TCPIP_TYPE = P5
1079$ ENDIF
1080$!
1081$! Done with TCP/IP libraries
1082$!
1083$ ENDIF
1084$!
1085$! Special Threads For OpenVMS v7.1 Or Later
1086$!
1087$! Written By: Richard Levitte
1088$! richard@levitte.org
1089$!
1090$!
1091$! Check To See If We Have A Option For P6.
1092$!
1093$ IF (P6.EQS."")
1094$ THEN
1095$!
1096$! Get The Version Of VMS We Are Using.
1097$!
1098$ ISSEVEN :=
1099$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
1100$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1101$!
1102$! Check To See If The VMS Version Is v7.1 Or Later.
1103$!
1104$ IF (TMP.GE.71)
1105$ THEN
1106$!
1107$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1108$!
1109$ ISSEVEN := ,PTHREAD_USE_D4
1110$!
1111$! End The VMS Version Check.
1112$!
1113$ ENDIF
1114$!
1115$! End The P6 Check.
1116$!
1117$ ENDIF
1118$!
1119$! Time To RETURN...
1120$!
1121$ RETURN