diff options
author | Alexandre Duret-Lutz <adl@gnu.org> | 2004-10-21 21:37:52 +0000 |
---|---|---|
committer | Alexandre Duret-Lutz <adl@gnu.org> | 2004-10-21 21:37:52 +0000 |
commit | 6e2f6e8247bfc5e8cc6206ca415ba9422de0d188 (patch) | |
tree | 24b6f4596c49544e06fbdd39de6087de740c3d53 | |
parent | ecf27feb2a25fe543d817731af9189c460ee7f6d (diff) | |
download | automake-6e2f6e8247bfc5e8cc6206ca415ba9422de0d188.tar.gz |
* automake.in (get_object_extension): The extension to use is know
by the caller, and cannot be selected by looking only at the
target name. Simplify this function to simply conditionally
prepend $U to the given extension.
(handle_programs, handle_libraries, handle_ltlibraries): Hard-code
the extension to use. This way Automake won't mistake a program
named `foo.la' as a libtool library.
* tests/primary3.test: New file.
* tests/Makefile.am (TESTS): Add primary3.test.
-rw-r--r-- | ChangeLog | 12 | ||||
-rwxr-xr-x | automake.in | 21 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/Makefile.in | 2 | ||||
-rwxr-xr-x | tests/primary3.test | 44 |
5 files changed, 67 insertions, 13 deletions
@@ -1,3 +1,15 @@ +2004-10-21 Alexandre Duret-Lutz <adl@gnu.org> + + * automake.in (get_object_extension): The extension to use is know + by the caller, and cannot be selected by looking only at the + target name. Simplify this function to simply conditionally + prepend $U to the given extension. + (handle_programs, handle_libraries, handle_ltlibraries): Hard-code + the extension to use. This way Automake won't mistake a program + named `foo.la' as a libtool library. + * tests/primary3.test: New file. + * tests/Makefile.am (TESTS): Add primary3.test. + 2004-10-12 Alexandre Duret-Lutz <adl@gnu.org> * doc/automake.texi (Install): Link to node Extending for examples. diff --git a/automake.in b/automake.in index 12f57565c..4a0bbae97 100755 --- a/automake.in +++ b/automake.in @@ -1033,17 +1033,12 @@ sub shadow_unconditionally ($$) return "\$($varname)" } -# get_object_extension ($OUT) -# --------------------------- -# Return object extension. Just once, put some code into the output. -# OUT is the name of the output file -sub get_object_extension +# get_object_extension ($EXTENSION) +# --------------------------------- +# Prefix $EXTENSION with $U if ansi2knr is in use. +sub get_object_extension ($) { - my ($out) = @_; - - # Maybe require libtool library object files. - my $extension = '.$(OBJEXT)'; - $extension = '.lo' if ($out =~ /\.la$/); + my ($extension) = @_; # Check for automatic de-ANSI-fication. $extension = '$U' . $extension @@ -2254,7 +2249,7 @@ sub handle_programs my ($where, $one_file) = @$pair; my $seen_libobjs = 0; - my $obj = &get_object_extension ($one_file); + 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. @@ -2374,7 +2369,7 @@ sub handle_libraries $where->push_context ("while processing library `$onelib'"); $where->set (INTERNAL->get); - my $obj = &get_object_extension ($onelib); + my $obj = get_object_extension '.$(OBJEXT)'; # Canonicalize names and check for misspellings. my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES', @@ -2524,7 +2519,7 @@ sub handle_ltlibraries my ($where, $onelib) = @$pair; my $seen_libobjs = 0; - my $obj = &get_object_extension ($onelib); + my $obj = get_object_extension '.lo'; # Canonicalize names and check for misspellings. my $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS', diff --git a/tests/Makefile.am b/tests/Makefile.am index 1f4d28f98..01dbb2773 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -404,6 +404,7 @@ pr307.test \ prefix.test \ primary.test \ primary2.test \ +primary3.test \ proginst.test \ python.test \ python2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index f7ee9c9eb..f8955ead6 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -66,6 +66,7 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ FGREP = @FGREP@ +GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -522,6 +523,7 @@ pr307.test \ prefix.test \ primary.test \ primary2.test \ +primary3.test \ proginst.test \ python.test \ python2.test \ diff --git a/tests/primary3.test b/tests/primary3.test new file mode 100755 index 000000000..b0dc91f12 --- /dev/null +++ b/tests/primary3.test @@ -0,0 +1,44 @@ +#! /bin/sh +# Copyright (C) 2004 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 2, 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., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Make sure we can build programs ending in `.la' + +required=gcc +. ./defs || exit 1 + +set -e + +cat >>configure.in <<EOF +AC_PROG_CC +AC_OUTPUT +EOF + +cat > Makefile.am << 'END' +bin_PROGRAMS = foo.la +foo_la_SOURCES = foo.c +END + +echo 'int main () { return 0; }' > foo.c + +$ACLOCAL +$AUTOCONF +$AUTOMAKE +./configure +$MAKE |