~ubuntu-branches/ubuntu/precise/openssl098/precise

« back to all changes in this revision

Viewing changes to makevms.com

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2011-03-23 19:50:31 UTC
  • Revision ID: james.westby@ubuntu.com-20110323195031-6h9crj4bymhhr8b8
Tags: upstream-0.9.8o
ImportĀ upstreamĀ versionĀ 0.9.8o

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
$!            Zoltan Arpadffy <zoli@polarhome.com>
 
11
$!
 
12
$! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB"
 
13
$! "[.xxx.EXE.SSL]LIBSSL.OLB"
 
14
$! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX.
 
15
$!
 
16
$! This procedures accepts two command line options listed below.
 
17
$!
 
18
$! Specify one of the following build options for P1.
 
19
$!
 
20
$!      ALL       Just build "everything".
 
21
$!      CONFIG    Just build the "[.CRYPTO._<ARCH>]OPENSSLCONF.H" file.
 
22
$!      BUILDINF  Just build the "[.CRYPTO._<ARCH>]BUILDINF.H" file.
 
23
$!      SOFTLINKS Just fix the Unix soft links.
 
24
$!      BUILDALL  Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done.
 
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
$!      ENGINES   Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
 
33
$!
 
34
$!
 
35
$! P2 is ignored (it was used to denote if RSAref should be used or not,
 
36
$! and is simply kept so surrounding scripts don't get confused)
 
37
$!
 
38
$! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging
 
39
$! information.
 
40
$!
 
41
$! Specify which compiler at P4 to try to compile under.
 
42
$!
 
43
$!        VAXC   For VAX C.
 
44
$!        DECC   For DEC C.
 
45
$!        GNUC   For GNU C.
 
46
$!        LINK   To only link the programs from existing object files.
 
47
$!               (not yet implemented)
 
48
$!
 
49
$! If you don't speficy a compiler, it will try to determine which
 
50
$! "C" compiler to use.
 
51
$!
 
52
$! P5, if defined, sets a TCP/IP library to use, through one of the following
 
53
$! keywords:
 
54
$!
 
55
$!      UCX             for UCX or UCX emulation
 
56
$!      TCPIP           for TCP/IP Services or TCP/IP Services emulation
 
57
$!                      (this is prefered over UCX)
 
58
$!      SOCKETSHR       for SOCKETSHR+NETLIB
 
59
$!      NONE            to avoid specifying which TCP/IP implementation to
 
60
$!                      use at build time (this works with DEC C).  This is
 
61
$!                      the default.
 
62
$!
 
63
$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
 
64
$!
 
65
$!
 
66
$ DEF_ORIG = F$ENVIRONMENT( "DEFAULT")
 
67
$ ON ERROR THEN GOTO TIDY
 
68
$ ON CONTROL_C THEN GOTO TIDY
 
69
$!
 
70
$! Check if we're in a batch job, and make sure we get to 
 
71
$! the directory this script is in
 
72
$!
 
73
$ IF F$MODE() .EQS. "BATCH"
 
74
$ THEN
 
75
$   COMNAME=F$ENVIRONMENT("PROCEDURE")
 
76
$   COMPATH=F$PARSE("A.;",COMNAME) - "A.;"
 
77
$   SET DEF 'COMPATH'
 
78
$ ENDIF
 
79
$!
 
80
$! Check What Architecture We Are Using.
 
81
$!
 
82
$ IF (F$GETSYI("CPU").LT.128)
 
83
$ THEN
 
84
$!
 
85
$!  The Architecture Is VAX.
 
86
$!
 
87
$   ARCH := VAX
 
88
$!
 
89
$! Else...
 
90
$!
 
91
$ ELSE
 
92
$!
 
93
$!  The Architecture Is Alpha, IA64 or whatever comes in the future.
 
94
$!
 
95
$   ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE")
 
96
$   IF (ARCH .EQS. "") THEN ARCH = "UNK"
 
97
$!
 
98
$! End The Architecture Check.
 
99
$!
 
100
$ ENDIF
 
101
$!
 
102
$! Check To Make Sure We Have Valid Command Line Parameters.
 
103
$!
 
104
$ GOSUB CHECK_OPTIONS
 
105
$!
 
106
$! Check To See What We Are To Do.
 
107
$!
 
108
$ IF (BUILDCOMMAND.EQS."ALL")
 
109
$ THEN
 
110
$!
 
111
$!  Start with building the OpenSSL configuration file.
 
112
$!
 
113
$   GOSUB CONFIG
 
114
$!
 
115
$!  Create The "BUILDINF.H" Include File.
 
116
$!
 
117
$   GOSUB BUILDINF
 
118
$!
 
119
$!  Fix The Unix Softlinks.
 
120
$!
 
121
$   GOSUB SOFTLINKS
 
122
$!
 
123
$ ENDIF
 
124
$!
 
125
$ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL")
 
126
$ THEN
 
127
$!
 
128
$!  Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
 
129
$!
 
130
$   GOSUB CRYPTO
 
131
$!
 
132
$!  Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
 
133
$!
 
134
$   GOSUB SSL
 
135
$!
 
136
$!  Build The [.xxx.EXE.SSL]SSL_TASK.EXE DECNet SSL Engine.
 
137
$!
 
138
$   GOSUB SSL_TASK
 
139
$!
 
140
$!  Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
 
141
$!
 
142
$   GOSUB TEST
 
143
$!
 
144
$!  Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
 
145
$!
 
146
$   GOSUB APPS
 
147
$!
 
148
$!  Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines.
 
149
$!
 
150
$   GOSUB ENGINES
 
151
$!
 
152
$! Else...
 
153
$!
 
154
$ ELSE
 
155
$!
 
156
$!    Build Just What The User Wants Us To Build.
 
157
$!
 
158
$     GOSUB 'BUILDCOMMAND'
 
159
$!
 
160
$ ENDIF
 
161
$!
 
162
$! Time To EXIT.
 
163
$!
 
164
$ GOTO TIDY
 
165
$!
 
166
$! Rebuild The "[.CRYPTO._''ARCH']OPENSSLCONF.H" file.
 
167
$!
 
168
$ CONFIG:
 
169
$!
 
170
$! Tell The User We Are Creating The [.CRYPTO._<ARCH>]OPENSSLCONF.H File.
 
171
$!
 
172
$ WRITE SYS$OUTPUT "Creating [.CRYPTO._''ARCH']OPENSSLCONF.H Include File."
 
173
$!
 
174
$! First, make sure the directory exists.
 
175
$!
 
176
$ IF F$PARSE("SYS$DISK:[.CRYPTO._''ARCH']") .EQS. "" THEN -
 
177
     CREATE/DIRECTORY SYS$DISK:[.CRYPTO._'ARCH']
 
178
$!
 
179
$! Create The [.CRYPTO._<ARCH>]OPENSSLCONF.H File.
 
180
$! Make sure it has the right format.
 
181
$!
 
182
$ OSCH_NAME = "SYS$DISK:[.CRYPTO._''ARCH']OPENSSLCONF.H"
 
183
$ CREATE /FDL=SYS$INPUT: 'OSCH_NAME'
 
184
RECORD
 
185
        FORMAT stream_lf
 
186
$ OPEN /APPEND H_FILE 'OSCH_NAME'
 
187
$!
 
188
$! Write The [.CRYPTO._<ARCH>]OPENSSLCONF.H File.
 
189
$!
 
190
$ WRITE H_FILE "/* This file was automatically built using makevms.com */"
 
191
$ WRITE H_FILE "/* and [.CRYPTO._''ARCH']OPENSSLCONF.H_IN */"
 
192
$!
 
193
$! Write a few macros that indicate how this system was built.
 
194
$!
 
195
$ WRITE H_FILE ""
 
196
$ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS"
 
197
$ WRITE H_FILE "# define OPENSSL_SYS_VMS"
 
198
$ WRITE H_FILE "#endif"
 
199
$ CONFIG_LOGICALS := NO_ASM,NO_RSA,NO_DSA,NO_DH,NO_MD2,NO_MD5,NO_RIPEMD,-
 
200
        NO_SHA,NO_SHA0,NO_SHA1,NO_DES/NO_MDC2;NO_MDC2,NO_RC2,NO_RC4,NO_RC5,-
 
201
        NO_IDEA,NO_BF,NO_CAST,NO_CAMELLIA,NO_SEED,NO_HMAC,NO_SSL2
 
202
$ CONFIG_LOG_I = 0
 
203
$ CONFIG_LOG_LOOP:
 
204
$   CONFIG_LOG_E1 = F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS)
 
