Replaced by mkerr.pl
[openssl.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 722612ba4476cdf81ebb5068abd97a2cb6123c1b..e5388b16cd97d2b9b2dd151b4fe0e81d2cc72b98 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -6,9 +6,9 @@
 
  To install OpenSSL, you will need:
 
 
  To install OpenSSL, you will need:
 
-  * Perl
-  * C compiler
-  * A supported Unix operating system
+  * Perl 5
+  * ANSI C compiler
+  * a supported Unix operating system
 
  Quick Start
  -----------
 
  Quick Start
  -----------
 
  This will build and install OpenSSL in the default location, which is (for
  historical reasons) /usr/local/ssl. If you want to install it anywhere else,
 
  This will build and install OpenSSL in the default location, which is (for
  historical reasons) /usr/local/ssl. If you want to install it anywhere else,
- do this after running `sh config':
+ do this after running `./config':
 
   $ perl util/ssldir.pl /new/install/path
 
 
   $ perl util/ssldir.pl /new/install/path
 
+ There are several options to ./config to customize the build:
+
+  rsaref    Build with RSADSI's RSAREF toolkit.
+  no-asm    Build with no assembler code.
+  386       Use the 80386 instruction set only (the default x86 code is
+            more efficient, but requires at least a 486).
+
  If anything goes wrong, follow the detailed instructions below. If your
  operating system is not (yet) supported by OpenSSL, see the section on
  porting to a new system.
  If anything goes wrong, follow the detailed instructions below. If your
  operating system is not (yet) supported by OpenSSL, see the section on
  porting to a new system.
      If your system is not available, you will have to edit the Configure
      program and add the correct configuration for your system.
 
      If your system is not available, you will have to edit the Configure
      program and add the correct configuration for your system.
 
-     Configure configures various files by converting an existing .org file
-     into the real file. If you edit any files, remember that if a
-     corresponding .org file exists them the next time you run ./Configure
-     your changes will be lost when the file gets re-created from the .org
-     file. The files that are created from .org files are:
-
-       Makefile.ssl
-       crypto/des/des.h
-       crypto/des/des_locl.h
-       crypto/md2/md2.h
-       crypto/rc4/rc4.h
-       crypto/rc4/rc4_enc.c
-       crypto/rc2/rc2.h
-       crypto/bf/bf_locl.h
-       crypto/idea/idea.h
-       crypto/bn/bn.h
+     Configure creates the Makefile.ssl from Makefile.org and defines
+     various macros in crypto/opensslconf.h (generated from
+     crypto/opensslconf.h.in).
 
   2. Set the install directory
 
 
   2. Set the install directory
 
                       for private key files.
 
 
                       for private key files.
 
 
+  NOTE: The header files used to reside directly in the include
+  directory, but have now been moved to include/openssl so that
+  OpenSSL can co-exist with other libraries which use some of the
+  same filenames.  This means that applications that use OpenSSL
+  should now use C preprocessor directives of the form
+
+       #include <openssl/ssl.h>
+
+  instead of "#include <ssl.h>", which was used with library versions
+  up to OpenSSL 0.9.2b.
+
+  If you install a new version of OpenSSL over an old library version,
+  you should delete the old header files in the include directory.
+
+  Compatibility issues:
+
+  *  COMPILING existing applications
+
+     To compile an application that uses old filenames -- e.g.
+     "#include <ssl.h>" --, it will usually be enough to find
+     the CFLAGS definition in the application's Makefile and
+     add a C option such as
+
+          -I/usr/local/ssl/include/openssl
+
+     to it.
+
+     But don't delete the existing -I option that points to
+     the ..../include directory!  Otherwise, OpenSSL header files
+     could not #include each other.
+
+  *  WRITING applications
+
+     To write an application that is able to handle both the new
+     and the old directory layout, so that it can still be compiled
+     with library versions up to OpenSSL 0.9.2b without bothering
+     the user, you can proceed as follows:
+
+     -  Always use the new filename of OpenSSL header files,
+        e.g. #include <openssl/ssl.h>.
+
+     -  Create a directory "incl" that contains only a symbolic
+        link named "openssl", which points to the "include" directory
+        of OpenSSL.
+        For example, your application's Makefile might contain the
+        following rule, if OPENSSLDIR is a pathname (absolute or
+        relative) of the directory where OpenSSL resides:
+
+        incl/openssl:
+               -mkdir incl
+               cd $(OPENSSLDIR) # Check whether the directory really exists
+               -ln -s `cd $(OPENSSLDIR); pwd`/include incl/openssl
+
+        You will have to add "incl/openssl" to the dependencies
+        of those C files that include some OpenSSL header file.
+
+     -  Add "-Iincl" to your CFLAGS.
+
+     With these additions, the OpenSSL header files will be available
+     under both name variants if an old library version is used:
+     Your application can reach them under names like <openssl/foo.h>,
+     while the header files still are able to #include each other
+     with names of the form <foo.h>.
+
+
+
 --------------------------------------------------------------------------------
 The orignal Unix build instructions from SSLeay follow. 
 Note: some of this may be out of date and no longer applicable
 --------------------------------------------------------------------------------
 The orignal Unix build instructions from SSLeay follow. 
 Note: some of this may be out of date and no longer applicable