Olivier Boudeville wrote:
After having tried this approach, I noticed that at least AC_INIT, AC_CONFIG_SRCDIR and AC_CONFIG_HEADERS do not seem to allow variable substitution ($A taken litterally instead of its value, am I wrong ?)
I think to using a template that could be filled with settings read from a file to generate the expected configure.ac, to ensure one-time assignment and avoid multiple definition of the same value, which would be error-prone in my opinion.
Yep. That's the way to do it: a pre-autoreconf script.
It is very cute to construct it in a way that both shell
and m4 are happy, but it also adds a stiltedness that
makes things less clear. You may as well construct
several files from the one script. It's cleaner.
You can emit the "version.texi" doc file at the same time, too.
#!/bin/sh
VERSION_FILENAME="version.inc"
USAGE="Usage : "`basename $0`" <major> <minor> <release> : generates a file named '$VERSION_FILENAME' which can set version numbers both when sourced by a shell script (setting the MAJOR_VERSION, MINOR_VERSION and RELEASE variables appropriately) and included by a m4 script. This is useful as a workaround to Autoconf AC_INIT behaviour."
if test "$#" -ne 3 ; then
echo $USAGE 1>&2
exit 1
fi
echo "dnl=\"This rather convoluted file allows to centralize version numbers while \"" > $VERSION_FILENAME
echo "dnl=\"being able to be both sourced by shell scripts and included by m4.\"" >> $VERSION_FILENAME
echo "dnl=\"It can be generated by the 'generateVersionFile.sh' script.\"" >> $VERSION_FILENAME
echo "dnl=; MAJOR=$1; MINOR=$2; RELEASE=$3 ; RELEASE_DATE=\""`date '+%A, %B %e, %Y'`"\"; m4_hiding_string=\"\\" >> $VERSION_FILENAME
echo "$1.$2.$3" >> $VERSION_FILENAME
echo "dnl \"" >> $VERSION_FILENAME
echo "'$VERSION_FILENAME' has been generated."
Using a "here doc" is much more comprehensible:
cat > $VERSION_FILENAME <<- _EOF_
dnl="xxx"
dnl=; MAJOR=$1; MINOR=$2; RELEASE=$3; RELEASE_DATE="`date`"
dnl=; m4_hiding_string="
$1.$2.$3
dnl "
_EOF_
Also, as the author of "autogen", I'd suggest calling the thing, "bootstrap" :)
Cheers - Bruce
_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf