]> git.ipfire.org Git - thirdparty/openssl.git/blame - INSTALL.VMS
VMS support.
[thirdparty/openssl.git] / INSTALL.VMS
CommitLineData
7d7d2cbc
UM
1 VMS Installation instructions
2 written by Richard Levitte
3 <richard@levitte.org>
4
5
6Intro:
7======
8
9This file is divided in the following parts:
10
11 Compilation - Mandatory reading.
12 Test - Mandatory reading.
13 Installation - Mandatory reading.
14 Backward portability - Read if it's an issue.
15 Possible bugs or quirks - A few warnings on things that
16 may go wrong or may surprise you.
17 Report - How to get in touch with me.
18
19Compilation:
20============
21
22I've used the very good command procedures written by Robert Byer
23<byer@mail.all-net.net>, and just slightly modified them, making
24them slightly more general and easier to maintain.
25
26You can actually compile in almost any directory separately. Look
27for a command procedure name xxx-LIB.COM (in the library directories)
28or MAKExxx.COM (in the program directories) and read the comments at
29the top to understand how to use them. However, if you want to
30compile all you can get, the simplest is to use MAKEVMS.COM in the top
31directory. The syntax is trhe following:
32
33 @MAKEVMS <option> <rsaref-p> <debug-p> [<compiler>]
34
35<option> must be one of the following:
36
37 ALL Just build "everything".
38 DATE Just build the "[.INCLUDE]DATE.H" file.
39 SOFTLINKS Just copies some files, to simulate Unix soft links.
40 RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
41 CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
42 SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
43 SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program.
44 TEST Just build the "test" programs for OpenSSL.
45 APPS Just build the "application" programs for OpenSSL.
46
47<rsaref-p> must be one of the following:
48
49 RSAREF compile using the RSAREF Library
50 NORSAREF compile without using RSAREF
51
52Note: The RSAREF libraries are NOT INCLUDED and you have to
53 download it from "ftp://ftp.rsa.com/rsaref". You have to
54 get the ".tar-Z" file as the ".zip" file dosen't have the
55 directory structure stored. You have to extract the file
56 into the [.RSAREF] directory as that is where the scripts
57 will look for the files.
58
59Note 2: I have never done this, so I've no idea if it works or not.
60
61<debug-p> must be one of the following:
62
63 DEBUG compile with debugging info (will not optimize)
64 NODEBUG compile without debugging info (will optimize)
65
66<compiler> must be one of the following:
67
68 VAXC For VAX C.
69 DECC For DEC C.
70 GNUC For GNU C.
71
72
73You will find the crypto library in [.xxx.EXE.CRYPTO], called LIBCRYPTO.OLB,
74where xxx is VAX or AXP. You will find the SSL library in [.xxx.EXE.SSL],
75named LIBSSL.OLB, and you will find a bunch of useful programs in
76[.xxx.EXE.APPS]. However, these shouldn't be used right off unless it's
77just to test them. For production use, make sure you install first, see
78Installation below.
79
80Note: Some programs in this package require a TCP/IP library.
81
82Note 2: if you want to compile the crypto library only, please make sure
83 you have at least done a @MAKEVMS DATE and a @MAKEVMS SOFTLINKS.
84 A lot of things will break if you don't.
85
86Test:
87=====
88
89Testing is very simple, just do the following:
90
91 @[.TEST]TESTS
92
93If a test fails, try with defining the logical name OPENSSL_NO_ASM (yes,
94it's an ugly hack!) and rebuild. Please send a bug report to
95<openssl-bugs@openssl.org>, including the output of "openssl version -a"
96and of the failed test.
97
98Installation:
99=============
100
101Installation is easy, just do the following:
102
103 @INSTALL <root>
104
105<root> is the directory in which everything will be installed,
106subdirectories, libraries, header files, programs and startup command
107procedures.
108
109In the [.VMS] subdirectory of the installation, you will find the
110following command procedures:
111
112 OPENSSL_STARTUP.COM
113
114 defines all needed logical names. Takes one argument that
115 tells it in what logical name table to insert the logical
116 names. If you insert if it SYS$MANAGER:SYSTARTUP_VMS.COM, the
117 call should look like this:
118
119 @openssldev:[openssldir.VMS]OPENSSL_STARTUP "/SYSTEM"
120
121 OPENSSL_UTILS.COM
122
123 sets up the symbols to the applications. Should be called
124 from for example SYS$MANAGER:SYLOGIN.COM
125
126The logical names that are set up are the following:
127
128 SSLROOT a dotted concealed logical name pointing at the
129 root directory.
130 SSLLIB points at the directory where CRYPTORTL.OLB and
131 SSLRTL.OLB are installed.
132 SSLINCLUDE points at the directory where the header files are
133 installed.
134 SSLEXE points at the directory where the applications are
135 installed.
136 SSLCERTS the place where the certificates are stored.
137 SSLPRIVATE I'm actually not sure what this is used for.
138
139
140Backward portability:
141=====================
142
143One great problem when you build a library is making sure it will work
144on as many versions of VMS as possible. Especially, code compiled on
145OpenVMS version 7.x and above tend to be unusable in version 6.x or
146lower, because some C library routines have changed names internally
147(the C programmer won't usually see it, because the old name is
148maintained through C macros). One obvious solution is to make sure
149you have a development machine with an old enough version of OpenVMS.
150However, if you are stuck with a bunch of Alphas running OpenVMS version
1517.1, you seem to be out of luck. Fortunately, the DEC C header files
152are cluttered with conditionals that make some declarations and definitions
153dependent on the OpenVMS version or the C library version, *and* you
154can use those macros to simulate older OpenVMS or C library versions,
155by defining the macros _VMS_V6_SOURCE, __VMS_VER and __CTRL_VER with
156correct values. In the compilation scripts, I've provided the possibility
157for the user to influense the creation of such macros, through a bunch of
158symbols, all having names starting with USER_. Here's the list of them:
159
160 USER_CCFLAGS - Used to give additional qualifiers to the
161 compiler. It can't be used to define macros
162 since the scripts will do such things as well.
163 To do such things, use USER_CCDEFS.
164 USER_CCDEFS - Used to define macros on the command line. The
165 value of this symbol will be inserted inside a
166 /DEFINE=(...).
167 USER_CCDISABLEWARNINGS - Used to disable some warnings. The value is
168 inserted inside a /DISABLE=WARNING=(...).
169
170So, to maintain backward compatibility with older VMS versions, do the
171following before you start compiling:
172
173 $ USER_CCDEFS := _VMS_V6_SOURCE=1,__VMS_VER=60000000,__CRTL_VER=60000000
174 $ USER_CCDISABLEWARNINGS := PREOPTW
175
176The USER_CCDISABLEWARNINGS is there because otherwise, DEC C will complain
177that those macros have been changed.
178
179Note: Currently, this is only usefull for library compilation. The
180 programs will still be linked with the current version of the
181 C library shareable image, and will thus complain if they are
182 faced with an older version of the same C library shareable image.
183 This will probably be fixed in a future revision of OpenSSL.
184
185
186Possible bugs or quirks:
187========================
188
189I'm not perfectly sure all the programs will use the SSLCERTS:
190directory by default, it may very well be that you have to give them
191extra arguments. Please experiment.
192
193
194Report:
195=======
196
197I maintain a few mailinglists for bug reports and such on software that
198I develop/port/enhance/destroy. Please look at http://www.free.lp.se/
199for further info.
200
201
202--
203Richard Levitte <richard@levitte.org>
2041999-03-09