-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.
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 -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. edit the file include/ldapconfig.h.edit to configure
+ the software for your site (the files are well-commented):
- 3. make the software:
+ % vi include/ldapconfig.h.edit
- % make
+ 4. Configure the build 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
+ % [env settings] ./configure [options]
- 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 configure script with auto-detect the
+ appropriate settings. Use configure enable/with options and/or
+ environment variables to obtain desired results.
- % cd build/platforms/sunos4-cc
- % make
+ 5. Build dependencies
- If you want to run some simple tests after the build is complete, you
- can do this:
+ % make depend
- % make test
+ 6. Build the system
+
+ % make
- 4. install the binaries and man pages. You may need to be superuser to
+ If all goes well, the system will build as configured. If not,
+ return to step 4 after reviewing the enable/with options settings.
+
+ 7. install the binaries and man pages. You may need to be superuser to
do this (depending on where you are installing things):
% su
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.
+
+
+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.
+
+Supported Environmental Variables
+ CC C Compiler (cc, ecgs)
+ CFLAGS C Flags (-ansi)
+ CPPFLAGS CPP Flags (-I/path/include -Ddef)
+ LDFLAGS LDFLAGS (-L/path/lib -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=ecgs ./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 -predantic" ./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
- 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.