source: trunk/third/openssl/makevms.com @ 15530

Revision 15530, 24.0 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15529, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1$!
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".
20$!      CONFIG    Just build the "[.CRYPTO]OPENSSLCONF.H" file.
21$!      BUILDINF  Just build the "[.CRYPTO]BUILDINF.H" file.
22$!      SOFTLINKS Just fix the Unix soft links.
23$!      BUILDALL  Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done.
24$!      RSAREF    Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
25$!      CRYPTO    Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
26$!      CRYPTO/x  Just build the x part of the
27$!                "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
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.
54$!               (not yet implemented)
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$!
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$!
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$!
105$ IF (BUILDCOMMAND.EQS."ALL")
106$ THEN
107$!
108$!  Start with building the OpenSSL configuration file.
109$!
110$   GOSUB CONFIG
111$!
112$!  Create The "BUILDINF.H" Include File.
113$!
114$   GOSUB BUILDINF
115$!
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$!
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$!
165$     GOSUB 'BUILDCOMMAND'
166$!
167$ ENDIF
168$!
169$! Time To EXIT.
170$!
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$
190$! Different tar version may have named the file differently
191$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H_IN") .NES. ""
192$ THEN
193$   TYPE [.CRYPTO]OPENSSLCONF.H_IN /OUTPUT=H_FILE:
194$ ELSE
195$   IF F$SEARCH("[.CRYPTO]OPENSSLCONF_H.IN") .NES. ""
196$   THEN
197$     TYPE [.CRYPTO]OPENSSLCONF_H.IN /OUTPUT=H_FILE:
198$   ELSE
199$     WRITE SYS$ERROR "Couldn't find a [.CRYPTO]OPENSSLCONF.H_IN.  Exiting!"
200$     EXIT 0
201$   ENDIF
202$ ENDIF
203$!
204$ IF ARCH .EQS. "AXP"
205$ THEN
206$!
207$!  Write the Alpha specific data
208$!
209$   WRITE H_FILE "#if defined(HEADER_RC4_H)"
210$   WRITE H_FILE "#undef RC4_INT"
211$   WRITE H_FILE "#define RC4_INT unsigned int"
212$   WRITE H_FILE "#undef RC4_CHUNK"
213$   WRITE H_FILE "#define RC4_CHUNK unsigned long long"
214$   WRITE H_FILE "#endif"
215$!
216$   WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
217$   WRITE H_FILE "#undef DES_LONG"
218$   WRITE H_FILE "#define DES_LONG unsigned int"
219$   WRITE H_FILE "#undef DES_PTR"
220$   WRITE H_FILE "#define DES_PTR"
221$   WRITE H_FILE "#undef DES_RISC1"
222$   WRITE H_FILE "#undef DES_RISC2"
223$   WRITE H_FILE "#define DES_RISC1"
224$   WRITE H_FILE "#undef DES_UNROLL"
225$   WRITE H_FILE "#define DES_UNROLL"
226$   WRITE H_FILE "#endif"
227$!
228$   WRITE H_FILE "#if defined(HEADER_BN_H)"
229$   WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
230$   WRITE H_FILE "#undef SIXTY_FOUR_BIT"
231$   WRITE H_FILE "#define SIXTY_FOUR_BIT"
232$   WRITE H_FILE "#undef THIRTY_TWO_BIT"
233$   WRITE H_FILE "#undef SIXTEEN_BIT"
234$   WRITE H_FILE "#undef EIGHT_BIT"
235$   WRITE H_FILE "#endif"
236$!
237$!  Else...
238$!
239$ ELSE
240$!
241$!  Write the VAX specific data
242$!
243$   WRITE H_FILE "#if defined(HEADER_RC4_H)"
244$   WRITE H_FILE "#undef RC4_INT"
245$   WRITE H_FILE "#define RC4_INT unsigned char"
246$   WRITE H_FILE "#undef RC4_CHUNK"
247$   WRITE H_FILE "#define RC4_CHUNK unsigned long"
248$   WRITE H_FILE "#endif"
249$!
250$   WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
251$   WRITE H_FILE "#undef DES_LONG"
252$   WRITE H_FILE "#define DES_LONG unsigned long"
253$   WRITE H_FILE "#undef DES_PTR"
254$   WRITE H_FILE "#define DES_PTR"
255$   WRITE H_FILE "#undef DES_RISC1"
256$   WRITE H_FILE "#undef DES_RISC2"
257$   WRITE H_FILE "#undef DES_UNROLL"
258$   WRITE H_FILE "#endif"
259$!
260$   WRITE H_FILE "#if defined(HEADER_BN_H)"
261$   WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
262$   WRITE H_FILE "#undef SIXTY_FOUR_BIT"
263$   WRITE H_FILE "#undef THIRTY_TWO_BIT"
264$   WRITE H_FILE "#define THIRTY_TWO_BIT"
265$   WRITE H_FILE "#undef SIXTEEN_BIT"
266$   WRITE H_FILE "#undef EIGHT_BIT"
267$   WRITE H_FILE "#endif"
268$!
269$!  End
270$!
271$ ENDIF
272$!
273$! Close the [.CRYPTO]OPENSSLCONF.H file
274$!
275$ CLOSE H_FILE
276$!
277$! That's All, Time To RETURN.
278$!
279$ RETURN
280$!
281$! Rebuild The "[.CRYPTO]BUILDINF.H" file.
282$!
283$ BUILDINF:
284$!
285$! Tell The User We Are Creating The [.CRYPTO]BUILDINF.H File.
286$!
287$ WRITE SYS$OUTPUT "Creating [.CRYPTO]BUILDINF.H Include File."
288$!
289$! Create The [.CRYPTO]BUILDINF.H File.
290$!
291$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]BUILDINF.H
292$!
293$! Get The Current Date & Time.
294$!
295$ TIME = F$TIME()
296$!
297$! Write The [.CRYPTO]BUILDINF.H File.
298$!
299$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */"
300$ WRITE H_FILE "#define PLATFORM ""VMS"""
301$ WRITE H_FILE "#define DATE ""''TIME'"" "
302$!
303$! Close The [.CRYPTO]BUILDINF.H File.
304$!
305$ CLOSE H_FILE
306$!
307$! That's All, Time To RETURN.
308$!
309$ RETURN
310$!
311$! Copy a lot of files around.
312$!
313$ SOFTLINKS:
314$!
315$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
316$!
317$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
318$!
319$ DELETE SYS$DISK:[.APPS]MD4.C;*,MD5.C;*,RMD160.C;*
320$!
321$! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
322$!
323$ COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
324$!
325$! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
326$!
327$ COPY SYS$DISK:[.CRYPTO.MD5]MD5.C SYS$DISK:[.APPS]
328$!
329$! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
330$!
331$ COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
332$!
333$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
334$!
335$ WRITE SYS$OUTPUT "Rebuilding The '[.TEST]*.C' Files."
336$!
337$! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete
338$! All The "C" Files That Are Currently There Now.
339$!
340$ DELETE SYS$DISK:[.TEST]*.C;*
341$!
342$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
343$!
344$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
345$!
346$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
347$!
348$ COPY SYS$DISK:[.SSL]%*TEST.C SYS$DISK:[.TEST]
349$!
350$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
351$!
352$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
353$!
354$! First, make sure the directory exists
355$!
356$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
357     CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
358$!
359$! Copy All The ".H" Files From The Main Directory.
360$!
361$ EXHEADER := e_os.h,e_os2.h
362$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
363$!
364$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
365$!
366$ SDIRS := ,MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,-
367   DES,RC2,RC4,RC5,IDEA,BF,CAST,-
368   BN,RSA,DSA,DH,DSO,-
369   BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
370   EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP
371$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h,ebcdic.h,symhacks.h
372$ EXHEADER_MD2 := md2.h
373$ EXHEADER_MD4 := md4.h
374$ EXHEADER_MD5 := md5.h
375$ EXHEADER_SHA := sha.h
376$ EXHEADER_MDC2 := mdc2.h
377$ EXHEADER_HMAC := hmac.h
378$ EXHEADER_RIPEMD := ripemd.h
379$ EXHEADER_DES := des.h
380$ EXHEADER_RC2 := rc2.h
381$ EXHEADER_RC4 := rc4.h
382$ EXHEADER_RC5 := rc5.h
383$ EXHEADER_IDEA := idea.h
384$ EXHEADER_BF := blowfish.h
385$ EXHEADER_CAST := cast.h
386$ EXHEADER_BN := bn.h
387$ EXHEADER_RSA := rsa.h
388$ EXHEADER_DSA := dsa.h
389$ EXHEADER_DH := dh.h
390$ EXHEADER_DSO := dso.h
391$ EXHEADER_BUFFER := buffer.h
392$ EXHEADER_BIO := bio.h
393$ EXHEADER_STACK := stack.h,safestack.h
394$ EXHEADER_LHASH := lhash.h
395$ EXHEADER_RAND := rand.h
396$ EXHEADER_ERR := err.h
397$ EXHEADER_OBJECTS := objects.h,obj_mac.h
398$ EXHEADER_EVP := evp.h
399$ EXHEADER_ASN1 := asn1.h,asn1_mac.h
400$ EXHEADER_PEM := pem.h,pem2.h
401$ EXHEADER_X509 := x509.h,x509_vfy.h
402$ EXHEADER_X509V3 := x509v3.h
403$ EXHEADER_CONF := conf.h,conf_api.h
404$ EXHEADER_TXT_DB := txt_db.h
405$ EXHEADER_PKCS7 := pkcs7.h
406$ EXHEADER_PKCS12 := pkcs12.h
407$ EXHEADER_COMP := comp.h
408$
409$ I = 0
410$ LOOP_SDIRS:
411$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
412$ I = I + 1
413$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
414$ tmp = EXHEADER_'D'
415$ IF D .EQS. ""
416$ THEN
417$   COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
418$ ELSE
419$   COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
420$ ENDIF
421$ GOTO LOOP_SDIRS
422$ LOOP_SDIRS_END:
423$!
424$! Copy All The ".H" Files From The [.RSAREF] Directory.
425$!
426$ EXHEADER := rsaref.h
427$ COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
428$!
429$! Copy All The ".H" Files From The [.SSL] Directory.
430$!
431$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
432$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
433$!
434$! Purge all doubles
435$!
436$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
437$!
438$! That's All, Time To RETURN.
439$!
440$ RETURN
441$!
442$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
443$!
444$ CRYPTO:
445$!
446$! Tell The User What We Are Doing.
447$!
448$ WRITE SYS$OUTPUT ""
449$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
450$!
451$! Go To The [.CRYPTO] Directory.
452$!
453$ SET DEFAULT SYS$DISK:[.CRYPTO]
454$!
455$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
456$! 
457$ @CRYPTO-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
458$!
459$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
460$! 
461$ @CRYPTO-LIB APPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
462$!
463$! Go Back To The Main Directory.
464$!
465$ SET DEFAULT [-]
466$!
467$! Time To RETURN.
468$!
469$ RETURN
470$!
471$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library.
472$!
473$ RSAREF:
474$!
475$! Tell The User What We Are Doing.
476$!
477$ WRITE SYS$OUTPUT ""
478$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library."
479$!
480$! Go To The [.RSAREF] Directory.
481$!
482$ SET DEFAULT SYS$DISK:[.RSAREF]
483$!
484$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
485$!
486$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN'
487$!
488$! Go Back To The Main Directory.
489$!
490$ SET DEFAULT [-]
491$!
492$! Time To Return.
493$!
494$ RETURN
495$!
496$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
497$!
498$ SSL:
499$!
500$! Tell The User What We Are Doing.
501$!
502$ WRITE SYS$OUTPUT ""
503$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
504$!
505$! Go To The [.SSL] Directory.
506$!
507$ SET DEFAULT SYS$DISK:[.SSL]
508$!
509$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
510$!
511$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
512$!
513$! Go Back To The Main Directory.
514$!
515$ SET DEFAULT [-]
516$!
517$! Time To Return.
518$!
519$ RETURN
520$!
521$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
522$!
523$ SSL_TASK:
524$!
525$! Tell The User What We Are Doing.
526$!
527$ WRITE SYS$OUTPUT ""
528$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
529$!
530$! Go To The [.SSL] Directory.
531$!
532$ SET DEFAULT SYS$DISK:[.SSL]
533$!
534$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
535$!
536$ @SSL-LIB SSL_TASK 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
537$!
538$! Go Back To The Main Directory.
539$!
540$ SET DEFAULT [-]
541$!
542$! That's All, Time To RETURN.
543$!
544$ RETURN
545$!
546$! Build The OpenSSL Test Programs.
547$!
548$ TEST:
549$!
550$! Tell The User What We Are Doing.
551$!
552$ WRITE SYS$OUTPUT ""
553$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
554$!
555$! Go To The [.TEST] Directory.
556$!
557$ SET DEFAULT SYS$DISK:[.TEST]
558$!
559$! Build The Test Programs.
560$!
561$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
562$!
563$! Go Back To The Main Directory.
564$!
565$ SET DEFAULT [-]
566$!
567$! That's All, Time To RETURN.
568$!
569$ RETURN
570$!
571$! Build The OpenSSL Application Programs.
572$!
573$ APPS:
574$!
575$! Tell The User What We Are Doing.
576$!
577$ WRITE SYS$OUTPUT ""
578$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
579$!
580$! Go To The [.APPS] Directory.
581$!
582$ SET DEFAULT SYS$DISK:[.APPS]
583$!
584$! Build The Application Programs.
585$!
586$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
587$!
588$! Go Back To The Main Directory.
589$!
590$ SET DEFAULT [-]
591$!
592$! That's All, Time To RETURN.
593$!
594$ RETURN
595$!
596$! Check The User's Options.
597$!
598$ CHECK_OPTIONS:
599$!
600$! Check if there's a "part", and separate it out
601$!
602$ BUILDPART = F$ELEMENT(1,"/",P1)
603$ IF BUILDPART .EQS. "/"
604$ THEN
605$   BUILDPART = ""
606$ ELSE
607$   P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
608$ ENDIF
609$!
610$! Check To See If P1 Is Blank.
611$!
612$ IF (P1.EQS."ALL")
613$ THEN
614$!
615$!   P1 Is ALL, So Build Everything.
616$!
617$    BUILDCOMMAND = "ALL"
618$!
619$! Else...
620$!
621$ ELSE
622$!
623$!  Else, Check To See If P1 Has A Valid Arguement.
624$!
625$   IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
626       .OR.(P1.EQS."BUILDALL") -
627       .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF") -
628       .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS")
629$   THEN
630$!
631$!    A Valid Arguement.
632$!
633$     BUILDCOMMAND = P1
634$!
635$!  Else...
636$!
637$   ELSE
638$!
639$!    Tell The User We Don't Know What They Want.
640$!
641$     WRITE SYS$OUTPUT ""
642$     WRITE SYS$OUTPUT "The Option ",P1," Is Invalid.  The Valid Options Are:"
643$     WRITE SYS$OUTPUT ""
644$     WRITE SYS$OUTPUT "    ALL      :  Just Build Everything."
645$     WRITE SYS$OUTPUT "    CONFIG   :  Just build the [.CRYPTO]OPENSSLCONF.H file."
646$     WRITE SYS$OUTPUT "    BUILDINF :  Just build the [.CRYPTO]BUILDINF.H file."
647$     WRITE SYS$OUTPUT "    SOFTLINKS:  Just Fix The Unix soft links."
648$     WRITE SYS$OUTPUT "    BUILDALL :  Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
649$     WRITE SYS$OUTPUT "    RSAREF   :  To Build Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library."
650$     WRITE SYS$OUTPUT "    CRYPTO   :  To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
651$     WRITE SYS$OUTPUT "    CRYPTO/x :  To Build Just The x Part Of The"
652$     WRITE SYS$OUTPUT "                [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
653$     WRITE SYS$OUTPUT "    SSL      :  To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
654$     WRITE SYS$OUTPUT "    SSL_TASK :  To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
655$     WRITE SYS$OUTPUT "    TEST     :  To Build Just The OpenSSL Test Programs."
656$     WRITE SYS$OUTPUT "    APPS     :  To Build Just The OpenSSL Application Programs."
657$     WRITE SYS$OUTPUT ""
658$     WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
659$     WRITE SYS$OUTPUT ""
660$     WRITE SYS$OUTPUT "        AXP  :  Alpha Architecture."
661$     WRITE SYS$OUTPUT "        VAX  :  VAX Architecture."
662$     WRITE SYS$OUTPUT ""
663$!
664$!    Time To EXIT.
665$!
666$     EXIT
667$!
668$!  End The Valid Argument Check.
669$!
670$   ENDIF
671$!
672$! End The P1 Check.
673$!
674$ ENDIF
675$!
676$! Check To See If P2 Is Blank.
677$!
678$ IF (P2.EQS."NORSAREF")
679$ THEN
680$!
681$!   P2 Is NORSAREF, So Compile Without RSAREF.
682$!
683$    RSAREF = "NORSAREF"
684$!
685$! Else...
686$!
687$ ELSE
688$!
689$!  Check To See If We Are To Compile Using The RSAREF Library.
690$!
691$   IF (P2.EQS."RSAREF")
692$   THEN
693$!
694$!    Compile With RSAREF Library.
695$!
696$     RSAREF = "RSAREF"
697$!
698$!  Else...
699$!
700$   ELSE
701$!
702$!    Tell The User Entered An Invalid Option..
703$!
704$     WRITE SYS$OUTPUT ""
705$     WRITE SYS$OUTPUT "The Option ",P2," Is Invalid.  The Valid Options Are:"
706$     WRITE SYS$OUTPUT ""
707$     WRITE SYS$OUTPUT "    RSAREF   :  To Compile With The RSAREF Library."
708$     WRITE SYS$OUTPUT "    NORSAREF :  To Compile With The Regular RSA Library."
709$     WRITE SYS$OUTPUT ""
710$!
711$!    Time To EXIT.
712$!
713$     EXIT
714$!
715$!  End The Valid Arguemnt Check.
716$!
717$   ENDIF
718$!
719$! End The P2 Check.
720$!
721$ ENDIF
722$!
723$! Check To See If P3 Is Blank.
724$!
725$ IF (P3.EQS."NODEBUG")
726$ THEN
727$!
728$!   P3 Is NODEBUG, So Compile Without Debugger Information.
729$!
730$    DEBUGGER = "NODEBUG"
731$!
732$! Else...
733$!
734$ ELSE
735$!
736$!  Check To See If We Are To Compile With Debugger Information.
737$!
738$   IF (P3.EQS."DEBUG")
739$   THEN
740$!
741$!    Compile With Debugger Information.
742$!
743$     DEBUGGER = "DEBUG"
744$!
745$!  Else...
746$!
747$   ELSE
748$!
749$!    Tell The User Entered An Invalid Option..
750$!
751$     WRITE SYS$OUTPUT ""
752$     WRITE SYS$OUTPUT "The Option ",P3," Is Invalid.  The Valid Options Are:"
753$     WRITE SYS$OUTPUT ""
754$     WRITE SYS$OUTPUT "    DEBUG    :  Compile With The Debugger Information."
755$     WRITE SYS$OUTPUT "    NODEBUG  :  Compile Without The Debugger Information."
756$     WRITE SYS$OUTPUT ""
757$!
758$!    Time To EXIT.
759$!
760$     EXIT
761$!
762$!  End The Valid Arguement Check.
763$!
764$   ENDIF
765$!
766$! End The P3 Check.
767$!
768$ ENDIF
769$!
770$! Check To See If P4 Is Blank.
771$!
772$ IF (P4.EQS."")
773$ THEN
774$!
775$!  O.K., The User Didn't Specify A Compiler, Let's Try To
776$!  Find Out Which One To Use.
777$!
778$!  Check To See If We Have GNU C.
779$!
780$   IF (F$TRNLNM("GNU_CC").NES."")
781$   THEN
782$!
783$!    Looks Like GNUC, Set To Use GNUC.
784$!
785$     COMPILER = "GNUC"
786$!
787$!    Tell The User We Are Using GNUC.
788$!
789$     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
790$!
791$!  End The GNU C Compiler Check.
792$!
793$   ENDIF
794$!
795$!  Check To See If We Have VAXC Or DECC.
796$!
797$   IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
798$   THEN
799$!
800$!    Looks Like DECC, Set To Use DECC.
801$!
802$     COMPILER = "DECC"
803$!
804$!    Tell The User We Are Using DECC.
805$!
806$     WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
807$!
808$!  Else...
809$!
810$   ELSE
811$!
812$!    Looks Like VAXC, Set To Use VAXC.
813$!
814$     COMPILER = "VAXC"
815$!
816$!    Tell The User We Are Using VAX C.
817$!
818$     WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
819$!
820$!  End The DECC & VAXC Compiler Check.
821$!
822$   ENDIF
823$!
824$! Else...
825$!
826$ ELSE
827$!
828$!  Check To See If The User Entered A Valid Paramter.
829$!
830$   IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
831$   THEN
832$!
833$!    Check To See If The User Wanted To Just LINK.
834$!
835$     IF (P4.EQS."LINK")
836$     THEN
837$!
838$!      Looks Like LINK-only
839$!
840$       COMPILER = "LINK"
841$!
842$!      Tell The User We Are Only Linking.
843$!
844$       WRITE SYS$OUTPUT "LINK Only.  This actually NOT YET SUPPORTED!"
845$!
846$!    End LINK Check.
847$!
848$     ENDIF
849$!
850$!    Check To See If The User Wanted DECC.
851$!
852$     IF (P4.EQS."DECC")
853$     THEN
854$!
855$!      Looks Like DECC, Set To Use DECC.
856$!
857$       COMPILER = "DECC"
858$!
859$!      Tell The User We Are Using DECC.
860$!
861$       WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
862$!
863$!    End DECC Check.
864$!
865$     ENDIF
866$!
867$!    Check To See If We Are To Use VAXC.
868$!
869$     IF (P4.EQS."VAXC")
870$     THEN
871$!
872$!      Looks Like VAXC, Set To Use VAXC.
873$!
874$       COMPILER = "VAXC"
875$!
876$!      Tell The User We Are Using VAX C.
877$!
878$       WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
879$!
880$!    End VAXC Check
881$!
882$     ENDIF
883$!
884$!    Check To See If We Are To Use GNU C.
885$!
886$     IF (P4.EQS."GNUC")
887$     THEN
888$!
889$!      Looks Like GNUC, Set To Use GNUC.
890$!
891$       COMPILER = "GNUC"
892$!
893$!      Tell The User We Are Using GNUC.
894$!
895$       WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
896$!
897$!    End The GNU C Check.
898$!
899$     ENDIF
900$!
901$!  Else The User Entered An Invalid Arguement.
902$!
903$   ELSE
904$!
905$!    Tell The User We Don't Know What They Want.
906$!
907$     WRITE SYS$OUTPUT ""
908$     WRITE SYS$OUTPUT "The Option ",P4," Is Invalid.  The Valid Options Are:"
909$     WRITE SYS$OUTPUT ""
910$     WRITE SYS$OUTPUT "    VAXC  :  To Compile With VAX C."
911$     WRITE SYS$OUTPUT "    DECC  :  To Compile With DEC C."
912$     WRITE SYS$OUTPUT "    GNUC  :  To Compile With GNU C."
913$     WRITE SYS$OUTPUT ""
914$!
915$!    Time To EXIT.
916$!
917$     EXIT
918$!
919$!  End The Valid Arguement Check.
920$!
921$   ENDIF
922$!
923$! End The P4 Check.
924$!
925$ ENDIF
926$!
927$! Time to check the contents of P5, and to make sure we get the correct library.
928$!
929$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX"
930$ THEN
931$!
932$!  Check to see if SOCKETSHR was chosen
933$!
934$   IF P5.EQS."SOCKETSHR"
935$   THEN
936$!
937$!    Set the library to use SOCKETSHR
938$!
939$     TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT"
940$!
941$!    Tell the user
942$!
943$     WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
944$!
945$!    Done with SOCKETSHR
946$!
947$   ENDIF
948$!
949$!  Check to see if MULTINET was chosen
950$!
951$   IF P5.EQS."MULTINET"
952$   THEN
953$!
954$!    Set the library to use UCX emulation.
955$!
956$     P5 = "UCX"
957$!
958$!    Tell the user
959$!
960$     WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
961$!
962$!    Done with MULTINET
963$!
964$   ENDIF
965$!
966$!  Check to see if UCX was chosen
967$!
968$   IF P5.EQS."UCX"
969$   THEN
970$!
971$!    Set the library to use UCX.
972$!
973$     TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT"
974$!
975$!    Tell the user
976$!
977$     WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
978$!
979$!    Done with UCX
980$!
981$   ENDIF
982$!
983$!  Set the TCPIP_TYPE symbol
984$!
985$   TCPIP_TYPE = P5
986$!
987$!  Print info
988$!
989$   WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
990$!
991$!  Else The User Entered An Invalid Arguement.
992$!
993$ ELSE
994$   IF P5 .NES. ""
995$   THEN
996$!
997$!    Tell The User We Don't Know What They Want.
998$!
999$     WRITE SYS$OUTPUT ""
1000$     WRITE SYS$OUTPUT "The Option ",P5," Is Invalid.  The Valid Options Are:"
1001$     WRITE SYS$OUTPUT ""
1002$     WRITE SYS$OUTPUT "    SOCKETSHR  :  To link with SOCKETSHR TCP/IP library."
1003$     WRITE SYS$OUTPUT "    UCX        :  To link with UCX TCP/IP library."
1004$     WRITE SYS$OUTPUT ""
1005$!
1006$!    Time To EXIT.
1007$!
1008$     EXIT
1009$   ELSE
1010$!
1011$!    Set the TCPIP_TYPE symbol
1012$!
1013$     TCPIP_TYPE = P5
1014$   ENDIF
1015$!
1016$!  Done with TCP/IP libraries
1017$!
1018$ ENDIF
1019$!
1020$! Special Threads For OpenVMS v7.1 Or Later
1021$!
1022$! Written By:  Richard Levitte
1023$!              richard@levitte.org
1024$!
1025$!
1026$! Check To See If We Have A Option For P6.
1027$!
1028$ IF (P6.EQS."")
1029$ THEN
1030$!
1031$!  Get The Version Of VMS We Are Using.
1032$!
1033$   ISSEVEN :=
1034$   TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
1035$   TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1036$!
1037$!  Check To See If The VMS Version Is v7.1 Or Later.
1038$!
1039$   IF (TMP.GE.71)
1040$   THEN
1041$!
1042$!    We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1043$!
1044$     ISSEVEN := ,PTHREAD_USE_D4
1045$!
1046$!  End The VMS Version Check.
1047$!
1048$   ENDIF
1049$!
1050$! End The P6 Check.
1051$!
1052$ ENDIF
1053$!
1054$!  Time To RETURN...
1055$!
1056$ RETURN
Note: See TracBrowser for help on using the repository browser.