[Top][All Lists]
[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