205
$   CONFIG_LOG_I = CONFIG_LOG_I + 1
 
206
$   IF CONFIG_LOG_E1 .EQS. "" THEN GOTO CONFIG_LOG_LOOP
 
207
$   IF CONFIG_LOG_E1 .EQS. "," THEN GOTO CONFIG_LOG_LOOP_END
 
208
$   CONFIG_LOG_E2 = F$EDIT(CONFIG_LOG_E1,"TRIM")
 
209
$   CONFIG_LOG_E1 = F$ELEMENT(0,";",CONFIG_LOG_E2)
 
210
$   CONFIG_LOG_E2 = F$ELEMENT(1,";",CONFIG_LOG_E2)
 
211
$   CONFIG_LOG_E0 = F$ELEMENT(0,"/",CONFIG_LOG_E1)
 
212
$   CONFIG_LOG_E1 = F$ELEMENT(1,"/",CONFIG_LOG_E1)
 
213
$   IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E0)
 
214
$   THEN
 
215
$     WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E0
 
216
$     WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E0
 
217
$     WRITE H_FILE "#endif"
 
218
$     IF CONFIG_LOG_E1 .NES. "/"
 
219
$     THEN
 
220
$       WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E1
 
221
$       WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E1
 
222
$       WRITE H_FILE "#endif"
 
223
$     ENDIF
 
224
$   ELSE
 
225
$     IF CONFIG_LOG_E2 .NES. ";"
 
226
$     THEN
 
227
$       IF F$TRNLNM("OPENSSL_"+CONFIG_LOG_E2)
 
228
$       THEN
 
229
$         WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E2
 
230
$         WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E2
 
231
$         WRITE H_FILE "#endif"
 
232
$       ENDIF
 
233
$     ENDIF
 
234
$   ENDIF
 
235
$   GOTO CONFIG_LOG_LOOP
 
236
$ CONFIG_LOG_LOOP_END:
 
237
$ WRITE H_FILE "#ifndef OPENSSL_NO_STATIC_ENGINE"
 
238
$ WRITE H_FILE "# define OPENSSL_NO_STATIC_ENGINE"
 
239
$ WRITE H_FILE "#endif"
 
240
$ WRITE H_FILE "#ifndef OPENSSL_THREADS"
 
241
$ WRITE H_FILE "# define OPENSSL_THREADS"
 
242
$ WRITE H_FILE "#endif"
 
243
$ WRITE H_FILE "#ifndef OPENSSL_NO_KRB5"
 
244
$ WRITE H_FILE "# define OPENSSL_NO_KRB5"
 
245
$ WRITE H_FILE "#endif"
 
246
$ WRITE H_FILE ""
 
247
$!
 
248
$! Different tar version may have named the file differently
 
249
$ IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H_IN") .NES. ""
 
250
$ THEN
 
251
$   TYPE [.CRYPTO]OPENSSLCONF.H_IN /OUTPUT=H_FILE:
 
252
$ ELSE
 
253
$   IF F$SEARCH("[.CRYPTO]OPENSSLCONF_H.IN") .NES. ""
 
254
$   THEN
 
255
$     TYPE [.CRYPTO]OPENSSLCONF_H.IN /OUTPUT=H_FILE:
 
256
$   ELSE
 
257
$     ! For ODS-5
 
258
$     IF F$SEARCH("[.CRYPTO]OPENSSLCONF.H.IN") .NES. ""
 
