]> git.ipfire.org Git - thirdparty/openssl.git/blame - makevms.com
More general definition for S_ISDIR (needed not only for VMS but
[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".
20$! DATE Just build the "[.INCLUDE.OPENSSL]DATE.H" file.
21$! 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.
28$!
29$!
30$! 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).
33$!
34$! 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.
40$!
41$! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging
42$! information.
43$!
44$! Specify which compiler at P4 to try to compile under.
45$!
46$! 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.
58dc480f 50$! (not yet implemented)
7d7d2cbc
UM
51$!
52$! 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$!
99$! Create The "DATE.H" Include File.
100$!
101$ GOSUB DATE
102$!
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$!
150$! Rebuild The "[.INCLUDE.OPENSSL]DATE.H" file.
151$!
152$ DATE:
153$!
154$! Tell The User We Are Creating The [.CRYPTO]DATE.H File.
155$!
156$ WRITE SYS$OUTPUT "Creating [.CRYPTO]DATE.H Include File."
157$!
158$! Create The [.CRYPTO]DATE.H File.
159$!
160$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]DATE.H
161$!
162$! Get The Current Date & Time.
163$!
164$ TIME = F$TIME()
165$!
166$! Write The [.CRYPTO]DATE.H File.
167$!
168$ WRITE H_FILE "#define DATE ""''TIME'"" "
169$!
170$! Close The [.CRYPTO]DATE.H File.
171$!
172$ CLOSE H_FILE
173$!
174$! That's All, Time To RETURN.
175$!
176$ RETURN
177$!
178$! Copy a lot of files around.
179$!
180$ SOFTLINKS:
181$!
182$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
183$!
184$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
185$!
186$ DELETE SYS$DISK:[.APPS]MD5.C;*,RMD160.C;*
187$!
188$! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
189$!
190$ COPY SYS$DISK:[.CRYPTO.MD5]MD5.C SYS$DISK:[.APPS]
191$!
192$! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
193$!
194$ COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
195$!
196$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
197$!
198$ WRITE SYS$OUTPUT "Rebuilding The '[.TEST]*.C' Files."
199$!
200$! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete
201$! All The "C" Files That Are Currently There Now.
202$!
203$ DELETE SYS$DISK:[.TEST]*.C;*
204$!
205$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
206$!
207$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
208$!
209$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
210$!
211$ COPY SYS$DISK:[.SSL]%*TEST.C SYS$DISK:[.TEST]
212$!
213$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
214$!
215$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
216$!
217$! First, make sure the directory exists
218$!
219$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
220 CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
221$!
222$! Copy All The ".H" Files From The Main Directory.
223$!
9dff4cc0 224$ EXHEADER := e_os.h,e_os2.h
7d7d2cbc
UM
225$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
226$!
227$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
228$!
229$ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
230 DES,RC2,RC4,RC5,IDEA,BF,CAST,-
231 BN,RSA,DSA,DH,-
232 BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
233 EVP,ASN1,PEM,X509,X509V3,-
234 CONF,TXT_DB,PKCS7,PKCS12,COMP
235$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h
236$ EXHEADER_MD2 := md2.h
237$ EXHEADER_MD5 := md5.h
238$ EXHEADER_SHA := sha.h
239$ EXHEADER_MDC2 := mdc2.h
240$ EXHEADER_HMAC := hmac.h
241$ EXHEADER_RIPEMD := ripemd.h
242$ EXHEADER_DES := des.h
243$ EXHEADER_RC2 := rc2.h
244$ EXHEADER_RC4 := rc4.h
245$ EXHEADER_RC5 := rc5.h
246$ EXHEADER_IDEA := idea.h
247$ EXHEADER_BF := blowfish.h
248$ EXHEADER_CAST := cast.h
249$ EXHEADER_BN := bn.h
250$ EXHEADER_RSA := rsa.h
251$ EXHEADER_DSA := dsa.h
252$ EXHEADER_DH := dh.h
253$ EXHEADER_BUFFER := buffer.h
254$ EXHEADER_BIO := bio.h
255$ EXHEADER_STACK := stack.h,safestack.h
256$ EXHEADER_LHASH := lhash.h
257$ EXHEADER_RAND := rand.h
258$ EXHEADER_ERR := err.h
259$ EXHEADER_OBJECTS := objects.h
260$ EXHEADER_EVP := evp.h
261$ EXHEADER_ASN1 := asn1.h,asn1_mac.h
262$ EXHEADER_PEM := pem.h,pem2.h
263$ EXHEADER_X509 := x509.h,x509_vfy.h
264$ EXHEADER_X509V3 := x509v3.h
265$ EXHEADER_CONF := conf.h
266$ EXHEADER_TXT_DB := txt_db.h
267$ EXHEADER_PKCS7 := pkcs7.h
268$ EXHEADER_PKCS12 := pkcs12.h
269$ EXHEADER_COMP := comp.h
270$
271$ I = 0
272$ LOOP_SDIRS:
273$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
274$ I = I + 1
275$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
276$ tmp = EXHEADER_'D'
277$ IF D .EQS. ""
278$ THEN
279$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
280$ ELSE
281$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
282$ ENDIF
283$ GOTO LOOP_SDIRS
284$ LOOP_SDIRS_END:
285$!
286$! Copy All The ".H" Files From The [.RSAREF] Directory.
287$!
288$ EXHEADER := rsaref.h
289$ COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
290$!
291$! Copy All The ".H" Files From The [.SSL] Directory.
292$!
293$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
294$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
295$!
296$! Purge all doubles
297$!
298$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
299$!
300$! That's All, Time To RETURN.
301$!
302$ RETURN
303$!
304$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
305$!
306$ CRYPTO:
307$!
308$! Tell The User What We Are Doing.
309$!
310$ WRITE SYS$OUTPUT ""
311$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
312$!
313$! Go To The [.CRYPTO] Directory.
314$!
315$ SET DEFAULT SYS$DISK:[.CRYPTO]
316$!
317$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
318$!
319$ @CRYPTO-LIB 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
320$!
321$! Go Back To The Main Directory.
322$!
323$ SET DEFAULT [-]
324$!
325$! Time To RETURN.
326$!
327$ RETURN
328$!
329$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library.
330$!
331$ RSAREF:
332$!
333$! Tell The User What We Are Doing.
334$!
335$ WRITE SYS$OUTPUT ""
336$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library."
337$!
338$! Go To The [.RSAREF] Directory.
339$!
340$ SET DEFAULT SYS$DISK:[.RSAREF]
341$!
342$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
343$!
344$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN'
345$!
346$! Go Back To The Main Directory.
347$!
348$ SET DEFAULT [-]
349$!
350$! Time To Return.
351$!
352$ RETURN
353$!
354$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
355$!
356$ SSL:
357$!
358$! Tell The User What We Are Doing.
359$!
360$ WRITE SYS$OUTPUT ""
361$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
362$!
363$! Go To The [.SSL] Directory.
364$!
365$ SET DEFAULT SYS$DISK:[.SSL]
366$!
367$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
368$!
369$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
370$!
371$! Go Back To The Main Directory.
372$!
373$ SET DEFAULT [-]
374$!
375$! Time To Return.
376$!
377$ RETURN
378$!
379$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
380$!
381$ SSL_TASK:
382$!
383$! Tell The User What We Are Doing.
384$!
385$ WRITE SYS$OUTPUT ""
386$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
387$!
388$! Go To The [.SSL] Directory.
389$!
390$ SET DEFAULT SYS$DISK:[.SSL]
391$!
392$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
393$!
394$ @SSL-LIB SSL_TASK 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
395$!
396$! Go Back To The Main Directory.
397$!
398$ SET DEFAULT [-]
399$!
400$! That's All, Time To RETURN.
401$!
402$ RETURN
403$!
404$! Build The OpenSSL Test Programs.
405$!
406$ TEST:
407$!
408$! Tell The User What We Are Doing.
409$!
410$ WRITE SYS$OUTPUT ""
411$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
412$!
413$! Go To The [.TEST] Directory.
414$!
415$ SET DEFAULT SYS$DISK:[.TEST]
416$!
417$! Build The Test Programs.
418$!
419$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
420$!
421$! Go Back To The Main Directory.
422$!
423$ SET DEFAULT [-]
424$!
425$! That's All, Time To RETURN.
426$!
427$ RETURN
428$!
429$! Build The OpenSSL Application Programs.
430$!
431$ APPS:
432$!
433$! Tell The User What We Are Doing.
434$!
435$ WRITE SYS$OUTPUT ""
436$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
437$!
438$! Go To The [.APPS] Directory.
439$!
440$ SET DEFAULT SYS$DISK:[.APPS]
441$!
442$! Build The Application Programs.
443$!
444$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
445$!
446$! Go Back To The Main Directory.
447$!
448$ SET DEFAULT [-]
449$!
450$! That's All, Time To RETURN.
451$!
452$ RETURN
453$!
454$! Check The User's Options.
455$!
456$ CHECK_OPTIONS:
457$!
458$! Check To See If P1 Is Blank.
459$!
460$ IF (P1.EQS."ALL")
461$ THEN
462$!
463$! P1 Is ALL, So Build Everything.
464$!
465$ BUILDALL = "TRUE"
466$!
467$! Else...
468$!
469$ ELSE
470$!
471$! Else, Check To See If P1 Has A Valid Arguement.
472$!
473$ IF (P1.EQS."DATE").OR.(P1.EQS."SOFTLINKS").OR.(P1.EQS."CRYPTO") -
474 .OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF").OR.(P1.EQS."SSL_TASK") -
475 .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS")
476$ THEN
477$!
478$! A Valid Arguement.
479$!
480$ BUILDALL = P1
481$!
482$! Else...
483$!
484$ ELSE
485$!
486$! Tell The User We Don't Know What They Want.
487$!
488$ WRITE SYS$OUTPUT ""
489$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
490$ WRITE SYS$OUTPUT ""
491$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
492$ WRITE SYS$OUTPUT " DATE : Just build the [.INCLUDE.OPENSSL]DATE.H file."
493$ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links."
494$ WRITE SYS$OUTPUT " RSAREF : To Build Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library."
495$ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
496$ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
497$ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
498$ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs."
499$ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs."
500$ WRITE SYS$OUTPUT ""
501$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
502$ WRITE SYS$OUTPUT ""
503$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
504$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
505$ WRITE SYS$OUTPUT ""
506$!
507$! Time To EXIT.
508$!
509$ EXIT
510$!
511$! End The Valid Argument Check.
512$!
513$ ENDIF
514$!
515$! End The P1 Check.
516$!
517$ ENDIF
518$!
519$! Check To See If P2 Is Blank.
520$!
521$ IF (P2.EQS."NORSAREF")
522$ THEN
523$!
524$! P2 Is NORSAREF, So Compile Without RSAREF.
525$!
526$ RSAREF = "NORSAREF"
527$!
528$! Else...
529$!
530$ ELSE
531$!
532$! Check To See If We Are To Compile Using The RSAREF Library.
533$!
534$ IF (P2.EQS."RSAREF")
535$ THEN
536$!
537$! Compile With RSAREF Library.
538$!
539$ RSAREF = "RSAREF"
540$!
541$! Else...
542$!
543$ ELSE
544$!
545$! Tell The User Entered An Invalid Option..
546$!
547$ WRITE SYS$OUTPUT ""
548$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
549$ WRITE SYS$OUTPUT ""
550$ WRITE SYS$OUTPUT " RSAREF : To Compile With The RSAREF Library."
551$ WRITE SYS$OUTPUT " NORSAREF : To Compile With The Regular RSA Library."
552$ WRITE SYS$OUTPUT ""
553$!
554$! Time To EXIT.
555$!
556$ EXIT
557$!
558$! End The Valid Arguemnt Check.
559$!
560$ ENDIF
561$!
562$! End The P2 Check.
563$!
564$ ENDIF
565$!
566$! Check To See If P3 Is Blank.
567$!
568$ IF (P3.EQS."NODEBUG")
569$ THEN
570$!
571$! P3 Is NODEBUG, So Compile Without Debugger Information.
572$!
573$ DEBUGGER = "NODEBUG"
574$!
575$! Else...
576$!
577$ ELSE
578$!
579$! Check To See If We Are To Compile With Debugger Information.
580$!
581$ IF (P3.EQS."DEBUG")
582$ THEN
583$!
584$! Compile With Debugger Information.
585$!
586$ DEBUGGER = "DEBUG"
587$!
588$! Else...
589$!
590$ ELSE
591$!
592$! Tell The User Entered An Invalid Option..
593$!
594$ WRITE SYS$OUTPUT ""
595$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
596$ WRITE SYS$OUTPUT ""
597$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
598$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
599$ WRITE SYS$OUTPUT ""
600$!
601$! Time To EXIT.
602$!
603$ EXIT
604$!
605$! End The Valid Arguement Check.
606$!
607$ ENDIF
608$!
609$! End The P3 Check.
610$!
611$ ENDIF
612$!
613$! Check To See If P4 Is Blank.
614$!
615$ IF (P4.EQS."")
616$ THEN
617$!
618$! O.K., The User Didn't Specify A Compiler, Let's Try To
619$! Find Out Which One To Use.
620$!
621$! Check To See If We Have GNU C.
622$!
623$ IF (F$TRNLNM("GNU_CC").NES."")
624$ THEN
625$!
626$! Looks Like GNUC, Set To Use GNUC.
627$!
628$ COMPILER = "GNUC"
629$!
630$! Tell The User We Are Using GNUC.
631$!
632$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
633$!
634$! End The GNU C Compiler Check.
635$!
636$ ENDIF
637$!
638$! Check To See If We Have VAXC Or DECC.
639$!
640$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
641$ THEN
642$!
643$! Looks Like DECC, Set To Use DECC.
644$!
645$ COMPILER = "DECC"
646$!
647$! Tell The User We Are Using DECC.
648$!
649$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
650$!
651$! Else...
652$!
653$ ELSE
654$!
655$! Looks Like VAXC, Set To Use VAXC.
656$!
657$ COMPILER = "VAXC"
658$!
659$! Tell The User We Are Using VAX C.
660$!
661$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
662$!
663$! End The DECC & VAXC Compiler Check.
664$!
665$ ENDIF
666$!
667$! Else...
668$!
669$ ELSE
670$!
671$! Check To See If The User Entered A Valid Paramter.
672$!
58dc480f 673$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
7d7d2cbc
UM
674$ THEN
675$!
676$! Check To See If The User Wanted To Just LINK.
677$!
678$ IF (P4.EQS."LINK")
679$ THEN
680$!
681$! Looks Like LINK-only
682$!
683$ COMPILER = "LINK"
684$!
685$! Tell The User We Are Only Linking.
686$!
687$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
688$!
689$! End LINK Check.
690$!
691$ ENDIF
692$!
693$! Check To See If The User Wanted DECC.
694$!
695$ IF (P4.EQS."DECC")
696$ THEN
697$!
698$! Looks Like DECC, Set To Use DECC.
699$!
700$ COMPILER = "DECC"
701$!
702$! Tell The User We Are Using DECC.
703$!
704$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
705$!
706$! End DECC Check.
707$!
708$ ENDIF
709$!
710$! Check To See If We Are To Use VAXC.
711$!
712$ IF (P4.EQS."VAXC")
713$ THEN
714$!
715$! Looks Like VAXC, Set To Use VAXC.
716$!
717$ COMPILER = "VAXC"
718$!
719$! Tell The User We Are Using VAX C.
720$!
721$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
722$!
723$! End VAXC Check
724$!
725$ ENDIF
726$!
727$! Check To See If We Are To Use GNU C.
728$!
729$ IF (P4.EQS."GNUC")
730$ THEN
731$!
732$! Looks Like GNUC, Set To Use GNUC.
733$!
734$ COMPILER = "GNUC"
735$!
736$! Tell The User We Are Using GNUC.
737$!
738$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
739$!
740$! End The GNU C Check.
741$!
742$ ENDIF
743$!
744$! Else The User Entered An Invalid Arguement.
745$!
746$ ELSE
747$!
748$! Tell The User We Don't Know What They Want.
749$!
750$ WRITE SYS$OUTPUT ""
751$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
752$ WRITE SYS$OUTPUT ""
753$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
754$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
755$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
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 P4 Check.
767$!
768$ ENDIF
769$!
770$! Time to check the contents of P5, and to make sure we get the correct library.
771$!
772$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX"
773$ THEN
774$!
775$! Check to see if SOCKETSHR was chosen
776$!
777$ IF P5.EQS."SOCKETSHR"
778$ THEN
779$!
780$! Set the library to use SOCKETSHR
781$!
782$ TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT"
783$!
784$! Tell the user
785$!
786$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
787$!
788$! Done with SOCKETSHR
789$!
790$ ENDIF
791$!
792$! Check to see if MULTINET was chosen
793$!
794$ IF P5.EQS."MULTINET"
795$ THEN
796$!
797$! Set the library to use UCX emulation.
798$!
799$ P5 = "UCX"
800$!
801$! Tell the user
802$!
803$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
804$!
805$! Done with MULTINET
806$!
807$ ENDIF
808$!
809$! Check to see if UCX was chosen
810$!
811$ IF P5.EQS."UCX"
812$ THEN
813$!
814$! Set the library to use UCX.
815$!
816$ TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT"
817$!
818$! Tell the user
819$!
820$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
821$!
822$! Done with UCX
823$!
824$ ENDIF
825$!
826$! Set the TCPIP_TYPE symbol
827$!
828$ TCPIP_TYPE = P5
829$!
830$! Print info
831$!
832$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
833$!
834$! Else The User Entered An Invalid Arguement.
835$!
836$ ELSE
837$ IF P5 .NES. ""
838$ THEN
839$!
840$! Tell The User We Don't Know What They Want.
841$!
842$ WRITE SYS$OUTPUT ""
843$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
844$ WRITE SYS$OUTPUT ""
845$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
846$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
847$ WRITE SYS$OUTPUT ""
848$!
849$! Time To EXIT.
850$!
851$ EXIT
852$ ELSE
853$!
854$! Set the TCPIP_TYPE symbol
855$!
856$ TCPIP_TYPE = P5
857$ ENDIF
858$!
859$! Done with TCP/IP libraries
860$!
861$ ENDIF
862$!
863$! Special Threads For OpenVMS v7.1 Or Later
864$!
865$! Written By: Richard Levitte
866$! richard@levitte.org
867$!
868$!
869$! Check To See If We Have A Option For P6.
870$!
871$ IF (P6.EQS."")
872$ THEN
873$!
874$! Get The Version Of VMS We Are Using.
875$!
876$ ISSEVEN :=
877$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
878$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
879$!
880$! Check To See If The VMS Version Is v7.1 Or Later.
881$!
882$ IF (TMP.GE.71)
883$ THEN
884$!
885$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
886$!
887$ ISSEVEN := ,PTHREAD_USE_D4
888$!
889$! End The VMS Version Check.
890$!
891$ ENDIF
892$!
893$! End The P6 Check.
894$!
895$ ENDIF
896$!
897$! Time To RETURN...
898$!
899$ RETURN