Hi there, this patch fixes a problem using foreign languages (Qt, Ice, ...) with renamed objects. E.g. you have the language .baz and want to include it into your c-program:
AUTOMAKE_OPTIONS = subdir-objects
SUFFIXES = .baz .c
# we fake here:
.baz.c:
cp $< $@
bin_PROGRAMS = foo
foo_SOURCES = foo.c sub/bar.baz
foo_CFLAGS = -I.
The current automake produces this:
--- snip ----
sub/foo-bar.o: sub/bar.baz
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
$(AM_CPPFLAGS) $(CPPFLAGS) $(foo_CFLAGS) $(CFLAGS) -MT sub/foo-bar.o -M
D -MP -MF sub/$(DEPDIR)/foo-bar.Tpo -c -o sub/foo-bar.o
`test -f 'sub/bar.baz' || echo '$(srcdir)/'`sub/bar.baz
@am__fastdepCC_TRUE@ mv -f sub/$(DEPDIR)/foo-bar.Tpo
sub/$(DEPDIR)/foo-bar.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sub/bar.baz'
object='sub/foo-bar.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE)
$(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
$(AM_CPPFLAGS) $(CPPFLAGS) $(foo_CFLAGS) $(CFLAGS) -c -o sub/foo-bar.o
`test -f 'sub/bar.baz' || echo '$(srcdir)/'`sub/bar.baz
--- snip ----
Which is wrong.
The patch feeds the generated c-file to the c-compiler instead of the
baz-file:
--- snip ----
sub/foo-bar.o: sub/bar.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
$(AM_CPPFLAGS) $(CPPFLAGS) $(foo_CFLAGS) $(CFLAGS) -MT sub/foo-bar.o -M
D -MP -MF sub/$(DEPDIR)/foo-bar.Tpo -c -o sub/foo-bar.o
`test -f 'sub/bar.c' || echo '$(srcdir)/'`sub/bar.c
@am__fastdepCC_TRUE@ mv -f sub/$(DEPDIR)/foo-bar.Tpo
sub/$(DEPDIR)/foo-bar.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sub/bar.c'
object='sub/foo-bar.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE)
$(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
$(AM_CPPFLAGS) $(CPPFLAGS) $(foo_CFLAGS) $(CFLAGS) -c -o sub/foo-bar.o
`test -f 'sub/bar.c' || echo '$(srcdir)/'`sub/bar.c
--- snip ----
I have also included a testscript suffix13.test. It is not in the diff,
because "svn diff -u" has not included it in the diff file.
Cheers,
Florian
--
Suddenly, Professor Liebowitz realizes he has come to the seminar
without his duck ...
? tests/suffix13.test
Index: ChangeLog
===================================================================
RCS file: /cvs/automake/automake/ChangeLog,v
retrieving revision 1.2988
diff -u -r1.2988 ChangeLog
--- ChangeLog 25 Apr 2007 17:55:15 -0000 1.2988
+++ ChangeLog 1 May 2007 14:42:57 -0000
@@ -1,3 +1,11 @@
+2007-05-01 Florian Briegel <[EMAIL PROTECTED]>
+
+ * automake.in: Fixed bug when building with renamed objects
+ and foreign languages.
+ * tests/suffix13.test: New test.
+ * tests/Makefile.am: Adjust.
+ * THANKS: Update.
+
2007-04-25 Eric Blake <[EMAIL PROTECTED]>
* doc/stamp-vti: Remove generated file from revision control.
@@ -337,7 +345,7 @@
* automake.in (handle_compile): Use subst, for maintainer-check.
-2006-10-09 Andreas Köhler <[EMAIL PROTECTED]> (tiny change)
+2006-10-09 Andreas K�hler <[EMAIL PROTECTED]> (tiny change)
For PR automake/505:
* lib/am/configure.am (am__CONFIG_DISTCLEAN_FILES):
Index: THANKS
===================================================================
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.301
diff -u -r1.301 THANKS
--- THANKS 29 Mar 2007 22:40:41 -0000 1.301
+++ THANKS 1 May 2007 14:42:57 -0000
@@ -87,6 +87,7 @@
Esben Haabendal Soerensen [EMAIL PROTECTED]
Ezra Peisach [EMAIL PROTECTED]
Flavien Astraud [EMAIL PROTECTED]
+Florian Briegel [EMAIL PROTECTED]
François Pinard [EMAIL PROTECTED]
Fred Fish [EMAIL PROTECTED]
Ganesan Rajagopal [EMAIL PROTECTED]
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1644
diff -u -r1.1644 automake.in
--- automake.in 29 Mar 2007 23:01:59 -0000 1.1644
+++ automake.in 1 May 2007 14:43:07 -0000
@@ -1774,7 +1774,16 @@
{
my $obj_sans_ext = substr ($object, 0,
- length ($this_obj_ext));
- my $full_ansi = $full;
+ my $full_ansi;
+ if ($directory ne '')
+ {
+ $full_ansi = $directory . '/' . $base . $extension;
+ }
+ else
+ {
+ $full_ansi = $base . $extension;
+ }
+
if ($lang->ansi && option 'ansi2knr')
{
$full_ansi =~ s/$KNOWN_EXTENSIONS_PATTERN$/\$U$&/;
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.621
diff -u -r1.621 Makefile.am
--- tests/Makefile.am 29 Mar 2007 23:26:48 -0000 1.621
+++ tests/Makefile.am 1 May 2007 14:43:08 -0000
@@ -544,6 +544,7 @@
suffix10.test \
suffix11.test \
suffix12.test \
+suffix13.test \
symlink.test \
symlink2.test \
symlink3.test \
suffix13.test
Description: application/shellscript