259
$     THEN
 
260
$       TYPE [.CRYPTO]OPENSSLCONF.H.IN /OUTPUT=H_FILE:
 
261
$     ELSE
 
262
$       WRITE SYS$ERROR "Couldn't find a [.CRYPTO]OPENSSLCONF.H_IN.  Exiting!"
 
263
$       $STATUS = %X00018294 ! "%RMS-F-FNF, file not found".
 
264
$       GOTO TIDY
 
265
$     ENDIF
 
266
$   ENDIF
 
267
$ ENDIF
 
268
$ IF ARCH .NES. "VAX"
 
269
$ THEN
 
270
$!
 
271
$!  Write the Alpha specific data
 
272
$!
 
273
$   WRITE H_FILE "#if defined(HEADER_RC4_H)"
 
274
$   WRITE H_FILE "#undef RC4_INT"
 
275
$   WRITE H_FILE "#define RC4_INT unsigned int"
 
276
$   WRITE H_FILE "#undef RC4_CHUNK"
 
277
$   WRITE H_FILE "#define RC4_CHUNK unsigned long long"
 
278
$   WRITE H_FILE "#endif"
 
279
$!
 
280
$   WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
 
281
$   WRITE H_FILE "#undef DES_LONG"
 
282
$   WRITE H_FILE "#define DES_LONG unsigned int"
 
283
$   WRITE H_FILE "#undef DES_PTR"
 
284
$   WRITE H_FILE "#define DES_PTR"
 
285
$   WRITE H_FILE "#undef DES_RISC1"
 
286
$   WRITE H_FILE "#undef DES_RISC2"
 
287
$   WRITE H_FILE "#define DES_RISC1"
 
288
$   WRITE H_FILE "#undef DES_UNROLL"
 
289
$   WRITE H_FILE "#define DES_UNROLL"
 
290
$   WRITE H_FILE "#endif"
 
291
$!
 
292
$   WRITE H_FILE "#if defined(HEADER_BN_H)"
 
293
$   WRITE H_FILE "#undef BN_LLONG"      ! Never define with SIXTY_FOUR_BIT
 
294
$   WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
 
295
$   WRITE H_FILE "#undef SIXTY_FOUR_BIT"
 
296
$   WRITE H_FILE "#define SIXTY_FOUR_BIT"
 
297
$   WRITE H_FILE "#undef THIRTY_TWO_BIT"
 
298
$   WRITE H_FILE "#undef SIXTEEN_BIT"
 
299
$   WRITE H_FILE "#undef EIGHT_BIT"
 
300
$   WRITE H_FILE "#endif"
 
301
$
 
302
$   WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
 
303
$!
 
304
$!  Else...
 
305
$!
 
306
$ ELSE
 
307
$!
 
308
$!  Write the VAX specific data
 
309
$!
 
310
$   WRITE H_FILE "#if defined(HEADER_RC4_H)"
 
311
$   WRITE H_FILE "#undef RC4_INT"
 
312
$   WRITE H_FILE "#define RC4_INT unsigned char"
 
313
$   WRITE H_FILE "#undef RC4_CHUNK"
 
314
$   WRITE H_FILE "#define RC4_CHUNK unsigned long"
 
315
$   WRITE H_FILE "#endif"
 
316
$!
 
317
$   WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)"
 
318
$   WRITE H_FILE "#undef DES_LONG"
 
319
$   WRITE H_FILE "#define DES_LONG unsigned long"
 
320
$   WRITE H_FILE "#undef DES_PTR"
 
321
$   WRITE H_FILE "#define DES_PTR"
 
322
$   WRITE H_FILE "#undef DES_RISC1"
 
323
$   WRITE H_FILE "#undef DES_RISC2"
 
324
$   WRITE H_FILE "#undef DES_UNROLL"
 
325
$   WRITE H_FILE "#endif"
 
326
$!
 
327
$   WRITE H_FILE "#if defined(HEADER_BN_H)"
 
328
$   WRITE H_FILE "#undef BN_LLONG"      ! VAX C/DEC C doesn't have long long
 
329
$   WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG"
 
330
$   WRITE H_FILE "#undef SIXTY_FOUR_BIT"
 
331
$   WRITE H_FILE "#undef THIRTY_TWO_BIT"
 
332
$   WRITE H_FILE "#define THIRTY_TWO_BIT"
 
333
$   WRITE H_FILE "#undef SIXTEEN_BIT"
 
334
$   WRITE H_FILE "#undef EIGHT_BIT"
 
335
$   WRITE H_FILE "#endif"
 
336
$!
 
337
$! Oddly enough, the following symbol is tested in crypto/sha/sha512.c
 
338
$! before sha.h gets included (and HEADER_SHA_H defined), so we will not
 
339
$! protect this one...
 
340
$   WRITE H_FILE "#undef OPENSSL_NO_SHA512"
 
341
$   WRITE H_FILE "#define OPENSSL_NO_SHA512"
 
342
$!
 
343
$   WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION"
 
344
$   WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION"
 
345
$!
 
346
$!  End
 
347
$!
 
348
$ ENDIF
 
349
$!
 
350
$! There are many places where this is needed.
 
351
$!
 
352
$!!! WRITE H_FILE "#define _XOPEN_SOURCE_EXTENDED"
 
353
$!
 
354
$! Close the [.CRYPTO._<ARCH>]OPENSSLCONF.H file
 
355
$!
 
356
$ CLOSE H_FILE
 
357
$!
 
358
$! Purge The [.CRYPTO._<ARCH>]OPENSSLCONF.H file
 
359
$!
 
360
$ PURGE SYS$DISK:[.CRYPTO._'ARCH']OPENSSLCONF.H
 
361
$!
 
362
$! That's All, Time To RETURN.
 
363
$!
 
364
$ RETURN
 
365
$!
 
366
$! Rebuild The "[.CRYPTO._<ARCH>]BUILDINF.H" file.
 
