
Options for configure script
============================

   By default IPA utilities are single threaded, but some IPA modules
can be multi-threaded.  To build IPA utilities pthread safe, you need
to specify following option:

  --with-pthread          enable support for pthreaded modules (read INSTALL)

And set CC, CFLAGS, LDFLAGS, CPPFLAGS and CPP to build IPA utilities
with pthread support.  Note that the configure script automatically
does nothing to build IPA utilities with pthread support.  Since only
ipa(8) and ipastat(8) work with modules, it will be better to build
them separately with or without pthread support and then build ipactl(8),
which does not work with modules, so it is not required to be pthread
safe.

   Receiving sender credentials via Unix domain socket is seemed to be
not standard, so if default checking allows using this feature, but
really nothing works or if IPA can't be built because of enabling this
feature, then try the following option:

  --disable-ctl-creds     disable checking ipactl's commands credentials

   It is possible to remove not needed parts from IPA, so reducing
its size and increasing its speed, note, that you cannot disable both
dynamic and static rules at once:

  --disable-autorules     remove dynamic rules support
  --disable-rules         remove static rules support
  --disable-limits        remove limits support (including sublimits)
  --disable-sublimits     remove sublimits support
  --disable-thresholds    remove thresholds support

   To enable ipa_memfunc functions debugging use the following option
(note that this option will decrease speed of functions from ipa_memfunc
and also on some systems will increse resident size of ipa(8) and
ipastat(8) programs):

  --enable-memfunc-debug  enable debug of ipa_memfunc functions

   By default IPA utilities use dlopen(3) interface to plug in its
modules, if dlopen(3) does not work, then configure script tries to
check lt_dlopen() from libtool.  If you prefer to use libtool's ltdl
interface by default, then use the following option (you have to
install ltdl library before):

  --with-libltdl          use libtool's ltdl interface

On some systems ltdl library is placed in the directory in which
compiler does not search libraries by default, so on such systems
it is neccessary to add at least CPPFLAGS="-Ipath_to_ltdl_h" and
LDFLAGS="-Lpath_to_ltdl_dir" options for the configure script.
Since only ipa(8) and ipastat(8) plug in modules, it will be better
to build them separately and then build ipactl(8), which does not
work with modules, so it does not use dlopen(3) or like interfaces.

   To get complete list of available configure script options run:

% ./configure --help

Building and installing
=======================

To build IPA utilities run under any user account:

% ./configure [options]
% make

If you want to build IPA utilities separately, then run:

% ./configure [options_for_ipa]
% cd src
% make version.h
% make pathnames.h
% make ipa
% cd ..

% ./configure [options_for_ipactl]
% cd src
% make pathnames.h
% make ipactl
% cd ..

% ./configure [options_for_ipastat]
% cd src
% make pathnames.h
% make ipastat

Run under the user account, who is allowed to write to the directories
specified in the configure script's --prefix and relevant options:

% make install

Building on different systems
=============================

On FreeBSD, NetBSD, OpenBSD and Linux everything is expected to be
built without any additional options with BSD make or GNU gmake and
GCC.

On FreeBSD I use following commands to build IPA with TenDRA compiler:

% ./configure CC=tcc CFLAGS="-Yc99 -Ysystem -D__LONG_LONG_SUPPORTED"
% make

On Solaris 10 on x86 platform I use following command to build IPA
with GNU gmake and GCC:

% ./configure MAKE=gmake CFLAGS="-std=c99" \
	CPPFLAGS="-D__EXTENSIONS__ -D_XOPEN_SOURCE=600"
% gmake

