GNU bug report logs - #14126
dist_EXTRA_SCRIPTS

Previous Next

Package: automake;

Reported by: Дилян Палаузов <dilyan.palauzov <at> aegee.org>

Date: Tue, 2 Apr 2013 20:58:02 UTC

Severity: minor

To reply to this bug, email your comments to 14126 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-automake <at> gnu.org:
bug#14126; Package automake. (Tue, 02 Apr 2013 20:58:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Дилян Палаузов <dilyan.palauzov <at> aegee.org>:
New bug report received and forwarded. Copy sent to bug-automake <at> gnu.org. (Tue, 02 Apr 2013 20:58:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Дилян Палаузов
	<dilyan.palauzov <at> aegee.org>
To: bug-automake <at> gnu.org
Subject: dist_EXTRA_SCRIPTS
Date: Tue, 02 Apr 2013 21:32:23 +0200
Hello,

As of Automake 1.13.1, in the documentaion, in node The Uniform Naming 
Scheme, last paragraph:

     Some primaries also allow additional prefixes that control other
  aspects of `automake''s behavior.  The currently defined prefixes are
  `dist_', `nodist_', `nobase_', and `notrans_'.  These prefixes are
  explained later (*note Program and Library Variables::) (*note Man
  Pages::).

is not written, which primaries allow additional prefixes, and which do 
not allow.

Moreover, I got confused by EXTRA_ , dist_ and _SCRIPTS.  "EXTRA_SCRIPTS 
= file" is legal, as is "dist_EXTRA_SCRIPTS = file" .  According to my 
expectations, the last shall mean, that on "make dist" the latter 
implies, that "file" is included in the tarball, but it isn't. 
Eventually, I had to use dist_noinst_SCRIPTS.

Do I misread the documentation, that dist_EXTRA_SCRIPTS is wrong, or is 
it not written?

Greetings
  Дилян




Information forwarded to bug-automake <at> gnu.org:
bug#14126; Package automake. (Tue, 02 Apr 2013 21:54:01 GMT) Full text and rfc822 format available.

Message #8 received at 14126 <at> debbugs.gnu.org (full text, mbox):

From: Nick Bowler <nbowler <at> elliptictech.com>
To: Дилян Палаузов
	<dilyan.palauzov <at> aegee.org>
Cc: 14126 <at> debbugs.gnu.org
Subject: Re: bug#14126: dist_EXTRA_SCRIPTS
Date: Tue, 2 Apr 2013 17:50:49 -0400
On 2013-04-02 21:32 +0200, Дилян Палаузов wrote:
> As of Automake 1.13.1, in the documentaion, in node The Uniform Naming 
> Scheme, last paragraph:
> 
>       Some primaries also allow additional prefixes that control other
>    aspects of `automake''s behavior.  The currently defined prefixes are
>    `dist_', `nodist_', `nobase_', and `notrans_'.  These prefixes are
>    explained later (*note Program and Library Variables::) (*note Man
>    Pages::).
> 
> is not written, which primaries allow additional prefixes, and which do 
> not allow.
> 
> Moreover, I got confused by EXTRA_ , dist_ and _SCRIPTS.  "EXTRA_SCRIPTS 
> = file" is legal, as is "dist_EXTRA_SCRIPTS = file" .  According to my 
> expectations, the last shall mean, that on "make dist" the latter 
> implies, that "file" is included in the tarball, but it isn't. 
> Eventually, I had to use dist_noinst_SCRIPTS.

Disclaimer: I did not look closely at what Automake actually does.

I suspect the reason is that EXTRA_SCRIPTS doesn't really make a lot
of sense, so nobody has ever tried it before.  That would mean "the
following scripts are not distributed, not installed, not built by
default, and outside of the scope of any built-in Automake rules".
In other words, it is saying that Automake doesn't have to do anything,
so the expected behaviour is the same as if you did not write anything
at all.

By that token, dist_EXTRA_SCRIPTS means "the only thing you need to do
with these files is include them in the tarball".  There is already a
variable for that: EXTRA_DIST.

I think Automake probably just ignores both versions (i.e., it treats
them like ordinary make variables).

> Do I misread the documentation, that dist_EXTRA_SCRIPTS is wrong, or is 
> it not written?

There is probably an improvement to be made (either to Automake or to
the manual), since the documentation does say that there is an EXTRA
version "for each primary" (which would include SCRIPTS) in §3.3:

  https://www.gnu.org/software/automake/manual/automake.html#Uniform

Cheers,
-- 
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)