367
$!
 
368
$ BUILDINF:
 
369
$!
 
370
$! Tell The User We Are Creating The [.CRYPTO._<ARCH>]BUILDINF.H File.
 
371
$!
 
372
$ WRITE SYS$OUTPUT "Creating [.CRYPTO._''ARCH']BUILDINF.H Include File."
 
373
$!
 
374
$! Create The [.CRYPTO._<ARCH>]BUILDINF.H File.
 
375
$!
 
376
$ BIH_NAME = "SYS$DISK:[.CRYPTO._''ARCH']BUILDINF.H"
 
377
$ CREATE /FDL=SYS$INPUT: 'BIH_NAME'
 
378
RECORD
 
379
        FORMAT stream_lf
 
380
$!
 
381
$ OPEN /APPEND H_FILE 'bih_name'
 
382
$!
 
383
$! Get The Current Date & Time.
 
384
$!
 
385
$ TIME = F$TIME()
 
386
$!
 
387
$! Write The [.CRYPTO._<ARCH>]BUILDINF.H File.
 
388
$!
 
389
$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */"
 
390
$ WRITE H_FILE "#define PLATFORM ""VMS ''ARCH' ''VMS_VER'"""
 
391
$ WRITE H_FILE "#define DATE ""''TIME'"" "
 
392
$!
 
393
$! Close The [.CRYPTO._<ARCH>]BUILDINF.H File.
 
394
$!
 
395
$ CLOSE H_FILE
 
396
$!
 
397
$! Purge The [.CRYPTO._<ARCH>]BUILDINF.H File.
 
398
$!
 
399
$ PURGE SYS$DISK:[.CRYPTO._'ARCH']BUILDINF.H
 
400
$!
 
401
$! That's All, Time To RETURN.
 
402
$!
 
403
$ RETURN
 
404
$!
 
405
$! Copy a lot of files around.
 
406
$!
 
407
$ SOFTLINKS: 
 
408
$!
 
409
$! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
 
410
$!
 
411
$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C' File."
 
412
$!
 
413
$ DELETE SYS$DISK:[.APPS]MD4.C;*
 
414
$!
 
415
$! Copy MD4.C from [.CRYPTO.MD4] into [.APPS]
 
416
$!
 
417
$ COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS]
 
418
$!
 
419
$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
 
420
$!
 
421
$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
 
422
$!
 
423
$! First, make sure the directory exists
 
424
$!
 
425
$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
 
426
     CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
 
427
$!
 
428
$! Copy All The ".H" Files From The Main Directory.
 
429
$!
 
430
$ EXHEADER := e_os2.h
 
431
$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
 
432
$!
 
433
$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
 
434
$!
 
435
$ SDIRS := ,-
 
436
   _'ARCH',-
 
437
   OBJECTS,-
 
438
   MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,-
 
439
   DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,-
 
440
   BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,-
 
441
   BUFFER,BIO,STACK,LHASH,RAND,ERR,-
 
442
   EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,-
 
443
   STORE,CMS,PQUEUE,JPAKE
 
444
$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,ebcdic.h,symhacks.h,-
 
445
                ossl_typ.h
 
446
$ EXHEADER__'ARCH' := opensslconf.h
 
447
$ EXHEADER_OBJECTS := objects.h,obj_mac.h
 
448
$ EXHEADER_MD2 := md2.h
 
449
$ EXHEADER_MD4 := md4.h
 
450
$ EXHEADER_MD5 := md5.h
 
451
$ EXHEADER_SHA := sha.h
 
452
$ EXHEADER_MDC2 := mdc2.h
 
453
$ EXHEADER_HMAC := hmac.h
 
454
$ EXHEADER_RIPEMD := ripemd.h
 
455
$ EXHEADER_DES := des.h,des_old.h
 
456
$ EXHEADER_AES := aes.h
 
457
$ EXHEADER_RC2 := rc2.h
 
458
$ EXHEADER_RC4 := rc4.h
 
459
$ EXHEADER_RC5 := rc5.h
 
460
$ EXHEADER_IDEA := idea.h
 
461
$ EXHEADER_BF := blowfish.h
 
462
$ EXHEADER_CAST := cast.h
 
463
$ EXHEADER_CAMELLIA := camellia.h
 
464
$ EXHEADER_SEED := seed.h
 
465
$ EXHEADER_BN := bn.h
 
466
$ EXHEADER_EC := ec.h
 
467
$ EXHEADER_RSA := rsa.h
 
468
$ EXHEADER_DSA := dsa.h
 
469
$ EXHEADER_ECDSA := ecdsa.h
 
470
$ EXHEADER_DH := dh.h
 
471
$ EXHEADER_ECDH := ecdh.h
 
472
$ EXHEADER_DSO := dso.h
 
473
$ EXHEADER_ENGINE := engine.h
 
474
$ EXHEADER_BUFFER := buffer.h
 
475
$ EXHEADER_BIO := bio.h
 
476
$ EXHEADER_STACK := stack.h,safestack.h
 
477
$ EXHEADER_LHASH := lhash.h
 
478
$ EXHEADER_RAND := rand.h
 
479
$ EXHEADER_ERR := err.h
 
480
$ EXHEADER_EVP := evp.h
 
481
$ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h
 
482
$ EXHEADER_PEM := pem.h,pem2.h
 
483
$ EXHEADER_X509 := x509.h,x509_vfy.h
 
484
$ EXHEADER_X509V3 := x509v3.h
 
485
$ EXHEADER_CONF := conf.h,conf_api.h
 
486
$ EXHEADER_TXT_DB := txt_db.h
 
487
$ EXHEADER_PKCS7 := pkcs7.h
 
488
$ EXHEADER_PKCS12 := pkcs12.h
 
489
$ EXHEADER_COMP := comp.h
 
490
$ EXHEADER_OCSP := ocsp.h
 
491
$ EXHEADER_UI := ui.h,ui_compat.h
 
492
$ EXHEADER_KRB5 := krb5_asn.h
 
