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-62-


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.10b-62-g0e411a0
Date: Sun, 17 May 2009 11:56:36 +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=0e411a0410d6461dd85941bf1121921475426275

The branch, master has been updated
       via  0e411a0410d6461dd85941bf1121921475426275 (commit)
       via  de458bcc8b6cf5e54b76242f8f27afa330c858c7 (commit)
      from  6cfa5cb8a21957774301cf07cdcf012531274465 (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 0e411a0410d6461dd85941bf1121921475426275
Author: Ralf Wildenhues <address@hidden>
Date:   Sun May 17 12:03:47 2009 +0200

    Cope with parallel BSD make -jN semantics.
    
    When BSD `make -jN' is used without `-B' which enables backwards
    compatible semantics, it may reuse the same shell for several
    commands within a rule; so ensure we do not leave it in a
    different directory, nor `exit 0' early in a multi-command rule.
    
    * lib/am/distdir.am (distcheck): After running `distcleancheck',
    change back to original working directory.
    * lib/am/remake-hdr.am (%CONFIG_HIN%): Run autoheader in a
    subshell.
    * lib/am/mans.am (uninstall-man%SECTION%): Do not `exit 0' early
    in a rule that consists of several shell invocations.  Parallel
    NetBSD `make -jN' without `-B' will use only one shell for all
    commands, but won't respawn one after `exit 0'.  Fixes
    notrans.test failure.
    * tests/makej2.test: New test.
    * tests/Makefile.am: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit de458bcc8b6cf5e54b76242f8f27afa330c858c7
Author: Ralf Wildenhues <address@hidden>
Date:   Sun May 17 11:55:14 2009 +0200

    Fix typo in comment.
    
    * lib/am/install.am: Fix typo.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

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

Summary of changes:
 ChangeLog                           |   22 ++++++++++++++++++++++
 Makefile.in                         |    5 ++++-
 doc/Makefile.in                     |    6 +++---
 lib/am/distdir.am                   |    8 +++++++-
 lib/am/install.am                   |    2 +-
 lib/am/mans.am                      |   12 ++++++------
 lib/am/remake-hdr.am                |    5 +++--
 tests/Makefile.am                   |    1 +
 tests/Makefile.in                   |    1 +
 tests/{check11.test => makej2.test} |   35 ++++++++++++++---------------------
 10 files changed, 62 insertions(+), 35 deletions(-)
 copy tests/{check11.test => makej2.test} (66%)

diff --git a/ChangeLog b/ChangeLog
index ded0c6a..f03fff5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2009-05-17  Ralf Wildenhues  <address@hidden>
+
+       Cope with parallel BSD make -jN semantics.
+       When BSD `make -jN' is used without `-B' which enables backwards
+       compatible semantics, it may reuse the same shell for several
+       commands within a rule; so ensure we do not leave it in a
+       different directory, nor `exit 0' early in a multi-command rule.
+       * lib/am/distdir.am (distcheck): After running `distcleancheck',
+       change back to original working directory.
+       * lib/am/remake-hdr.am (%CONFIG_HIN%): Run autoheader in a
+       subshell.
+       * lib/am/mans.am (uninstall-man%SECTION%): Do not `exit 0' early
+       in a rule that consists of several shell invocations.  Parallel
+       NetBSD `make -jN' without `-B' will use only one shell for all
+       commands, but won't respawn one after `exit 0'.  Fixes
+       notrans.test failure.
+       * tests/makej2.test: New test.
+       * tests/Makefile.am: Update.
+
+       Fix typo in comment.
+       * lib/am/install.am: Fix typo.
+
 2009-05-17  Matthias Klose  <address@hidden>  (tiny change)
            Ralf Wildenhues  <address@hidden>
 
diff --git a/Makefile.in b/Makefile.in
index 56a3126..575d95e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -638,6 +638,7 @@ distcheck: dist
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 
's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+         && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
            $(DISTCHECK_CONFIGURE_FLAGS) \
@@ -660,7 +661,9 @@ distcheck: dist
          && rm -rf "$$dc_destdir" \
          && $(MAKE) $(AM_MAKEFLAGS) dist \
          && rm -rf $(DIST_ARCHIVES) \
-         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+         && cd "$$am__cwd" \
+         || exit 1
        $(am__remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 6433ad8..1151118 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -459,9 +459,9 @@ uninstall-man1:
        files=`{ for i in $$list; do echo "$$i"; done; \
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(man1dir)" && rm -f $$files
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 install-dist_docDATA: $(dist_doc_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
index 43af361..a3c91b3 100644
--- a/lib/am/distdir.am
+++ b/lib/am/distdir.am
@@ -464,6 +464,9 @@ distcheck: dist
 ## create very long directory names.
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 ?DISTCHECK-HOOK?         && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
+## Parallel BSD make may not start a new shell for each command in a recipe,
+## so be sure to `cd' back to the original directory after this.
+         && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 ?GETTEXT?          --with-included-gettext \
@@ -501,7 +504,10 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) dist \
 ## Make sure to remove the dists we created in the test build directory.
          && rm -rf $(DIST_ARCHIVES) \
-         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+## Cater to parallel BSD make (see above).
+         && cd "$$am__cwd" \
+         || exit 1
        $(am__remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
diff --git a/lib/am/install.am b/lib/am/install.am
index 8380fd3..564e2dc 100644
--- a/lib/am/install.am
+++ b/lib/am/install.am
@@ -88,7 +88,7 @@ install-strip:
 ##   install_sh_PROGRAM is used for nobase_*_PROGRAMS (because install-sh
 ##                                                     creates directories)
 ## It's OK to override both with INSTALL_STRIP_PROGRAM, because
-## INSTALL_STRIP_PROGRAM uses install-sh (see m4/strip.m4 for a rational).
+## INSTALL_STRIP_PROGRAM uses install-sh (see m4/strip.m4 for a rationale).
 ##
 ## Use double quotes here because we might need to interpolate some
 ## backquotes at runtime.
diff --git a/lib/am/mans.am b/lib/am/mans.am
index 1828c5d..cf66e4f 100644
--- a/lib/am/mans.am
+++ b/lib/am/mans.am
@@ -119,9 +119,9 @@ if %?NOTRANS_MANS%
 ?HAVE_NOTRANS?   sed -n '/\.%SECTION%[a-z]*$$/p'; \
 ## Extract basename of manpage, change the extension if needed.
        } | sed 's,.*/,,;s,\.[^%SECTION%][0-9a-z]*$$,.%SECTION%,'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(man%SECTION%dir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(man%SECTION%dir)" && rm -f $$files
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man%SECTION%dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man%SECTION%dir)" && rm -f $$files; }
 endif %?NOTRANS_MANS%
 if %?TRANS_MANS%
 ## Handle MANS without notrans_ prefix
@@ -136,7 +136,7 @@ if %?TRANS_MANS%
 ## transform, and change the extension if needed.
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^%SECTION%][0-9a-z]*$$,%SECTION%,;x' 
\
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(man%SECTION%dir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(man%SECTION%dir)" && rm -f $$files
+       test -z "$$files" || { \
+         echo " ( cd '$(DESTDIR)$(man%SECTION%dir)' && rm -f" $$files ")"; \
+         cd "$(DESTDIR)$(man%SECTION%dir)" && rm -f $$files; }
 endif %?TRANS_MANS%
diff --git a/lib/am/remake-hdr.am b/lib/am/remake-hdr.am
index c1bc42f..c87572b 100644
--- a/lib/am/remake-hdr.am
+++ b/lib/am/remake-hdr.am
@@ -1,6 +1,6 @@
 ## automake - create Makefile.in from Makefile.am
 ## Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2005,
-## 2008 Free Software Foundation, Inc.
+## 2008, 2009 Free Software Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -35,7 +35,8 @@
 ## by autoheader.
 if %?FIRST%
 %CONFIG_HIN%: %MAINTAINER-MODE% $(am__configure_deps) %FILES%
-       $(am__cd) $(top_srcdir) && $(AUTOHEADER)
+## Cater to parallel BSD make.
+       ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
 ## Whenever $(AUTOHEADER) has run, we must make sure that
 ## ./config.status will rebuild config.h.  The dependency from %STAMP%
 ## on %CONFIG_H_DEPS% (which contains config.hin) is not enough to
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d700608..5d5a290 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -422,6 +422,7 @@ lzma.test \
 maintclean.test \
 make.test \
 makej.test \
+makej2.test \
 maken.test \
 maken2.test \
 maken3.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index bc77d23..abce1cd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -655,6 +655,7 @@ lzma.test \
 maintclean.test \
 make.test \
 makej.test \
+makej2.test \
 maken.test \
 maken2.test \
 maken3.test \
diff --git a/tests/check11.test b/tests/makej2.test
similarity index 66%
copy from tests/check11.test
copy to tests/makej2.test
index 2ee1145..e89afec 100755
--- a/tests/check11.test
+++ b/tests/makej2.test
@@ -14,40 +14,33 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check skip summary.
+# Test to make sure known BSD `make -jN' issues are fixed:
+# without -B, it may reuse the same shell for separate commands in a
+# rule, which can lead to interesting results.
 
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in << 'END'
+cat >>configure.in <<'END'
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
-TESTS = skip skip2
+test-distdir-removed:
+       test ! -d $(distdir)
 END
 
-cat >>skip <<'END'
-#! /bin/sh
-exit 77
-END
-chmod a+x skip
-cp skip skip2
-
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE -a
-
-unset TESTS || :
+$AUTOMAKE
 
-./configure
-env TESTS=skip $MAKE -e check >stdout
-cat stdout
-grep '1.*passed' stdout && Exit 1
+mkdir build
+cd build
+../configure "--prefix=`pwd`/inst"
 
-env TESTS="skip skip2" $MAKE -e check >stdout
-cat stdout
-grep '2.*passed' stdout && Exit 1
+$MAKE -j2 || Exit 77
+$MAKE -j2 distcheck
+$MAKE test-distdir-removed
 
-:
+Exit 0


hooks/post-receive
-- 
GNU Automake




reply via email to

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