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