]> git.sur5r.net Git - openldap/blobdiff - INSTALL
Minor changes to support parallel make: Eliminate for-loops for building
[openldap] / INSTALL
diff --git a/INSTALL b/INSTALL
index 958d72e70424983596a9f4ddfe2726319c964817..24a4c6c5d3ca18d3d03457fdc043818fd8896759 100644 (file)
--- a/INSTALL
+++ b/INSTALL
-Making and Installing the U-M LDAP Distribution
+Making and Installing the OpenLDAP Distribution
 
+**
 ** It is recommended that you read or at least skim through ALL of the
 ** instructions in this file before attempting to build the software.
+**
+** The OpenLDAP Installation FAQ is available at:
+**    http://www.openldap.org/faq/index.cgi?file=8
+**
+** You should also check for platform specific hints.
+** These are located in doc/install/hints or:
+**    http://www.openldap.org/faq/index.cgi?file=9
+**
 
 If you want to build binaries for more than one platform from a single
 source tree, skip ahead to the "Building LDAP For More Than One Platform"
-section near the end of this file. If you are planning to run slapd,
-you should read the "SLAPD and SLURPD Administrator's Guide", found in
-the doc/guides/ directory within the distribution.
+section near the end of this file.
 
 If you simply want to build LDAP for a single machine platform, follow
 these steps:
 
  1. untar the distribution and cd to the top:
 
-       % zcat ldap-3.3.tar.Z | tar xf -
-       % cd ldap-3.3
+       % tar xfz openldap-VERSION.tgz
+       % cd ldap
 
     If you are reading this file, you probably have already done this!
 
+ 2. Type:
+       % ./configure --help
 
- 2. edit the files Make-common and include/ldapconfig.h.edit to configure
-    the software for your site (the files are well-commented):
+       to list available configuration options.   A description of
+       these options is provided in the 'CONFIGURE OPTIONS' section
+       below.
 
-       % vi Make-common
-       % vi include/ldapconfig.h.edit
+       The configure script uses environmental variables for
+       determining compiler/linker options.  See the HINTS
+       section for commonly used settings. 
 
-    Note that you should NOT need to edit the Makefile located at the
-    top of the distribution.
+       These environment variables are used: 
+               CC                      C Compiler      (cc, ecgs)
+               CFLAGS          C Flags         (-ansi)
+               CPPFLAGS        CPP Flags       (-I/path/include -Ddef)
+               LDFLAGS         LDFLAGS         (-L/path/lib)
+               LIBS            LIBS            (-llib)
 
-    If you just want to see if things will build, you can leave the
-    configuration alone and change it later.
+       See the 'USING ENVIRONMENT VARIABLES' section for information
+       on how to use the variables. 
 
-    If you have the ISODE package built and want to build the
-    LDAP-to-X.500 server (ldapd), be sure to uncomment the appropriate
-    lines near the end of the Make-common file.  By default only the
-    stand-alone server, LDAP libraries and client software are built.
+ 3. Configure the build system
 
- 3. make the software:
+       % [env settings] ./configure [options]
 
-       % make
+       If all goes well, the configure script with auto-detect the
+       appropriate settings.  Use configure enable/with options and/or
+       environment variables to obtain desired results.
+
+ 4. Build dependencies
+
+       % make depend
+
+ 5. Build the system
 
-    If all goes well, then make will figure out what platform you are on,
-    pick a compiler to use, construct Makefiles, and build everything.
-    If you see a message like "unknown platform..." LDAP has probably not
-    been set up to build on your machine.  See the file build/PORTS for
-    hints on what to do in that case.
-
-    Note that if your make does not use the Bourne (sh) shell by
-    default when executing internal scripts (reportedly the case on SGI
-    machines at least), you will need to run the make explicitly from
-    within a Bourne shell.  If you a syntax error such as "Missing ]"
-    when you do the make under your usual shell, try this:
-
-       % sh
-       $ make
-
-    If you don't like the some of the platform-specific options chosen
-    by the automatic build process (such as the compiler to use, etc),
-    you can intervene and edit them before anything is actually compiled
-    by explicitly doing a "make platform" step, editing the .make-platform
-    file (actually a link to the file to be edited), and then doing a
-    regular make:
-
-       % make platform
-       % vi .make-platform
        % make
 
-    If you want to choose the build platform yourself from among those that
-    the distribution supports, cd to the appropriate directory underneath
-    build/platforms and make from there.  For example, if you are on a
-    machine running SunOS 4.1.4 and you want to force the use of the cc
-    compiler, you would do this:
+    If all goes well, the system will build as configured.  If not,
+       return to step 4 after reviewing the configuration settings.
+
+       You may want to consult the doc/install/hints file for your
+       platform.
 
-       % cd build/platforms/sunos4-cc
+ 6. Test the standalone system
+
+       This step requires the standalone LDAP server (slapd) with
+       LDBM support.
+
+       % cd tests
        % make
 
-    If you want to run some simple tests after the build is complete, you
-    can do this:
+       If all goes well, the system has been built as configured.  If not,
+       return to step 4 after reviewing your configuration settings.
 
-       % make test
+       You may want to consult the doc/install/hints file for your
+       platform.
 
4. install the binaries and man pages.  You may need to be superuser to
7. install the binaries and man pages.  You may need to be superuser to
     do this (depending on where you are installing things):
 
        % su
        # make install
 
-    That's it!  See the man pages for the individual clients for information
-    on configuring and using them.  Eventually you will probably want to
-    edit the configuration files used by the various clients (installed in
-    the LDAP etc directory).  The files are:
+    That's it!
+
+       See the man pages for the individual applications for
+       information on configuring and using them.  You may also want
+       to edit the configuration files used by the various clients.
+       These configuration files are located in the OpenLDAP
+       configuration directory (normally /usr/local/etc/openldap).
 
-       ldapfilter.conf      - search filter configuration
-       ldapfriendly         - mapping of X.500 names to human-friendly names
-       ldapsearchprefs.conf - search object definitions
-       ldaptemplates.conf   - display template definitions
+       Client configuration files:
+         ldap.conf            - client defaults
+         ldapfilter.conf      - search filter configuration
+         ldapsearchprefs.conf - search object definitions
+         ldaptemplates.conf   - display template definitions
+
+       Server configuration files:
+         ldapd.conf           - LDAP - X.500 daemon
+         slapd.conf           - Standalone LDAP daemon
 
     There are section 5 man pages for all of these files.
 
@@ -103,34 +113,110 @@ these steps:
 Building LDAP For More Than One Platform
 
 It is now possible to build LDAP for more than one platform from the same
-source tree.  This is accomplished by some rules in the Makefiles that
-create a shadow (linked) directory tree where the binaries are placed.
+source tree.  This is accomplished by using make(1) VPATH support.  If
+your make(1) program is old and doesn't have VPATH support, install GNU
+Make.
 
 Follow these steps for each different platform:
 
- 1. move to the directory that matches the platform and compiler you
-    want to build for and type make.  The directories are all located
-    underneath the build/platforms directory.  If your platform is not
-    there, you may need to do a port - see the build/PORTS file for
-    more information.  For a Sun running SunOS 4.1.4, you might do
-    this:
+ 1.    Create a directory for the platform object files.
 
-       % cd build/platforms/sunos4-cc
-       % make links
+       % mkdir obj-platform
 
   This will create a linked source area.
2. Change your working directory to the platform object directory.
 
+       % cd obj-platform
 
- 2. move to the new directory and make as for a single platform.  Follow steps
-    1-4 above to accomplish this.  For example:
+ 3. Configure the build system
 
-       % cd obj-sunos4-cc
-       % make
+       % [env settings] ../configure --src-dir=.. [options]
+
+               ( replace ".." with the appropriate path )
+
+ 4. Continue as above (starting at step 6).
+
+       Note: make depend in VPATH environment is not yet supported.
+
+
+CONFIGURE OPTIONS
+
+Regrettably, this section has not been written (yet).  See
+"./configure --help" for current list of options.  For general
+information about how to use "configure", please read:
+       doc/install/configure
+
+
+USING ENVIRONMENT VARIABLES
+
+The configure script will also use your environmental
+variables for determining compiler/linker options.   This can
+be used to manual specify features and compilation options.
+
+NOTE: If you change environment setting, be sure to remove
+       any config.cache before running ./configure.
+
+Supported Environmental Variables
+       CC                      C compiler              (cc, egcc)
+       CFLAGS          C flags                 (-ansi)
+       CPPFLAGS        cpp flags               (-I/path/include -Ddef)
+       LDFLAGS         ld flags                (-L/usr/local/lib)
+       LIBS            libraries               (-llib)
+       PATH            command path    /usr/local/bin:/usr/bin:/bin
+
+* Including alternative compilers
+       Use the CC environment variable to tell configure to
+       use a specific compiler.  For example, to use ecgs
+       instead of the compiler configure choose, use:
+
+       [env] CC=egcc ./configure 
+
+       You can also use CC use specific flags with the
+       specified compiler.  For example, to require strict
+       ANSI C using the GNU C Compiler, use:
+
+       [env] CC="gcc -ansi -pedantic" ./configure
+
+       (you can use CFLAGS to specify compiler flags)
+
+* Preprocessor Flags
+       You may specify additional preprocessor flags by setting
+       CPPFLAGS.  For example, if you would like to use headers
+       installed in /usr/local/include, use:
+
+       [env] CPPFLAGS="-I/usr/local/include" ./configure
+
+       You can also use CPPFLAGS to specify preprocessor macros.
+
+       [env] CPPFLAGS="-D__SPECIAL_FLAG__" ./configure
+
+* Linker Flags
+       You may specify additional linker flags by setting LDFLAGS.
+       For example, if you would like to use libraries installed
+       in /usr/local/lib, use:
+
+       [env] LDFLAGS="-L/usr/local/lib" ./configure
+
+       You can also use CPPFLAGS to specify linker flags:
+
+       [env] LDFLAGS="-Bstatic" ./configure
+
+* Path
+       You may alter your path to affect configure ability to
+       find (or not find) commands.  For example, to have configure
+       additionally look in /usr/css/bin for commands, use:
+
+       [env] PATH="/usr/css/bin:$PATH" ./configure
+       
+
+HINTS
+
+* Platform specific hints are available in doc/install/hints.
 
-    That's all there is to it.  You can also create the linked source area(s)
-    by just typing "make links" at the top of the distribution, in which case
-    the Makefile will try to automatically determine the platform and
-    compiler.
+* Use software under installed in /usr/local/{include,lib}
+       [env] \
+               CPPFLAGS="-I/usr/local/include" \
+               LDFLAGS="-L/usr/local/lib" \
+               ./configure
 
 
-End of LDAP INSTALL file.
+End of OpenLDAP INSTALL file.