Information forwarded to bug-automake <at> gnu.org:
bug#14126; Package automake. (Sat, 20 Apr 2013 12:49:02 GMT) Full text and rfc822 format available.

Message #11 received at 14126 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Nick Bowler <nbowler <at> elliptictech.com>
Cc: 14126 <at> debbugs.gnu.org, Дилян Палаузов
	<dilyan.palauzov <at> aegee.org>
Subject: Re: bug#14126: dist_EXTRA_SCRIPTS
Date: Sat, 20 Apr 2013 14:43:27 +0200
severity 14126 minor
stop

Hi Nick, Дилян, sorry for the delay.

On 04/02/2013 11:50 PM, Nick Bowler wrote:
> On 2013-04-02 21:32 +0200, Дилян Палаузов wrote:
>> As of Automake 1.13.1, in the documentaion, in node The Uniform Naming 
>> Scheme, last paragraph:
>>
>>       Some primaries also allow additional prefixes that control other
>>    aspects of `automake''s behavior.  The currently defined prefixes are
>>    `dist_', `nodist_', `nobase_', and `notrans_'.  These prefixes are
>>    explained later (*note Program and Library Variables::) (*note Man
>>    Pages::).
>>
>> is not written, which primaries allow additional prefixes, and which do 
>> not allow.
>>
>> Moreover, I got confused by EXTRA_ , dist_ and _SCRIPTS.  "EXTRA_SCRIPTS 
>> = file" is legal, as is "dist_EXTRA_SCRIPTS = file" .  According to my 
>> expectations, the last shall mean, that on "make dist" the latter 
>> implies, that "file" is included in the tarball, but it isn't. 
>> Eventually, I had to use dist_noinst_SCRIPTS.
> 
> Disclaimer: I did not look closely at what Automake actually does.
> 
> I suspect the reason is that EXTRA_SCRIPTS doesn't really make a lot
> of sense, so nobody has ever tried it before.
>
More precisely, it has no usefulness whatsoever.  The 'EXTRA_' prefix [1]
is actually only needed to list objects, programs or libraries that may or
may not be built, depending on what configure decides; its use is required
because Automake must *statically* know (at Automake runtime) the entire
list of objects that may be built in order to generate a Makefile.in that
will work in all cases.  In all other cases, the use of 'EXTRA_' is
pointless.

  [1] With the exclusion of its use in the very ad-hoc variable EXTRA_DIST

> That would mean "the
> following scripts are not distributed, not installed, not built by
> default, and outside of the scope of any built-in Automake rules".
> In other words, it is saying that Automake doesn't have to do anything,
> so the expected behaviour is the same as if you did not write anything
> at all.
>
Exactly.  Perhaps Automake should catch this no-op constructs, and warn
against them?  WDYT?

> By that token, dist_EXTRA_SCRIPTS means "the only thing you need to do
> with these files is include them in the tarball".  There is already a
> variable for that: EXTRA_DIST.
>
While this is true, the use of the 'SCRIPTS' primary can also serve for
documentation purpose (sorta), explicitly stating that the listed files
are scripts.  While Automake might not care about that presently, the
idiom might help making the Makefile.am clearer to human readers.  That
said, the correct way to express the concept that "these files are scripts,
but you should not install them, only distribute them" is with the 'noinst_'
prefix, not the 'EXTRA_' prefix; so something like:

   dist_noinst_SCRIPTS = foo.sh


> I think Automake probably just ignores both versions (i.e., it treats
> them like ordinary make variables).
> 
>> Do I misread the documentation, that dist_EXTRA_SCRIPTS is wrong, or is 
>> it not written?
> 
> There is probably an improvement to be made (either to Automake or to
> the manual), since the documentation does say that there is an EXTRA
> version "for each primary" (which would include SCRIPTS) in §3.3:
> 
>   https://www.gnu.org/software/automake/manual/automake.html#Uniform
>
Still, the manual also says that:

  This variable is used to list objects that may or may not be built,
  depending on what configure decides. This variable is required because
  Automake must statically know the entire list of objects that may be
  built in order to generate a Makefile.in that will work in all cases.

Maybe we should find a way to stress the point that any use of 'EXTRA_'
that does not cater to this situation is pointless?

Regards,
  Stefano




Severity set to 'minor' from 'normal' Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Sat, 20 Apr 2013 12:49:03 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 59 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.