---------------------------------
[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
+ * Perl 5 with core modules (see 'Note on Perl' further down)
* an ANSI C compiler
* a development environment in form of development libraries and C
header files
386 Use the 80386 instruction set only (the default x86 code is
more efficient, but requires at least a 486). Note: Use
compiler flags for any other CPU specific configuration,
- e.g. "-m32" to build x86 code on a 64 bit system.
+ e.g. "-m32" to build x86 code on an x64 system.
- no-sse2 Exclude SSE2 code pathes. Normally SSE2 extention is
+ no-sse2 Exclude SSE2 code pathes. Normally SSE2 extension is
detected at run-time, but the decision whether or not the
machine code will be executed is taken solely on CPU
capability vector. This means that if you happen to run OS
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/rt2.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/rt2.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
+
+ Also, you will find logs for all commands the tests have executed
+ in logs, test/test_*.log, one for each individual 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
+
+ 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
compile programs with libcrypto or libssl.
lib Contains the OpenSSL library files themselves.
+ Use "make install_sw" to install the software without documentation,
+ and "install_docs_html" to install HTML renditions of the manual
+ pages.
+
Package builders who want to configure the library for standard
locations, but have the package installed somewhere else so that
it can easily be packaged, can use
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
-----------------------
Note on shared libraries
------------------------
- Shared library is currently an experimental feature. The only reason to
- have them would be to conserve memory on systems where several program
- are using OpenSSL. Binary backward compatibility can't be guaranteed
- before OpenSSL version 1.0.
+ Shared libraries have certain caveats. Binary backward compatibility
+ can't be guaranteed before OpenSSL version 1.0. The only reason to
+ use them would be to conserve memory on systems where several programs
+ are using OpenSSL.
For some systems, the OpenSSL Configure script knows what is needed to
build shared libraries for libcrypto and libssl. On these systems,
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.