493
$!EXHEADER_STORE := store.h,str_compat.h
 
494
$ EXHEADER_STORE := store.h
 
495
$ EXHEADER_CMS := cms.h
 
496
$ EXHEADER_PQUEUE := pqueue.h,pq_compat.h
 
497
$ EXHEADER_JPAKE := jpake.h
 
498
$
 
499
$ I = 0
 
500
$ LOOP_SDIRS: 
 
501
$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
 
502
$ I = I + 1
 
503
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
 
504
$ tmp = EXHEADER_'D'
 
505
$ IF D .EQS. ""
 
506
$ THEN
 
507
$   COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
 
508
$ ELSE
 
509
$   COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
 
510
$ ENDIF
 
511
$ GOTO LOOP_SDIRS
 
512
$ LOOP_SDIRS_END:
 
513
$!
 
514
$! Copy All The ".H" Files From The [.SSL] Directory.
 
515
$!
 
516
$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h
 
517
$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
 
518
$!
 
519
$! Purge all doubles
 
520
$!
 
521
$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
 
522
$!
 
523
$! That's All, Time To RETURN.
 
524
$!
 
525
$ RETURN
 
526
$!
 
527
$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
 
528
$!
 
529
$ CRYPTO:
 
530
$!
 
531
$! Tell The User What We Are Doing.
 
532
$!
 
533
$ WRITE SYS$OUTPUT ""
 
534
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
 
535
$!
 
536
$! Go To The [.CRYPTO] Directory.
 
537
$!
 
538
$ SET DEFAULT SYS$DISK:[.CRYPTO]
 
539
$!
 
540
$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
 
541
$!  
 
542
$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
 
543
$!
 
544
$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
 
545
$!  
 
546
$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'"
 
547
$!
 
548
$! Go Back To The Main Directory.
 
549
$!
 
550
$ SET DEFAULT [-]
 
551
$!
 
552
$! Time To RETURN.
 
553
$!
 
554
$ RETURN
 
555
$!
 
556
$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
 
557
$!
 
558
$ SSL:
 
559
$!
 
560
$! Tell The User What We Are Doing.
 
561
$!
 
562
$ WRITE SYS$OUTPUT ""
 
563
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
 
564
$!
 
565
$! Go To The [.SSL] Directory.
 
566
$!
 
567
$ SET DEFAULT SYS$DISK:[.SSL]
 
568
$!
 
569
$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
 
570
$!
 
571
$ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
 
572
$!
 
573
$! Go Back To The Main Directory.
 
574
$!
 
575
$ SET DEFAULT [-]
 
576
$!
 
577
$! Time To Return.
 
578
$!
 
579
$ RETURN
 
580
$!
 
581
$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
 
582
$!
 
583
$ SSL_TASK:
 
584
$!
 
585
$! Tell The User What We Are Doing.
 
586
$!
 
587
$ WRITE SYS$OUTPUT ""
 
588
$ WRITE SYS$OUTPUT "Building DECNet Based SSL Engine, [.",ARCH,".EXE.SSL]SSL_TASK.EXE"
 
589
$!
 
590
$! Go To The [.SSL] Directory.
 
591
$!
 
592
$ SET DEFAULT SYS$DISK:[.SSL]
 
593
$!
 
594
$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
 
595
$!
 
596
$ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
 
597
$!
 
598
$! Go Back To The Main Directory.
 
599
$!
 
600
$ SET DEFAULT [-]
 
601
$!
 
602
$! That's All, Time To RETURN.
 
603
$!
 
604
$ RETURN
 
605
$!
 
606
$! Build The OpenSSL Test Programs.
 
607
$!
 
608
$ TEST:
 
609
$!
 
610
$! Tell The User What We Are Doing.
 
611
$!
 
612
$ WRITE SYS$OUTPUT ""
 
613
$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
 
614
$!
 
615
$! Go To The [.TEST] Directory.
 
616
$!
 
617
$ SET DEFAULT SYS$DISK:[.TEST]
 
618
$!
 
619
$! Build The Test Programs.
 
620
$!
 
621
$ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
 
622
$!
 
623
$! Go Back To The Main Directory.
 
624
$!
 
625
$ SET DEFAULT [-]
 
626
$!
 
627
$! That's All, Time To RETURN.
 
628
$!
 
629
$ RETURN
 
630
$!
 
631
$! Build The OpenSSL Application Programs.
 
632
$!
 
633
$ APPS:
 
634
$!
 
635
$! Tell The User What We Are Doing.
 
636
$!
 
637
$ WRITE SYS$OUTPUT ""
 
638
$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
 
639
$!
 
640
$! Go To The [.APPS] Directory.
 
641
$!
 
642
$ SET DEFAULT SYS$DISK:[.APPS]
 
643
$!
 
644
$! Build The Application Programs.
 
645
$!
 
646
$ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
 
647
$!
 
648
$! Go Back To The Main Directory.
 
649
$!
 
650
$ SET DEFAULT [-]
 
651
$!
 
652
$! That's All, Time To RETURN.
 
653
$!
 
654
$ RETURN
 
655
$!
 
656
$! Build The OpenSSL Application Programs.
 
657
$!
 
658
$ ENGINES:
 
659
$!
 
660
$! Tell The User What We Are Doing.
 
661
$!
 
662
$ WRITE SYS$OUTPUT ""
 
663
$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.ENGINES] Engines."
 
664
$!
 
665
$! Go To The [.ENGINES] Directory.
 
666
$!
 
667
$ SET DEFAULT SYS$DISK:[.ENGINES]
 
668
$!
 
669
$! Build The Application Programs.
 
670
$!
 
671
$ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' "''BUILDPART'"
 
672
$!
 
673
$! Go Back To The Main Directory.
 
674
$!
 
675
$ SET DEFAULT [-]
 
676
$!
 
677
$! That's All, Time To RETURN.
 
678
$!
 
679
$ RETURN
 
680
$!
 
681
$! Check The User's Options.
 
682
$!
 
683
$ CHECK_OPTIONS:
 
684
$!
 
685
$! Check if there's a "part", and separate it out
 
686
$!
 
687
$ BUILDPART = F$ELEMENT(1,"/",P1)
 
688
$ IF BUILDPART .EQS. "/"
 
689
$ THEN
 
690
$   BUILDPART = ""
 
691
$ ELSE
 
692
$   P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1)
 
693
$ ENDIF
 
694
$!
 
695
$! Check To See If P1 Is Blank.
 
696
$!
 
697
$ IF (P1.EQS."ALL")
 
698
$ THEN
 
699
$!
 
700
$!   P1 Is ALL, So Build Everything.
 
701
$!
 
702
$    BUILDCOMMAND = "ALL"
 
703
$!
 
704
$! Else...
 
705
$!
 
706
$ ELSE
 
707
$!
 
708
$!  Else, Check To See If P1 Has A Valid Arguement.
 
709
$!
 
710
$   IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
 
711
       .OR.(P1.EQS."BUILDALL") -
 
712
       .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") -
 
713
       .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
 
714
       .OR.(P1.EQS."ENGINES")
 
715
$   THEN
 
716
$!
 
717
$!    A Valid Arguement.
 
718
$!
 
719
$     BUILDCOMMAND = P1
 
720
$!
 
721
$!  Else...
 
722
$!
 
723
$   ELSE
 
724
$!
 
725
$!    Tell The User We Don't Know What They Want.
 
726
$!
 
727
$     WRITE SYS$OUTPUT ""
 
728
$     WRITE SYS$OUTPUT "USAGE:   @MAKEVMS.COM [Target] [not-used option] [Debug option] <Compiler>"
 
729
$     WRITE SYS$OUTPUT ""
 
730
$     WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL NORSAREF NODEBUG "
 
731
$     WRITE SYS$OUTPUT ""
 
732
$     WRITE SYS$OUTPUT "The Target ",P1," Is Invalid.  The Valid Target Options Are:"
 
733
$     WRITE SYS$OUTPUT ""
 
734
$     WRITE SYS$OUTPUT "    ALL      :  Just Build Everything."
 
735
$     WRITE SYS$OUTPUT "    CONFIG   :  Just build the [.CRYPTO._''ARCH']OPENSSLCONF.H file."
 
736
$     WRITE SYS$OUTPUT "    BUILDINF :  Just build the [.CRYPTO._''ARCH']BUILDINF.H file."
 
737
$     WRITE SYS$OUTPUT "    SOFTLINKS:  Just Fix The Unix soft links."
 
738
$     WRITE SYS$OUTPUT "    BUILDALL :  Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done."
 
739
$     WRITE SYS$OUTPUT "    CRYPTO   :  To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
 
740
$     WRITE SYS$OUTPUT "    CRYPTO/x :  To Build Just The x Part Of The"
 
741
$     WRITE SYS$OUTPUT "                [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
 
742
$     WRITE SYS$OUTPUT "    SSL      :  To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
 
743
$     WRITE SYS$OUTPUT "    SSL_TASK :  To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
 
744
$     WRITE SYS$OUTPUT "    TEST     :  To Build Just The OpenSSL Test Programs."
 
745
$     WRITE SYS$OUTPUT "    APPS     :  To Build Just The OpenSSL Application Programs."
 
746
$     WRITE SYS$OUTPUT "    ENGINES  :  To Build Just The ENGINES"
 
747
$     WRITE SYS$OUTPUT ""
 
748
$     WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
 
749
$     WRITE SYS$OUTPUT ""
 
750
$     WRITE SYS$OUTPUT "    ALPHA    :  Alpha Architecture."
 
751
$     WRITE SYS$OUTPUT "    IA64     :  IA64 Architecture."
 
752
$     WRITE SYS$OUTPUT "    VAX      :  VAX Architecture."
 
753
$     WRITE SYS$OUTPUT ""
 
754
$!
 
755
$!    Time To EXIT.
 
756
$!
 
757
$     GOTO TIDY
 
758
$!
 
759
$!  End The Valid Argument Check.
 
760
$!
 
761
$   ENDIF
 
762
$!
 
763
$! End The P1 Check.
 
764
$!
 
765
$ ENDIF
 
766
$!
 
767
$! Check To See If P3 Is Blank.
 
768
$!
 
769
$ IF (P3.EQS."NODEBUG")
 
770
$ THEN
 
771
$!
 
772
$!   P3 Is NODEBUG, So Compile Without Debugger Information.
 
773
$!
 
774
$    DEBUGGER = "NODEBUG"
 
775
$!
 
776
$! Else...
 
777
$!
 
778
$ ELSE
 
779
$!
 
780
$!  Check To See If We Are To Compile With Debugger Information.
 
781
$!
 
782
$   IF (P3.EQS."DEBUG")
 
783
$   THEN
 
784
$!
 
785
$!    Compile With Debugger Information.
 
786
$!
 
787
$     DEBUGGER = "DEBUG"
 
788
$!
 
789
$!  Else...
 
790
$!
 
791
$   ELSE
 
792
$!
 
793
$!    Tell The User Entered An Invalid Option..
 
794
$!
 
795
$     WRITE SYS$OUTPUT ""
 
796
$     WRITE SYS$OUTPUT "The Option ",P3," Is Invalid.  The Valid Options Are:"
 
797
$     WRITE SYS$OUTPUT ""
 
798
$     WRITE SYS$OUTPUT "    DEBUG    :  Compile With The Debugger Information."
 
799
$     WRITE SYS$OUTPUT "    NODEBUG  :  Compile Without The Debugger Information."
 
800
$     WRITE SYS$OUTPUT ""
 
801
$!
 
802
$!    Time To EXIT.
 
803
$!
 
804
$     GOTO TIDY
 
805
$!
 
806
$!  End The Valid Arguement Check.
 
807
$!
 
808
$   ENDIF
 
809
$!
 
810
$! End The P3 Check.
 
