autoconf-patches
[Top][All Lists]
Advanced

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

Re: 38-doc-ac-init.patch


From: Ralf Corsepius
Subject: Re: 38-doc-ac-init.patch
Date: 20 Aug 2001 18:59:51 +0200

Am 20 Aug 2001 18:29:25 +0200 schrieb Akim Demaille:
> >>>>> "Ralf" == Ralf Corsepius <address@hidden> writes:
> 
> Ralf> Am 20 Aug 2001 16:48:23 +0200 schrieb Akim Demaille:
> >> This is the 700'th commit on my home repo :)
> >> 
> >> Index: ChangeLog from Akim Demaille <address@hidden>
> >> 
> >> * lib/autoconf/general.m4 (_AC_INIT_PACKAGE): Warn if the arguments
> >> are not literals.  * doc/autoconf.texi (Input) <AC_INIT>: Arguments
> >> must be literals.
> 
> Ralf> Would you please explain why this is required?
> 
> So that it can be traced.
Dooh, then I have to reiterate what I said several times before with
regard to AC_CONFIG_SUBDIRS. 

There are circumstances, where you can't avoid variables. So if tracing
can not handle variables in general, autoconf's tracing mechanism has a
fundamental problem.

> 
> Ralf> In particular, until now, it has been possible to have a file at
> Ralf> some location in such a source tree and to include it into all
> Ralf> sub-packages' configure.in to set VERSION (These are not
> Ralf> independent of the toplevel configury, but carry there own
> Ralf> configure scripts for structual reasons.)
> 
> Ralf> With your patch, this approach will be rendered
> Ralf> non-functional. Instead, it would be required to edit each
> Ralf> single configure.in and to regenerate all files depending on it
> Ralf> (The example I am talking about has ~50 configure.ins).
> 
> Why don't you have a m4_include(my_version.m4)?
> 
Two reasons:

1) autoconf-2.13 backward compatibility
2) I have not known about m4_include, before.


This is an excerpt of what is actually used:

We grep for a string and set a shell variable from inside an autoconf
macro between AC_INIT and AC_INIT_AUTOMAKE.

This is a stripped fragment of the macro being used:

AC_DEFUN([XXX_TOP],
[
XXX_TOPdir=[$1]
AC_MSG_CHECKING([for XXX Version])
if test -r "${srcdir}/${XXX_TOPdir}/VERSION"; then
XXX_VERSION=`grep 'XXX Version' ${srcdir}/${XXX_TOPdir}/VERSION | \
sed -e 's%XXX[[       ]]*Version[[    ]]*\(.*\)[[     ]]*%\1%g'`
else
AC_MSG_ERROR(Unable to find ${XXX_TOPdir}/VERSION)
fi
if test -z "$XXX_VERSION"; then
AC_MSG_ERROR(Unable to determine version)
fi
AC_MSG_RESULT($XXX_VERSION)
])


Then, configure.ins carry a fragment similar to this:

AC_INIT(file)
XXX_TOP(../../..)
AC_CONFIG_AUX_DIR(../../..)
AM_INIT_AUTOMAKE(package,$XXX_VERSION,no)
...

Note 1: PACKAGE and VERSION has not been required by AC_INIT until now,
and setting them before AC_INIT did not work (autoconf ignored them).

Ralf

 




reply via email to

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