automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-2036


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-2036-g9b81d15
Date: Wed, 29 Feb 2012 18:53:54 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=9b81d15f529aa5a67455d5e56f8e562540f4dba8

The branch, master has been updated
       via  9b81d15f529aa5a67455d5e56f8e562540f4dba8 (commit)
       via  51f61dfb1e861062aaa1d73fab71278c85fe0594 (commit)
       via  7d335efe6f874af817c2f29ef85a803d8db8a43a (commit)
      from  7828edbe2c2a4a7952d0a4932979eb193c724b14 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9b81d15f529aa5a67455d5e56f8e562540f4dba8
Merge: 7828edb 51f61df
Author: Stefano Lattarini <address@hidden>
Date:   Wed Feb 29 19:50:18 2012 +0100

    Merge branch 'maint'
    
    * maint:
      vala: fix 'valac' calls for projects with mixed Vala/C
      vala: expose automake bug#10894

commit 51f61dfb1e861062aaa1d73fab71278c85fe0594
Author: Stefano Lattarini <address@hidden>
Date:   Mon Feb 27 21:48:03 2012 +0100

    vala: fix 'valac' calls for projects with mixed Vala/C
    
    Fixes automake bug#10894.
    
    * automake.in (lang_vala_finish_target): Strip non-vala files
    from the dependencies of vala stamps, and from the invocation
    of valac compiler.  Related refactorings.
    * tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'.

commit 7d335efe6f874af817c2f29ef85a803d8db8a43a
Author: Stefano Lattarini <address@hidden>
Date:   Mon Feb 27 21:16:22 2012 +0100

    vala: expose automake bug#10894
    
    * tests/vala-mix2.test: New test.
    * tests/list-of-tests.mk: Add it.
    * tests/Makefile.am (XFAIL_TESTS): Likewise.
    * THANKS: Update.

-----------------------------------------------------------------------

Summary of changes:
 THANKS                                  |    1 +
 automake.in                             |   27 +++++-----
 tests/list-of-tests.mk                  |    1 +
 tests/{vala-mix.test => vala-mix2.test} |   82 ++++++++++++++++--------------
 4 files changed, 59 insertions(+), 52 deletions(-)
 copy tests/{vala-mix.test => vala-mix2.test} (62%)

diff --git a/THANKS b/THANKS
index 9d3c32c..d6080e3 100644
--- a/THANKS
+++ b/THANKS
@@ -299,6 +299,7 @@ Phil Nelson         address@hidden
 Philip Fong            address@hidden
 Philip S Tellis                address@hidden
 Пухальский Юрий Андреевич address@hidden
+Quentin Glidic         address@hidden
 Rainer Orth            address@hidden
 Rafael Laboissiere     address@hidden
 Rainer Tammer          address@hidden
diff --git a/automake.in b/automake.in
index 8530d6a..8ea1587 100644
--- a/automake.in
+++ b/automake.in
@@ -5816,20 +5816,19 @@ sub lang_vala_finish_target ($$)
   my ($self, $name) = @_;
 
   my $derived = canonicalize ($name);
-  my $varname = $derived . '_SOURCES';
-  my $var = var ($varname);
+  my $var = var "${derived}_SOURCES";
+  return unless $var;
 
-  if ($var)
+  my @vala_sources = grep { /\.vala$/ } ($var->value_as_list_recursive);
+
+  foreach my $vala_file (@vala_sources)
     {
-      foreach my $file ($var->value_as_list_recursive)
-        {
-          $output_rules .= "\$(srcdir)/$file: 
\$(srcdir)/${derived}_vala.stamp\n"
-            . "address@hidden test -f \$@; then :; else rm -f 
\$(srcdir)/${derived}_vala.stamp; fi\n"
-            . "address@hidden test -f \$@; then :; else \\\n"
-            . "\t  \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; 
\\\n"
-           . "\tfi\n"
-            if $file =~ s/(.*)\.vala$/$1.c/;
-        }
+      (my $c_file = $vala_file) =~ s/(.*)\.vala$/$1.c/;
+      $output_rules .= "\$(srcdir)/$c_file: \$(srcdir)/${derived}_vala.stamp\n"
+        . "address@hidden test -f \$@; then :; else rm -f 
\$(srcdir)/${derived}_vala.stamp; fi\n"
+        . "address@hidden test -f \$@; then :; else \\\n"
+        . "\t  \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; 
\\\n"
+        . "\tfi\n"
     }
 
   # Add rebuild rules for generated header and vapi files
@@ -5879,7 +5878,7 @@ sub lang_vala_finish_target ($$)
   my $silent = silent_flag ();
 
   $output_rules .=
-    "\$(srcdir)/${derived}_vala.stamp: \$(${derived}_SOURCES)\n".
+    "\$(srcdir)/${derived}_vala.stamp: @vala_sources\n".
 # Since the C files generated from the vala sources depend on the
 # ${derived}_vala.stamp file, we must ensure its timestamp is older than
 # those of the C files generated by the valac invocation below (this is
