Subject: bug#10997: pkglibexecdir is unconditionally created when make install

From: Peter Breitenlohner <[email-masked]>
Date: Mon, 12 Mar 2012 12:21:51 +0100 (CET)

On Mon, 12 Mar 2012, Stefano Lattarini wrote:

> On 03/12/2012 05:55 AM, Daiki Ueno wrote:
>> I got a bug report for my package, which conditionally installs some
>> scripts into pkglibexecdir like this:
>>
>> if ENABLE_FOO
>> pkglibexec_SCRIPTS = bar
>> endif
>>
>> where pkglibexec* is not referred outside of if...endif.  When "make
>> install", automake creates pkglibexecdir even when ENABLE_FOO is false.
>>
>> I'm attaching a prove which demonstrates the behavior.
>>
> I agree it would be nice to avoid creating directories that are not actually
> needed; still, this is a low-priority bug, and I'm not yet sure how difficult
> it would be to fix.  For the moment, I've committed (in your name) the test
> case you've sent us (with minor tweakings), so that the bug will at least
> remain exposed in the testsuite.  Attached is the patch I've pushed (to maint).

Fixing this particular case might be fine, but please watch out.
In the quite similar (unconditional) case
   pkglibexec_SCRIPTS =
one might actually expect that that $(pkglibexecdir) is created
unconditionally.  (Perhaps because 'install-exec-local' or
'install-data-local' wants to install some files into that directory.)

In the TeX Live build system we actually use something quite analogous:
   nodist_bin_SCRIPTS =
   texmfdir = $(datarootdir)/texmf/scripts/xindy
   nodist_texmf_SCRIPTS = texindy.pl xindy.pl
   install-data-hook: install-perl-links
where 'install-perl-links' installs in $(bindir) the symbolic links
'texindy' and 'xindy' pointing to the respective perl scripts in
$(texmfdir).

To summarize: 'nodist_bin_SCRIPTS =' is an extremely convenient way to
ensure that $(bindir) -- or rather $(DESTDIR)$(bindir) -- exists.

Regards
Peter Breitenlohner <[email-masked]>