From: Alexandre Duret-Lutz Date: Thu, 21 Oct 2004 21:37:41 +0000 (+0000) Subject: * automake.in (get_object_extension): The extension to use is know X-Git-Tag: Release-1-9b~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d21ec656c9e843cdfb3dd4ec3eae3b75e67ccb94;p=thirdparty%2Fautomake.git * 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. --- diff --git a/ChangeLog b/ChangeLog index d64d64915..d9fea1ad0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2004-10-21 Alexandre Duret-Lutz + + * 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 * doc/automake.texi (Install): Link to node Extending for examples. diff --git a/automake.in b/automake.in index 3cd0accfe..fffa548d8 100755 --- a/automake.in +++ b/automake.in @@ -1071,17 +1071,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 @@ -2299,7 +2294,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. @@ -2419,7 +2414,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', @@ -2569,7 +2564,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 840d3f121..b697c5fdc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -405,6 +405,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 99b0d5a0d..ec5c73802 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -524,6 +524,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 < 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