1$! INSTALL.COM -- Installs the files in a given directory tree
2$!
3$! Author: Richard Levitte <richard@levitte.org>
4$! Time of creation: 22-MAY-1998 10:13
5$!
6$! Changes by Zoltan Arpadffy <zoli@polarhome.com>
7$!
8$! P1  root of the directory tree
9$! P2  "64" for 64-bit pointers.
10$!
11$!
12$! Announce/identify.
13$!
14$ proc = f$environment( "procedure")
15$ write sys$output "@@@ "+ -
16   f$parse( proc, , , "name")+ f$parse( proc, , , "type")
17$!
18$ on error then goto tidy
19$ on control_c then goto tidy
20$!
21$ if (p1 .eqs. "")
22$ then
23$   write sys$output "First argument missing."
24$   write sys$output -
25     "It should be the directory where you want things installed."
26$     exit
27$ endif
28$!
29$ if (f$getsyi( "cpu") .lt. 128)
30$ then
31$   arch = "VAX"
32$ else
33$   arch = f$edit( f$getsyi( "arch_name"), "upcase")
34$   if (arch .eqs. "") then arch = "UNK"
35$ endif
36$!
37$ archd = arch
38$ lib32 = "32"
39$ shr = "_SHR32"
40$!
41$ if (p2 .nes. "")
42$ then
43$   if (p2 .eqs. "64")
44$   then
45$     archd = arch+ "_64"
46$     lib32 = ""
47$     shr = "_SHR"
48$   else
49$     if (p2 .nes. "32")
50$     then
51$       write sys$output "Second argument invalid."
52$       write sys$output "It should be "32", "64", or nothing."
53$       exit
54$     endif
55$   endif
56$ endif
57$!
58$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
59$ root_dev = f$parse( root, , , "device", "syntax_only")
60$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
61   "[000000." - "][" - "[" - "]"
62$ root = root_dev + "[" + root_dir
63$!
64$ define /nolog wrk_sslroot 'root'.] /trans=conc
65$ define /nolog wrk_sslinclude wrk_sslroot:[include]
66$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
67$!
68$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
69   create /directory /log wrk_sslroot:[000000]
70$ if f$parse("wrk_sslinclude:") .eqs. "" then -
71   create /directory /log wrk_sslinclude:
72$ if f$parse("wrk_sslxlib:") .eqs. "" then -
73   create /directory /log wrk_sslxlib:
74$!
75$ sdirs := , -
76   'archd', -
77   objects, -
78   md2, md4, md5, sha, mdc2, hmac, ripemd, whrlpool, -
79   des, aes, rc2, rc4, rc5, idea, bf, cast, camellia, seed, -
80   bn, ec, rsa, dsa, ecdsa, dh, ecdh, dso, engine, -
81   buffer, bio, stack, lhash, rand, err, -
82   evp, asn1, pem, x509, x509v3, conf, txt_db, pkcs7, pkcs12, comp, ocsp, -
83   ui, krb5, -
84   store, cms, pqueue, ts, jpake
85$!
86$ exheader_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
87$ exheader_'archd' := opensslconf.h
88$ exheader_objects := objects.h, obj_mac.h
89$ exheader_md2 := md2.h
90$ exheader_md4 := md4.h
91$ exheader_md5 := md5.h
92$ exheader_sha := sha.h
93$ exheader_mdc2 := mdc2.h
94$ exheader_hmac := hmac.h
95$ exheader_ripemd := ripemd.h
96$ exheader_whrlpool := whrlpool.h
97$ exheader_des := des.h, des_old.h
98$ exheader_aes := aes.h
99$ exheader_rc2 := rc2.h
100$ exheader_rc4 := rc4.h
101$ exheader_rc5 := rc5.h
102$ exheader_idea := idea.h
103$ exheader_bf := blowfish.h
104$ exheader_cast := cast.h
105$ exheader_camellia := camellia.h
106$ exheader_seed := seed.h
107$ exheader_modes := modes.h
108$ exheader_bn := bn.h
109$ exheader_ec := ec.h
110$ exheader_rsa := rsa.h
111$ exheader_dsa := dsa.h
112$ exheader_ecdsa := ecdsa.h
113$ exheader_dh := dh.h
114$ exheader_ecdh := ecdh.h
115$ exheader_dso := dso.h
116$ exheader_engine := engine.h
117$ exheader_buffer := buffer.h
118$ exheader_bio := bio.h
119$ exheader_stack := stack.h, safestack.h
120$ exheader_lhash := lhash.h
121$ exheader_rand := rand.h
122$ exheader_err := err.h
123$ exheader_evp := evp.h
124$ exheader_asn1 := asn1.h, asn1_mac.h, asn1t.h
125$ exheader_pem := pem.h, pem2.h
126$ exheader_x509 := x509.h, x509_vfy.h
127$ exheader_x509v3 := x509v3.h
128$ exheader_conf := conf.h, conf_api.h
129$ exheader_txt_db := txt_db.h
130$ exheader_pkcs7 := pkcs7.h
131$ exheader_pkcs12 := pkcs12.h
132$ exheader_comp := comp.h
133$ exheader_ocsp := ocsp.h
134$ exheader_ui := ui.h, ui_compat.h
135$ exheader_krb5 := krb5_asn.h
136$! exheader_store := store.h, str_compat.h
137$ exheader_store := store.h
138$ exheader_cms := cms.h
139$ exheader_pqueue := pqueue.h
140$ exheader_ts := ts.h
141$ exheader_jpake := jpake.h
142$ libs := ssl_libcrypto
143$!
144$ exe_dir := [-.'archd'.exe.crypto]
145$!
146$! Header files.
147$!
148$ i = 0
149$ loop_sdirs:
150$   d = f$edit( f$element( i, ",", sdirs), "trim")
151$   i = i + 1
152$   if d .eqs. "," then goto loop_sdirs_end
153$   tmp = exheader_'d'
154$   if (d .nes. "") then d = "."+ d
155$   copy /protection = w:re ['d']'tmp' wrk_sslinclude: /log
156$ goto loop_sdirs
157$ loop_sdirs_end:
158$!
159$! Object libraries, shareable images.
160$!
161$ i = 0
162$ loop_lib:
163$   e = f$edit( f$element( i, ",", libs), "trim")
164$   i = i + 1
165$   if e .eqs. "," then goto loop_lib_end
166$   set noon
167$   file = exe_dir+ e+ lib32+ ".olb"
168$   if f$search( file) .nes. ""
169$   then
170$     copy /protection = w:re 'file' wrk_sslxlib: /log
171$   endif
172$!
173$   file = exe_dir+ e+ shr+ ".exe"
174$   if f$search( file) .nes. ""
175$   then
176$     copy /protection = w:re 'file' wrk_sslxlib: /log
177$   endif
178$   set on
179$ goto loop_lib
180$ loop_lib_end:
181$!
182$ tidy:
183$!
184$ call deass wrk_sslroot
185$ call deass wrk_sslinclude
186$ call deass wrk_sslxlib
187$!
188$ exit
189$!
190$ deass: subroutine
191$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
192$ then
193$   deassign /process 'p1'
194$ endif
195$ endsubroutine
196$!
197