Bring style of INSTALL* documents in sync with README file
and fix some inconsistencies.
This commit is contained in:
parent
e42263c226
commit
4109b97c4b
164
INSTALL
164
INSTALL
@ -1,76 +1,71 @@
|
|||||||
Installing OpenSSL on Unix
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
[For instructions for compiling OpenSSL on Windows systems, see INSTALL.W32].
|
INSTALLATION ON THE UNIX PLATFORM
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
To install OpenSSL, you will need:
|
[For instructions for compiling OpenSSL on Windows systems, see INSTALL.W32].
|
||||||
|
|
||||||
|
To install OpenSSL, you will need:
|
||||||
|
|
||||||
* Perl
|
* Perl
|
||||||
* C compiler
|
* C compiler
|
||||||
* A supported operating system
|
* A supported Unix operating system
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
If you want to just get on with it, do:
|
If you want to just get on with it, do:
|
||||||
|
|
||||||
sh config [if this fails, go to step 1b below]
|
$ ./config [if this fails, go to step 1b below]
|
||||||
make
|
$ make
|
||||||
make rehash
|
$ make rehash
|
||||||
make test
|
$ make test
|
||||||
make install
|
$ make install
|
||||||
|
|
||||||
This will build and install OpenSSL in the default location, which is
|
This will build and install OpenSSL in the default location, which is (for
|
||||||
/usr/local/ssl. If you want to install it anywhere else, do this
|
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
|
||||||
after running `sh config':
|
do this after running `sh config':
|
||||||
|
|
||||||
perl util/ssldir.pl /new/install/path
|
$ perl util/ssldir.pl /new/install/path
|
||||||
|
|
||||||
If anything goes wrong, follow the detailed instructions below. If
|
If anything goes wrong, follow the detailed instructions below. If your
|
||||||
your operating system is not (yet) supported by OpenSSL, see the
|
operating system is not (yet) supported by OpenSSL, see the section on
|
||||||
section on porting to a new system.
|
porting to a new system.
|
||||||
|
|
||||||
Installation in Detail
|
Installation in Detail
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
1a. Configure OpenSSL for your operation system automatically
|
1a. Configure OpenSSL for your operation system automatically:
|
||||||
|
|
||||||
Run
|
$ ./config
|
||||||
|
|
||||||
sh config
|
This guesses at your operating system (and compiler, if necessary) and
|
||||||
|
configures OpenSSL based on this guess. Check the first line of output to
|
||||||
This guesses at your operating system (and compiler, if
|
see if it guessed correctly. If it did not get it correct or you want to
|
||||||
necessary) and configures OpenSSL based on this guess. Check the
|
use a different compiler then go to step 1b. Otherwise go to step 2.
|
||||||
first line of output to see if it guessed correctly. If it did
|
|
||||||
not get it correct or you want to use a different compiler then
|
|
||||||
go to step 1b. Otherwise go to step 2.
|
|
||||||
|
|
||||||
1b. Configure OpenSSL for your operating system manually
|
1b. Configure OpenSSL for your operating system manually
|
||||||
|
|
||||||
OpenSSL knows about a range of different operating system, hardware
|
OpenSSL knows about a range of different operating system, hardware and
|
||||||
and compiler combinations. To see the ones it knows about, run
|
compiler combinations. To see the ones it knows about, run
|
||||||
|
|
||||||
./Configure
|
$ ./Configure
|
||||||
|
|
||||||
Pick a suitable name from the list that matches your system. For
|
Pick a suitable name from the list that matches your system. For most
|
||||||
most operating systems there is a choice between using "cc" or
|
operating systems there is a choice between using "cc" or "gcc". When
|
||||||
"gcc".
|
you have identified your system (and if necessary compiler) use this name
|
||||||
|
as the argument to ./Configure. For example, a "linux-elf" user would
|
||||||
|
run:
|
||||||
|
|
||||||
When you have identified your system (and if necessary compiler)
|
$ ./Configure linux-elf
|
||||||
use this name as the argument to ./Configure. For example, a
|
|
||||||
"linux-elf" user would run:
|
|
||||||
|
|
||||||
./Configure linux-elf
|
|
||||||
|
|
||||||
If your system is not available, you will have to edit the Configure
|
If your system is not available, you will have to edit the Configure
|
||||||
program and add the correct configuration for your system.
|
program and add the correct configuration for your system.
|
||||||
|
|
||||||
Configure configures various files by converting an existing .org
|
Configure configures various files by converting an existing .org file
|
||||||
file into the real file. If you edit any files, remember that if
|
into the real file. If you edit any files, remember that if a
|
||||||
a corresponding .org file exists them the next time you run
|
corresponding .org file exists them the next time you run ./Configure
|
||||||
./Configure your changes will be lost when the file gets
|
your changes will be lost when the file gets re-created from the .org
|
||||||
re-created from the .org file. The files that are created from
|
file. The files that are created from .org files are:
|
||||||
.org files are:
|
|
||||||
|
|
||||||
Makefile.ssl
|
Makefile.ssl
|
||||||
crypto/des/des.h
|
crypto/des/des.h
|
||||||
@ -85,71 +80,56 @@ Installation in Detail
|
|||||||
|
|
||||||
2. Set the install directory
|
2. Set the install directory
|
||||||
|
|
||||||
If the install directory will be the default of /usr/local/ssl,
|
If the install directory will be the default of /usr/local/ssl, skip to
|
||||||
skip to the next stage. Otherwise, run
|
the next stage. Otherwise, run
|
||||||
|
|
||||||
perl util/ssldir.pl /new/install/path
|
$ perl util/ssldir.pl /new/install/path
|
||||||
|
|
||||||
This configures the installation location into the "install"
|
This configures the installation location into the "install" target of
|
||||||
target of the top-level Makefile, and also updates some defines
|
the top-level Makefile, and also updates some defines in an include file
|
||||||
in an include file so that the default certificate directory is
|
so that the default certificate directory is under the proper
|
||||||
under the proper installation directory. It also updates a few
|
installation directory. It also updates a few utility files used in the
|
||||||
utility files used in the build process.
|
build process.
|
||||||
|
|
||||||
3. Build OpenSSL
|
3. Build OpenSSL by running:
|
||||||
|
|
||||||
Now run
|
$ make
|
||||||
|
|
||||||
make
|
This will build the OpenSSL libraries (libcrypto.a and libssl.a) and the
|
||||||
|
OpenSSL binary ("openssl"). The libraries will be built in the top-level
|
||||||
|
directory, and the binary will be in the "apps" directory.
|
||||||
|
|
||||||
This will build the OpenSSL libraries (libcrypto.a and libssl.a)
|
4. After a successful build, the libraries should be tested. Run:
|
||||||
and the OpenSSL binary ("openssl"). The libraries will be built
|
|
||||||
in the top-level directory, and the binary will be in the "apps"
|
|
||||||
directory.
|
|
||||||
|
|
||||||
4. After a successful build, the libraries should be tested. Run
|
$ make rehash
|
||||||
|
$ make test
|
||||||
|
|
||||||
make rehash
|
(The first line makes the test certificates in the "certs" directory
|
||||||
make test
|
accessable via an hash name, which is required for some of the tests).
|
||||||
|
|
||||||
(The first line makes the test certificates in the "certs"
|
|
||||||
directory accessable via an hash name, which is required for some
|
|
||||||
of the tests).
|
|
||||||
|
|
||||||
5. If everything tests ok, install OpenSSL with
|
5. If everything tests ok, install OpenSSL with
|
||||||
|
|
||||||
make install
|
$ make install
|
||||||
|
|
||||||
This will create the installation directory (if it does not
|
This will create the installation directory (if it does not exist) and
|
||||||
exist) and then create the following subdirectories:
|
then create the following subdirectories:
|
||||||
|
|
||||||
bin Contains the openssl binary and a few other utility
|
bin Contains the openssl binary and a few other
|
||||||
programs. It also contains symbolic links so
|
utility programs.
|
||||||
that openssl commands can be accessed directly
|
|
||||||
(e.g. so that "s_client" can be used instead of
|
|
||||||
"openssl s_client").
|
|
||||||
certs Initially empty, this is the default location
|
|
||||||
for certificate files.
|
|
||||||
include Contains the header files needed if you want to
|
include Contains the header files needed if you want to
|
||||||
compile programs with libcrypto or libssl.
|
compile programs with libcrypto or libssl.
|
||||||
lib Contains the library files themselves and the
|
lib Contains the library files themselves and the
|
||||||
OpenSSL configuration file "openssl.cnf".
|
OpenSSL configuration file "openssl.cnf".
|
||||||
|
certs Initially empty, this is the default location
|
||||||
|
for certificate files.
|
||||||
private Initially empty, this is the default location
|
private Initially empty, this is the default location
|
||||||
for private key files.
|
for private key files.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
Additional Compilation Notes
|
--------------------------------------------------------------------------------
|
||||||
----------------------------
|
The orignal Unix build instructions from SSLeay follow.
|
||||||
|
Note: some of this may be out of date and no longer applicable
|
||||||
These notes come from SSLeay 0.9.1 and cover some more advanced
|
--------------------------------------------------------------------------------
|
||||||
facilities (such as building a single makefile for use on Windows
|
|
||||||
systems).
|
|
||||||
|
|
||||||
|
|
||||||
# Installation of SSLeay.
|
|
||||||
# It depends on perl for a few bits but those steps can be skipped and
|
|
||||||
# the top level makefile edited by hand
|
|
||||||
|
|
||||||
# When bringing the SSLeay distribution back from the evil intel world
|
# When bringing the SSLeay distribution back from the evil intel world
|
||||||
# of Windows NT, do the following to make it nice again under unix :-)
|
# of Windows NT, do the following to make it nice again under unix :-)
|
||||||
|
137
INSTALL.W32
137
INSTALL.W32
@ -1,97 +1,104 @@
|
|||||||
Building OpenSSL under Win32.
|
|
||||||
|
|
||||||
Heres a few comments about building OpenSSL in Windows environments. Most of
|
INSTALLATION ON THE WIN32 PLATFORM
|
||||||
this is tested on Win32 but it may also work in Win 3.1 with some modification.
|
----------------------------------
|
||||||
See the end of this file for Eric's original comments.
|
|
||||||
|
|
||||||
Note: the default Win32 environment is to leave out any Windows NT specific
|
Heres a few comments about building OpenSSL in Windows environments. Most of
|
||||||
features: (currently only BIO_s_log()) if you want NT specific features see
|
this is tested on Win32 but it may also work in Win 3.1 with some
|
||||||
the "Tweaks" section later.
|
modification. See the end of this file for Eric's original comments.
|
||||||
|
|
||||||
You will need perl for Win32 (which can be got from various sources) and Visual
|
Note: the default Win32 environment is to leave out any Windows NT specific
|
||||||
C++.
|
features: (currently only BIO_s_log()) if you want NT specific features see
|
||||||
|
the "Tweaks" section later.
|
||||||
|
|
||||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files may
|
You will need perl for Win32 (which can be got from various sources) and
|
||||||
well be not up to date. This may mean that some "tweaking" is required to get
|
Visual C++.
|
||||||
it all to work. See the trouble shooting section later on for if (when?) it
|
|
||||||
goes wrong.
|
|
||||||
|
|
||||||
Firstly you should run Configure:
|
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
||||||
|
may well be not up to date. This may mean that some "tweaking" is required to
|
||||||
|
get it all to work. See the trouble shooting section later on for if (when?)
|
||||||
|
it goes wrong.
|
||||||
|
|
||||||
perl Configure VC-WIN32
|
Firstly you should run Configure:
|
||||||
|
|
||||||
Then rebuild the Win32 Makefiles and friends:
|
> perl Configure VC-WIN32
|
||||||
|
|
||||||
ms\do_ms
|
Then rebuild the Win32 Makefiles and friends:
|
||||||
|
|
||||||
if you get errors about things not having numbers assigned then check the
|
> ms\do_ms
|
||||||
troubleshooting section: you probably wont be able to compile it as it stands.
|
|
||||||
|
|
||||||
then from the VC++ environment at a prompt do:
|
If you get errors about things not having numbers assigned then check the
|
||||||
|
troubleshooting section: you probably wont be able to compile it as it
|
||||||
|
stands.
|
||||||
|
|
||||||
nmake -f ms\ntdll.mak
|
Then from the VC++ environment at a prompt do:
|
||||||
|
|
||||||
If all is well it should compile and you will have some DLLs and executables
|
> nmake -f ms\ntdll.mak
|
||||||
in out32dll. If you want to try the tests then cd to out32dll and run ..\ms\test
|
|
||||||
|
|
||||||
Troubleshooting.
|
If all is well it should compile and you will have some DLLs and executables
|
||||||
|
in out32dll. If you want to try the tests then do:
|
||||||
|
|
||||||
Since the Win32 build is only occasionally tested it may not always compile
|
> cd out32dll
|
||||||
cleanly.
|
> ..\ms\test
|
||||||
|
|
||||||
If you get an error about functions not having numbers assigned when you
|
Troubleshooting
|
||||||
run ms\do_ms then this means the Win32 ordinal files are not up to date. You
|
---------------
|
||||||
can do:
|
|
||||||
|
|
||||||
perl util\mkdef.pl crypto ssl update
|
Since the Win32 build is only occasionally tested it may not always compile
|
||||||
|
cleanly. If you get an error about functions not having numbers assigned
|
||||||
|
when you run ms\do_ms then this means the Win32 ordinal files are not up to
|
||||||
|
date. You can do:
|
||||||
|
|
||||||
then ms\do_ms should not give a warning any more. However the numbers that get
|
> perl util\mkdef.pl crypto ssl update
|
||||||
assigned by this technique may not match those that eventually get assigned
|
|
||||||
in the CVS tree: so anything linked against this version of the library
|
|
||||||
may need to be recompiled.
|
|
||||||
|
|
||||||
If you get errors about unresolved externals then this means that either you
|
then ms\do_ms should not give a warning any more. However the numbers that
|
||||||
didn't read the note above about functions not having numbers assigned or
|
get assigned by this technique may not match those that eventually get
|
||||||
someone forgot to add a function to the header file.
|
assigned in the CVS tree: so anything linked against this version of the
|
||||||
|
library may need to be recompiled.
|
||||||
|
|
||||||
In this latter case check out the header file to see if the function is defined
|
If you get errors about unresolved externals then this means that either you
|
||||||
in the header file: it should be defined twice: once with ANSI prototypes and
|
didn't read the note above about functions not having numbers assigned or
|
||||||
once without. If its missing from the non ASNI section then add an entry for
|
someone forgot to add a function to the header file.
|
||||||
it: check that ms\do_ms now reports missing numbers and update the numbers as
|
|
||||||
above.
|
|
||||||
|
|
||||||
If you get warnings in the code then the compilation will halt.
|
In this latter case check out the header file to see if the function is
|
||||||
|
defined in the header file: it should be defined twice: once with ANSI
|
||||||
|
prototypes and once without. If its missing from the non ASNI section then
|
||||||
|
add an entry for it: check that ms\do_ms now reports missing numbers and
|
||||||
|
update the numbers as above.
|
||||||
|
|
||||||
The default Makefile for Win32 halts whenever any warnings occur. Since VC++
|
If you get warnings in the code then the compilation will halt.
|
||||||
has its own ideas about warnings which don't always match up to other
|
|
||||||
environments this can happen. The best fix is to edit the file with the warning
|
|
||||||
in and fix it. Alternatively you can turn off the halt on warnings by editing
|
|
||||||
the CFLAG line in the Makefile and deleting the /WX option.
|
|
||||||
|
|
||||||
You might get compilation errors. Again you will have to fix these or
|
The default Makefile for Win32 halts whenever any warnings occur. Since VC++
|
||||||
report them.
|
has its own ideas about warnings which don't always match up to other
|
||||||
|
environments this can happen. The best fix is to edit the file with the
|
||||||
|
warning in and fix it. Alternatively you can turn off the halt on warnings by
|
||||||
|
editing the CFLAG line in the Makefile and deleting the /WX option.
|
||||||
|
|
||||||
One final comment about compiling applications linked to the OpenSSL library.
|
You might get compilation errors. Again you will have to fix these or report
|
||||||
If you don't use the multithreaded DLL runtime library (/MD option) your
|
them.
|
||||||
program will almost certainly crash: see the original SSLeay description below
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
Tweaks.
|
One final comment about compiling applications linked to the OpenSSL library.
|
||||||
|
If you don't use the multithreaded DLL runtime library (/MD option) your
|
||||||
|
program will almost certainly crash: see the original SSLeay description
|
||||||
|
below for more details.
|
||||||
|
|
||||||
There are various changes you can make to the Win32 compile environment. If you
|
Tweaks
|
||||||
have the MASM assembler 'ml' then you can try the assembly language code. To
|
------
|
||||||
do this remove the 'no-asm' part from do_ms.bat. You can also add 'debug' here
|
|
||||||
to make a debugging version of the library.
|
|
||||||
|
|
||||||
If you want to enable the NT specific features of OpenSSL (currently only
|
There are various changes you can make to the Win32 compile environment. If
|
||||||
the logging BIO) follow the instructions above but call the batch file
|
you have the MASM assembler 'ml' then you can try the assembly language code.
|
||||||
do_nt.bat instead of do_ms.bat.
|
To do this remove the 'no-asm' part from do_ms.bat. You can also add 'debug'
|
||||||
|
here to make a debugging version of the library.
|
||||||
|
|
||||||
You can also build a static version of the library using the Makefile ms\nt.mak
|
If you want to enable the NT specific features of OpenSSL (currently only the
|
||||||
|
logging BIO) follow the instructions above but call the batch file do_nt.bat
|
||||||
|
instead of do_ms.bat.
|
||||||
|
|
||||||
|
You can also build a static version of the library using the Makefile
|
||||||
|
ms\nt.mak
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
The orignal Windows build instructions from SSLeay follow. Note: some of this
|
The orignal Windows build instructions from SSLeay follow.
|
||||||
may be out of date and no longer applicable
|
Note: some of this may be out of date and no longer applicable
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
The Microsoft World.
|
The Microsoft World.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user