autoconf
[Top][All Lists]
Advanced

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

Re: PACKAGE vs PACKAGE_TARNAME


From: infirit
Subject: Re: PACKAGE vs PACKAGE_TARNAME
Date: Mon, 3 Feb 2014 00:23:32 +0100

On Sun, 2 Feb 2014 18:56:01 +0100
infirit <address@hidden> wrote:
> On Sun, 02 Feb 2014 23:21:03 +1000
> Peter Johansson <address@hidden> wrote:
> > [adding bug-automake]
> > On 02/02/14 12:25, infirit wrote:
> > > So for a project we wanted to make the tarball different from from
> > > the package name. So we updated AC_INIT and added the tarname and
> > > indeed now the tarball generated changes.
> > >
> > > However, we noticed that now the $PACKAGE variable is also changed
> > > to what we set as tarname. Which then caused files being installed
> > > in the wrong place as now $(pkgdatadir) changed as well.
> > 
> > The first argument in AC_INIT is used to set variable $PACKAGE_NAME.
> > The variable $PACKAGE is set by Automake within AM_INIT_AUTOMAKE
> > somehow inferred from your AC_INIT call, so this looks like a bug
> > (or feature) in Automake (cc:d here). I think you can solve your
> > problem by adding no-define to AM_INIT_AUTOMAKE and define
> > variables PACKAGE and version yourself. Hopefully the gurus on the
> > list have some better idea.
> 
> Thanks for the reply and the suggestion but it does not fix
> the problem unfortunately. I tried this:
> 
> --
> AC_INIT([this_is_package], [0.0.1], [http://someurl/],
> [this_is_package_tarname])
> AC_DEFINE([PACKAGE], ["this_is_package"], [])
> AC_DEFINE([VERSION], ["0.0.1"], [])
> AM_INIT_AUTOMAKE([1.9 foreign dist-xz no-dist-gzip no-define])
> 
> AC_OUTPUT
> AC_CONFIG_FILES([Makefile])
> 
> echo ${PACKAGE}
> echo ${PACKAGE_NAME}
> echo ${PACKAGE_TARNAME}
> --
> 
> But $PACKAGE is still set to "this_is_package_tarname" while I set it
> to be "this_is_package" with AC_DEFINE.

I think I found the problem why setting tarname causes $PACKAGE to
change. In the init.m4 file AC_PACKAGE_TARNAME is explicitely used to
set $PACKAGE [1]. This is a bug and AC_PACKAGE_NAME should be used as
it is done a little bit up for a check. AC_PACKAGE_TARNAME should only
set how the tarball is named.

However I think there is a second bug in that adding no-define as an
option still sets $PACKAGE and $VERSION.

~infirit

[1] http://git.savannah.gnu.org/cgit/automake.git/tree/m4/init.m4#n72

> > > As an example, we changed
> > > AC_INIT([this_is_package], [0.0.1], [http://someurl/])
> > >
> > > to
> > > AC_INIT([this_is_package], [0.0.1], [http://someurl/],
> > > [this_is_package_tarname])
> > >
> > > I tested this with a small configure.ac and empty Makefile.am. The
> > > example is below.
> 
> <updated example configure.ac above>
> 
> > > I put in some echo's at the end of the configure.ac and indeed the
> > > variables $PACKAGE and $PACKAGE_TARNAME *both* change when adding
> > > the tarname to AC_INIT.
> > >
> > > Is this a bug in autoconf or are we missing something?
> > >
> > > I am not subscribed so please cc me on replies.



reply via email to

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