Along the way to autoconfiscating portions of our Windows to Linux port for my company's desktop softare, I discovered the autoreconf
gem. It handles most of what I had stuffed into a autogen.sh
script.
One nit. I have some custom macros in an m4/
subdirectory which add support for --enable-debug
, --enable-profile
and --enable-release
flags to ./configure
. (Why aren't these standard, or at least the macros standard?) autoreconf
supports an -I m4
option to pass these to autoconf
and autoheader
, but not to aclocal
.
Drat!
However, thanks to GNU Automake by Example, I found that I can put a ACLOCAL_AMFLAGS = -I m4
line in the top-level Makefile.am
to pass -I m4
to aclocal
. This is an unfortunate code duplication, but better than simply having the feature broken.
I also discovered autoupdate
which brought my configure.ac
file up to current standards. Nifty.
Lastly, I saw that autoreconf
is actually quite clever. If I have never run ./configure
, the --make
option does nothing as it does not know how I wish to configure the project (the install directory, for example). However once I have run ./configure
, autoreconf
reuses the settings from that first run for subsequent runs of ./configure
and then dashes off with make
afterwards.
No comments:
Post a Comment