In an autoconf
/automake
/libtool
project you need to run:
libtoolize
: this copies/links a few support scripts, includingltmain.sh
(which is the main component of libtool).aclocal
: this looks up all m4 macros that your configure script will need, and make a local copy for easier access.autoheader
: optional, if you want to useconfig.h
/AC_CONFIG_HEADERS
, otherwise all the test result macros will be inlined when you call the compiler.autoconf
: to expand all the macros used byconfigure.ac
into theconfigure
script.automake
: to convert all theMakefile.am
intoMakefile.in
templates. You probably want to invoke this with--add-missing
so additional support scripts can be linked/copied to your project (such ascompile
,missing
,depcomp
,test-driver
, etc).
Don't worry about running each tool. Just invoke autoreconf -i
and it'll run the tools that are needed. Add -v
if you want to see what tools is being executed. To avoid mistakes, just put a script like this at the root of your project:
#!/bin/bash -x
mkdir -p m4
exec autoreconf --install "$@"
Users that checkout/clone the project directly from the source repository will need to run this ./bootstrap
script at least once. This is not needed if the user got a tarball distribution.
Automake can take fairly good care of itself; it'll re-invoke the above tools when needed, when you run make
. But if you generate a broken Makefile
, you'll need to invoke ./bootstrap
and ./configure
again to generate new Makefile
s.