autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

issues with AC_INIT in autoconf-2.53....


From: Greg A. Woods
Subject: issues with AC_INIT in autoconf-2.53....
Date: Sat, 4 May 2002 14:58:53 -0400 (EDT)

Congratulations on Autoconf-2.53!  There are many improvements, and
along with Automake-1.6.1 it's a significant advance!

I do have one major issue with what I consider to be a fundamental
design flaw in Autoconf's AC_INIT macro though.  In previous releases I
was able to provide for Automake's $PACKAGE and $VERSION variable
settings with an external script:

        . ./VERSION

        AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
        AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
        AC_SUBST(PACKAGE)
        AC_SUBST(VERSION)

This meant I could modify the version identifier (and even the tarname,
which in the older automakes is of course called 'PACKAGE') without
modifying the configuration and build infrastructure (and thus without
having to re-run all the auto* programs).  This is an enormous benefit
to creating most minor releases.

It also makes writing instructions for maintainers much easier since the
same VERSION script can be used to greatly simplify what they must do:

        gmake distclean
        . ./VERSION
        tag=$(echo $VERSION | tr . _)
        cvs tag $PACKAGE-$tag .
        cd /place-to-build-releases
        cvs export -kv -r $tag -d $PACKAGE-$VERSION-export $PACKAGE
        cd $PACKAGE-$VERSION
        autoreconf --force
        sh newsyslog2netbsd.sh
        gmake dist                      # or distcheck
        mv $PACKAGE-$VERSION.tar.gz ..
        rm -rf import.d
        gmake distclean
        cd ..
        pax -rzf $PACKAGE-$VERSION.tar.gz
        diff -r --brief $PACKAGE-$VERSION-export $PACKAGE-$VERSION

Unfortunately with Autoconf-2.53 I'm forced to use either m4 macros or
static strings to define the version identifier and tarname.  I can no
longer easily change the version identifier without re-running
'autoconf'.  I can't even easily achieve the separation into a
stand-alone shell script as it must jump through hoops to dynamically
create an M4 fragment that must be included with "m4_include()" which
means that any such script would have to be a wrapper to "./configure"!

I really do not want the version identifier and tarname to be fixed in
all the generated files, comments, headers and such.  I would really
appreciate if we could go back to allowing it to be set at build time
instead of auto* time.  (I don't mind that the "package name" is fixed
in those places, but it really doesn't have to be either....)

I'm not sure where to go in the mean time.  There's just way too much
goo for me to change this locally (I can't just hack one macro, say).  I
guess I'll have to downgrade to 2.52.  Ugh.  Maybe I'll try using the
obsolete forms of AC_INIT() and AM_INIT_AUTOMAKE()....  Yuck.

(FYI I'm not on the <address@hidden> list due to spam problems with
most lists @gnu.org, so please CC me on any response.  I'd much rather
have a posting such as this one bounce because I'm not a subscriber than
to even see all the spam in the archives!)

-- 
                                                                Greg A. Woods

+1 416 218-0098;  <address@hidden>;  <address@hidden>;  <address@hidden>
Planix, Inc. <address@hidden>; VE3TCP; Secrets of the Weird <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]