]> git.sur5r.net Git - openldap/blobdiff - INSTALL
Add Pth specific r/w lock implementation.
[openldap] / INSTALL
diff --git a/INSTALL b/INSTALL
index 8df8eb4b6731f67124576629b5325a6c3507679d..77fe82016acb5f9ca5974c695192cb793faf4bf2 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,19 @@
 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 Quick Start Guide is available at:
+**    http://www.openldap.org/faq/index.cgi?file=172
+**
+** The OpenLDAP Installation FAQ is available at:
+**    http://www.openldap.org/faq/index.cgi?file=8
+**
+** You should also check for platform specific hints located on
+** on our web site.
+**    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"
@@ -12,95 +24,91 @@ these steps:
 
  1. untar the distribution and cd to the top:
 
-       % tar xfz ldap-stable.tgz
-       % cd ldap
-
-    If you are reading this file, you probably have already done this!
+       % tar xfz openldap-VERSION.tgz
+       % cd openldap-VERSION
 
+       replacing VERSION to match the version you downloaded.  If you are
+       reading this file, you probably have already done this!
 
  2. Type:
-       % make Make-common
+       % ./configure --help
 
-       to copy Make-common.dist to Make.common. 
+       to list available configuration options.   A description of
+       these options is provided in the 'CONFIGURE OPTIONS' section
+       below.
 
- 3. edit the files Make-common and include/ldapconfig.h.edit to configure
-    the software for your site (the files are well-commented):
+       The configure script uses environmental variables for
+       determining compiler/linker options.  See the HINTS
+       section for commonly used settings. 
 
-       % vi Make-common
-       % vi include/ldapconfig.h.edit
+       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)
 
-    Note that you should NOT need to edit the Makefile located at the
-    top of the distribution.
+       See the 'USING ENVIRONMENT VARIABLES' section for information
+       on how to use the variables. 
 
-    If you just want to see if things will build, you can leave the
-    configuration alone and change it later.  You may want to consult
-       the appropriate platform makefile (build/*/Make-platform) for
-       platform-specific defaults.
+ 3. Configure the build system
 
-    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.
+       % [env settings] ./configure [options]
 
- 3. make the software:
+       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.
 
-       % make
+ 4. Build dependencies
 
-    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
+       % make depend
 
-    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:
+ 5. Build the system
 
-       % cd build/platforms/sunos4-cc
        % make
 
-    If you want to run some simple tests after the build is complete, you
-    can 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.
+
+ 6. Test the standalone system
 
+       This step requires the standalone LDAP server (slapd) with
+       LDBM support.
+
+       % cd tests
        % make test
 
- 4. install the binaries and man pages.  You may need to be superuser to
+       If all goes well, the system has been built as configured.  If not,
+       return to step 4 after reviewing your configuration settings.
+
+       You may want to consult the doc/install/hints file for your
+       platform.
+
+ 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
+       % su root -c make install
+
+    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).
 
-    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:
+       Client configuration files:
+         ldap.conf            - client defaults
+         ldapfilter.conf      - search filter configuration
+         ldapsearchprefs.conf - search object definitions
+         ldaptemplates.conf   - display template definitions
 
-       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
+       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.
 
@@ -108,34 +116,112 @@ 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.
+
+WARNING: Executable built in your environment may not run
+       in your user's environments.  The portability of
+       executables between environments is your responsibility.
+
+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 GNU
+       C Compiler instead of the compiler configure choose,
+       use:
+
+       [env] CC=gcc ./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 OpenLDAP INSTALL file.