---------------------------------
[Installation on DOS (with djgpp), Windows, OpenVMS, MacOS (before MacOS X)
- and NetWare is described in INSTALL.DJGPP, INSTALL.W32, INSTALL.VMS,
+ and NetWare is described in INSTALL.DJGPP, INSTALL.WIN, INSTALL.VMS,
INSTALL.MacOS and INSTALL.NW.
This document describes installation on operating systems in the Unix
To install OpenSSL, you will need:
* make
- * Perl 5 with core modules (see 'Note on Perl' further down)
+ * Perl 5 with core modules (please read README.PERL)
+ * The perl module Text::Template (please read README.PERL)
* an ANSI C compiler
* a development environment in form of development libraries and C
header files
--openssldir=DIR Directory for OpenSSL files. If no prefix is specified,
the library files and binaries are also installed there.
+ no-autoalginit Don't automatically load all supported ciphers and digests.
+ Typically OpenSSL will make available all of its supported
+ ciphers and digests. For a statically linked application this
+ may be undesirable if small executable size is an objective.
+ This only affects libcrypto. Ciphers and digests will have to be
+ loaded manually using EVP_add_cipher() and EVP_add_digest() if
+ this option is used.
+
+ no-autoerrinit Don't automatically load all libcrypto/libssl error strings.
+ Typically OpenSSL will automatically load human readable error
+ strings. For a statically linked application this may be
+ undesirable if small executable size is an objective.
+
no-threads Don't try to build with support for multi-threaded
applications.
generic configurations "cc" or "gcc" should usually work on 32 bit
systems.
- Configure creates the file Makefile.ssl from Makefile.org and
+ Configure creates the file Makefile.ssl from Makefile.in and
defines various macros in crypto/opensslconf.h (generated from
crypto/opensslconf.h.in).
standard headers). If it is a problem with OpenSSL itself, please
report the problem to <openssl-bugs@openssl.org> (note that your
message will be recorded in the request tracker publicly readable
- via http://www.openssl.org/support/rt.html and will be forwarded to a
- public mailing list). Include the output of "make report" in your message.
- Please check out the request tracker. Maybe the bug was already
- reported or has already been fixed.
+ at https://www.openssl.org/community/index.html#bugs and will be
+ forwarded to a public mailing list). Include the output of "make
+ report" in your message. Please check out the request tracker. Maybe
+ the bug was already reported or has already been fixed.
[If you encounter assembler error messages, try the "no-asm"
configuration option as an immediate fix.]
$ make test
- If a test fails, look at the output. There may be reasons for
- the failure that isn't a problem in OpenSSL itself (like a missing
- or malfunctioning bc). If it is a problem with OpenSSL itself,
- try removing any compiler optimization flags from the CFLAG line
- in Makefile.ssl and run "make clean; make". Please send a bug
- report to <openssl-bugs@openssl.org>, including the output of
- "make report" in order to be added to the request tracker at
- http://www.openssl.org/support/rt.html.
+ If some tests fail, look at the output. There may be reasons for
+ the failure that isn't a problem in OpenSSL itself (like a
+ malfunction with Perl). You may want increased verbosity, that
+ can be accomplished like this:
+
+ $ HARNESS_VERBOSE=yes make test
+
+ If you want to run just one or a few specific tests, you can use
+ the make variable TESTS to specify them, like this:
+
+ $ make TESTS='test_rsa test_dsa' test
+
+ And of course, you can combine:
+
+ $ HARNESS_VERBOSE=yes make TESTS='test_rsa test_dsa' test
+
+ You can find the list of available tests like this:
+
+ $ make list-tests
+
+ Have a look at the manual for the perl module Test::Harness to
+ see what other HARNESS_* variables there are.
+
+ If you find a problem with OpenSSL itself, try removing any
+ compiler optimization flags from the CFLAG line in Makefile and
+ run "make clean; make".
+
+ Please send a bug report to <openssl-bugs@openssl.org>, and when
+ you do, please run the following and include the output in your
+ report:
+
+ $ make report
4. If everything tests ok, install OpenSSL with
locations, but have the package installed somewhere else so that
it can easily be packaged, can use
- $ make INSTALL_PREFIX=/tmp/package-root install
+ $ make DESTDIR=/tmp/package-root install
- (or specify "--install_prefix=/tmp/package-root" as a configure
- option). The specified prefix will be prepended to all
+ The specified destination directory will be prepended to all
installation target filenames.
with names of the form <foo.h>.
- Note on Perl
- ------------
-
- For our scripts, we rely quite a bit on Perl, and increasingly on
- some core Perl modules. These Perl modules are part of the Perl
- source, so if you build Perl on your own, you should be set.
-
- However, if you install Perl as binary packages, the outcome might
- differ, and you may have to check that you do get the core modules
- installed properly. We do not claim to know them all, but experience
- has told us the following:
-
- - on Linux distributions based on Debian, the package 'perl' will
- install the core Perl modules as well, so you will be fine.
- - on Linux distributions based on RPMs, you will need to install
- 'perl-core' rather than just 'perl'.
-
- It is highly recommended that you have at least Perl version 5.12
- installed.
-
Note on multi-threading
-----------------------
you can still use "no-threads" to suppress an annoying warning message
from the Configure script.)
+ OpenSSL provides built-in support for two threading models: pthreads (found on
+ most UNIX/Linux systems), and Windows threads. No other threading models are
+ supported. If your platform does not provide pthreads or Windows threads then
+ you should Configure with the "no-threads" option.
Note on shared libraries
------------------------
rm -f $F; ln -s $OPENSSL_SOURCE/$F $F
echo $F '->' $OPENSSL_SOURCE/$F
done
- make -f Makefile.org clean
+ make -f Makefile.in clean
OPENSSL_SOURCE is an environment variable that contains the absolute (this
is important!) path to the OpenSSL source tree.