811
$!
 
812
$ ENDIF
 
813
$!
 
814
$! Check To See If P4 Is Blank.
 
815
$!
 
816
$ IF (P4.EQS."")
 
817
$ THEN
 
818
$!
 
819
$!  O.K., The User Didn't Specify A Compiler, Let's Try To
 
820
$!  Find Out Which One To Use.
 
821
$!
 
822
$!  Check To See If We Have GNU C.
 
823
$!
 
824
$   IF (F$TRNLNM("GNU_CC").NES."")
 
825
$   THEN
 
826
$!
 
827
$!    Looks Like GNUC, Set To Use GNUC.
 
828
$!
 
829
$     COMPILER = "GNUC"
 
830
$!
 
831
$!    Tell The User We Are Using GNUC.
 
832
$!
 
833
$     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
 
834
$!
 
835
$!  End The GNU C Compiler Check.
 
836
$!
 
837
$   ENDIF
 
838
$!
 
839
$!  Check To See If We Have VAXC Or DECC.
 
840
$!
 
841
$   IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
 
842
$   THEN 
 
843
$!
 
844
$!    Looks Like DECC, Set To Use DECC.
 
845
$!
 
846
$     COMPILER = "DECC"
 
847
$!
 
848
$!    Tell The User We Are Using DECC.
 
849
$!
 
850
$     WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
 
851
$!
 
852
$!  Else...
 
853
$!
 
854
$   ELSE
 
855
$!
 
856
$!    Looks Like VAXC, Set To Use VAXC.
 
857
$!
 
858
$     COMPILER = "VAXC"
 
859
$!
 
860
$!    Tell The User We Are Using VAX C.
 
861
$!
 
862
$     WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
 
863
$!
 
864
$!  End The DECC & VAXC Compiler Check.
 
865
$!
 
866
$   ENDIF
 
867
$!
 
868
$! Else...
 
869
$!
 
870
$ ELSE
 
871
$!
 
872
$!  Check To See If The User Entered A Valid Paramter.
 
873
$!
 
874
$   IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK")
 
875
$   THEN
 
876
$!
 
877
$!    Check To See If The User Wanted To Just LINK.
 
878
$!
 
879
$     IF (P4.EQS."LINK")
 
880
$     THEN
 
881
$!
 
882
$!      Looks Like LINK-only
 
883
$!
 
884
$       COMPILER = "LINK"
 
885
$!
 
886
$!      Tell The User We Are Only Linking.
 
887
$!
 
888
$       WRITE SYS$OUTPUT "LINK Only.  This actually NOT YET SUPPORTED!"
 
889
$!
 
890
$!    End LINK Check.
 
891
$!
 
892
$     ENDIF
 
893
$!
 
894
$!    Check To See If The User Wanted DECC.
 
895
$!
 
896
$     IF (P4.EQS."DECC")
 
897
$     THEN
 
898
$!
 
899
$!      Looks Like DECC, Set To Use DECC.
 
900
$!
 
901
$       COMPILER = "DECC"
 
902
$!
 
903
$!      Tell The User We Are Using DECC.
 
904
$!
 
905
$       WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
 
906
$!
 
907
$!    End DECC Check.
 
908
$!
 
909
$     ENDIF
 
910
$!
 
911
$!    Check To See If We Are To Use VAXC.
 
912
$!
 
913
$     IF (P4.EQS."VAXC")
 
914
$     THEN
 
915
$!
 
916
$!      Looks Like VAXC, Set To Use VAXC.
 
917
$!
 
918
$       COMPILER = "VAXC"
 
919
$!
 
920
$!      Tell The User We Are Using VAX C.
 
921
$!
 
922
$       WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
 
923
$!
 
924
$!    End VAXC Check
 
925
$!
 
926
$     ENDIF
 
927
$!
 
928
$!    Check To See If We Are To Use GNU C.
 
929
$!
 
930
$     IF (P4.EQS."GNUC")
 
931
$     THEN
 
932
$!
 
933
$!      Looks Like GNUC, Set To Use GNUC.
 
934
$!
 
935
$       COMPILER = "GNUC"
 
936
$!
 
937
$!      Tell The User We Are Using GNUC.
 
938
$!
 
939
$       WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
 
940
$!
 
941
$!    End The GNU C Check.
 
942
$!
 
943
$     ENDIF
 
944
$!
 
945
$!  Else The User Entered An Invalid Arguement.
 
946
$!
 
947
$   ELSE
 
948
$!
 
949
$!    Tell The User We Don't Know What They Want.
 
950
$!
 
951
$     WRITE SYS$OUTPUT ""
 
952
$     WRITE SYS$OUTPUT "The Option ",P4," Is Invalid.  The Valid Options Are:"
 
953
$     WRITE SYS$OUTPUT ""
 
954
$     WRITE SYS$OUTPUT "    VAXC  :  To Compile With VAX C."
 
955
$     WRITE SYS$OUTPUT "    DECC  :  To Compile With DEC C."
 
956
$     WRITE SYS$OUTPUT "    GNUC  :  To Compile With GNU C."
 
957
$     WRITE SYS$OUTPUT ""
 
958
$!
 
959
$!    Time To EXIT.
 
960
$!
 
961
$     GOTO TIDY
 
962
$!
 
963
$!  End The Valid Arguement Check.
 
964
$!
 
965
$   ENDIF
 
966
$!
 
967
$! End The P4 Check.
 
968
$!
 
969
$ ENDIF
 
970
$!
 
971
$! Time to check the contents of P5, and to make sure we get the correct library.
 
972
$!
 
973
$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" -
 
974
     .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE"
 
975
$ THEN
 
976
$!
 
977
$!  Check to see if SOCKETSHR was chosen
 
978
$!
 
979
$   IF P5.EQS."SOCKETSHR"
 
980
$   THEN
 
981
$!
 
982
$!    Set the library to use SOCKETSHR
 
983
$!
 
984
$     TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
 
985
$!
 
986
$!    Tell the user
 
