bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: depcomp problem


From: Alexandre Duret-Lutz
Subject: Re: depcomp problem
Date: Wed, 29 Sep 2004 00:01:55 +0200
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.3.50 (gnu/linux)

Здравствуйте Пух,

>>> "Пух" == Пухальский Юрий Андреевич <address@hidden> writes:

 Пух> This problem appears at least through automake versions
 Пух> 1.9 to 1.9.2.  When I compile on Solaris, automatic
 Пух> dependency file making doesn't work because depcomp
 Пух> apparently tries to parse libtool string and chokes on
 Пух> --tag option.

Thanks for the report, and congratulation on catching the first
regression in 1.9.x :)

I'm installing the following fix on HEAD and branch-1-9.

2004-09-28  Alexandre Duret-Lutz  <address@hidden>

        * automake.in (handle_languages, define_compiler_variable): Output
        Libtool's --tag= option before --mode=compile, because depcomp use
        --mode=compile as end marker for libtool arguments.
        (define_linker_variable): Likewise before --mode=link, for
        uniformity.
        * tests/pr307.test: Make sure dependency files are updated.  That
        was not the case because depcomp thought `--tag=CC' was the
        compiler to get dependencies from.
        Report from Пухальский Юрий Андреевич.

Index: THANKS
===================================================================
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.256
diff -u -r1.256 THANKS
--- THANKS      22 Jul 2004 17:22:33 -0000      1.256
+++ THANKS      28 Sep 2004 21:48:28 -0000
@@ -205,6 +205,7 @@
 Phil Nelson            address@hidden
 Philip Fong            address@hidden
 Philip S Tellis                address@hidden
+Пухальский Юрий Андреевич address@hidden
 Rainer Orth            address@hidden
 Rafael Laboissiere     address@hidden
 Raja R Harinath                address@hidden
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1569.2.4
diff -u -r1.1569.2.4 automake.in
--- automake.in 7 Sep 2004 21:16:36 -0000       1.1569.2.4
+++ automake.in 28 Sep 2004 21:48:32 -0000
@@ -1223,7 +1223,7 @@
              }
 
            my $obj_ltcompile =
-             '$(LIBTOOL) --mode=compile ' . $libtool_tag . $obj_compile;
+             "\$(LIBTOOL) $libtool_tag--mode=compile $obj_compile";
 
            # We _need_ `-o' for per object rules.
            my $output_flag = $lang->output_flag || '-o';
@@ -5689,7 +5689,7 @@
       if $lang->libtool_tag && exists $libtool_tags{$lang->libtool_tag};
     &define_variable ($var, $value, INTERNAL);
     &define_variable ("LT$var",
-                     "\$(LIBTOOL) --mode=compile $libtool_tag$value",
+                     "\$(LIBTOOL) $libtool_tag--mode=compile $value",
                      INTERNAL)
       if var ('LIBTOOL');
 }
@@ -5711,7 +5711,7 @@
     # CCLINK = $(CCLD) blah blah...
     &define_variable ($lang->linker,
                      ((var ('LIBTOOL') ?
-                       '$(LIBTOOL) --mode=link ' . $libtool_tag  : '')
+                       "\$(LIBTOOL) $libtool_tag--mode=link " : '')
                       . $lang->link),
                      INTERNAL);
 }
Index: tests/pr307.test
===================================================================
RCS file: /cvs/automake/automake/tests/pr307.test,v
retrieving revision 1.3
diff -u -r1.3 pr307.test
--- tests/pr307.test    14 Nov 2003 21:25:59 -0000      1.3
+++ tests/pr307.test    28 Sep 2004 21:48:33 -0000
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2002  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004  Free Software Foundation, Inc.
 #
 # This file is part of GNU Automake.
 #
@@ -34,10 +34,23 @@
 cat > Makefile.am << 'END'
 check_LTLIBRARIES = librace.la
 librace_la_SOURCES = a.c b.c c.c d.c e.c f.c g.c h.c
+
+# Make sure the dependencies are updated.
+check-local:
+       for i in $(librace_la_SOURCES:.c=.Plo); do \
+         echo checking ./$(DEPDIR)/$$i; \
+         grep foo.h ./$(DEPDIR)/$$i >tst || exit 1; \
+         test `wc -l <tst` -eq 2 || exit 1; \
+       done
 END
 
+: >foo.h
+
 for i in a b c d e f g h; do
-  echo "int $i() { return 0; }" > $i.c
+  cat >$i.c <<EOF
+#include "foo.h"
+int $i() { return 0; }
+EOF
 done
 
 set -e
@@ -65,3 +78,4 @@
 # (This may happen on `f' or on some other files.)
 
 test -f librace.la
+test -f tst # a proof that check-local was run

-- 
Alexandre Duret-Lutz





reply via email to

[Prev in Thread] Current Thread [Next in Thread]