Table of Contents

RPSL and autotools processing
 

A complete description of the autotools processing is available from their
home pages and from the Goat Book.

autoconf: http://directory.fsf.org/GNU/autoconf.html
automake: http://directory.fsf.org/GNU/automake.html
libtool:  http://www.gnu.org/software/libtool/libtool.html
pkg-config: http://pkgconfig.freedesktop.org/wiki/

What follows is a quick run-through of the end-to-end process.  The RPSL 
user-edited files in the top level directory are:

USER-EDITED 

rpslParams    -- target name, version tags and dependencies (user edited)
runConfigure  -- configure runner script (user edited, also takes args)

During rpslSyncBuild the first phase calls the script rpslUpdateTree that
adds the rpsl-generated files:

RPSL-GENERATED

Makefile.am   -- makefile descriptions in top, tests, and source main and subdirs
configure.ac  -- top directory; the basis for the configure script
thename.pc.in -- top directory; for the pkg-config macro in configure
libname/libname.h -- "include all" header and utility source files

Then the second phase of rpslSyncBuild calls the autotools sequentially by calling
rpslBootStrap (aclocal, autoheader, libtoolize, automake, autoconf). The generated 
files from this and what generated them are as follows: 

AUTOTOOLS, LIBTOOL, PKG-CONFIG -GENERATED

aclocal.m4      (aclocal)      macros needed by configure from all over
autom4te.cache  (autom4te)     m4 macro cache dir for autotools acceleration
config.h.in     (autoheader)   template for the config.h platform defs
config/
  config.guess  (libtoolize)   enables the libtools
  config.sub        "         
  depcomp
  install-sh
  ltmain.sh         "
  missing
Makefile.in     (automake)     makes a Makefile template from configure.ac
configure       (autoconf)     converts configure.ac to the configure script

Finally, calling configure via runConfigure, for example, checks a huge number
of things, verifies the pkg-config dependencies, and produces all the Makefiles:

config.cache  (configure)    makes the final build and configuration files
config.h          "          platform-specific flags for use in code
config.log        "
config.status     "
Makefile          "          Makefiles placed everywhere there was a Makefile.am
thename.pc        "          installed so other modules can link to this one
config.cache      "          ./configure -C will use the cache next time its run
libtool           "          libtool shared object generation script
stamp-h1          "

Running make in the top level directory will run the makefiles in each subdirectory
(except tests) and then consolidate the object code into a local copy of the library 

Running make check builds each of the test mains in the tests/ directory
and runs them.  If they return 0 the test is considered to pass.

Running make install in the top level directory will cause the pkg-config pc 
file for the library, the library itself, and the library include files to be 
copied to the appropriate target directory (lib/pkgconfig, lib, and include) 
under the target location.

top


Table of Contents
William Snyder
Last modified: Sun Aug 28 22:28:47 EDT 2005