987
$!
 
988
$     WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
 
989
$!
 
990
$!    Done with SOCKETSHR
 
991
$!
 
992
$   ENDIF
 
993
$!
 
994
$!  Check to see if MULTINET was chosen
 
995
$!
 
996
$   IF P5.EQS."MULTINET"
 
997
$   THEN
 
998
$!
 
999
$!    Set the library to use UCX emulation.
 
1000
$!
 
1001
$     P5 = "UCX"
 
1002
$!
 
1003
$!    Tell the user
 
1004
$!
 
1005
$     WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
 
1006
$!
 
1007
$!    Done with MULTINET
 
1008
$!
 
1009
$   ENDIF
 
1010
$!
 
1011
$!  Check to see if UCX was chosen
 
1012
$!
 
1013
$   IF P5.EQS."UCX"
 
1014
$   THEN
 
1015
$!
 
1016
$!    Set the library to use UCX.
 
1017
$!
 
1018
$     TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
 
1019
$!
 
1020
$!    Tell the user
 
1021
$!
 
1022
$     WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
 
1023
$!
 
1024
$!    Done with UCX
 
1025
$!
 
1026
$   ENDIF
 
1027
$!
 
1028
$!  Check to see if TCPIP was chosen
 
1029
$!
 
1030
$   IF P5.EQS."TCPIP"
 
1031
$   THEN
 
1032
$!
 
1033
$!    Set the library to use TCPIP (post UCX).
 
1034
$!
 
1035
$     TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
 
1036
$!
 
1037
$!    Tell the user
 
1038
$!
 
1039
$     WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP"
 
1040
$!
 
1041
$!    Done with TCPIP
 
1042
$!
 
1043
$   ENDIF
 
1044
$!
 
1045
$!  Check to see if NONE was chosen
 
1046
$!
 
1047
$   IF P5.EQS."NONE"
 
1048
$   THEN
 
1049
$!
 
1050
$!    Do not use a TCPIP library.
 
1051
$!
 
1052
$     TCPIP_LIB = ""
 
1053
$!
 
1054
$!    Tell the user
 
1055
$!
 
1056
$     WRITE SYS$OUTPUT "A specific TCPIP library will not be used."
 
1057
$!
 
1058
$!    Done with NONE.
 
1059
$!
 
1060
$   ENDIF
 
1061
$!
 
1062
$!  Set the TCPIP_TYPE symbol
 
1063
$!
 
1064
$   TCPIP_TYPE = P5
 
1065
$!
 
1066
$!  Print info
 
1067
$!
 
1068
$   WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
 
1069
$!
 
1070
$!  Else The User Entered An Invalid Arguement.
 
1071
$!
 
1072
$ ELSE
 
1073
$   IF P5 .NES. ""
 
1074
$   THEN
 
1075
$!
 
1076
$!    Tell The User We Don't Know What They Want.
 
1077
$!
 
1078
$     WRITE SYS$OUTPUT ""
 
1079
$     WRITE SYS$OUTPUT "The Option ",P5," Is Invalid.  The Valid Options Are:"
 
1080
$     WRITE SYS$OUTPUT ""
 
1081
$     WRITE SYS$OUTPUT "    SOCKETSHR  :  To link with SOCKETSHR TCP/IP library."
 
1082
$     WRITE SYS$OUTPUT "    UCX        :  To link with UCX TCP/IP library."
 
1083
$     WRITE SYS$OUTPUT "    TCPIP      :  To link with TCPIP TCP/IP (post UCX) library."
 
1084
$     WRITE SYS$OUTPUT "    NONE       :  To not link with a specific TCP/IP library."
 
1085
$     WRITE SYS$OUTPUT ""
 
1086
$!
 
1087
$!    Time To EXIT.
 
1088
$!
 
1089
$     GOTO TIDY
 
1090
$   ELSE
 
1091
$!
 
1092
$! If TCPIP is not defined, then hardcode it to make
 
1093
$! it clear that no TCPIP is desired.
 
1094
$!
 
1095
$     IF P5 .EQS. ""
 
1096
$     THEN
 
1097
$       TCPIP_LIB = ""
 
1098
$       TCPIP_TYPE = "NONE"
 
1099
$     ELSE
 
1100
$!
 
1101
$!    Set the TCPIP_TYPE symbol
 
1102
$!
 
1103
$       TCPIP_TYPE = P5
 
1104
$     ENDIF
 
1105
$   ENDIF
 
1106
$!
 
1107
$!  Done with TCP/IP libraries
 
1108
$!
 
1109
$ ENDIF
 
1110
$!
 
1111
$! Special Threads For OpenVMS v7.1 Or Later
 
1112
$!
 
1113
$! Written By:  Richard Levitte
 
1114
$!              richard@levitte.org
 
1115
$!
 
1116
$!
 
1117
$! Check To See If We Have A Option For P6.
 
1118
$!
 
1119
$ IF (P6.EQS."")
 
1120
$ THEN
 
1121
$!
 
1122
$!  Get The Version Of VMS We Are Using.
 
1123
$!
 
1124
$   ISSEVEN :=
 
1125
$   TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
 
1126
$   TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
 
1127
$!
 
1128
$!  Check To See If The VMS Version Is v7.1 Or Later.
 
1129
$!
 
1130
$   IF (TMP.GE.71)
 
1131
$   THEN
 
1132
$!
 
1133
$!    We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
 
1134
$!
 
1135
$     ISSEVEN := ,PTHREAD_USE_D4
 
1136
$!
 
1137
$!  End The VMS Version Check.
 
1138
$!
 
1139
$   ENDIF
 
1140
$!
 
1141
$! End The P6 Check.
 
1142
$!
 
1143
$ ENDIF
 
1144
$!
 
1145
$!  Time To RETURN...
 
1146
$!
 
1147
$ RETURN
 
1148
$!
 
1149
$ TIDY:
 
1150
$ SET DEFAULT 'DEF_ORIG'
 
1151
$ EXIT
 
1152
$!