@@ -5887,7 +5886,7 @@ sub lang_vala_finish_target ($$)
 # Thus we need to create the stamp file *before* invoking valac, and to
 # move it to its final location only after valac has been invoked.
     "\t${silent}rm -f \$\@ && echo stamp > address@hidden".
-    "\t${verbose}\$(am__cd) \$(srcdir) && ${compile} \$(${derived}_SOURCES)\n".
+    "\t${verbose}\$(am__cd) \$(srcdir) && $compile @vala_sources\n".
     "\t${silent}mv -f address@hidden address@hidden";
 
   push_dist_common ("${derived}_vala.stamp");
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index 28a6b2a..b36d76c 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -1158,6 +1158,7 @@ vala4.test \
 vala5.test \
 vala-vpath.test \
 vala-mix.test \
+vala-mix2.test \
 vars.test \
 vars3.test \
 vartar.test \
diff --git a/tests/vala-mix.test b/tests/vala-mix2.test
similarity index 62%
copy from tests/vala-mix.test
copy to tests/vala-mix2.test
index acf47d9..88d2818 100755
--- a/tests/vala-mix.test
+++ b/tests/vala-mix2.test
@@ -14,38 +14,28 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Vala sources and C sources in the same program.  Functional test.
+# Vala sources, C and C++ sources and C and C++ headers in the same
+# program.  Functional test.  See automake bug#10894.
 
-required='valac cc GNUmake'
+required='valac cc c++ GNUmake'
 . ./defs || Exit 1
 
-cat >> configure.ac <<'END'
+set -e
+
+cat >> configure.in <<'END'
 AC_PROG_CC
-AM_PROG_CC_C_O
+AC_PROG_CXX
 AM_PROG_VALAC
 AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
-bin_PROGRAMS = zardoz mu
+bin_PROGRAMS = zardoz
 AM_VALAFLAGS = --profile=posix
-zardoz_SOURCES = foo.vala bar.c
-mu_SOURCES = 1.vala 2.c
-mu_VALAFLAGS = $(AM_VALAFLAGS) --main=run
-mu_CFLAGS = -DHAVE_MU
-END
-
-if cross_compiling; then :; else
-  unindent >> Makefile.am <<'END'
-    check-local:
-       ./zardoz
-       ./mu
-       ./zardoz | grep "foo is alive"
-       ./mu | grep "Howdy, World!"
+zardoz_SOURCES = zardoz.vala foo.h bar.c baz.c zen.hh master.cxx
 END
-fi
 
-cat > foo.vala <<'END'
+cat > zardoz.vala <<'END'
 int main ()
 {
   stdout.printf ("foo is alive\n");
@@ -53,23 +43,30 @@ int main ()
 }
 END
 
-echo 'extern int i = 0;' > bar.c
+cat > foo.h <<'END'
+int foo;
+int bar (void);
+int baz (void);
+END
 
-cat > 1.vala <<'END'
-int run ()
-{
-  stdout.printf ("Howdy, World!\n");
-  return 0;
-}
+cat > bar.c <<'END'
+#include "foo.h"
+int bar (void) { return foo + baz (); }
 END
 
-cat > 2.c <<'END'
-#ifdef HAVE_MU
-int all_is_ok = 1;
-#else
-#error "HAVE_MU no defined"
-chocke me
-#endif
+cat > baz.c <<'END'
+#include "foo.h"
+extern int foo = 0;
+int baz (void) { return 0; }
+END
+
+cat > zen.hh <<'END'
+#include <iostream>
+END
+
+cat > master.cxx <<'END'
+#include "zen.hh"
+void chatty (void) { std::cout << "Hello, stranger!\n"; }
 END
 
 $ACLOCAL
@@ -80,14 +77,11 @@ $AUTOCONF
 
 $MAKE all
 ls -l # For debugging.
-$MAKE check
 
 have_generated_files ()
 {
-  test -f mu_vala.stamp
   test -f zardoz_vala.stamp
-  test -f foo.c
-  test -f 1.c
+  test -f zardoz.c
 }
 
 # Our vala-related rules must create stamp files and intermediate
@@ -98,12 +92,24 @@ have_generated_files
 $MAKE -q
 $MAKE -n | $FGREP vala.stamp && Exit 1
 
+# But are triggered when they should.
+for file in zardoz.vala foo.h bar.c baz.c zen.hh master.cxx; do
+  $sleep
+  echo '& choke me !' >> $file
+  $MAKE && Exit 1
+  $sleep
+  sed '$d' $file > t
+  mv -f t $file
+  $MAKE
+done
+
 # Check the distribution.
 $MAKE distcheck
 
 # Stamp files and intermediate C files should *not* be removed
 # by "make clean".
 $MAKE clean
+ls -l # For debugging.
 have_generated_files
 
 # But stamp files should be removed by "maintainer-clean" (the


hooks/post-receive
-- 
GNU Automake



reply via email to

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