]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Merge branch 'master' into ng/master
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 12 Jan 2013 13:16:04 +0000 (14:16 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 12 Jan 2013 13:26:11 +0000 (14:26 +0100)
This merge breaks few tests.  They will be adjusted by follow-up patches.

* master: (26 commits)
  tests: remove most uses of the AM_PROG_CC_C_O obsolete macro
  coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors
  INSTALL: update copyright years
  ithreads: use runtime (not configure time) detection of perl threads
  copyright: add few missing copyright notices
  maint: files in PLANS are to be exempted from copyright notice
  maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable
  copyright: update some copyright years
  compile: use 'compile' script when "-c -o" is used with losing compilers
  HACKING: suggest more checks before releasing
  tests: can fake a compiler not grasping "-c -o" -- globally in all tests
  sync: update files from upstream with "make fetch"
  typofix: in comments in GNUmakefile
  Rename 'maint/' -> 'maintainer/', for Git's sake
  HACKING: minor typofix
  HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes
  HACKING: rewindable branches should live in the 'experimental/*' namespace
  HACKING: fixlets about git branch rewinding policy
  HACKING: commit messages are not to follow GCS ChangeLog rules too strongly
  HACKING: "detailed explanation" in commit messages is almost mandatory
  ...

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
54 files changed:
1  2 
.gitignore
GNUmakefile
HACKING
Makefile.am
automake.in
bootstrap.sh
configure.ac
doc/automake-ng.texi
m4/init.m4
maintainer/maint.mk
maintainer/syntax-checks.mk
t/add-missing.tap
t/ax/am-test-lib.sh
t/ax/depcomp.sh
t/ccnoco3.sh
t/check8.sh
t/cxx-lt-demo.sh
t/depcomp8a.sh
t/depcomp8b.sh
t/instdir-ltlib.sh
t/instdir-prog.sh
t/lex-line.sh
t/lex-subobj-nodep.sh
t/lex5.sh
t/libobj19.sh
t/libtool9.sh
t/per-target-flags.sh
t/pr224.sh
t/pr401.sh
t/pr401b.sh
t/pr401c.sh
t/silent-c.sh
t/silent-lex.sh
t/silent-lt.sh
t/silent-many-languages.sh
t/silent-yacc.sh
t/specflg-dummy.sh
t/specflg6.sh
t/subobj-clean-lt-pr10697.sh
t/subobj-clean-pr10697.sh
t/subobj11a.sh
t/subobj5.sh
t/subobj8.sh
t/suffix-custom-subobj-and-specflg.sh
t/vala-libs.sh
t/vala-mix.sh
t/vala-non-recursive-setup.sh
t/vala-per-target-flags.sh
t/vala-recursive-setup.sh
t/vala-vapi.sh
t/yacc-dist-nobuild-subdir.sh
t/yacc-grepping2.sh
t/yacc-line.sh
t/yacc-subdir.sh

diff --cc .gitignore
index e026b3aaad888e9ef1aa47225a4ceb37fc98c434,4b509d70e23004ca3b47e717a72b3063cf064604..efd43282617924ee4f49d996ec0bf9d3c9c028a1
@@@ -42,8 -42,9 +43,9 @@@
  /t/wrap/aclocal-1.*
  /t/wrap/automake-1.*
  /t/ax/test-defs.sh
 +/testsuite-autodeps.am
  /t/ax/shell-no-trail-bslash
 -/t/testsuite-part.am
+ /t/ax/cc-no-c-o
  /t/*-w.tap
  /t/*-w.sh
  /t/depcomp-*.tap
diff --cc GNUmakefile
Simple merge
diff --cc HACKING
Simple merge
diff --cc Makefile.am
index 0bfe50745fbbc3da5483bac1b4e87db35f9e7f08,21d21c0a6819a7fc7e02c04fbd719adfced66649..7ead7d921847cf46bc69fe18d5ae50e4720c784c
@@@ -453,10 -443,23 +453,21 @@@ EXTRA_DIST += t/ax/shell-no-trail-bslas
  CLEANFILES += t/ax/shell-no-trail-bslash
  noinst_SCRIPTS += t/ax/shell-no-trail-bslash
  
+ t/ax/cc-no-c-o: t/ax/cc-no-c-o.in Makefile
+       $(AM_V_at)rm -f $@ $@-t
+       $(AM_V_GEN)in=t/ax/cc-no-c-o.in \
+         && $(MKDIR_P) t/ax \
+         && $(do_subst) <$(srcdir)/$$in >$@-t \
+         && chmod a+x $@-t
+       $(generated_file_finalize)
+ EXTRA_DIST += t/ax/cc-no-c-o.in
+ CLEANFILES += t/ax/cc-no-c-o
+ noinst_SCRIPTS += t/ax/cc-no-c-o
  runtest: t/ax/runtest.in Makefile
        $(AM_V_at)rm -f $@ $@-t
 -      $(AM_V_GEN)in=t/ax/runtest.in \
 -        && $(MKDIR_P) t/ax \
 -        && $(do_subst) <$(srcdir)/$$in >$@-t \
 -        && chmod a+x $@-t
 +      $(AM_V_GEN)$(do_subst)
 +      $(AM_V_at)chmod a+x $@-t
        $(generated_file_finalize)
  EXTRA_DIST += t/ax/runtest.in
  CLEANFILES += runtest
@@@ -523,6 -526,21 +534,17 @@@ check-no-trailing-backslash-in-recipes
          CONFIG_SHELL='$(abs_top_builddir)/t/ax/shell-no-trail-bslash'
  .PHONY: check-no-trailing-backslash-in-recipes
  
 -## Checking the list of tests.
 -test_subdirs = t t/pm contrib/t
 -include $(srcdir)/t/CheckListOfTests.am
 -
+ # Some compilers out there (hello, MSVC) still choke on "-c -o" being
+ # passed together on the command line.  Run the whole testsuite faking
+ # the presence of such a compiler, to help catch regressions that would
+ # otherwise only present themselves later "in the wild".  See also the
+ # long discussion about automake bug#13378.
+ check-cc-no-c-o:
+       $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
+         CC='$(abs_top_builddir)/t/ax/cc-no-c-o' \
+         GNU_CC='$(abs_top_builddir)/t/ax/cc-no-c-o'
+ .PHONY: check-cc-no-c-o
  # Run the testsuite with the installed aclocal and automake.
  installcheck-local: installcheck-testsuite
  installcheck-testsuite:
diff --cc automake.in
index 2649d3a56c8828f939c733f6edd6fd75ed456724,a1d1f2ea59c8297961b803498fa7c646297ff1a1..1021822045630f6c8d6b2a9899e4fcea47097bc1
@@@ -4206,8 -5155,8 +4203,7 @@@ sub scan_autoconf_traces ($
                AM_GNU_GETTEXT => 0,
                AM_GNU_GETTEXT_INTL_SUBDIR => 0,
                AM_INIT_AUTOMAKE => 0,
 -              AM_MAINTAINER_MODE => 0,
                AM_PROG_AR => 0,
-               AM_PROG_CC_C_O => 0,
                _AM_SUBST_NOTMAKE => 1,
                _AM_COND_IF => 1,
                _AM_COND_ELSE => 1,
@@@ -4609,48 -5564,18 +4601,15 @@@ sub check_gnits_standard
  # Note that the calls to these functions are computed, so don't bother
  # searching for their precise names in the source.
  
- # Rewrite a single C source file.
- sub lang_c_rewrite
 -# This is just a convenience function that can be used to determine
 -# when a subdir object should be used.
 -sub lang_sub_obj
--{
-   my ($directory, $base, $ext, $obj, $have_per_exec_flags, $var) = @_;
-   # libtool is always able to put the object at the proper place, so we
-   # do not have to require AM_PROG_CC_C_O when building '.lo' files.
-   if (! $seen_cc_c_o && $obj ne '.lo')
-     {
-       if ($directory && $directory ne '.')
-         {
-           msg_var ('portability', $var,
-                    "compiling '$directory/$base.c' in subdir requires"
-                    . " 'AM_PROG_CC_C_O' in '$configure_ac'",
-                    uniq_scope => US_GLOBAL,
-                    uniq_part => 'AM_PROG_CC_C_O subdir');
-         }
-       elsif ($have_per_exec_flags)
-         {
-            msg_var ('portability', $var,
-                     "compiling '$base.c' with per-target flags requires"
-                     . " 'AM_PROG_CC_C_O' in '$configure_ac'",
-                     uniq_scope => US_GLOBAL,
-                     uniq_part => 'AM_PROG_CC_C_O per-target');
-        }
-     }
-   # Not a useless use of return: the caller of this subroutine will
-   # behave differently if a value is actually returned, and since perl
-   # returns the value of the last expressions seen by default, we
-   # need to explicitly return and undefined value.
-   return undef;
 -    return option 'subdir-objects' ? LANG_SUBDIR : LANG_PROCESS;
--}
 +# Header files are simply ignored.
 +sub lang_header_ignore { 1; }
  
 -# Rewrite a single header file.
 -sub lang_header_rewrite
 +# Vala '.vapi' are a kind of header files as well, and should
 +# not be processed into compilation rules.
-  sub lang_vala_ignore
++sub lang_vala_ignore
  {
 -    # Header files are simply ignored.
 -    return LANG_IGNORE;
 +    my ($directory, $base, $ext) = @_;
 +    return ($ext =~ m/\.vapi$/ ? 1 : 0);
  }
  
  # Rewrite a single Vala source file.
diff --cc bootstrap.sh
Simple merge
diff --cc configure.ac
Simple merge
Simple merge
diff --cc m4/init.m4
index aa32ca6811b68a071b8c5131ffbf8e2ff9fa99f3,6857c4410f802ddedee8e0785bf70795638066eb..38b77cc7b4957c926bd2592bfbe5cb38cce322e3
@@@ -104,8 -109,66 +104,53 @@@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX]
                  [m4_define([AC_PROG_OBJCXX],
                             m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
  ])
 -AC_REQUIRE([AM_SILENT_RULES])dnl
 -dnl The testsuite driver may need to know about EXEEXT, so add the
 -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
 -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 -AC_CONFIG_COMMANDS_PRE(dnl
 -[m4_provide_if([_AM_COMPILER_EXEEXT],
 -  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 -])
 -
 -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 -dnl mangled by Autoconf and run in a shell conditional statement.
 -m4_define([_AC_COMPILER_EXEEXT],
 -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 +AC_REQUIRE([AM_SILENT_RULES])])
  
+ dnl We have to redefine AC_PROG_CC to allow our compile rules to use
+ dnl "-c -o" together also with losing compilers.
+ dnl FIXME: Add references to the original discussion and bug report.
+ dnl FIXME: Shameless copy & paste from Autoconf internals, since trying to
+ dnl        play smart among tangles of AC_REQUIRE, m4_defn, m4_provide and
+ dnl        other tricks was proving too difficult, and in the end, likely
+ dnl        more brittle too.  And this should anyway be just a temporary
+ dnl        band-aid, until Autoconf provides the semantics and/or hooks we
+ dnl        need (hint hint, nudge nudge) ...
+ AC_DEFUN([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+ AC_REQUIRE_AUX_FILE([compile])dnl
+ dnl FIXME The following abomination is expected to disappear in
+ dnl       Automake 1.14.
+ AC_MSG_CHECKING([whether $CC understands -c and -o together])
+ set dummy $CC; am__cc=`AS_ECHO(["$[2]"]) | \
+                        sed 's/[[^a-zA-Z0-9_]]/_/g;s/^[[0-9]]/_/'`
+ AC_CACHE_VAL([am_cv_prog_cc_${am__cc}_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&AS_MESSAGE_LOG_FD'
+ rm -f conftest2.*
+ if _AC_DO_VAR(ac_try) && test -f conftest2.$ac_objext
+ then
+   eval am_cv_prog_cc_${am__cc}_c_o=yes
+ else
+   eval am_cv_prog_cc_${am__cc}_c_o=no
+ fi
+ rm -f core conftest*
+ ])dnl
+ if eval test \"\$am_cv_prog_cc_${am__cc}_c_o\" = yes; then
+   AC_MSG_RESULT([yes])
+ else
+   AC_MSG_RESULT([no])
+   # Losing compiler, so wrap it with the 'compile' script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+ fi
+ ])
  
  # When config.status generates a header, we must update the stamp-h file.
  # This file resides in the same directory as the config header
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc t/ax/depcomp.sh
Simple merge
diff --cc t/ccnoco3.sh
Simple merge
diff --cc t/check8.sh
Simple merge
Simple merge
diff --cc t/depcomp8a.sh
index 59619dc7403dbb55109719af33ad63c33059d2d7,76aa3769416e4aff2bb5bf159d5d93891141dfac..aa46c4dcf5e546fb95e75429a65e0cd0f6af9657
@@@ -52,7 -51,24 +51,8 @@@ $ACLOCA
  $AUTOMAKE -a
  grep include Makefile.in # For debugging.
  grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
- grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
 -grep 'include.*\./\$(DEPDIR)/bar\.P' Makefile.in
 -grep 'include.*/\./\$(DEPDIR)' Makefile.in && exit 1
 -$AUTOCONF
 -# Don't reject slower dependency extractors, for better coverage.
 -./configure --enable-dependency-tracking
 -$MAKE
 -cross_compiling || ./zardoz
 -DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 -
 -# Try again with subdir-objects option.
 -
 -echo AUTOMAKE_OPTIONS = subdir-objects >> Makefile.am
 -
 -$AUTOMAKE
 -grep include Makefile.in # For debugging.
 -grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
 -grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
++LC_ALL=C grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
  $EGREP 'include.*/(\.|sub)/\$\(DEPDIR\)' Makefile.in && exit 1
  
  $AUTOCONF
diff --cc t/depcomp8b.sh
index b47549637567b35621d9a7535ee741e532d75d93,52382f14a0b29199b986a838d0e952d5b3923d62..bd7dab8dbe616133c43cf1cb5b635e5cb1c6dcf5
@@@ -24,7 -24,7 +24,6 @@@ required='cc libtoolize
  
  cat >> configure.ac << 'END'
  AC_PROG_CC
- AM_PROG_CC_C_O
 -#x AM_PROG_CC_C_O
  AM_PROG_AR
  AC_PROG_LIBTOOL
  AC_OUTPUT
@@@ -40,11 -40,28 +39,12 @@@ echo 'int foo (void) { return 0; }' > f
  echo 'int bar (void) { return 0; }' > sub/bar.c
  
  libtoolize
 -
  $ACLOCAL
  $AUTOMAKE -a
 -grep include Makefile.in # For debugging.
 -grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
 -grep 'include.*\./\$(DEPDIR)/bar\.P' Makefile.in
 -grep 'include.*/\./\$(DEPDIR)' Makefile.in && exit 1
 -
 -$AUTOCONF
 -# Don't reject slower dependency extractors, for better coverage.
 -./configure --enable-dependency-tracking
 -$MAKE
 -DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 -
 -# Try again with subdir-objects option.
 -
 -echo AUTOMAKE_OPTIONS = subdir-objects >> Makefile.am
 -$AUTOMAKE
  grep include Makefile.in # For debugging.
  grep 'include.*\./\$(DEPDIR)/foo\.P' Makefile.in
--grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
++LC_ALL=C grep 'include.*[^a-zA-Z0-9_/]sub/\$(DEPDIR)/bar\.P' Makefile.in
  $EGREP 'include.*/(\.|sub)/\$\(DEPDIR\)' Makefile.in && exit 1
  
  $AUTOCONF
Simple merge
Simple merge
diff --cc t/lex-line.sh
index 5eaf33fe5dddcdc12fcf9d198253d29a193324f8,9b27c0b391f681f2e4cb24b818b7445091876473..7eca2d8f3de3743ac084168996d50b220e8b4d75
@@@ -23,8 -23,8 +23,7 @@@ required='cc lex
  . test-init.sh
  
  cat >> configure.ac << 'END'
 -AC_CONFIG_FILES([sub/Makefile])
  AC_PROG_CC
- AM_PROG_CC_C_O
  AC_PROG_LEX
  AC_OUTPUT
  END
Simple merge
diff --cc t/lex5.sh
Simple merge
diff --cc t/libobj19.sh
Simple merge
diff --cc t/libtool9.sh
Simple merge
Simple merge
diff --cc t/pr224.sh
Simple merge
diff --cc t/pr401.sh
Simple merge
diff --cc t/pr401b.sh
Simple merge
diff --cc t/pr401c.sh
Simple merge
diff --cc t/silent-c.sh
index dcf544b0ef589b9d2436d8dd993529bfdcc36295,28f1667b6d92e2fdbe33c307f0d4c16184e84a0b..77c72c44fe96dce83763fdc367de3e7de8d025e6
@@@ -23,8 -23,8 +23,7 @@@ required=c
  mkdir sub
  
  cat >>configure.ac <<'EOF'
 -AC_CONFIG_FILES([sub/Makefile])
  AC_PROG_CC
- AM_PROG_CC_C_O
  AC_OUTPUT
  EOF
  
diff --cc t/silent-lex.sh
index 0dee197d7d939e114f52257a57ea4d8a65ecf188,320e91f1dbccd2bf88f9724b7c5f734516892c5b..20d4c7caa195444573a05d6cd08d121727e07e69
  required='cc lex'
  . test-init.sh
  
 -mkdir sub
 -
  cat >>configure.ac <<'EOF'
- AM_PROG_CC_C_O
  AC_PROG_LEX
 -AC_CONFIG_FILES([sub/Makefile])
  AC_OUTPUT
  EOF
  
diff --cc t/silent-lt.sh
index d14377a9950170015ca8dfbb2f0307e996e424cb,0ae003719f41ace432bf230d9297eab37b464b78..3d3023edc7e698d5038e065c1317928dd8e1f9c4
@@@ -23,9 -23,9 +23,8 @@@ required='cc libtoolize
  mkdir sub
  
  cat >>configure.ac <<'EOF'
 -AC_CONFIG_FILES([sub/Makefile])
  AC_PROG_CC
  AM_PROG_AR
- AM_PROG_CC_C_O
  AC_PROG_LIBTOOL
  AC_OUTPUT
  EOF
index 34183dfe6a4f9df8b170a1d5bc4e2c82d538ff83,5395af6d9656d238232e782a0c02795982679c5c..f3c11d79e6ba19ded8ba49784e27f13a2604af06
@@@ -83,8 -90,9 +83,7 @@@ do_and_check_verbose_build (
    unset rebuild
  }
  
 -mkdir sub
 -
  cat >>configure.ac <<'EOF'
- AM_PROG_CC_C_O
  AC_PROG_F77
  AC_PROG_FC
  AC_PROG_LEX
index 0f4bccf0fb97cf4f27a232bded883913d3205ca4,bb215189fc4cb73eec2dba9992faa81471ff6f25..eba36b54fa8d5d0af43efdcd12b5a5fa42a1a508
  required='cc yacc'
  . test-init.sh
  
 -mkdir sub
 -
  cat >>configure.ac <<'EOF'
- AM_PROG_CC_C_O
+ AC_PROG_CC
  AC_PROG_YACC
 -AC_CONFIG_FILES([sub/Makefile])
  AC_OUTPUT
  EOF
  
Simple merge
diff --cc t/specflg6.sh
Simple merge
Simple merge
Simple merge
diff --cc t/subobj11a.sh
Simple merge
diff --cc t/subobj5.sh
Simple merge
diff --cc t/subobj8.sh
Simple merge
Simple merge
diff --cc t/vala-libs.sh
Simple merge
diff --cc t/vala-mix.sh
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc t/vala-vapi.sh
Simple merge
index 478e3f11e40e1a2a9b92c2a852f207ce02b28cb2,8b7f7ff9bf785aa9a467acf087eee5c8e956fc91..235b4dc21b6e62aeff3ed1962534c2e360874ad3
  required='cc yacc'
  . test-init.sh
  
 -# This test is bounded to fail for any implementation that
 -# triggers automake bug#7884.
 -useless_vpath_rebuild && skip_ "would trip on automake bug#7884"
 -
  cat >> configure.ac << 'END'
  AC_PROG_CC
- AM_PROG_CC_C_O
  AC_PROG_YACC
  AC_OUTPUT
  END
Simple merge
diff --cc t/yacc-line.sh
index 53e7481d055176bf4d6fb292aefe55bb8482d1a2,9067a2d639e969b73a7e6ed84edef564bab10046..f57bb394caf19f9292e1b6a6fae2fe10b6205bf8
@@@ -22,8 -23,8 +22,7 @@@ required='cc yacc
  . test-init.sh
  
  cat >> configure.ac << 'END'
 -AC_CONFIG_FILES([sub/Makefile])
  AC_PROG_CC
- AM_PROG_CC_C_O
  AC_PROG_YACC
  AC_OUTPUT
  END
Simple merge