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.10b-59-


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.10b-59-g0619d40
Date: Sun, 17 May 2009 08:56:02 +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=0619d4094ad8f5e6d3da97fcc34ff3970b7b0870

The branch, master has been updated
       via  0619d4094ad8f5e6d3da97fcc34ff3970b7b0870 (commit)
       via  1776fe3959a09838250a69c8a15fd0dd4fcb3504 (commit)
       via  b9d837379de93389244d75dfbcb6d33ed66d4f9f (commit)
       via  b629ff7b3ed15c44147ebe87e1afb554f22e83a9 (commit)
      from  27f63d48b2cbf9a8a0af1185821929fade57298f (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 0619d4094ad8f5e6d3da97fcc34ff3970b7b0870
Author: Ralf Wildenhues <address@hidden>
Date:   Sun May 17 10:26:15 2009 +0200

    Vala: for now, require GNU make.
    
    * doc/automake.texi (Vala Support): GNU make is currently
    required for Vala sources.
    * tests/vala2.test, tests/vala3.test, tests/vala5.test: Require
    GNU make.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit 1776fe3959a09838250a69c8a15fd0dd4fcb3504
Author: Jürg Billeter <address@hidden>
Date:   Fri May 15 15:51:03 2009 +0200

    Vala: Use $(srcdir) in rebuild rules.
    
    valac is always run in srcdir as the generated files are distributed.
    So srcdir needs to be taken into account in the rebuild rules to not
    wrongly trigger a rebuild in the wrong directory.
    
    * automake.in (lang_vala_finish_target): Rebuild files in
    $(srcdir).
    * tests/vala2.test: Test rebuild rules from VPATH build.
    
    Signed-off-by: Jürg Billeter <address@hidden>
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit b9d837379de93389244d75dfbcb6d33ed66d4f9f
Author: Jürg Billeter <address@hidden>
Date:   Fri May 15 15:50:59 2009 +0200

    Vala: Add and test rebuild rules for generated header and vapi files.
    
    valac will generate additional files when using, for example, -H in
    VALAFLAGS. We need to recognize these options and add appropriate
    rebuild rules to fix parallel build.
    
    * automake.in (lang_vala_finish_target): Recognize -H, -h,
    --header, --internal-header, --vapi, --internal-api, --gir flags
    to valac and rebuild rules for generated headers; distribute
    and maintainer-clean them.
    * tests/vala2.test: Test rebuild rules.
    
    Signed-off-by: Jürg Billeter <address@hidden>
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit b629ff7b3ed15c44147ebe87e1afb554f22e83a9
Author: Jürg Billeter <address@hidden>
Date:   Sun May 17 10:14:13 2009 +0200

    Vala: Fix build when using per-target VALAFLAGS.
    
    This does not yet implement full per-target support for VALAFLAGS,
    however, this change at least fixes building when there is only one
    target per source file, which is the most common situation.
    
    * automake.in: Remove `VALAFLAGS' from `flags' in language struct.
    (lang_vala_finish_target): Handle `*_VALAFLAGS rewriting' manually
    here; check `VALAFLAGS' user variables.
    * tests/Makefile.am (XFAIL_TESTS): Remove vala5.test.
    * doc/automake.texi (Vala Support): Document per-target flag
    limitations.
    
    Signed-off-by: Jürg Billeter <address@hidden>
    Signed-off-by: Ralf Wildenhues <address@hidden>

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

Summary of changes:
 ChangeLog         |   42 ++++++++++++++++++++++++++++++++++++++++++
 automake.in       |   51 +++++++++++++++++++++++++++++++++++++++------------
 doc/automake.texi |    7 ++++++-
 tests/Makefile.am |    3 +--
 tests/Makefile.in |    3 +--
 tests/vala2.test  |   12 +++++++++++-
 tests/vala3.test  |    2 +-
 tests/vala5.test  |    2 +-
 8 files changed, 102 insertions(+), 20 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 329879c..7bdeae6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+2009-05-17  Ralf Wildenhues  <address@hidden>
+
+       Vala: for now, require GNU make.
+       * doc/automake.texi (Vala Support): GNU make is currently
+       required for Vala sources.
+       * tests/vala2.test, tests/vala3.test, tests/vala5.test: Require
+       GNU make.
+
+2009-05-17  Jürg Billeter  <address@hidden>
+
+       Vala: Use $(srcdir) in rebuild rules.
+       valac is always run in srcdir as the generated files are distributed.
+       So srcdir needs to be taken into account in the rebuild rules to not
+       wrongly trigger a rebuild in the wrong directory.
+       * automake.in (lang_vala_finish_target): Rebuild files in
+       $(srcdir).
+       * tests/vala2.test: Test rebuild rules from VPATH build.
+
+       Vala: Add and test rebuild rules for generated header and vapi files.
+       valac will generate additional files when using, for example, -H in
+       VALAFLAGS. We need to recognize these options and add appropriate
+       rebuild rules to fix parallel build.
+       * automake.in (lang_vala_finish_target): Recognize -H, -h,
+       --header, --internal-header, --vapi, --internal-api, --gir flags
+       to valac and rebuild rules for generated headers; distribute
+       and maintainer-clean them.
+       * tests/vala2.test: Test rebuild rules.
+
+2009-05-17  Jürg Billeter  <address@hidden>
+           Ralf Wildenhues  <address@hidden>
+
+       Vala: Fix build when using per-target VALAFLAGS.
+       This does not yet implement full per-target support for VALAFLAGS,
+       however, this change at least fixes building when there is only one
+       target per source file, which is the most common situation.
+       * automake.in: Remove `VALAFLAGS' from `flags' in language struct.
+       (lang_vala_finish_target): Handle `*_VALAFLAGS rewriting' manually
+       here; check `VALAFLAGS' user variables.
+       * tests/Makefile.am (XFAIL_TESTS): Remove vala5.test.
+       * doc/automake.texi (Vala Support): Document per-target flag
+       limitations.
+
 2009-05-11  Ralf Wildenhues  <address@hidden>
 
        For PR automake/540:
diff --git a/automake.in b/automake.in
index 20ef3bd..13dd79b 100755
--- a/automake.in
+++ b/automake.in
@@ -815,7 +815,7 @@ register_language ('name' => 'header',
 register_language ('name' => 'vala',
                   'Name' => 'Vala',
                   'config_vars' => ['VALAC'],
-                  'flags' => ['VALAFLAGS'],
+                  'flags' => [],
                   'compile' => '$(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)',
                   'ccer' => 'VALAC',
                   'compiler' => 'VALACOMPILE',
@@ -5942,26 +5942,53 @@ sub lang_vala_finish_target ($$)
     {
       foreach my $file ($var->value_as_list_recursive)
         {
-          $output_rules .= "$file: ${derived}_vala.stamp\n".
+          $output_rules .= "\$(srcdir)/$file: 
\$(srcdir)/${derived}_vala.stamp\n".
             "address@hidden test -f \$@; then :; else \\\n".
-            "\t  rm -f ${derived}_vala.stamp; \\\n".
-            "\t  \$(MAKE) \$(AM_MAKEFLAGS) ${derived}_vala.stamp; \\\n".
+            "\t  rm -f \$(srcdir)/${derived}_vala.stamp; \\\n".
+            "\t  cd \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n".
             "\tfi\n"
             if $file =~ s/(.*)\.vala$/$1.c/;
         }
     }
 
-  my $compile = $self->compile;
-
-  # Rewrite each occurrence of `AM_$flag' in the compile
-  # rule into `${derived}_$flag' if it exists.
-  for my $flag (@{$self->flags})
+  # Add rebuild rules for generated header and vapi files
+  my $flags = var ($derived . '_VALAFLAGS');
+  if ($flags)
     {
-      my $val = "${derived}_$flag";
-      $compile =~ s/\(AM_$flag\)/\($val\)/
-        if set_seen ($val);
+      my $lastflag = '';
+      foreach my $flag ($flags->value_as_list_recursive)
+       {
+         if (grep (/$lastflag/, ('-H', '-h', '--header', '--internal-header',
+                                 '--vapi', '--internal-vapi', '--gir')))
+           {
+             my $headerfile = $flag;
+             $output_rules .= "\$(srcdir)/$headerfile: 
\$(srcdir)/${derived}_vala.stamp\n".
+               "address@hidden test -f \$@; then :; else \\\n".
+               "\t  rm -f \$(srcdir)/${derived}_vala.stamp; \\\n".
+               "\t  cd \$(srcdir) && \$(MAKE) \$(AM_MAKEFLAGS) 
${derived}_vala.stamp; \\\n".
+               "\tfi\n";
+
+             # valac is not used when building from dist tarballs
+             # distribute the generated files
+             push_dist_common ($headerfile);
+             $clean_files{$headerfile} = MAINTAINER_CLEAN;
+           }
+         $lastflag = $flag;
+       }
     }
 
+  my $compile = $self->compile;
+
+  # Rewrite each occurrence of `AM_VALAFLAGS' in the compile
+  # rule into `${derived}_VALAFLAGS' if it exists.
+  my $val = "${derived}_VALAFLAGS";
+  $compile =~ s/\(AM_VALAFLAGS\)/\($val\)/
+    if set_seen ($val);
+
+  # VALAFLAGS is a user variable (per GNU Standards),
+  # it should not be overridden in the Makefile...
+  check_user_variables ['VALAFLAGS'];
+
   my $dirname = dirname ($name);
 
   # Only generate C code, do not run C compiler
diff --git a/doc/automake.texi b/doc/automake.texi
index e877942..877e808 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -6611,7 +6611,8 @@ the @code{_LDFLAGS} variable for the program.
 
 Automake provides initial support for Vala
 (@uref{http://www.vala-project.org/}).
-This requires valac version 0.7.0 or later.
+This requires valac version 0.7.0 or later, and currently requires
+the user to use GNU @command{make}.
 
 @example
 foo_SOURCES = foo.vala bar.vala zardoc.c
@@ -6653,6 +6654,10 @@ libfoo_la_SOURCES = foo.vala
 @end example
 @end vtable
 
+Note that currently, you cannot use per-target @code{*_VALAFLAGS}
+(@pxref{Renamed Objects}) to produce different C files from one Vala
+source file.
+
 
 @node Support for Other Languages
 @comment  node-name,  next,  previous,  up
diff --git a/tests/Makefile.am b/tests/Makefile.am
index afcfda8..d700608 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,8 +4,7 @@ XFAIL_TESTS =                                   \
 all.test                                       \
 auxdir2.test                                   \
 cond17.test                                    \
-txinfo5.test                                   \
-vala5.test
+txinfo5.test
 
 include $(srcdir)/parallel-tests.am
 
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ce8e779..bc77d23 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -229,8 +229,7 @@ XFAIL_TESTS = \
 all.test                                       \
 auxdir2.test                                   \
 cond17.test                                    \
-txinfo5.test                                   \
-vala5.test
+txinfo5.test
 
 parallel_tests = \
 check-p.test \
diff --git a/tests/vala2.test b/tests/vala2.test
index a6efba9..1a2e4a5 100755
--- a/tests/vala2.test
+++ b/tests/vala2.test
@@ -21,7 +21,7 @@
 
 # Test to make sure compiling Vala code really works with recursive make.
 
-required="libtool libtoolize pkg-config valac gcc"
+required="libtool libtoolize pkg-config valac gcc GNUmake"
 . ./defs || Exit 1
 
 set -e
@@ -44,6 +44,7 @@ END
 
 cat > 'src/Makefile.am' <<'END'
 bin_PROGRAMS = zardoz
+zardoz_VALAFLAGS = -H zardoz.h
 zardoz_CFLAGS = $(GOBJECT_CFLAGS)
 zardoz_LDADD = $(GOBJECT_LIBS)
 zardoz_SOURCES = zardoz.vala
@@ -67,6 +68,11 @@ $AUTOMAKE -a
 
 ./configure || Exit 77
 $MAKE
+
+# test rebuild rules
+rm src/zardoz.h
+$MAKE -C src zardoz.h
+
 $MAKE distcheck
 $MAKE distclean
 mkdir build
@@ -75,3 +81,7 @@ cd build
 $MAKE
 $MAKE distcheck
 
+# test rebuild rules from builddir
+touch ../src/zardoz.vala
+$MAKE
+
diff --git a/tests/vala3.test b/tests/vala3.test
index 7815393..2092cdf 100755
--- a/tests/vala3.test
+++ b/tests/vala3.test
@@ -21,7 +21,7 @@
 
 # Test to make sure compiling Vala code really works with non-recursive make.
 
-required="libtool libtoolize pkg-config valac gcc"
+required="libtool libtoolize pkg-config valac gcc GNUmake"
 . ./defs || Exit 1
 
 set -e
diff --git a/tests/vala5.test b/tests/vala5.test
index 7369186..161fa8d 100755
--- a/tests/vala5.test
+++ b/tests/vala5.test
@@ -21,7 +21,7 @@
 
 # Test per-target flags, expected to fail.
 
-required="libtool libtoolize pkg-config valac gcc"
+required="libtool libtoolize pkg-config valac gcc GNUmake"
 . ./defs || Exit 1
 
 set -e


hooks/post-receive
-- 
GNU Automake




reply via email to

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