xref: /minix3/crypto/external/bsd/openssl/dist/test/maketests.com (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1ebfedea0SLionel Sambuc$!
2ebfedea0SLionel Sambuc$!  MAKETESTS.COM
3ebfedea0SLionel Sambuc$!  Written By:  Robert Byer
4ebfedea0SLionel Sambuc$!               Vice-President
5ebfedea0SLionel Sambuc$!               A-Com Computing, Inc.
6ebfedea0SLionel Sambuc$!               byer@mail.all-net.net
7ebfedea0SLionel Sambuc$!
8ebfedea0SLionel Sambuc$!  Changes by Richard Levitte <richard@levitte.org>
9*0a6a1f1dSLionel Sambuc$!             Zoltan Arpadffy <arpadffy@polarhome.com>
10ebfedea0SLionel Sambuc$!
11ebfedea0SLionel Sambuc$!  This command files compiles and creates all the various different
12ebfedea0SLionel Sambuc$!  "test" programs for the different types of encryption for OpenSSL.
13ebfedea0SLionel Sambuc$!  It was written so it would try to determine what "C" compiler to
14ebfedea0SLionel Sambuc$!  use or you can specify which "C" compiler to use.
15ebfedea0SLionel Sambuc$!
16ebfedea0SLionel Sambuc$!  The test "executables" will be placed in a directory called
17ebfedea0SLionel Sambuc$!  [.xxx.EXE.TEST] where "xxx" denotes ALPHA, IA64, or VAX, depending
18ebfedea0SLionel Sambuc$!  on your machine architecture.
19ebfedea0SLionel Sambuc$!
20ebfedea0SLionel Sambuc$!  Specify DEBUG or NODEBUG P1 to compile with or without debugger
21ebfedea0SLionel Sambuc$!  information.
22ebfedea0SLionel Sambuc$!
23ebfedea0SLionel Sambuc$!  Specify which compiler at P2 to try to compile under.
24ebfedea0SLionel Sambuc$!
25ebfedea0SLionel Sambuc$!	   VAXC	 For VAX C.
26ebfedea0SLionel Sambuc$!	   DECC	 For DEC C.
27ebfedea0SLionel Sambuc$!	   GNUC	 For GNU C.
28ebfedea0SLionel Sambuc$!
29ebfedea0SLionel Sambuc$!  If you don't specify a compiler, it will try to determine which
30ebfedea0SLionel Sambuc$!  "C" compiler to use.
31ebfedea0SLionel Sambuc$!
32ebfedea0SLionel Sambuc$!  P3, if defined, sets a TCP/IP library to use, through one of the following
33ebfedea0SLionel Sambuc$!  keywords:
34ebfedea0SLionel Sambuc$!
35ebfedea0SLionel Sambuc$!	UCX		for UCX
36ebfedea0SLionel Sambuc$!	SOCKETSHR	for SOCKETSHR+NETLIB
37ebfedea0SLionel Sambuc$!
38ebfedea0SLionel Sambuc$!  P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
39ebfedea0SLionel Sambuc$!
40ebfedea0SLionel Sambuc$!
41ebfedea0SLionel Sambuc$!  P5, if defined, specifies the C pointer size.  Ignored on VAX.
42ebfedea0SLionel Sambuc$!      ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
43ebfedea0SLionel Sambuc$!      Supported values are:
44ebfedea0SLionel Sambuc$!
45ebfedea0SLionel Sambuc$!      ""       Compile with default (/NOPOINTER_SIZE)
46ebfedea0SLionel Sambuc$!      32       Compile with /POINTER_SIZE=32 (SHORT)
47ebfedea0SLionel Sambuc$!      64       Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV])
48ebfedea0SLionel Sambuc$!               (Automatically select ARGV if compiler supports it.)
49ebfedea0SLionel Sambuc$!      64=      Compile with /POINTER_SIZE=64 (LONG).
50ebfedea0SLionel Sambuc$!      64=ARGV  Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
51ebfedea0SLionel Sambuc$!
52ebfedea0SLionel Sambuc$!  P6, if defined, specifies a directory where ZLIB files (zlib.h,
53ebfedea0SLionel Sambuc$!  libz.olb) may be found.  Optionally, a non-default object library
54ebfedea0SLionel Sambuc$!  name may be included ("dev:[dir]libz_64.olb", for example).
55ebfedea0SLionel Sambuc$!
56ebfedea0SLionel Sambuc$!
57ebfedea0SLionel Sambuc$! Announce/identify.
58ebfedea0SLionel Sambuc$!
59ebfedea0SLionel Sambuc$ proc = f$environment( "procedure")
60ebfedea0SLionel Sambuc$ write sys$output "@@@ "+ -
61ebfedea0SLionel Sambuc   f$parse( proc, , , "name")+ f$parse( proc, , , "type")
62ebfedea0SLionel Sambuc$!
63ebfedea0SLionel Sambuc$! Define A TCP/IP Library That We Will Need To Link To.
64ebfedea0SLionel Sambuc$! (That is, If We Need To Link To One.)
65ebfedea0SLionel Sambuc$!
66ebfedea0SLionel Sambuc$ TCPIP_LIB = ""
67ebfedea0SLionel Sambuc$ ZLIB_LIB = ""
68ebfedea0SLionel Sambuc$!
69ebfedea0SLionel Sambuc$! Check Which Architecture We Are Using.
70ebfedea0SLionel Sambuc$!
71ebfedea0SLionel Sambuc$ if (f$getsyi( "cpu") .lt. 128)
72ebfedea0SLionel Sambuc$ then
73ebfedea0SLionel Sambuc$    ARCH = "VAX"
74ebfedea0SLionel Sambuc$ else
75ebfedea0SLionel Sambuc$    ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
76ebfedea0SLionel Sambuc$    if (ARCH .eqs. "") then ARCH = "UNK"
77ebfedea0SLionel Sambuc$ endif
78ebfedea0SLionel Sambuc$!
79ebfedea0SLionel Sambuc$ ARCHD = ARCH
80ebfedea0SLionel Sambuc$ LIB32 = "32"
81ebfedea0SLionel Sambuc$ OPT_FILE = ""
82ebfedea0SLionel Sambuc$ POINTER_SIZE = ""
83ebfedea0SLionel Sambuc$!
84ebfedea0SLionel Sambuc$! Check To Make Sure We Have Valid Command Line Parameters.
85ebfedea0SLionel Sambuc$!
86ebfedea0SLionel Sambuc$ GOSUB CHECK_OPTIONS
87ebfedea0SLionel Sambuc$!
88ebfedea0SLionel Sambuc$! Define The OBJ and EXE Directories.
89ebfedea0SLionel Sambuc$!
90ebfedea0SLionel Sambuc$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST]
91ebfedea0SLionel Sambuc$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST]
92ebfedea0SLionel Sambuc$!
93ebfedea0SLionel Sambuc$! Specify the destination directory in any /MAP option.
94ebfedea0SLionel Sambuc$!
95ebfedea0SLionel Sambuc$ if (LINKMAP .eqs. "MAP")
96ebfedea0SLionel Sambuc$ then
97ebfedea0SLionel Sambuc$   LINKMAP = LINKMAP+ "=''EXE_DIR'"
98ebfedea0SLionel Sambuc$ endif
99ebfedea0SLionel Sambuc$!
100ebfedea0SLionel Sambuc$! Add the location prefix to the linker options file name.
101ebfedea0SLionel Sambuc$!
102ebfedea0SLionel Sambuc$ if (OPT_FILE .nes. "")
103ebfedea0SLionel Sambuc$ then
104ebfedea0SLionel Sambuc$   OPT_FILE = EXE_DIR+ OPT_FILE
105ebfedea0SLionel Sambuc$ endif
106ebfedea0SLionel Sambuc$!
107ebfedea0SLionel Sambuc$! Initialise logical names and such
108ebfedea0SLionel Sambuc$!
109ebfedea0SLionel Sambuc$ GOSUB INITIALISE
110ebfedea0SLionel Sambuc$!
111ebfedea0SLionel Sambuc$! Tell The User What Kind of Machine We Run On.
112ebfedea0SLionel Sambuc$!
113ebfedea0SLionel Sambuc$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
114ebfedea0SLionel Sambuc$!
115ebfedea0SLionel Sambuc$! Define The CRYPTO-LIB We Are To Use.
116ebfedea0SLionel Sambuc$!
117ebfedea0SLionel Sambuc$ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB
118ebfedea0SLionel Sambuc$!
119ebfedea0SLionel Sambuc$! Define The SSL We Are To Use.
120ebfedea0SLionel Sambuc$!
121ebfedea0SLionel Sambuc$ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB
122ebfedea0SLionel Sambuc$!
123ebfedea0SLionel Sambuc$! Create the OBJ and EXE Directories, if needed.
124ebfedea0SLionel Sambuc$!
125ebfedea0SLionel Sambuc$ IF (F$PARSE(OBJ_DIR).EQS."") THEN -
126ebfedea0SLionel Sambuc   CREATE /DIRECTORY 'OBJ_DIR'
127ebfedea0SLionel Sambuc$ IF (F$PARSE(EXE_DIR).EQS."") THEN -
128ebfedea0SLionel Sambuc   CREATE /DIRECTORY 'EXE_DIR'
129ebfedea0SLionel Sambuc$!
130ebfedea0SLionel Sambuc$! Check To See If We Have The Proper Libraries.
131ebfedea0SLionel Sambuc$!
132ebfedea0SLionel Sambuc$ GOSUB LIB_CHECK
133ebfedea0SLionel Sambuc$!
134ebfedea0SLionel Sambuc$! Check To See If We Have A Linker Option File.
135ebfedea0SLionel Sambuc$!
136ebfedea0SLionel Sambuc$ GOSUB CHECK_OPT_FILE
137ebfedea0SLionel Sambuc$!
138ebfedea0SLionel Sambuc$! Define The TEST Files.
139ebfedea0SLionel Sambuc$! NOTE: Some might think this list ugly.  However, it's made this way to
140ebfedea0SLionel Sambuc$! reflect the EXE variable in Makefile as closely as possible,
141ebfedea0SLionel Sambuc$! thereby making it fairly easy to verify that the lists are the same.
142ebfedea0SLionel Sambuc$!
143ebfedea0SLionel Sambuc$ TEST_FILES = "BNTEST,ECTEST,ECDSATEST,ECDHTEST,IDEATEST,"+ -
144ebfedea0SLionel Sambuc	       "MD2TEST,MD4TEST,MD5TEST,HMACTEST,WP_TEST,"+ -
145ebfedea0SLionel Sambuc	       "RC2TEST,RC4TEST,RC5TEST,"+ -
146ebfedea0SLionel Sambuc	       "DESTEST,SHATEST,SHA1TEST,SHA256T,SHA512T,"+ -
147ebfedea0SLionel Sambuc	       "MDC2TEST,RMDTEST,"+ -
148ebfedea0SLionel Sambuc	       "RANDTEST,DHTEST,ENGINETEST,"+ -
149ebfedea0SLionel Sambuc	       "BFTEST,CASTTEST,SSLTEST,EXPTEST,DSATEST,RSA_TEST,"+ -
150ebfedea0SLionel Sambuc	       "EVP_TEST,IGETEST,JPAKETEST,SRPTEST,"+ -
151*0a6a1f1dSLionel Sambuc	       "ASN1TEST,HEARTBEAT_TEST,CONSTANT_TIME_TEST"
152ebfedea0SLionel Sambuc$! Should we add MTTEST,PQ_TEST,LH_TEST,DIVTEST,TABTEST as well?
153ebfedea0SLionel Sambuc$!
154ebfedea0SLionel Sambuc$! Additional directory information.
155ebfedea0SLionel Sambuc$ T_D_BNTEST     := [-.crypto.bn]
156ebfedea0SLionel Sambuc$ T_D_ECTEST     := [-.crypto.ec]
157ebfedea0SLionel Sambuc$ T_D_ECDSATEST  := [-.crypto.ecdsa]
158ebfedea0SLionel Sambuc$ T_D_ECDHTEST   := [-.crypto.ecdh]
159ebfedea0SLionel Sambuc$ T_D_IDEATEST   := [-.crypto.idea]
160ebfedea0SLionel Sambuc$ T_D_MD2TEST    := [-.crypto.md2]
161ebfedea0SLionel Sambuc$ T_D_MD4TEST    := [-.crypto.md4]
162ebfedea0SLionel Sambuc$ T_D_MD5TEST    := [-.crypto.md5]
163ebfedea0SLionel Sambuc$ T_D_HMACTEST   := [-.crypto.hmac]
164ebfedea0SLionel Sambuc$ T_D_WP_TEST    := [-.crypto.whrlpool]
165ebfedea0SLionel Sambuc$ T_D_RC2TEST    := [-.crypto.rc2]
166ebfedea0SLionel Sambuc$ T_D_RC4TEST    := [-.crypto.rc4]
167ebfedea0SLionel Sambuc$ T_D_RC5TEST    := [-.crypto.rc5]
168ebfedea0SLionel Sambuc$ T_D_DESTEST    := [-.crypto.des]
169ebfedea0SLionel Sambuc$ T_D_SHATEST    := [-.crypto.sha]
170ebfedea0SLionel Sambuc$ T_D_SHA1TEST   := [-.crypto.sha]
171ebfedea0SLionel Sambuc$ T_D_SHA256T    := [-.crypto.sha]
172ebfedea0SLionel Sambuc$ T_D_SHA512T    := [-.crypto.sha]
173ebfedea0SLionel Sambuc$ T_D_MDC2TEST   := [-.crypto.mdc2]
174ebfedea0SLionel Sambuc$ T_D_RMDTEST    := [-.crypto.ripemd]
175ebfedea0SLionel Sambuc$ T_D_RANDTEST   := [-.crypto.rand]
176ebfedea0SLionel Sambuc$ T_D_DHTEST     := [-.crypto.dh]
177ebfedea0SLionel Sambuc$ T_D_ENGINETEST := [-.crypto.engine]
178ebfedea0SLionel Sambuc$ T_D_BFTEST     := [-.crypto.bf]
179ebfedea0SLionel Sambuc$ T_D_CASTTEST   := [-.crypto.cast]
180ebfedea0SLionel Sambuc$ T_D_SSLTEST    := [-.ssl]
181ebfedea0SLionel Sambuc$ T_D_EXPTEST    := [-.crypto.bn]
182ebfedea0SLionel Sambuc$ T_D_DSATEST    := [-.crypto.dsa]
183ebfedea0SLionel Sambuc$ T_D_RSA_TEST   := [-.crypto.rsa]
184ebfedea0SLionel Sambuc$ T_D_EVP_TEST   := [-.crypto.evp]
185ebfedea0SLionel Sambuc$ T_D_IGETEST    := [-.test]
186ebfedea0SLionel Sambuc$ T_D_JPAKETEST  := [-.crypto.jpake]
187ebfedea0SLionel Sambuc$ T_D_SRPTEST    := [-.crypto.srp]
188ebfedea0SLionel Sambuc$ T_D_ASN1TEST   := [-.test]
189*0a6a1f1dSLionel Sambuc$ T_D_HEARTBEAT_TEST := [-.ssl]
190*0a6a1f1dSLionel Sambuc$ T_D_CONSTANT_TIME_TEST := [-.crypto]
191ebfedea0SLionel Sambuc$!
192ebfedea0SLionel Sambuc$ TCPIP_PROGRAMS = ",,"
193ebfedea0SLionel Sambuc$ IF COMPILER .EQS. "VAXC" THEN -
194ebfedea0SLionel Sambuc     TCPIP_PROGRAMS = ",SSLTEST,"
195ebfedea0SLionel Sambuc$!
196ebfedea0SLionel Sambuc$! Define A File Counter And Set It To "0".
197ebfedea0SLionel Sambuc$!
198ebfedea0SLionel Sambuc$ FILE_COUNTER = 0
199ebfedea0SLionel Sambuc$!
200ebfedea0SLionel Sambuc$! Top Of The File Loop.
201ebfedea0SLionel Sambuc$!
202ebfedea0SLionel Sambuc$ NEXT_FILE:
203ebfedea0SLionel Sambuc$!
204ebfedea0SLionel Sambuc$! O.K, Extract The File Name From The File List.
205ebfedea0SLionel Sambuc$!
206ebfedea0SLionel Sambuc$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES)
207ebfedea0SLionel Sambuc$!
208ebfedea0SLionel Sambuc$! Check To See If We Are At The End Of The File List.
209ebfedea0SLionel Sambuc$!
210ebfedea0SLionel Sambuc$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
211ebfedea0SLionel Sambuc$!
212ebfedea0SLionel Sambuc$! Increment The Counter.
213ebfedea0SLionel Sambuc$!
214ebfedea0SLionel Sambuc$ FILE_COUNTER = FILE_COUNTER + 1
215ebfedea0SLionel Sambuc$!
216ebfedea0SLionel Sambuc$! Create The Source File Name.
217ebfedea0SLionel Sambuc$!
218ebfedea0SLionel Sambuc$ SOURCE_FILE = "SYS$DISK:" + T_D_'FILE_NAME' + FILE_NAME + ".C"
219ebfedea0SLionel Sambuc$!
220ebfedea0SLionel Sambuc$! Create The Object File Name.
221ebfedea0SLionel Sambuc$!
222ebfedea0SLionel Sambuc$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
223ebfedea0SLionel Sambuc$!
224ebfedea0SLionel Sambuc$! Create The Executable File Name.
225ebfedea0SLionel Sambuc$!
226ebfedea0SLionel Sambuc$ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE"
227ebfedea0SLionel Sambuc$ ON WARNING THEN GOTO NEXT_FILE
228ebfedea0SLionel Sambuc$!
229ebfedea0SLionel Sambuc$! Check To See If The File We Want To Compile Actually Exists.
230ebfedea0SLionel Sambuc$!
231ebfedea0SLionel Sambuc$ IF (F$SEARCH(SOURCE_FILE).EQS."")
232ebfedea0SLionel Sambuc$ THEN
233ebfedea0SLionel Sambuc$!
234ebfedea0SLionel Sambuc$!  Tell The User That The File Dosen't Exist.
235ebfedea0SLionel Sambuc$!
236ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
237ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
238ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
239ebfedea0SLionel Sambuc$!
240ebfedea0SLionel Sambuc$!  Exit The Build.
241ebfedea0SLionel Sambuc$!
242ebfedea0SLionel Sambuc$   GOTO EXIT
243ebfedea0SLionel Sambuc$ ENDIF
244ebfedea0SLionel Sambuc$!
245ebfedea0SLionel Sambuc$! Tell The User What We Are Building.
246ebfedea0SLionel Sambuc$!
247ebfedea0SLionel Sambuc$ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program."
248ebfedea0SLionel Sambuc$!
249ebfedea0SLionel Sambuc$! Compile The File.
250ebfedea0SLionel Sambuc$!
251ebfedea0SLionel Sambuc$ ON ERROR THEN GOTO NEXT_FILE
252ebfedea0SLionel Sambuc$ CC /OBJECT='OBJECT_FILE' 'SOURCE_FILE'
253ebfedea0SLionel Sambuc$ ON WARNING THEN GOTO NEXT_FILE
254ebfedea0SLionel Sambuc$!
255ebfedea0SLionel Sambuc$! Check If What We Are About To Compile Works Without A TCP/IP Library.
256ebfedea0SLionel Sambuc$!
257ebfedea0SLionel Sambuc$ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS))
258ebfedea0SLionel Sambuc$ THEN
259ebfedea0SLionel Sambuc$!
260ebfedea0SLionel Sambuc$!  Inform The User That A TCP/IP Library Is Needed To Compile This Program.
261ebfedea0SLionel Sambuc$!
262ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT -
263ebfedea0SLionel Sambuc	  FILE_NAME," Needs A TCP/IP Library.  Can't Link.  Skipping..."
264ebfedea0SLionel Sambuc$   GOTO NEXT_FILE
265ebfedea0SLionel Sambuc$!
266ebfedea0SLionel Sambuc$! End The TCP/IP Library Check.
267ebfedea0SLionel Sambuc$!
268ebfedea0SLionel Sambuc$ ENDIF
269ebfedea0SLionel Sambuc$!
270ebfedea0SLionel Sambuc$! Link The Program, Check To See If We Need To Link With RSAREF Or Not.
271ebfedea0SLionel Sambuc$! Check To See If We Are To Link With A Specific TCP/IP Library.
272ebfedea0SLionel Sambuc$!
273ebfedea0SLionel Sambuc$!  Don't Link With The RSAREF Routines And TCP/IP Library.
274ebfedea0SLionel Sambuc$!
275ebfedea0SLionel Sambuc$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' -
276ebfedea0SLionel Sambuc   'OBJECT_FILE', -
277ebfedea0SLionel Sambuc   'SSL_LIB' /LIBRARY, -
278ebfedea0SLionel Sambuc   'CRYPTO_LIB' /LIBRARY -
279ebfedea0SLionel Sambuc   'TCPIP_LIB' -
280ebfedea0SLionel Sambuc   'ZLIB_LIB' -
281ebfedea0SLionel Sambuc   ,'OPT_FILE' /OPTIONS
282ebfedea0SLionel Sambuc$!
283ebfedea0SLionel Sambuc$! Go Back And Do It Again.
284ebfedea0SLionel Sambuc$!
285ebfedea0SLionel Sambuc$ GOTO NEXT_FILE
286ebfedea0SLionel Sambuc$!
287ebfedea0SLionel Sambuc$! All Done With This Library Part.
288ebfedea0SLionel Sambuc$!
289ebfedea0SLionel Sambuc$ FILE_DONE:
290ebfedea0SLionel Sambuc$!
291ebfedea0SLionel Sambuc$! All Done, Time To Exit.
292ebfedea0SLionel Sambuc$!
293ebfedea0SLionel Sambuc$ EXIT:
294ebfedea0SLionel Sambuc$ GOSUB CLEANUP
295ebfedea0SLionel Sambuc$ EXIT
296ebfedea0SLionel Sambuc$!
297ebfedea0SLionel Sambuc$! Check For The Link Option FIle.
298ebfedea0SLionel Sambuc$!
299ebfedea0SLionel Sambuc$ CHECK_OPT_FILE:
300ebfedea0SLionel Sambuc$!
301ebfedea0SLionel Sambuc$! Check To See If We Need To Make A VAX C Option File.
302ebfedea0SLionel Sambuc$!
303ebfedea0SLionel Sambuc$ IF (COMPILER.EQS."VAXC")
304ebfedea0SLionel Sambuc$ THEN
305ebfedea0SLionel Sambuc$!
306ebfedea0SLionel Sambuc$!  Check To See If We Already Have A VAX C Linker Option File.
307ebfedea0SLionel Sambuc$!
308ebfedea0SLionel Sambuc$   IF (F$SEARCH(OPT_FILE).EQS."")
309ebfedea0SLionel Sambuc$   THEN
310ebfedea0SLionel Sambuc$!
311ebfedea0SLionel Sambuc$!    We Need A VAX C Linker Option File.
312ebfedea0SLionel Sambuc$!
313ebfedea0SLionel Sambuc$     CREATE 'OPT_FILE'
314ebfedea0SLionel Sambuc$DECK
315ebfedea0SLionel Sambuc!
316ebfedea0SLionel Sambuc! Default System Options File To Link Against
317ebfedea0SLionel Sambuc! The Sharable VAX C Runtime Library.
318ebfedea0SLionel Sambuc!
319ebfedea0SLionel SambucSYS$SHARE:VAXCRTL.EXE /SHAREABLE
320ebfedea0SLionel Sambuc$EOD
321ebfedea0SLionel Sambuc$!
322ebfedea0SLionel Sambuc$!  End The Option File Check.
323ebfedea0SLionel Sambuc$!
324ebfedea0SLionel Sambuc$   ENDIF
325ebfedea0SLionel Sambuc$!
326ebfedea0SLionel Sambuc$! End The VAXC Check.
327ebfedea0SLionel Sambuc$!
328ebfedea0SLionel Sambuc$ ENDIF
329ebfedea0SLionel Sambuc$!
330ebfedea0SLionel Sambuc$! Check To See If We Need A GNU C Option File.
331ebfedea0SLionel Sambuc$!
332ebfedea0SLionel Sambuc$ IF (COMPILER.EQS."GNUC")
333ebfedea0SLionel Sambuc$ THEN
334ebfedea0SLionel Sambuc$!
335ebfedea0SLionel Sambuc$!  Check To See If We Already Have A GNU C Linker Option File.
336ebfedea0SLionel Sambuc$!
337ebfedea0SLionel Sambuc$   IF (F$SEARCH(OPT_FILE).EQS."")
338ebfedea0SLionel Sambuc$   THEN
339ebfedea0SLionel Sambuc$!
340ebfedea0SLionel Sambuc$!    We Need A GNU C Linker Option File.
341ebfedea0SLionel Sambuc$!
342ebfedea0SLionel Sambuc$     CREATE 'OPT_FILE'
343ebfedea0SLionel Sambuc$DECK
344ebfedea0SLionel Sambuc!
345ebfedea0SLionel Sambuc! Default System Options File To Link Against
346ebfedea0SLionel Sambuc! The Sharable C Runtime Library.
347ebfedea0SLionel Sambuc!
348ebfedea0SLionel SambucGNU_CC:[000000]GCCLIB.OLB /LIBRARY
349ebfedea0SLionel SambucSYS$SHARE:VAXCRTL.EXE /SHAREABLE
350ebfedea0SLionel Sambuc$EOD
351ebfedea0SLionel Sambuc$!
352ebfedea0SLionel Sambuc$!  End The Option File Check.
353ebfedea0SLionel Sambuc$!
354ebfedea0SLionel Sambuc$   ENDIF
355ebfedea0SLionel Sambuc$!
356ebfedea0SLionel Sambuc$! End The GNU C Check.
357ebfedea0SLionel Sambuc$!
358ebfedea0SLionel Sambuc$ ENDIF
359ebfedea0SLionel Sambuc$!
360ebfedea0SLionel Sambuc$! Check To See If We Need A DEC C Option File.
361ebfedea0SLionel Sambuc$!
362ebfedea0SLionel Sambuc$ IF (COMPILER.EQS."DECC")
363ebfedea0SLionel Sambuc$ THEN
364ebfedea0SLionel Sambuc$!
365ebfedea0SLionel Sambuc$!  Check To See If We Already Have A DEC C Linker Option File.
366ebfedea0SLionel Sambuc$!
367ebfedea0SLionel Sambuc$   IF (F$SEARCH(OPT_FILE).EQS."")
368ebfedea0SLionel Sambuc$   THEN
369ebfedea0SLionel Sambuc$!
370ebfedea0SLionel Sambuc$!    Figure Out If We Need A non-VAX Or A VAX Linker Option File.
371ebfedea0SLionel Sambuc$!
372ebfedea0SLionel Sambuc$     IF (ARCH.EQS."VAX")
373ebfedea0SLionel Sambuc$     THEN
374ebfedea0SLionel Sambuc$!
375ebfedea0SLionel Sambuc$!      We Need A DEC C Linker Option File For VAX.
376ebfedea0SLionel Sambuc$!
377ebfedea0SLionel Sambuc$       CREATE 'OPT_FILE'
378ebfedea0SLionel Sambuc$DECK
379ebfedea0SLionel Sambuc!
380ebfedea0SLionel Sambuc! Default System Options File To Link Against
381ebfedea0SLionel Sambuc! The Sharable DEC C Runtime Library.
382ebfedea0SLionel Sambuc!
383ebfedea0SLionel SambucSYS$SHARE:DECC$SHR.EXE /SHAREABLE
384ebfedea0SLionel Sambuc$EOD
385ebfedea0SLionel Sambuc$!
386ebfedea0SLionel Sambuc$!    Else...
387ebfedea0SLionel Sambuc$!
388ebfedea0SLionel Sambuc$     ELSE
389ebfedea0SLionel Sambuc$!
390ebfedea0SLionel Sambuc$!      Create The non-VAX Linker Option File.
391ebfedea0SLionel Sambuc$!
392ebfedea0SLionel Sambuc$       CREATE 'OPT_FILE'
393ebfedea0SLionel Sambuc$DECK
394ebfedea0SLionel Sambuc!
395ebfedea0SLionel Sambuc! Default System Options File For non-VAX To Link Against
396ebfedea0SLionel Sambuc! The Sharable C Runtime Library.
397ebfedea0SLionel Sambuc!
398ebfedea0SLionel SambucSYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE
399ebfedea0SLionel SambucSYS$SHARE:CMA$OPEN_RTL.EXE /SHAREABLE
400ebfedea0SLionel Sambuc$EOD
401ebfedea0SLionel Sambuc$!
402ebfedea0SLionel Sambuc$!    End The DEC C Option File Check.
403ebfedea0SLionel Sambuc$!
404ebfedea0SLionel Sambuc$     ENDIF
405ebfedea0SLionel Sambuc$!
406ebfedea0SLionel Sambuc$!  End The Option File Search.
407ebfedea0SLionel Sambuc$!
408ebfedea0SLionel Sambuc$   ENDIF
409ebfedea0SLionel Sambuc$!
410ebfedea0SLionel Sambuc$! End The DEC C Check.
411ebfedea0SLionel Sambuc$!
412ebfedea0SLionel Sambuc$ ENDIF
413ebfedea0SLionel Sambuc$!
414ebfedea0SLionel Sambuc$!  Tell The User What Linker Option File We Are Using.
415ebfedea0SLionel Sambuc$!
416ebfedea0SLionel Sambuc$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
417ebfedea0SLionel Sambuc$!
418ebfedea0SLionel Sambuc$! Time To RETURN.
419ebfedea0SLionel Sambuc$!
420ebfedea0SLionel Sambuc$ RETURN
421ebfedea0SLionel Sambuc$!
422ebfedea0SLionel Sambuc$! Check To See If We Have The Appropiate Libraries.
423ebfedea0SLionel Sambuc$!
424ebfedea0SLionel Sambuc$ LIB_CHECK:
425ebfedea0SLionel Sambuc$!
426ebfedea0SLionel Sambuc$! Look For The Library LIBCRYPTO.OLB.
427ebfedea0SLionel Sambuc$!
428ebfedea0SLionel Sambuc$ IF (F$SEARCH(CRYPTO_LIB).EQS."")
429ebfedea0SLionel Sambuc$ THEN
430ebfedea0SLionel Sambuc$!
431ebfedea0SLionel Sambuc$!  Tell The User We Can't Find The LIBCRYPTO.OLB Library.
432ebfedea0SLionel Sambuc$!
433ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
434ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"."
435ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "We Can't Link Without It."
436ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
437ebfedea0SLionel Sambuc$!
438ebfedea0SLionel Sambuc$!  Since We Can't Link Without It, Exit.
439ebfedea0SLionel Sambuc$!
440ebfedea0SLionel Sambuc$   EXIT
441ebfedea0SLionel Sambuc$!
442ebfedea0SLionel Sambuc$! End The Crypto Library Check.
443ebfedea0SLionel Sambuc$!
444ebfedea0SLionel Sambuc$ ENDIF
445ebfedea0SLionel Sambuc$!
446ebfedea0SLionel Sambuc$! Look For The Library LIBSSL.OLB.
447ebfedea0SLionel Sambuc$!
448ebfedea0SLionel Sambuc$ IF (F$SEARCH(SSL_LIB).EQS."")
449ebfedea0SLionel Sambuc$ THEN
450ebfedea0SLionel Sambuc$!
451ebfedea0SLionel Sambuc$!  Tell The User We Can't Find The LIBSSL.OLB Library.
452ebfedea0SLionel Sambuc$!
453ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
454ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"."
455ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It."
456ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
457ebfedea0SLionel Sambuc$!
458ebfedea0SLionel Sambuc$!  Since We Can't Link Without It, Exit.
459ebfedea0SLionel Sambuc$!
460ebfedea0SLionel Sambuc$   EXIT
461ebfedea0SLionel Sambuc$!
462ebfedea0SLionel Sambuc$! End The SSL Library Check.
463ebfedea0SLionel Sambuc$!
464ebfedea0SLionel Sambuc$ ENDIF
465ebfedea0SLionel Sambuc$!
466ebfedea0SLionel Sambuc$! Time To Return.
467ebfedea0SLionel Sambuc$!
468ebfedea0SLionel Sambuc$ RETURN
469ebfedea0SLionel Sambuc$!
470ebfedea0SLionel Sambuc$! Check The User's Options.
471ebfedea0SLionel Sambuc$!
472ebfedea0SLionel Sambuc$ CHECK_OPTIONS:
473ebfedea0SLionel Sambuc$!
474ebfedea0SLionel Sambuc$! Set basic C compiler /INCLUDE directories.
475ebfedea0SLionel Sambuc$!
476ebfedea0SLionel Sambuc$ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]"
477ebfedea0SLionel Sambuc$!
478ebfedea0SLionel Sambuc$! Check To See If P1 Is Blank.
479ebfedea0SLionel Sambuc$!
480ebfedea0SLionel Sambuc$ IF (P1.EQS."NODEBUG")
481ebfedea0SLionel Sambuc$ THEN
482ebfedea0SLionel Sambuc$!
483ebfedea0SLionel Sambuc$!  P1 Is NODEBUG, So Compile Without Debugger Information.
484ebfedea0SLionel Sambuc$!
485ebfedea0SLionel Sambuc$   DEBUGGER  = "NODEBUG"
486ebfedea0SLionel Sambuc$   LINKMAP = "NOMAP"
487ebfedea0SLionel Sambuc$   TRACEBACK = "NOTRACEBACK"
488ebfedea0SLionel Sambuc$   GCC_OPTIMIZE = "OPTIMIZE"
489ebfedea0SLionel Sambuc$   CC_OPTIMIZE = "OPTIMIZE"
490ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
491ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
492ebfedea0SLionel Sambuc$!
493ebfedea0SLionel Sambuc$! Else...
494ebfedea0SLionel Sambuc$!
495ebfedea0SLionel Sambuc$ ELSE
496ebfedea0SLionel Sambuc$!
497ebfedea0SLionel Sambuc$!  Check To See If We Are To Compile With Debugger Information.
498ebfedea0SLionel Sambuc$!
499ebfedea0SLionel Sambuc$   IF (P1.EQS."DEBUG")
500ebfedea0SLionel Sambuc$   THEN
501ebfedea0SLionel Sambuc$!
502ebfedea0SLionel Sambuc$!    Compile With Debugger Information.
503ebfedea0SLionel Sambuc$!
504ebfedea0SLionel Sambuc$     DEBUGGER  = "DEBUG"
505ebfedea0SLionel Sambuc$     LINKMAP = "MAP"
506ebfedea0SLionel Sambuc$     TRACEBACK = "TRACEBACK"
507ebfedea0SLionel Sambuc$     GCC_OPTIMIZE = "NOOPTIMIZE"
508ebfedea0SLionel Sambuc$     CC_OPTIMIZE = "NOOPTIMIZE"
509ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
510ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
511ebfedea0SLionel Sambuc$!
512ebfedea0SLionel Sambuc$!  Else...
513ebfedea0SLionel Sambuc$!
514ebfedea0SLionel Sambuc$   ELSE
515ebfedea0SLionel Sambuc$!
516ebfedea0SLionel Sambuc$!    Tell The User Entered An Invalid Option.
517ebfedea0SLionel Sambuc$!
518ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
519ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "The Option ",P1," Is Invalid.  The Valid Options Are:"
520ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
521ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "    DEBUG    :  Compile With The Debugger Information."
522ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "    NODEBUG  :  Compile Without The Debugger Information."
523ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
524ebfedea0SLionel Sambuc$!
525ebfedea0SLionel Sambuc$!    Time To EXIT.
526ebfedea0SLionel Sambuc$!
527ebfedea0SLionel Sambuc$     EXIT
528ebfedea0SLionel Sambuc$!
529ebfedea0SLionel Sambuc$!  End The Valid Argument Check.
530ebfedea0SLionel Sambuc$!
531ebfedea0SLionel Sambuc$   ENDIF
532ebfedea0SLionel Sambuc$!
533ebfedea0SLionel Sambuc$! End The P1 Check.
534ebfedea0SLionel Sambuc$!
535ebfedea0SLionel Sambuc$ ENDIF
536ebfedea0SLionel Sambuc$!
537ebfedea0SLionel Sambuc$! Check P5 (POINTER_SIZE).
538ebfedea0SLionel Sambuc$!
539ebfedea0SLionel Sambuc$ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX")
540ebfedea0SLionel Sambuc$ THEN
541ebfedea0SLionel Sambuc$!
542ebfedea0SLionel Sambuc$   IF (P5 .EQS. "32")
543ebfedea0SLionel Sambuc$   THEN
544ebfedea0SLionel Sambuc$     POINTER_SIZE = " /POINTER_SIZE=32"
545ebfedea0SLionel Sambuc$   ELSE
546ebfedea0SLionel Sambuc$     POINTER_SIZE = F$EDIT( P5, "COLLAPSE, UPCASE")
547ebfedea0SLionel Sambuc$     IF ((POINTER_SIZE .EQS. "64") .OR. -
548ebfedea0SLionel Sambuc       (POINTER_SIZE .EQS. "64=") .OR. -
549ebfedea0SLionel Sambuc       (POINTER_SIZE .EQS. "64=ARGV"))
550ebfedea0SLionel Sambuc$     THEN
551ebfedea0SLionel Sambuc$       ARCHD = ARCH+ "_64"
552ebfedea0SLionel Sambuc$       LIB32 = ""
553ebfedea0SLionel Sambuc$       IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=")
554ebfedea0SLionel Sambuc$       THEN
555ebfedea0SLionel Sambuc$!        Explicit user choice: "64" or "64=ARGV".
556ebfedea0SLionel Sambuc$         IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64"
557ebfedea0SLionel Sambuc$       ELSE
558ebfedea0SLionel Sambuc$         SET NOON
559ebfedea0SLionel Sambuc$         DEFINE /USER_MODE SYS$OUTPUT NL:
560ebfedea0SLionel Sambuc$         DEFINE /USER_MODE SYS$ERROR NL:
561ebfedea0SLionel Sambuc$         CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL:
562ebfedea0SLionel Sambuc$         IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000
563ebfedea0SLionel Sambuc$         THEN
564ebfedea0SLionel Sambuc$           ! If we got here, it means DCL complained like this:
565ebfedea0SLionel Sambuc$           ! %DCL-W-NOVALU, value not allowed - remove value specification
566ebfedea0SLionel Sambuc$           !  \64=\
567ebfedea0SLionel Sambuc$           !
568ebfedea0SLionel Sambuc$           ! If the compiler was run, logicals defined in /USER would
569ebfedea0SLionel Sambuc$           ! have been deassigned automatically.  However, when DCL
570ebfedea0SLionel Sambuc$           ! complains, they aren't, so we do it here (it might be
571ebfedea0SLionel Sambuc$           ! unnecessary, but just in case there will be another error
572ebfedea0SLionel Sambuc$           ! message further on that we don't want to miss)
573ebfedea0SLionel Sambuc$           DEASSIGN /USER_MODE SYS$ERROR
574ebfedea0SLionel Sambuc$           DEASSIGN /USER_MODE SYS$OUTPUT
575ebfedea0SLionel Sambuc$         ELSE
576ebfedea0SLionel Sambuc$           POINTER_SIZE = POINTER_SIZE + "=ARGV"
577ebfedea0SLionel Sambuc$         ENDIF
578ebfedea0SLionel Sambuc$         SET ON
579ebfedea0SLionel Sambuc$       ENDIF
580ebfedea0SLionel Sambuc$       POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'"
581ebfedea0SLionel Sambuc$     ELSE
582ebfedea0SLionel Sambuc$!
583ebfedea0SLionel Sambuc$!      Tell The User Entered An Invalid Option.
584ebfedea0SLionel Sambuc$!
585ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT ""
586ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT "The Option ", P5, -
587ebfedea0SLionel Sambuc         " Is Invalid.  The Valid Options Are:"
588ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT ""
589ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT -
590ebfedea0SLionel Sambuc         "    """"  :  Compile with default (short) pointers."
591ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT -
592ebfedea0SLionel Sambuc         "    32  :  Compile with 32-bit (short) pointers."
593ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT -
594ebfedea0SLionel Sambuc         "    64       :  Compile with 64-bit (long) pointers (auto ARGV)."
595ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT -
596ebfedea0SLionel Sambuc         "    64=      :  Compile with 64-bit (long) pointers (no ARGV)."
597ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT -
598ebfedea0SLionel Sambuc         "    64=ARGV  :  Compile with 64-bit (long) pointers (ARGV)."
599ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT ""
600ebfedea0SLionel Sambuc$!
601ebfedea0SLionel Sambuc$!      Time To EXIT.
602ebfedea0SLionel Sambuc$!
603ebfedea0SLionel Sambuc$       EXIT
604ebfedea0SLionel Sambuc$!
605ebfedea0SLionel Sambuc$     ENDIF
606ebfedea0SLionel Sambuc$!
607ebfedea0SLionel Sambuc$   ENDIF
608ebfedea0SLionel Sambuc$!
609ebfedea0SLionel Sambuc$! End The P5 (POINTER_SIZE) Check.
610ebfedea0SLionel Sambuc$!
611ebfedea0SLionel Sambuc$ ENDIF
612ebfedea0SLionel Sambuc$!
613ebfedea0SLionel Sambuc$! Check To See If P2 Is Blank.
614ebfedea0SLionel Sambuc$!
615ebfedea0SLionel Sambuc$ IF (P2.EQS."")
616ebfedea0SLionel Sambuc$ THEN
617ebfedea0SLionel Sambuc$!
618ebfedea0SLionel Sambuc$!  O.K., The User Didn't Specify A Compiler, Let's Try To
619ebfedea0SLionel Sambuc$!  Find Out Which One To Use.
620ebfedea0SLionel Sambuc$!
621ebfedea0SLionel Sambuc$!  Check To See If We Have GNU C.
622ebfedea0SLionel Sambuc$!
623ebfedea0SLionel Sambuc$   IF (F$TRNLNM("GNU_CC").NES."")
624ebfedea0SLionel Sambuc$   THEN
625ebfedea0SLionel Sambuc$!
626ebfedea0SLionel Sambuc$!    Looks Like GNUC, Set To Use GNUC.
627ebfedea0SLionel Sambuc$!
628ebfedea0SLionel Sambuc$     P2 = "GNUC"
629ebfedea0SLionel Sambuc$!
630ebfedea0SLionel Sambuc$!  End The GNU C Compiler Check.
631ebfedea0SLionel Sambuc$!
632ebfedea0SLionel Sambuc$   ELSE
633ebfedea0SLionel Sambuc$!
634ebfedea0SLionel Sambuc$!  Check To See If We Have VAXC Or DECC.
635ebfedea0SLionel Sambuc$!
636ebfedea0SLionel Sambuc$     IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
637ebfedea0SLionel Sambuc$     THEN
638ebfedea0SLionel Sambuc$!
639ebfedea0SLionel Sambuc$!      Looks Like DECC, Set To Use DECC.
640ebfedea0SLionel Sambuc$!
641ebfedea0SLionel Sambuc$       P2 = "DECC"
642ebfedea0SLionel Sambuc$!
643ebfedea0SLionel Sambuc$!      Else...
644ebfedea0SLionel Sambuc$!
645ebfedea0SLionel Sambuc$     ELSE
646ebfedea0SLionel Sambuc$!
647ebfedea0SLionel Sambuc$!      Looks Like VAXC, Set To Use VAXC.
648ebfedea0SLionel Sambuc$!
649ebfedea0SLionel Sambuc$       P2 = "VAXC"
650ebfedea0SLionel Sambuc$!
651ebfedea0SLionel Sambuc$!    End The VAXC Compiler Check.
652ebfedea0SLionel Sambuc$!
653ebfedea0SLionel Sambuc$     ENDIF
654ebfedea0SLionel Sambuc$!
655ebfedea0SLionel Sambuc$!  End The DECC & VAXC Compiler Check.
656ebfedea0SLionel Sambuc$!
657ebfedea0SLionel Sambuc$   ENDIF
658ebfedea0SLionel Sambuc$!
659ebfedea0SLionel Sambuc$!  End The Compiler Check.
660ebfedea0SLionel Sambuc$!
661ebfedea0SLionel Sambuc$ ENDIF
662ebfedea0SLionel Sambuc$!
663ebfedea0SLionel Sambuc$! Check To See If We Have A Option For P3.
664ebfedea0SLionel Sambuc$!
665ebfedea0SLionel Sambuc$ IF (P3.EQS."")
666ebfedea0SLionel Sambuc$ THEN
667ebfedea0SLionel Sambuc$!
668ebfedea0SLionel Sambuc$!  Find out what socket library we have available
669ebfedea0SLionel Sambuc$!
670ebfedea0SLionel Sambuc$   IF F$PARSE("SOCKETSHR:") .NES. ""
671ebfedea0SLionel Sambuc$   THEN
672ebfedea0SLionel Sambuc$!
673ebfedea0SLionel Sambuc$!    We have SOCKETSHR, and it is my opinion that it's the best to use.
674ebfedea0SLionel Sambuc$!
675ebfedea0SLionel Sambuc$     P3 = "SOCKETSHR"
676ebfedea0SLionel Sambuc$!
677ebfedea0SLionel Sambuc$!    Tell the user
678ebfedea0SLionel Sambuc$!
679ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
680ebfedea0SLionel Sambuc$!
681ebfedea0SLionel Sambuc$!    Else, let's look for something else
682ebfedea0SLionel Sambuc$!
683ebfedea0SLionel Sambuc$   ELSE
684ebfedea0SLionel Sambuc$!
685ebfedea0SLionel Sambuc$!    Like UCX (the reason to do this before Multinet is that the UCX
686ebfedea0SLionel Sambuc$!    emulation is easier to use...)
687ebfedea0SLionel Sambuc$!
688ebfedea0SLionel Sambuc$     IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
689ebfedea0SLionel Sambuc	 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
690ebfedea0SLionel Sambuc	 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
691ebfedea0SLionel Sambuc$     THEN
692ebfedea0SLionel Sambuc$!
693ebfedea0SLionel Sambuc$!	Last resort: a UCX or UCX-compatible library
694ebfedea0SLionel Sambuc$!
695ebfedea0SLionel Sambuc$	P3 = "UCX"
696ebfedea0SLionel Sambuc$!
697ebfedea0SLionel Sambuc$!      Tell the user
698ebfedea0SLionel Sambuc$!
699ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
700ebfedea0SLionel Sambuc$!
701ebfedea0SLionel Sambuc$!	That was all...
702ebfedea0SLionel Sambuc$!
703ebfedea0SLionel Sambuc$     ENDIF
704ebfedea0SLionel Sambuc$   ENDIF
705ebfedea0SLionel Sambuc$ ENDIF
706ebfedea0SLionel Sambuc$!
707ebfedea0SLionel Sambuc$! Set Up Initial CC Definitions, Possibly With User Ones
708ebfedea0SLionel Sambuc$!
709ebfedea0SLionel Sambuc$ CCDEFS = "TCPIP_TYPE_''P3'"
710ebfedea0SLionel Sambuc$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
711ebfedea0SLionel Sambuc$ CCEXTRAFLAGS = ""
712ebfedea0SLionel Sambuc$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
713ebfedea0SLionel Sambuc$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
714ebfedea0SLionel Sambuc$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
715ebfedea0SLionel Sambuc	CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
716ebfedea0SLionel Sambuc$!
717ebfedea0SLionel Sambuc$! Check To See If We Have A ZLIB Option.
718ebfedea0SLionel Sambuc$!
719ebfedea0SLionel Sambuc$ ZLIB = P6
720ebfedea0SLionel Sambuc$ IF (ZLIB .NES. "")
721ebfedea0SLionel Sambuc$ THEN
722ebfedea0SLionel Sambuc$!
723ebfedea0SLionel Sambuc$!  Check for expected ZLIB files.
724ebfedea0SLionel Sambuc$!
725ebfedea0SLionel Sambuc$   err = 0
726ebfedea0SLionel Sambuc$   file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
727ebfedea0SLionel Sambuc$   if (f$search( file1) .eqs. "")
728ebfedea0SLionel Sambuc$   then
729ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
730ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
731ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "    Can't find header: ''file1'"
732ebfedea0SLionel Sambuc$     err = 1
733ebfedea0SLionel Sambuc$   endif
734ebfedea0SLionel Sambuc$   file1 = f$parse( "A.;", ZLIB)- "A.;"
735ebfedea0SLionel Sambuc$!
736ebfedea0SLionel Sambuc$   file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
737ebfedea0SLionel Sambuc$   if (f$search( file2) .eqs. "")
738ebfedea0SLionel Sambuc$   then
739ebfedea0SLionel Sambuc$     if (err .eq. 0)
740ebfedea0SLionel Sambuc$     then
741ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT ""
742ebfedea0SLionel Sambuc$       WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
743ebfedea0SLionel Sambuc$     endif
744ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "    Can't find library: ''file2'"
745ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
746ebfedea0SLionel Sambuc$     err = err+ 2
747ebfedea0SLionel Sambuc$   endif
748ebfedea0SLionel Sambuc$   if (err .eq. 1)
749ebfedea0SLionel Sambuc$   then
750ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT ""
751ebfedea0SLionel Sambuc$   endif
752ebfedea0SLionel Sambuc$!
753ebfedea0SLionel Sambuc$   if (err .ne. 0)
754ebfedea0SLionel Sambuc$   then
755ebfedea0SLionel Sambuc$     GOTO EXIT
756ebfedea0SLionel Sambuc$   endif
757ebfedea0SLionel Sambuc$!
758ebfedea0SLionel Sambuc$   CCDEFS = """ZLIB=1"", "+ CCDEFS
759ebfedea0SLionel Sambuc$   CC_INCLUDES = CC_INCLUDES+ ", "+ file1
760ebfedea0SLionel Sambuc$   ZLIB_LIB = ", ''file2' /library"
761ebfedea0SLionel Sambuc$!
762ebfedea0SLionel Sambuc$!  Print info
763ebfedea0SLionel Sambuc$!
764ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "ZLIB library spec: ", file2
765ebfedea0SLionel Sambuc$!
766ebfedea0SLionel Sambuc$! End The P8 Check.
767ebfedea0SLionel Sambuc$!
768ebfedea0SLionel Sambuc$ ENDIF
769ebfedea0SLionel Sambuc$!
770ebfedea0SLionel Sambuc$!  Check To See If The User Entered A Valid Parameter.
771ebfedea0SLionel Sambuc$!
772ebfedea0SLionel Sambuc$ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC")
773ebfedea0SLionel Sambuc$ THEN
774ebfedea0SLionel Sambuc$!
775ebfedea0SLionel Sambuc$!  Check To See If The User Wanted DECC.
776ebfedea0SLionel Sambuc$!
777ebfedea0SLionel Sambuc$   IF (P2.EQS."DECC")
778ebfedea0SLionel Sambuc$   THEN
779ebfedea0SLionel Sambuc$!
780ebfedea0SLionel Sambuc$!    Looks Like DECC, Set To Use DECC.
781ebfedea0SLionel Sambuc$!
782ebfedea0SLionel Sambuc$     COMPILER = "DECC"
783ebfedea0SLionel Sambuc$!
784ebfedea0SLionel Sambuc$!    Tell The User We Are Using DECC.
785ebfedea0SLionel Sambuc$!
786ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
787ebfedea0SLionel Sambuc$!
788ebfedea0SLionel Sambuc$!    Use DECC...
789ebfedea0SLionel Sambuc$!
790ebfedea0SLionel Sambuc$     CC = "CC"
791ebfedea0SLionel Sambuc$     IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
792ebfedea0SLionel Sambuc	 THEN CC = "CC /DECC"
793ebfedea0SLionel Sambuc$     CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
794ebfedea0SLionel Sambuc       "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
795ebfedea0SLionel Sambuc       " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS
796ebfedea0SLionel Sambuc$!
797ebfedea0SLionel Sambuc$!    Define The Linker Options File Name.
798ebfedea0SLionel Sambuc$!
799ebfedea0SLionel Sambuc$     OPT_FILE = "VAX_DECC_OPTIONS.OPT"
800ebfedea0SLionel Sambuc$!
801ebfedea0SLionel Sambuc$!  End DECC Check.
802ebfedea0SLionel Sambuc$!
803ebfedea0SLionel Sambuc$   ENDIF
804ebfedea0SLionel Sambuc$!
805ebfedea0SLionel Sambuc$!  Check To See If We Are To Use VAXC.
806ebfedea0SLionel Sambuc$!
807ebfedea0SLionel Sambuc$   IF (P2.EQS."VAXC")
808ebfedea0SLionel Sambuc$   THEN
809ebfedea0SLionel Sambuc$!
810ebfedea0SLionel Sambuc$!    Looks Like VAXC, Set To Use VAXC.
811ebfedea0SLionel Sambuc$!
812ebfedea0SLionel Sambuc$     COMPILER = "VAXC"
813ebfedea0SLionel Sambuc$!
814ebfedea0SLionel Sambuc$!    Tell The User We Are Using VAX C.
815ebfedea0SLionel Sambuc$!
816ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
817ebfedea0SLionel Sambuc$!
818ebfedea0SLionel Sambuc$!    Compile Using VAXC.
819ebfedea0SLionel Sambuc$!
820ebfedea0SLionel Sambuc$     CC = "CC"
821ebfedea0SLionel Sambuc$     IF ARCH.NES."VAX"
822ebfedea0SLionel Sambuc$     THEN
823ebfedea0SLionel Sambuc$	WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!"
824ebfedea0SLionel Sambuc$	EXIT
825ebfedea0SLionel Sambuc$     ENDIF
826ebfedea0SLionel Sambuc$     IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC"
827ebfedea0SLionel Sambuc$     CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
828ebfedea0SLionel Sambuc	   "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
829ebfedea0SLionel Sambuc$     CCDEFS = CCDEFS + ",""VAXC"""
830ebfedea0SLionel Sambuc$!
831ebfedea0SLionel Sambuc$!    Define <sys> As SYS$COMMON:[SYSLIB]
832ebfedea0SLionel Sambuc$!
833ebfedea0SLionel Sambuc$     DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB]
834ebfedea0SLionel Sambuc$!
835ebfedea0SLionel Sambuc$!    Define The Linker Options File Name.
836ebfedea0SLionel Sambuc$!
837ebfedea0SLionel Sambuc$     OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
838ebfedea0SLionel Sambuc$!
839ebfedea0SLionel Sambuc$!  End VAXC Check
840ebfedea0SLionel Sambuc$!
841ebfedea0SLionel Sambuc$   ENDIF
842ebfedea0SLionel Sambuc$!
843ebfedea0SLionel Sambuc$!  Check To See If We Are To Use GNU C.
844ebfedea0SLionel Sambuc$!
845ebfedea0SLionel Sambuc$   IF (P2.EQS."GNUC")
846ebfedea0SLionel Sambuc$   THEN
847ebfedea0SLionel Sambuc$!
848ebfedea0SLionel Sambuc$!    Looks Like GNUC, Set To Use GNUC.
849ebfedea0SLionel Sambuc$!
850ebfedea0SLionel Sambuc$     COMPILER = "GNUC"
851ebfedea0SLionel Sambuc$!
852ebfedea0SLionel Sambuc$!    Tell The User We Are Using GNUC.
853ebfedea0SLionel Sambuc$!
854ebfedea0SLionel Sambuc$     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
855ebfedea0SLionel Sambuc$!
856ebfedea0SLionel Sambuc$!    Use GNU C...
857ebfedea0SLionel Sambuc$!
858ebfedea0SLionel Sambuc$     CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + -
859ebfedea0SLionel Sambuc	   "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS
860ebfedea0SLionel Sambuc$!
861ebfedea0SLionel Sambuc$!    Define The Linker Options File Name.
862ebfedea0SLionel Sambuc$!
863ebfedea0SLionel Sambuc$     OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
864ebfedea0SLionel Sambuc$!
865ebfedea0SLionel Sambuc$!  End The GNU C Check.
866ebfedea0SLionel Sambuc$!
867ebfedea0SLionel Sambuc$   ENDIF
868ebfedea0SLionel Sambuc$!
869ebfedea0SLionel Sambuc$!  Set up default defines
870ebfedea0SLionel Sambuc$!
871ebfedea0SLionel Sambuc$   CCDEFS = """FLAT_INC=1""," + CCDEFS
872ebfedea0SLionel Sambuc$!
873ebfedea0SLionel Sambuc$!  Finish up the definition of CC.
874ebfedea0SLionel Sambuc$!
875ebfedea0SLionel Sambuc$   IF COMPILER .EQS. "DECC"
876ebfedea0SLionel Sambuc$   THEN
877ebfedea0SLionel Sambuc$     IF CCDISABLEWARNINGS .EQS. ""
878ebfedea0SLionel Sambuc$     THEN
879ebfedea0SLionel Sambuc$       CC4DISABLEWARNINGS = "DOLLARID"
880ebfedea0SLionel Sambuc$     ELSE
881ebfedea0SLionel Sambuc$       CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
882ebfedea0SLionel Sambuc$       CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
883ebfedea0SLionel Sambuc$     ENDIF
884ebfedea0SLionel Sambuc$     CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
885ebfedea0SLionel Sambuc$   ELSE
886ebfedea0SLionel Sambuc$     CCDISABLEWARNINGS = ""
887ebfedea0SLionel Sambuc$     CC4DISABLEWARNINGS = ""
888ebfedea0SLionel Sambuc$   ENDIF
889ebfedea0SLionel Sambuc$   CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
890ebfedea0SLionel Sambuc$!
891ebfedea0SLionel Sambuc$!  Show user the result
892ebfedea0SLionel Sambuc$!
893ebfedea0SLionel Sambuc$   WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC
894ebfedea0SLionel Sambuc$!
895ebfedea0SLionel Sambuc$!  Else The User Entered An Invalid Argument.
896ebfedea0SLionel Sambuc$!
897ebfedea0SLionel Sambuc$ ELSE
898ebfedea0SLionel Sambuc$!
899ebfedea0SLionel Sambuc$!  Tell The User We Don't Know What They Want.
900ebfedea0SLionel Sambuc$!
901ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
902ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "The Option ",P2," Is Invalid.  The Valid Options Are:"
903ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
904ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    VAXC  :  To Compile With VAX C."
905ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    DECC  :  To Compile With DEC C."
906ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    GNUC  :  To Compile With GNU C."
907ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
908ebfedea0SLionel Sambuc$!
909ebfedea0SLionel Sambuc$!  Time To EXIT.
910ebfedea0SLionel Sambuc$!
911ebfedea0SLionel Sambuc$   EXIT
912ebfedea0SLionel Sambuc$ ENDIF
913ebfedea0SLionel Sambuc$!
914ebfedea0SLionel Sambuc$! Time to check the contents, and to make sure we get the correct library.
915ebfedea0SLionel Sambuc$!
916ebfedea0SLionel Sambuc$ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" -
917ebfedea0SLionel Sambuc     .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE"
918ebfedea0SLionel Sambuc$ THEN
919ebfedea0SLionel Sambuc$!
920ebfedea0SLionel Sambuc$!  Check to see if SOCKETSHR was chosen
921ebfedea0SLionel Sambuc$!
922ebfedea0SLionel Sambuc$   IF P3.EQS."SOCKETSHR"
923ebfedea0SLionel Sambuc$   THEN
924ebfedea0SLionel Sambuc$!
925ebfedea0SLionel Sambuc$!    Set the library to use SOCKETSHR
926ebfedea0SLionel Sambuc$!
927ebfedea0SLionel Sambuc$     TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
928ebfedea0SLionel Sambuc$!
929ebfedea0SLionel Sambuc$!    Done with SOCKETSHR
930ebfedea0SLionel Sambuc$!
931ebfedea0SLionel Sambuc$   ENDIF
932ebfedea0SLionel Sambuc$!
933ebfedea0SLionel Sambuc$!  Check to see if MULTINET was chosen
934ebfedea0SLionel Sambuc$!
935ebfedea0SLionel Sambuc$   IF P3.EQS."MULTINET"
936ebfedea0SLionel Sambuc$   THEN
937ebfedea0SLionel Sambuc$!
938ebfedea0SLionel Sambuc$!    Set the library to use UCX emulation.
939ebfedea0SLionel Sambuc$!
940ebfedea0SLionel Sambuc$     P3 = "UCX"
941ebfedea0SLionel Sambuc$!
942ebfedea0SLionel Sambuc$!    Done with MULTINET
943ebfedea0SLionel Sambuc$!
944ebfedea0SLionel Sambuc$   ENDIF
945ebfedea0SLionel Sambuc$!
946ebfedea0SLionel Sambuc$!  Check to see if UCX was chosen
947ebfedea0SLionel Sambuc$!
948ebfedea0SLionel Sambuc$   IF P3.EQS."UCX"
949ebfedea0SLionel Sambuc$   THEN
950ebfedea0SLionel Sambuc$!
951ebfedea0SLionel Sambuc$!    Set the library to use UCX.
952ebfedea0SLionel Sambuc$!
953ebfedea0SLionel Sambuc$     TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
954ebfedea0SLionel Sambuc$     IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
955ebfedea0SLionel Sambuc$     THEN
956ebfedea0SLionel Sambuc$       TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
957ebfedea0SLionel Sambuc$     ELSE
958ebfedea0SLionel Sambuc$       IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
959ebfedea0SLionel Sambuc	  TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
960ebfedea0SLionel Sambuc$     ENDIF
961ebfedea0SLionel Sambuc$!
962ebfedea0SLionel Sambuc$!    Done with UCX
963ebfedea0SLionel Sambuc$!
964ebfedea0SLionel Sambuc$   ENDIF
965ebfedea0SLionel Sambuc$!
966ebfedea0SLionel Sambuc$!  Check to see if TCPIP was chosen
967ebfedea0SLionel Sambuc$!
968ebfedea0SLionel Sambuc$   IF P3.EQS."TCPIP"
969ebfedea0SLionel Sambuc$   THEN
970ebfedea0SLionel Sambuc$!
971ebfedea0SLionel Sambuc$!    Set the library to use TCPIP (post UCX).
972ebfedea0SLionel Sambuc$!
973ebfedea0SLionel Sambuc$     TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
974ebfedea0SLionel Sambuc$!
975ebfedea0SLionel Sambuc$!    Done with TCPIP
976ebfedea0SLionel Sambuc$!
977ebfedea0SLionel Sambuc$   ENDIF
978ebfedea0SLionel Sambuc$!
979ebfedea0SLionel Sambuc$!  Check to see if NONE was chosen
980ebfedea0SLionel Sambuc$!
981ebfedea0SLionel Sambuc$   IF P3.EQS."NONE"
982ebfedea0SLionel Sambuc$   THEN
983ebfedea0SLionel Sambuc$!
984ebfedea0SLionel Sambuc$!    Do not use a TCPIP library.
985ebfedea0SLionel Sambuc$!
986ebfedea0SLionel Sambuc$     TCPIP_LIB = ""
987ebfedea0SLionel Sambuc$!
988ebfedea0SLionel Sambuc$!    Done with NONE
989ebfedea0SLionel Sambuc$!
990ebfedea0SLionel Sambuc$   ENDIF
991ebfedea0SLionel Sambuc$!
992ebfedea0SLionel Sambuc$!  Print info
993ebfedea0SLionel Sambuc$!
994ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
995ebfedea0SLionel Sambuc$!
996ebfedea0SLionel Sambuc$!  Else The User Entered An Invalid Argument.
997ebfedea0SLionel Sambuc$!
998ebfedea0SLionel Sambuc$ ELSE
999ebfedea0SLionel Sambuc$!
1000ebfedea0SLionel Sambuc$!  Tell The User We Don't Know What They Want.
1001ebfedea0SLionel Sambuc$!
1002ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
1003ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "The Option ",P3," Is Invalid.  The Valid Options Are:"
1004ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
1005ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    SOCKETSHR  :  To link with SOCKETSHR TCP/IP library."
1006ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    UCX        :  To link with UCX TCP/IP library."
1007ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT "    TCPIP      :  To link with TCPIP (post UCX) TCP/IP library."
1008ebfedea0SLionel Sambuc$   WRITE SYS$OUTPUT ""
1009ebfedea0SLionel Sambuc$!
1010ebfedea0SLionel Sambuc$!  Time To EXIT.
1011ebfedea0SLionel Sambuc$!
1012ebfedea0SLionel Sambuc$   EXIT
1013ebfedea0SLionel Sambuc$!
1014ebfedea0SLionel Sambuc$!  Done with TCP/IP libraries
1015ebfedea0SLionel Sambuc$!
1016ebfedea0SLionel Sambuc$ ENDIF
1017ebfedea0SLionel Sambuc$!
1018ebfedea0SLionel Sambuc$! Special Threads For OpenVMS v7.1 Or Later
1019ebfedea0SLionel Sambuc$!
1020ebfedea0SLionel Sambuc$! Written By:  Richard Levitte
1021ebfedea0SLionel Sambuc$!              richard@levitte.org
1022ebfedea0SLionel Sambuc$!
1023ebfedea0SLionel Sambuc$!
1024ebfedea0SLionel Sambuc$! Check To See If We Have A Option For P4.
1025ebfedea0SLionel Sambuc$!
1026ebfedea0SLionel Sambuc$ IF (P4.EQS."")
1027ebfedea0SLionel Sambuc$ THEN
1028ebfedea0SLionel Sambuc$!
1029ebfedea0SLionel Sambuc$!  Get The Version Of VMS We Are Using.
1030ebfedea0SLionel Sambuc$!
1031ebfedea0SLionel Sambuc$   ISSEVEN :=
1032ebfedea0SLionel Sambuc$   TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
1033ebfedea0SLionel Sambuc$   TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
1034ebfedea0SLionel Sambuc$!
1035ebfedea0SLionel Sambuc$!  Check To See If The VMS Version Is v7.1 Or Later.
1036ebfedea0SLionel Sambuc$!
1037ebfedea0SLionel Sambuc$   IF (TMP.GE.71)
1038ebfedea0SLionel Sambuc$   THEN
1039ebfedea0SLionel Sambuc$!
1040ebfedea0SLionel Sambuc$!    We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
1041ebfedea0SLionel Sambuc$!
1042ebfedea0SLionel Sambuc$     ISSEVEN := ,PTHREAD_USE_D4
1043ebfedea0SLionel Sambuc$!
1044ebfedea0SLionel Sambuc$!  End The VMS Version Check.
1045ebfedea0SLionel Sambuc$!
1046ebfedea0SLionel Sambuc$   ENDIF
1047ebfedea0SLionel Sambuc$!
1048ebfedea0SLionel Sambuc$! End The P4 Check.
1049ebfedea0SLionel Sambuc$!
1050ebfedea0SLionel Sambuc$ ENDIF
1051ebfedea0SLionel Sambuc$!
1052ebfedea0SLionel Sambuc$!  Time To RETURN...
1053ebfedea0SLionel Sambuc$!
1054ebfedea0SLionel Sambuc$ RETURN
1055ebfedea0SLionel Sambuc$!
1056ebfedea0SLionel Sambuc$ INITIALISE:
1057ebfedea0SLionel Sambuc$!
1058ebfedea0SLionel Sambuc$! Save old value of the logical name OPENSSL
1059ebfedea0SLionel Sambuc$!
1060ebfedea0SLionel Sambuc$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
1061ebfedea0SLionel Sambuc$!
1062ebfedea0SLionel Sambuc$! Save directory information
1063ebfedea0SLionel Sambuc$!
1064ebfedea0SLionel Sambuc$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
1065ebfedea0SLionel Sambuc$ __HERE = F$EDIT(__HERE,"UPCASE")
1066ebfedea0SLionel Sambuc$ __TOP = __HERE - "TEST]"
1067ebfedea0SLionel Sambuc$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
1068ebfedea0SLionel Sambuc$!
1069ebfedea0SLionel Sambuc$! Set up the logical name OPENSSL to point at the include directory
1070ebfedea0SLionel Sambuc$!
1071ebfedea0SLionel Sambuc$ DEFINE OPENSSL /NOLOG '__INCLUDE'
1072ebfedea0SLionel Sambuc$!
1073ebfedea0SLionel Sambuc$! Done
1074ebfedea0SLionel Sambuc$!
1075ebfedea0SLionel Sambuc$ RETURN
1076ebfedea0SLionel Sambuc$!
1077ebfedea0SLionel Sambuc$ CLEANUP:
1078ebfedea0SLionel Sambuc$!
1079ebfedea0SLionel Sambuc$! Restore the logical name OPENSSL if it had a value
1080ebfedea0SLionel Sambuc$!
1081ebfedea0SLionel Sambuc$ IF __SAVE_OPENSSL .EQS. ""
1082ebfedea0SLionel Sambuc$ THEN
1083ebfedea0SLionel Sambuc$   DEASSIGN OPENSSL
1084ebfedea0SLionel Sambuc$ ELSE
1085ebfedea0SLionel Sambuc$   DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL'
1086ebfedea0SLionel Sambuc$ ENDIF
1087ebfedea0SLionel Sambuc$!
1088ebfedea0SLionel Sambuc$! Done
1089ebfedea0SLionel Sambuc$!
1090ebfedea0SLionel Sambuc$ RETURN
1091