From: Ralf Wildenhues Date: Mon, 13 Apr 2009 11:29:25 +0000 (+0200) Subject: bin_PROGRAMS = $(EXTRA_PROGRAMS) should work. X-Git-Tag: v1.11~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12856eb28cc576237b9c6b123af912e76abfc1aa;p=thirdparty%2Fautomake.git bin_PROGRAMS = $(EXTRA_PROGRAMS) should work. * automake.in (am_install_var): For `PROGRAMS' primary, strip `$(EXEEXT)' here already, so the name uniquifying works even when we look at names repeatedly, with inconsistent executable extension; through variable references, we might have added the extension ourselves earlier. (handle_programs): No need to strip `$(EXEEXT)' here any more. * tests/extra8.test: New test. * tests/Makefile.am: Update. * THANKS: Update. Report by Daniel Richard G. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index 311499997..fc419d78d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2009-04-13 Ralf Wildenhues + + bin_PROGRAMS = $(EXTRA_PROGRAMS) should work. + * automake.in (am_install_var): For `PROGRAMS' primary, strip + `$(EXEEXT)' here already, so the name uniquifying works even + when we look at names repeatedly, with inconsistent executable + extension; through variable references, we might have added + the extension ourselves earlier. + (handle_programs): No need to strip `$(EXEEXT)' here any more. + * tests/extra8.test: New test. + * tests/Makefile.am: Update. + * THANKS: Update. + Report by Daniel Richard G. + 2009-04-10 Jim Meyering Fix grammar in comments and documentation. diff --git a/THANKS b/THANKS index 9f91c9c4c..c041fbb3e 100644 --- a/THANKS +++ b/THANKS @@ -62,6 +62,7 @@ Dalibor Topic robilad@kaffe.org danbp danpb@nospam.postmaster.co.uk Daniel Jacobowitz drow@false.org Daniel Kahn Gillmor dkg@fifthhorseman.net +Daniel Richard G. danielg@teragram.com Dave Brolley brolley@redhat.com Dave Morrison dave@bnl.gov David A. Swierczek swiercze@mr.med.ge.com diff --git a/automake.in b/automake.in index cdbe24ae2..3549bdb75 100755 --- a/automake.in +++ b/automake.in @@ -2471,11 +2471,6 @@ sub handle_programs my $seen_libobjs = 0; my $obj = get_object_extension '.$(OBJEXT)'; - # Strip any $(EXEEXT) suffix the user might have added, or this - # will confuse &handle_source_transform and &check_canonical_spelling. - # We'll add $(EXEEXT) back later anyway. - $one_file =~ s/\$\(EXEEXT\)$//; - $known_programs{$one_file} = $where; # Canonicalize names and check for misspellings. @@ -7144,6 +7139,14 @@ sub am_install_var } else { + # Strip any $(EXEEXT) suffix the user might have added, or this + # will confuse &handle_source_transform and &check_canonical_spelling. + # We'll add $(EXEEXT) back later anyway. + # Do it here rather than in handle_programs so the uniquifying at the + # end of this function works. + ${$locvals}[1] =~ s/\$\(EXEEXT\)$// + if $primary eq 'PROGRAMS'; + push (@result, $locvals); } } diff --git a/tests/Makefile.am b/tests/Makefile.am index 027e3f5c5..9af851205 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -263,6 +263,7 @@ extra4.test \ extra5.test \ extra6.test \ extra7.test \ +extra8.test \ f90only.test \ flibs.test \ fn99.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 138e043fd..40fcf1544 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -418,6 +418,7 @@ extra4.test \ extra5.test \ extra6.test \ extra7.test \ +extra8.test \ f90only.test \ flibs.test \ fn99.test \ diff --git a/tests/extra8.test b/tests/extra8.test new file mode 100755 index 000000000..02272d42d --- /dev/null +++ b/tests/extra8.test @@ -0,0 +1,42 @@ +#!/bin/sh +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Automake is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +# Ensure defining bin_PROGRAMS in terms of EXTRA_PROGRAMS works, +# and that referring to the same program with inconsistent addition +# of $(EXEEXT) works, too. + +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<'END' +AC_PROG_CC +AC_OUTPUT +END +cat >Makefile.am <<'END' +EXTRA_PROGRAMS = foo bar +bin_PROGRAMS = $(EXTRA_PROGRAMS) baz +noinst_PROGRAMS = baz$(EXEEXT) +END + +$ACLOCAL +$AUTOMAKE + +: