>>> "Paul" == Paul D Smith <[EMAIL PROTECTED]> writes:
[...] Paul> noinst_PROGRAMS = loadavg Paul> nodist_loadavg_SOURCES = loadavg.c Paul> loadavg_CFLAGS = -DTEST Paul> loadavg_LDADD = @GETLOADAVG_LIBS@ Paul> loadavg.c: $(srcdir)/getloadavg.c Paul> cp $(srcdir)/getloadavg.c loadavg.c (Incidentally, why do you copy the file instead of nodist_loadavg_SOURCES = getloadavg.c ? Automake should rename the object file for you so there is no clashes.) Paul> This works for normal builds, but fails during builds without ANSI Paul> compilers. Seems like Ansi2knr didn't work when per-target flags or subdirectory sources where used. The following patch should fix it. Unfortunately I don't have the time to run the test suite know, so it might as well break something else :) 2002-10-14 Alexandre Duret-Lutz <[EMAIL PROTECTED]> * automake.in (handle_single_transform_list) <full_ansi>: New variable. Use this to record correct dependencies about deansifiable files which are using per-program flags or are in a subdirectory. * tests/ansi9.test: New file. * tests/Makefile.am (TESTS): Add ansi9.test. Reported by Paul D. Smith Index: automake.in =================================================================== RCS file: /cvs/automake/automake/automake.in,v retrieving revision 1.1378 diff -u -r1.1378 automake.in --- automake.in 10 Oct 2002 17:37:37 -0000 1.1378 +++ automake.in 14 Oct 2002 21:52:29 -0000 @@ -2329,6 +2329,7 @@ my $directory = $1 || ''; my $base = $2; my $extension = $3; + my $full_ansi = $full; # We'll insert `$U' if needed. # We must generate a rule for the object if it requires its own flags. my $renamed = 0; @@ -2448,7 +2449,12 @@ { my $obj_sans_ext = substr ($object, 0, - length ($this_obj_ext)); - my $val = ("$full $obj_sans_ext " + if ($lang->ansi && defined $options{'ansi2knr'}) + { + $full_ansi =~ s/$KNOWN_EXTENSIONS_PATTERN$/\$U$&/; + } + + my $val = ("$full_ansi $obj_sans_ext " # Only use $this_obj_ext in the derived # source case because in the other case we # *don't* want $(OBJEXT) to appear here. @@ -2545,7 +2551,7 @@ # dependency. if ($directory ne '' || $renamed) { - push (@dep_list, $full); + push (@dep_list, $full_ansi); } # If resulting object is in subdir, we need to make Index: tests/Makefile.am =================================================================== RCS file: /cvs/automake/automake/tests/Makefile.am,v retrieving revision 1.450 diff -u -r1.450 Makefile.am --- tests/Makefile.am 12 Oct 2002 21:19:29 -0000 1.450 +++ tests/Makefile.am 14 Oct 2002 21:52:31 -0000 @@ -30,6 +30,7 @@ ansi6.test \ ansi7.test \ ansi8.test \ +ansi9.test \ ar.test \ asm.test \ autoheader.test \ Index: tests/ansi9.test =================================================================== RCS file: tests/ansi9.test diff -N tests/ansi9.test --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ tests/ansi9.test 14 Oct 2002 21:52:32 -0000 @@ -0,0 +1,47 @@ +#! /bin/sh +# Copyright (C) 2002 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 autoconf; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Check that subdir sources, and file compiled using per-target flags +# can still be deansified. +# Report from Paul D. Smith. + +. ./defs || exit 1 + +set -e + +cat >>configure.in <<EOF +AC_PROG_CC +AM_PROG_CC_C_O +AM_C_PROTOTYPES +EOF + +cat > Makefile.am << 'END' +AUTOMAKE_OPTIONS = ansi2knr subdir-objects +noinst_PROGRAMS = loadavg sub/sub +loadavg_SOURCES = loadavg.c +loadavg_CFLAGS = -DTEST +sub_sub_SOURCES = sub/sub.c +END + +$ACLOCAL +$AUTOMAKE --add-missing + +$FGREP 'loadavg-loadavg$U.o: loadavg$U.c' Makefile.in +$FGREP 'sub/sub$U.o: sub/sub$U.c' Makefile.in -- Alexandre Duret-Lutz