blob: 977f2cee427f7441a312d512d8c65690019659a2 [file] [log] [blame]
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +00001$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +00002$! 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
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +00008$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +00009$! Changes by Richard Levitte <richard@levitte.org>
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000010$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000011$! 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.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000014$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000015$! This procedures accepts two command line options listed below.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000016$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000017$! Specify one of the following build options for P1.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000018$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000019$! ALL Just build "everything".
Ulf Möller8c197cc1999-07-28 23:25:59 +000020$! BUILDINF Just build the "[.CRYPTO]BUILDINF.H" file.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000021$! SOFTLINKS Just fix the Unix soft links.
22$! RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
23$! CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
24$! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
25$! SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program.
26$! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
27$! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000028$!
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000029$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000030$! Specify RSAREF as P2 to compile using the RSAREF Library.
31$! If you specify NORSAREF, it will compile without using RSAREF.
32$! (If in the United States, You Must Compile Using RSAREF).
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000033$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000034$! Note: The RSAREF libraries are NOT INCLUDED and you have to
35$! download it from "ftp://ftp.rsa.com/rsaref". You have to
36$! get the ".tar-Z" file as the ".zip" file dosen't have the
37$! directory structure stored. You have to extract the file
38$! into the [.RSAREF] directory as that is where the scripts
39$! will look for the files.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000040$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000041$! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging
42$! information.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000043$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000044$! Specify which compiler at P4 to try to compile under.
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000045$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000046$! VAXC For VAX C.
47$! DECC For DEC C.
48$! GNUC For GNU C.
49$! LINK To only link the programs from existing object files.
Bodo Möller58dc4801999-05-24 22:59:40 +000050$! (not yet implemented)
Ralf S. Engelschalld02b48c1998-12-21 10:52:47 +000051$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +000052$! If you don't speficy a compiler, it will try to determine which
53$! "C" compiler to use.
54$!
55$! P5, if defined, sets a TCP/IP library to use, through one of the following
56$! keywords:
57$!
58$! UCX for UCX or UCX emulation
59$! SOCKETSHR for SOCKETSHR+NETLIB
60$!
61$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
62$!
63$!
64$! Check Which Architecture We Are Using.
65$!
66$ IF (F$GETSYI("CPU").GE.128)
67$ THEN
68$!
69$! The Architecture Is AXP.
70$!
71$ ARCH := AXP
72$!
73$! Else...
74$!
75$ ELSE
76$!
77$! The Architecture Is VAX.
78$!
79$ ARCH := VAX
80$!
81$! End The Architecture Check.
82$!
83$ ENDIF
84$!
85$! Check To Make Sure We Have Valid Command Line Parameters.
86$!
87$ GOSUB CHECK_OPTIONS
88$!
89$! Check To See What We Are To Do.
90$!
91$ IF (BUILDALL.EQS."TRUE")
92$ THEN
93$!
94$! Since Nothing Special Was Specified, Do Everything.
95$! First, Fix The Unix Softlinks.
96$!
97$ GOSUB SOFTLINKS
98$!
Ulf Möller8c197cc1999-07-28 23:25:59 +000099$! Create The "BUILDINF.H" Include File.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000100$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000101$ GOSUB BUILDINF
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000102$!
103$! Check To See If We Are Going To Be Building The
104$! [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
105$!
106$ IF (RSAREF.EQS."RSAREF")
107$ THEN
108$!
109$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
110$!
111$ GOSUB RSAREF
112$!
113$! End The RSAREF Check.
114$!
115$ ENDIF
116$!
117$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
118$!
119$ GOSUB CRYPTO
120$!
121$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
122$!
123$ GOSUB SSL
124$!
125$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE DECNet SSL Engine.
126$!
127$ GOSUB SSL_TASK
128$!
129$! Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
130$!
131$ GOSUB TEST
132$!
133$! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
134$!
135$ GOSUB APPS
136$!
137$! Else...
138$!
139$ ELSE
140$!
141$! Build Just What The User Wants Us To Build.
142$!
143$ GOSUB 'BUILDALL'
144$ ENDIF
145$!
146$! Time To EXIT.
147$!
148$ EXIT
149$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000150$! Rebuild The "[.CRYPTO]BUILDINF.H" file.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000151$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000152$ BUILDINF:
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000153$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000154$! Tell The User We Are Creating The [.CRYPTO]BUILDINF.H File.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000155$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000156$ WRITE SYS$OUTPUT "Creating [.CRYPTO]BUILDINF.H Include File."
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000157$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000158$! Create The [.CRYPTO]BUILDINF.H File.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000159$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000160$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]BUILDINF.H
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000161$!
162$! Get The Current Date & Time.
163$!
164$ TIME = F$TIME()
165$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000166$! Write The [.CRYPTO]BUILDINF.H File.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000167$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000168$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */"
169$ WRITE H_FILE "#define PLATFORM ""VMS"""
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000170$ WRITE H_FILE "#define DATE ""''TIME'"" "
171$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000172$! Close The [.CRYPTO]BUILDINF.H File.
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000173$!
174$ CLOSE H_FILE
175$!
176$! That's All, Time To RETURN.
177$!
178$ RETURN
179$!
180$! Copy a lot of files around.
181$!
182$ SOFTLINKS:
183$!
184$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
185$!
186$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
187$!
188$ DELETE SYS$DISK:[.APPS]MD5.C;*,RMD160.C;*
189$!
190$! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
191$!
192$ COPY SYS$DISK:[.CRYPTO.MD5]MD5.C SYS$DISK:[.APPS]
193$!
194$! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
195$!
196$ COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
197$!
198$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
199$!
200$ WRITE SYS$OUTPUT "Rebuilding The '[.TEST]*.C' Files."
201$!
202$! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete
203$! All The "C" Files That Are Currently There Now.
204$!
205$ DELETE SYS$DISK:[.TEST]*.C;*
206$!
207$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
208$!
209$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
210$!
211$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
212$!
213$ COPY SYS$DISK:[.SSL]%*TEST.C SYS$DISK:[.TEST]
214$!
215$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
216$!
217$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
218$!
219$! First, make sure the directory exists
220$!
221$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
222 CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
223$!
224$! Copy All The ".H" Files From The Main Directory.
225$!
Ulf Möller9dff4cc1999-05-20 21:00:29 +0000226$ EXHEADER := e_os.h,e_os2.h
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000227$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
228$!
229$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
230$!
231$ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
232 DES,RC2,RC4,RC5,IDEA,BF,CAST,-
233 BN,RSA,DSA,DH,-
234 BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
235 EVP,ASN1,PEM,X509,X509V3,-
236 CONF,TXT_DB,PKCS7,PKCS12,COMP
Ulf Möller8c197cc1999-07-28 23:25:59 +0000237$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h,ebcdic.h
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000238$ EXHEADER_MD2 := md2.h
239$ EXHEADER_MD5 := md5.h
240$ EXHEADER_SHA := sha.h
241$ EXHEADER_MDC2 := mdc2.h
242$ EXHEADER_HMAC := hmac.h
243$ EXHEADER_RIPEMD := ripemd.h
244$ EXHEADER_DES := des.h
245$ EXHEADER_RC2 := rc2.h
246$ EXHEADER_RC4 := rc4.h
247$ EXHEADER_RC5 := rc5.h
248$ EXHEADER_IDEA := idea.h
249$ EXHEADER_BF := blowfish.h
250$ EXHEADER_CAST := cast.h
251$ EXHEADER_BN := bn.h
252$ EXHEADER_RSA := rsa.h
253$ EXHEADER_DSA := dsa.h
254$ EXHEADER_DH := dh.h
255$ EXHEADER_BUFFER := buffer.h
256$ EXHEADER_BIO := bio.h
257$ EXHEADER_STACK := stack.h,safestack.h
258$ EXHEADER_LHASH := lhash.h
259$ EXHEADER_RAND := rand.h
260$ EXHEADER_ERR := err.h
261$ EXHEADER_OBJECTS := objects.h
262$ EXHEADER_EVP := evp.h
263$ EXHEADER_ASN1 := asn1.h,asn1_mac.h
264$ EXHEADER_PEM := pem.h,pem2.h
265$ EXHEADER_X509 := x509.h,x509_vfy.h
266$ EXHEADER_X509V3 := x509v3.h
267$ EXHEADER_CONF := conf.h
268$ EXHEADER_TXT_DB := txt_db.h
269$ EXHEADER_PKCS7 := pkcs7.h
270$ EXHEADER_PKCS12 := pkcs12.h
271$ EXHEADER_COMP := comp.h
272$
273$ I = 0
274$ LOOP_SDIRS:
275$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
276$ I = I + 1
277$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
278$ tmp = EXHEADER_'D'
279$ IF D .EQS. ""
280$ THEN
281$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
282$ ELSE
283$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
284$ ENDIF
285$ GOTO LOOP_SDIRS
286$ LOOP_SDIRS_END:
287$!
288$! Copy All The ".H" Files From The [.RSAREF] Directory.
289$!
290$ EXHEADER := rsaref.h
291$ COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
292$!
293$! Copy All The ".H" Files From The [.SSL] Directory.
294$!
295$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
296$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
297$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000298$! Copy All The ".H" Files From The [.VMS] Directory.
299$!
300$ EXHEADER := vms_idhacks.h
301$ COPY SYS$DISK:[.VMS]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
302$!
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000303$! Purge all doubles
304$!
305$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
306$!
307$! That's All, Time To RETURN.
308$!
309$ RETURN
310$!
311$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
312$!
313$ CRYPTO:
314$!
315$! Tell The User What We Are Doing.
316$!
317$ WRITE SYS$OUTPUT ""
318$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
319$!
320$! Go To The [.CRYPTO] Directory.
321$!
322$ SET DEFAULT SYS$DISK:[.CRYPTO]
323$!
324$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
325$!
326$ @CRYPTO-LIB 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
327$!
328$! Go Back To The Main Directory.
329$!
330$ SET DEFAULT [-]
331$!
332$! Time To RETURN.
333$!
334$ RETURN
335$!
336$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library.
337$!
338$ RSAREF:
339$!
340$! Tell The User What We Are Doing.
341$!
342$ WRITE SYS$OUTPUT ""
343$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library."
344$!
345$! Go To The [.RSAREF] Directory.
346$!
347$ SET DEFAULT SYS$DISK:[.RSAREF]
348$!
349$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
350$!
351$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN'
352$!
353$! Go Back To The Main Directory.
354$!
355$ SET DEFAULT [-]
356$!
357$! Time To Return.
358$!
359$ RETURN
360$!
361$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
362$!
363$ SSL:
364$!
365$! Tell The User What We Are Doing.
366$!
367$ WRITE SYS$OUTPUT ""
368$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
369$!
370$! Go To The [.SSL] Directory.
371$!
372$ SET DEFAULT SYS$DISK:[.SSL]
373$!
374$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
375$!
376$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
377$!
378$! Go Back To The Main Directory.
379$!
380$ SET DEFAULT [-]
381$!
382$! Time To Return.
383$!
384$ RETURN
385$!
386$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
387$!
388$ SSL_TASK:
389$!
390$! Tell The User What We Are Doing.
391$!
392$ WRITE SYS$OUTPUT ""
393$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
394$!
395$! Go To The [.SSL] Directory.
396$!
397$ SET DEFAULT SYS$DISK:[.SSL]
398$!
399$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
400$!
401$ @SSL-LIB SSL_TASK 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
402$!
403$! Go Back To The Main Directory.
404$!
405$ SET DEFAULT [-]
406$!
407$! That's All, Time To RETURN.
408$!
409$ RETURN
410$!
411$! Build The OpenSSL Test Programs.
412$!
413$ TEST:
414$!
415$! Tell The User What We Are Doing.
416$!
417$ WRITE SYS$OUTPUT ""
418$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
419$!
420$! Go To The [.TEST] Directory.
421$!
422$ SET DEFAULT SYS$DISK:[.TEST]
423$!
424$! Build The Test Programs.
425$!
426$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
427$!
428$! Go Back To The Main Directory.
429$!
430$ SET DEFAULT [-]
431$!
432$! That's All, Time To RETURN.
433$!
434$ RETURN
435$!
436$! Build The OpenSSL Application Programs.
437$!
438$ APPS:
439$!
440$! Tell The User What We Are Doing.
441$!
442$ WRITE SYS$OUTPUT ""
443$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
444$!
445$! Go To The [.APPS] Directory.
446$!
447$ SET DEFAULT SYS$DISK:[.APPS]
448$!
449$! Build The Application Programs.
450$!
451$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
452$!
453$! Go Back To The Main Directory.
454$!
455$ SET DEFAULT [-]
456$!
457$! That's All, Time To RETURN.
458$!
459$ RETURN
460$!
461$! Check The User's Options.
462$!
463$ CHECK_OPTIONS:
464$!
465$! Check To See If P1 Is Blank.
466$!
467$ IF (P1.EQS."ALL")
468$ THEN
469$!
470$! P1 Is ALL, So Build Everything.
471$!
472$ BUILDALL = "TRUE"
473$!
474$! Else...
475$!
476$ ELSE
477$!
478$! Else, Check To See If P1 Has A Valid Arguement.
479$!
Ulf Möller8c197cc1999-07-28 23:25:59 +0000480$ IF (P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS").OR.(P1.EQS."CRYPTO") -
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000481 .OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF").OR.(P1.EQS."SSL_TASK") -
482 .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS")
483$ THEN
484$!
485$! A Valid Arguement.
486$!
487$ BUILDALL = P1
488$!
489$! Else...
490$!
491$ ELSE
492$!
493$! Tell The User We Don't Know What They Want.
494$!
495$ WRITE SYS$OUTPUT ""
496$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
497$ WRITE SYS$OUTPUT ""
498$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
Ulf Möller8c197cc1999-07-28 23:25:59 +0000499$ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO]BUILDINF.H file."
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000500$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
501$ WRITE SYS$OUTPUT " RSAREF : To Build Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library."
502$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
503$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
504$ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
505$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
506$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
507$ WRITE SYS$OUTPUT ""
508$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
509$ WRITE SYS$OUTPUT ""
510$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
511$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
512$ WRITE SYS$OUTPUT ""
513$!
514$! Time To EXIT.
515$!
516$ EXIT
517$!
518$! End The Valid Argument Check.
519$!
520$ ENDIF
521$!
522$! End The P1 Check.
523$!
524$ ENDIF
525$!
526$! Check To See If P2 Is Blank.
527$!
528$ IF (P2.EQS."NORSAREF")
529$ THEN
530$!
531$! P2 Is NORSAREF, So Compile Without RSAREF.
532$!
533$ RSAREF = "NORSAREF"
534$!
535$! Else...
536$!
537$ ELSE
538$!
539$! Check To See If We Are To Compile Using The RSAREF Library.
540$!
541$ IF (P2.EQS."RSAREF")
542$ THEN
543$!
544$! Compile With RSAREF Library.
545$!
546$ RSAREF = "RSAREF"
547$!
548$! Else...
549$!
550$ ELSE
551$!
552$! Tell The User Entered An Invalid Option..
553$!
554$ WRITE SYS$OUTPUT ""
555$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
556$ WRITE SYS$OUTPUT ""
557$ WRITE SYS$OUTPUT " RSAREF : To Compile With The RSAREF Library."
558$ WRITE SYS$OUTPUT " NORSAREF : To Compile With The Regular RSA Library."
559$ WRITE SYS$OUTPUT ""
560$!
561$! Time To EXIT.
562$!
563$ EXIT
564$!
565$! End The Valid Arguemnt Check.
566$!
567$ ENDIF
568$!
569$! End The P2 Check.
570$!
571$ ENDIF
572$!
573$! Check To See If P3 Is Blank.
574$!
575$ IF (P3.EQS."NODEBUG")
576$ THEN
577$!
578$! P3 Is NODEBUG, So Compile Without Debugger Information.
579$!
580$ DEBUGGER = "NODEBUG"
581$!
582$! Else...
583$!
584$ ELSE
585$!
586$! Check To See If We Are To Compile With Debugger Information.
587$!
588$ IF (P3.EQS."DEBUG")
589$ THEN
590$!
591$! Compile With Debugger Information.
592$!
593$ DEBUGGER = "DEBUG"
594$!
595$! Else...
596$!
597$ ELSE
598$!
599$! Tell The User Entered An Invalid Option..
600$!
601$ WRITE SYS$OUTPUT ""
602$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
603$ WRITE SYS$OUTPUT ""
604$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
605$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
606$ WRITE SYS$OUTPUT ""
607$!
608$! Time To EXIT.
609$!
610$ EXIT
611$!
612$! End The Valid Arguement Check.
613$!
614$ ENDIF
615$!
616$! End The P3 Check.
617$!
618$ ENDIF
619$!
620$! Check To See If P4 Is Blank.
621$!
622$ IF (P4.EQS."")
623$ THEN
624$!
625$! O.K., The User Didn't Specify A Compiler, Let's Try To
626$! Find Out Which One To Use.
627$!
628$! Check To See If We Have GNU C.
629$!
630$ IF (F$TRNLNM("GNU_CC").NES."")
631$ THEN
632$!
633$! Looks Like GNUC, Set To Use GNUC.
634$!
635$ COMPILER = "GNUC"
636$!
637$! Tell The User We Are Using GNUC.
638$!
639$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
640$!
641$! End The GNU C Compiler Check.
642$!
643$ ENDIF
644$!
645$! Check To See If We Have VAXC Or DECC.
646$!
647$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
648$ THEN
649$!
650$! Looks Like DECC, Set To Use DECC.
651$!
652$ COMPILER = "DECC"
653$!
654$! Tell The User We Are Using DECC.
655$!
656$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
657$!
658$! Else...
659$!
660$ ELSE
661$!
662$! Looks Like VAXC, Set To Use VAXC.
663$!
664$ COMPILER = "VAXC"
665$!
666$! Tell The User We Are Using VAX C.
667$!
668$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
669$!
670$! End The DECC & VAXC Compiler Check.
671$!
672$ ENDIF
673$!
674$! Else...
675$!
676$ ELSE
677$!
678$! Check To See If The User Entered A Valid Paramter.
679$!
Bodo Möller58dc4801999-05-24 22:59:40 +0000680$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
Ulf Möller7d7d2cb1999-05-13 11:37:32 +0000681$ THEN
682$!
683$! Check To See If The User Wanted To Just LINK.
684$!
685$ IF (P4.EQS."LINK")
686$ THEN
687$!
688$! Looks Like LINK-only
689$!
690$ COMPILER = "LINK"
691$!
692$! Tell The User We Are Only Linking.
693$!
694$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
695$!
696$! End LINK Check.
697$!
698$ ENDIF
699$!
700$! Check To See If The User Wanted DECC.
701$!
702$ IF (P4.EQS."DECC")
703$ THEN
704$!
705$! Looks Like DECC, Set To Use DECC.
706$!
707$ COMPILER = "DECC"
708$!
709$! Tell The User We Are Using DECC.
710$!
711$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
712$!
713$! End DECC Check.
714$!
715$ ENDIF
716$!
717$! Check To See If We Are To Use VAXC.
718$!
719$ IF (P4.EQS."VAXC")
720$ THEN
721$!
722$! Looks Like VAXC, Set To Use VAXC.
723$!
724$ COMPILER = "VAXC"
725$!
726$! Tell The User We Are Using VAX C.
727$!
728$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
729$!
730$! End VAXC Check
731$!
732$ ENDIF
733$!
734$! Check To See If We Are To Use GNU C.
735$!
736$ IF (P4.EQS."GNUC")
737$ THEN
738$!
739$! Looks Like GNUC, Set To Use GNUC.
740$!
741$ COMPILER = "GNUC"
742$!
743$! Tell The User We Are Using GNUC.
744$!
745$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
746$!
747$! End The GNU C Check.
748$!
749$ ENDIF
750$!
751$! Else The User Entered An Invalid Arguement.
752$!
753$ ELSE
754$!
755$! Tell The User We Don't Know What They Want.
756$!
757$ WRITE SYS$OUTPUT ""
758$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
759$ WRITE SYS$OUTPUT ""
760$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
761$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
762$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
763$ WRITE SYS$OUTPUT ""
764$!
765$! Time To EXIT.
766$!
767$ EXIT
768$!
769$! End The Valid Arguement Check.
770$!
771$ ENDIF
772$!
773$! End The P4 Check.
774$!
775$ ENDIF
776$!
777$! Time to check the contents of P5, and to make sure we get the correct library.
778$!
779$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX"
780$ THEN
781$!
782$! Check to see if SOCKETSHR was chosen
783$!
784$ IF P5.EQS."SOCKETSHR"
785$ THEN
786$!
787$! Set the library to use SOCKETSHR
788$!
789$ TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT"
790$!
791$! Tell the user
792$!
793$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
794$!
795$! Done with SOCKETSHR
796$!
797$ ENDIF
798$!
799$! Check to see if MULTINET was chosen
800$!
801$ IF P5.EQS."MULTINET"
802$ THEN
803$!
804$! Set the library to use UCX emulation.
805$!
806$ P5 = "UCX"
807$!
808$! Tell the user
809$!
810$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
811$!
812$! Done with MULTINET
813$!
814$ ENDIF
815$!
816$! Check to see if UCX was chosen
817$!
818$ IF P5.EQS."UCX"
819$ THEN
820$!
821$! Set the library to use UCX.
822$!
823$ TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT"
824$!
825$! Tell the user
826$!
827$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
828$!
829$! Done with UCX
830$!
831$ ENDIF
832$!
833$! Set the TCPIP_TYPE symbol
834$!
835$ TCPIP_TYPE = P5
836$!
837$! Print info
838$!
839$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
840$!
841$! Else The User Entered An Invalid Arguement.
842$!
843$ ELSE
844$ IF P5 .NES. ""
845$ THEN
846$!
847$! Tell The User We Don't Know What They Want.
848$!
849$ WRITE SYS$OUTPUT ""
850$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
851$ WRITE SYS$OUTPUT ""
852$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
853$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
854$ WRITE SYS$OUTPUT ""
855$!
856$! Time To EXIT.
857$!
858$ EXIT
859$ ELSE
860$!
861$! Set the TCPIP_TYPE symbol
862$!
863$ TCPIP_TYPE = P5
864$ ENDIF
865$!
866$! Done with TCP/IP libraries
867$!
868$ ENDIF
869$!
870$! Special Threads For OpenVMS v7.1 Or Later
871$!
872$! Written By: Richard Levitte
873$! richard@levitte.org
874$!
875$!
876$! Check To See If We Have A Option For P6.
877$!
878$ IF (P6.EQS."")
879$ THEN
880$!
881$! Get The Version Of VMS We Are Using.
882$!
883$ ISSEVEN :=
884$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
885$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
886$!
887$! Check To See If The VMS Version Is v7.1 Or Later.
888$!
889$ IF (TMP.GE.71)
890$ THEN
891$!
892$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
893$!
894$ ISSEVEN := ,PTHREAD_USE_D4
895$!
896$! End The VMS Version Check.
897$!
898$ ENDIF
899$!
900$! End The P6 Check.
901$!
902$ ENDIF
903$!
904$! Time To RETURN...
905$!
906$ RETURN