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.
**
** You should also check for platform specific hints.
** These are located in doc/install/hints.
**

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 simply want to build LDAP for a single machine platform, follow
these steps:

 1. untar the distribution and cd to the top:

	% tar xfz openldap-VERSION.tgz
	% cd ldap

    If you are reading this file, you probably have already done this!

 2. Type:
	% ./configure --help

	to list available configuration options.   A description of
	these options is provided in the 'CONFIGURE OPTIONS' section
	below.

	The configure script uses environmental variables for
	determining compiler/linker options.  See the HINTS
	section for commonly used settings. 

	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)

	See the 'USING ENVIRONMENT VARIABLES' section for information
	on how to use the variables. 

 3. edit the file include/ldapconfig.h.edit to configure
    the software for your site (the files are well-commented):

	% vi include/ldapconfig.h.edit

 4. Configure the build system

	% [env settings] ./configure [options]

	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.

 5. Build dependencies

	% make depend

 6. Build the system

	% make

    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
	# 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:

	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

    There are section 5 man pages for all of these files.


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 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.	Create a directory for the platform object files.

	% mkdir obj-platform

 2. Change your working directory to the platform object directory.

	% cd obj-platform

 3. Configure the build system

	% [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

* Platform specific hints are available in doc/install/hints.

* 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.