Merge branch 'fix-pr11232' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 13 Apr 2012 12:16:29 +0000 (14:16 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 13 Apr 2012 12:16:29 +0000 (14:16 +0200)
* fix-pr11232:
  install: shell parameter expansions can be used in directory names

20 files changed:
NEWS
THANKS
automake.in
configure.ac
doc/automake.texi
lib/Automake/Makefile.am [deleted file]
lib/Makefile.am
lib/am/Makefile.am [deleted file]
lib/am/mans.am
lib/am/texinfos.am
lib/depcomp
tests/Makefile.am
tests/conffile-leading-dot.test
tests/install-info-dir.test
tests/link_cond.test [new file with mode: 0755]
tests/list-of-tests.mk
tests/vala-mix.test
tests/vala-mix2.test
tests/vala-vapi.test [new file with mode: 0755]
tests/vala-vpath.test

diff --git a/NEWS b/NEWS
index 5d463da..11ce4c9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -40,6 +40,11 @@ New in 1.11.0a:
 
 * Miscellaneous changes:
 
+  - There is an initial, experimental support for automatic dependency
+    tracking with tcc (the Tiny C Compiler).  Its associated depmode is
+    currently recognized as "icc" (but this and other details are likely
+    to change in future versions).
+
   - Automatic dependency tracking now works also with the IBM XL C/C++
     compilers, thanks to the new new depmode 'xlc'.
 
@@ -103,9 +108,9 @@ New in 1.11.0a:
     file generated by automake-provided rules by defining the special make
     variable `$(EXTRA_DEJAGNU_SITE_CONFIG)'.
 
-  - The `install-info' rule can now be instructed not to create/update
-    the `${infodir}/dir' file, by exporting the new environment variable
-    `AM_UPDATE_INFO_DIR' to the value "no".
+  - The `install-info' and `uninstall-info' rules can now be instructed
+    not to create/update the `${infodir}/dir' file, by exporting the new
+    environment variable `AM_UPDATE_INFO_DIR' to the value "no".
 
   - For programs and libraries, automake now detects EXTRA_foo_DEPENDENCIES
     and adds them to the normal list of dependencies, but without
diff --git a/THANKS b/THANKS
index e0c44d7..e584fa7 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -149,6 +149,7 @@ James Youngman              jay@gnu.org
 Jan Engelhardt         jengelh@medozas.de
 Janos Farkas           chexum@shadow.banki.hu
 Jared Davis            abiword@aiksaurus.com
+Jason DeVinney         jasondevinney@gmail.com
 Jason Duell            jcduell@lbl.gov
 Jason Molenda          crash@cygnus.co.jp
 Javier Jardón         jjardon@gnome.org
@@ -177,6 +178,7 @@ John Ratliff                autoconf@technoplaza.net
 John R. Cary           cary@txcorp.com
 John W. Coomes         jcoomes@eng.Sun.COM
 Jonathan Nieder                jrnieder@gmail.com
+Joseph S. Myers                joseph@codesourcery.com
 Josh MacDonald         jmacd@cs.berkeley.edu
 Joshua Cowan           jcowan@jcowan.reslife.okstate.edu
 js pendry              js.pendry@msdw.com
@@ -213,6 +215,7 @@ Manu Rouat          emmanuel.rouat@wanadoo.fr
 Marcus Brinkmann       Marcus.Brinkmann@ruhr-uni-bochum.de
 Marcus G. Daniels      mgd@ute.santafe.edu
 Marius Vollmer         mvo@zagadka.ping.de
+Marc-Antoine Perennou  Marc-Antoine@Perennou.com
 Mark D. Baushke                mdb@cvshome.org
 Mark Eichin            eichin@cygnus.com
 Mark Elbrecht          snowball3@bigfoot.com
@@ -269,6 +272,7 @@ Olly Betts          olly@muscat.co.uk
 Oren Ben-Kiki          oren@ben-kiki.org
 Owen Taylor            otaylor@redhat.com
 Quentin Glidic         sardemff7+gnu@sardemff7.net
+Panther Martin         mrsmiley98@lycos.com
 Patrick Welche         prlw1@newn.cam.ac.uk
 Patrik Weiskircher     me@justp.at
 Paul Berrevoets                paul@swi.com
index 08b3300..921a6ae 100644 (file)
@@ -6039,16 +6039,20 @@ sub lang_vala_finish_target ($$)
   my $var = var "${derived}_SOURCES";
   return unless $var;
 
-  my @vala_sources = grep { /\.vala$/ } ($var->value_as_list_recursive);
+  my @vala_sources = grep { /\.(vala|vapi)$/ } ($var->value_as_list_recursive);
+
+  # For automake bug#11229.
+  return unless @vala_sources;
 
   foreach my $vala_file (@vala_sources)
     {
-      (my $c_file = $vala_file) =~ s/(.*)\.vala$/$1.c/;
+      my $c_file = $vala_file;
       $output_rules .= "\$(srcdir)/$c_file: \$(srcdir)/${derived}_vala.stamp\n"
         . "\t\@if test -f \$@; then :; else rm -f \$(srcdir)/${derived}_vala.stamp; fi\n"
         . "\t\@if test -f \$@; then :; else \\\n"
         . "\t  \$(MAKE) \$(AM_MAKEFLAGS) \$(srcdir)/${derived}_vala.stamp; \\\n"
         . "\tfi\n"
+        if $c_file =~ s/(.*)\.vala$/$1.c/;
     }
 
   # Add rebuild rules for generated header and vapi files
index 18dbd8a..4b0be1b 100644 (file)
@@ -208,9 +208,7 @@ AC_CONFIG_FILES([
   Makefile
   contrib/Makefile
   doc/Makefile
-  lib/Automake/Makefile
   lib/Makefile
-  lib/am/Makefile
   m4/Makefile
   tests/Makefile
   tests/defs
index 7421029..3389f8a 100644 (file)
@@ -117,7 +117,7 @@ section entitled ``GNU Free Documentation License.''
 * Conditionals::                Conditionals
 * Silencing Make::              Obtain less verbose output from @command{make}
 * Gnits::                       The effect of @option{--gnu} and @option{--gnits}
-* Cygnus::                      The effect of @option{--cygnus}
+* Cygnus::                      The effect of @option{--cygnus} (deprecated, soon to be removed)
 * Not Enough::                  When Automake is not Enough
 * Distributing::                Distributing the Makefile.in
 * API Versioning::              About compatibility between Automake versions
@@ -1943,10 +1943,13 @@ standard is actually published (which may never happen).
 @xref{Gnits}, for more information on the precise implications of the
 strictness level.
 
-Automake also has a special ``cygnus'' mode that is similar to
-strictness but handled differently.  This mode is useful for packages
-that are put into a ``Cygnus'' style tree (e.g., the GCC tree).
-@xref{Cygnus}, for more information on this mode.
+Automake also has a special (and @emph{today deprecated}) ``cygnus'' mode
+that is similar to strictness but handled differently.  This mode is
+useful for packages that are put into a ``Cygnus'' style tree (e.g., older
+versions of the GCC and gdb trees).  @xref{Cygnus}, for more information
+on this mode.  Please note that this mode is deprecated and @emph{will be
+removed in the future automake versions}; you must avoid its use in new
+packages, and should stop using it in existing packages as well.
 
 
 @node Uniform
@@ -2602,6 +2605,8 @@ copied.  The default is to make a symbolic link.
 @opindex --cygnus
 Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
 of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
+Note that @emph{this mode of operation is deprecated, and will be removed}
+in a future Automake release.
 
 @item -f
 @opindex -f
@@ -8025,11 +8030,11 @@ be prevented via the @code{no-installinfo} option.  In this case,
 request this explicitly using @samp{make install-info}.
 
 @vindex AM_UPDATE_INFO_DIR
-By default, @code{make install-info} will try to run the
-@command{install-info} program (if available) to update (or create)
-the @file{@code{$@{infodir@}}/dir} index.  If this is undesired, it
-can be prevented by exporting the @code{AM_UPDATE_INFO_DIR} variable
-to "@code{no}".
+By default, @code{make install-info} and @code{make install-info}
+will try to run the @command{install-info} program (if available)
+to update (or create) the @file{@code{$@{infodir@}}/dir} index.
+If this is undesired, it can be prevented by exporting the
+@code{AM_UPDATE_INFO_DIR} variable to "@code{no}".
 
 The following variables are used by the Texinfo build rules.
 
@@ -10322,10 +10327,15 @@ The file @file{THANKS} is required.
 
 @cindex @option{cygnus} strictness
 
-Some packages, notably GNU GCC and GNU gdb, have a build environment
-originally written at Cygnus Support (subsequently renamed Cygnus
-Solutions, and then later purchased by Red Hat).  Packages with this
-ancestry are sometimes referred to as ``Cygnus'' trees.
+@emph{The features described in this section are deprecated; you must
+not use any of them in new code, and should remove their use from older
+but still maintained code: they will be withdrawn in a future Automake
+release.}
+
+Some packages, notably GNU GCC and GNU gdb, used to have a build
+environment originally written at Cygnus Support (subsequently renamed
+Cygnus Solutions, and then later purchased by Red Hat).  Packages with
+this ancestry are sometimes referred to as ``Cygnus'' trees.
 
 A Cygnus tree has slightly different rules for how a
 @file{Makefile.in} is to be constructed.  Passing @option{--cygnus} to
@@ -10335,45 +10345,40 @@ comply with Cygnus rules.
 Here are the precise effects of @option{--cygnus}:
 
 @itemize @bullet
-@item
-Info files are always created in the build directory, and not in the
-source directory.
 
 @item
-@file{texinfo.tex} is not required if a Texinfo source file is
-specified.  The assumption is that the file will be supplied, but in a
-place that Automake cannot find.  This assumption is an artifact of how
-Cygnus packages are typically bundled.
+The @option{foreign} strictness is implied.
 
 @item
-@samp{make dist} is not supported, and the rules for it are not
-generated.  Cygnus-style trees use their own distribution mechanism.
+The options @option{no-installinfo}, @option{no-dependencies} and
+@option{no-dist} are implied (@pxref{Options}).
 
 @item
-Certain tools will be searched for in the build tree as well as in the
-user's @env{PATH}.  These tools are @command{runtest}, @command{expect},
-@command{makeinfo} and @command{texi2dvi}.
+The macro @code{AM_MAINTAINER_MODE} is required.
 
 @item
-@option{--foreign} is implied.
+Info files are always created in the build directory, and not in the
+source directory.  Packages that don't use the @option{cygnus} option
+can emulate this effect by using the @option{no-installinfo} option
+and listing the generated info files in the @code{CLEANFILES} variable.
 
 @item
-The options @option{no-installinfo} and @option{no-dependencies} are
-implied.
+@file{texinfo.tex} is not required if a Texinfo source file is
+specified.  The assumption is that the file will be supplied, but in a
+place that Automake cannot find -- it is an artifact of how Cygnus
+packages are typically bundled.  This effect can be emulated in
+packages not using the @option{cygnus} option with a proper definition
+of the @code{TEXINFO_TEX} variable (@pxref{Texinfo}).
 
 @item
-The macro @code{AM_MAINTAINER_MODE} is required.
+Certain tools will be searched for in the build tree as well as in the
+user's @env{PATH}.  These tools are @command{runtest}, @command{expect},
+@command{makeinfo} and @command{texi2dvi}.
 
 @item
 The @code{check} target doesn't depend on @code{all}.
 @end itemize
 
-GNU maintainers are advised to use @option{gnu} strictness in preference
-to the special Cygnus mode.  Some day, perhaps, the differences between
-Cygnus trees and GNU trees will disappear (for instance, as GCC is made
-more standards compliant).  At that time the special Cygnus mode will be
-removed.
-
 
 @node Not Enough
 @chapter When Automake Isn't Enough
diff --git a/lib/Automake/Makefile.am b/lib/Automake/Makefile.am
deleted file mode 100644 (file)
index ac9356a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-## Process this file with automake to create Makefile.in
-
-# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2010, 2012 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-perllibdir = $(pkgvdatadir)/Automake
-dist_perllib_DATA = \
-  ChannelDefs.pm \
-  Channels.pm \
-  Condition.pm \
-  Configure_ac.pm \
-  DisjConditions.pm \
-  FileUtils.pm \
-  General.pm \
-  Getopt.pm \
-  Item.pm \
-  ItemDef.pm \
-  Location.pm \
-  Options.pm \
-  Rule.pm \
-  RuleDef.pm \
-  Struct.pm \
-  Variable.pm \
-  VarDef.pm \
-  Version.pm \
-  XFile.pm \
-  Wrap.pm
-
-nodist_perllib_DATA = \
-  Config.pm
-
-CLEANFILES = $(nodist_perllib_DATA)
-
-## We can't use configure to do the substitution here; we must do it
-## by hand.  We use a funny notation here to avoid configure
-## substitutions in our text.
-do_subst = in=`echo $@ | sed 's/\.[^.]*$$//'`; sed \
-  -e 's,[@]APIVERSION[@],$(APIVERSION),g' \
-  -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
-  -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \
-  -e 's,[@]PERL[@],$(PERL),g' \
-  -e 's,[@]PERL_THREADS[@],$(PERL_THREADS),g' \
-  -e 's,[@]SHELL[@],$(SHELL),g' \
-  -e 's,[@]VERSION[@],$(VERSION),g' \
-  -e "s,[@]configure_input[@],Generated from $$in.in; do not edit by hand.,g" \
-  -e 's,[@]datadir[@],$(datadir),g'
-
-## This file depends on Makefile so it is rebuilt if $(VERSION),
-## $(datadir) or other do_subst'ituted variables change.
-## Use chmod a-w to prevent people from editing the wrong file by accident.
-Config.pm: Config.in Makefile
-       $(AM_V_at)rm -f $@ $@-t
-       $(AM_V_GEN)$(do_subst) $(srcdir)/Config.in >$@-t
-       $(AM_V_at)chmod a+x,a-w $@-t && mv -f $@-t $@
-
-EXTRA_DIST = Config.in
index d9dabb6..260b9c9 100644 (file)
@@ -2,8 +2,7 @@
 
 ## Makefile for Automake lib.
 
-# Copyright (C) 2001, 2003, 2004, 2009, 2010 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2012 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
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-SUBDIRS = Automake am
+EXTRA_DIST = gnupload gitlog-to-changelog update-copyright
+
+## -------------------------------------------------------------------- ##
+##  Auxiliary scripts and files for use with "automake --add-missing".  ##
+## -------------------------------------------------------------------- ##
 
 dist_pkgvdata_DATA = COPYING INSTALL texinfo.tex ansi2knr.c ansi2knr.1 \
   config-ml.in
@@ -31,8 +34,6 @@ dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \
   mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile \
   symlink-tree ar-lib
 
-EXTRA_DIST = gnupload gitlog-to-changelog update-copyright
-
 install-data-hook:
        @$(POST_INSTALL)
        @for prog in $(dist_script_DATA); do \
@@ -46,3 +47,107 @@ installcheck-local:
        for file in $(dist_script_DATA); do \
          $(PERL) -e "exit ! -x '$(pkgvdatadir)/$$file';" || exit 1; \
        done
+
+## ---------------------------------------------------- ##
+##  Private perl modules used by automake and aclocal.  ##
+## ---------------------------------------------------- ##
+
+perllibdir = $(pkgvdatadir)/Automake
+dist_perllib_DATA = \
+  Automake/ChannelDefs.pm \
+  Automake/Channels.pm \
+  Automake/Condition.pm \
+  Automake/Configure_ac.pm \
+  Automake/DisjConditions.pm \
+  Automake/FileUtils.pm \
+  Automake/General.pm \
+  Automake/Getopt.pm \
+  Automake/Item.pm \
+  Automake/ItemDef.pm \
+  Automake/Location.pm \
+  Automake/Options.pm \
+  Automake/Rule.pm \
+  Automake/RuleDef.pm \
+  Automake/Struct.pm \
+  Automake/Variable.pm \
+  Automake/VarDef.pm \
+  Automake/Version.pm \
+  Automake/XFile.pm \
+  Automake/Wrap.pm
+
+nodist_perllib_DATA = Automake/Config.pm
+CLEANFILES = $(nodist_perllib_DATA)
+
+## We can't use configure to do the substitution here; we must do it
+## by hand.  We use a funny notation here to avoid configure
+## substitutions in our text.
+do_subst = in=`echo $@ | sed 's/\.[^.]*$$//'`; sed \
+  -e 's,[@]APIVERSION[@],$(APIVERSION),g' \
+  -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
+  -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \
+  -e 's,[@]PERL[@],$(PERL),g' \
+  -e 's,[@]PERL_THREADS[@],$(PERL_THREADS),g' \
+  -e 's,[@]SHELL[@],$(SHELL),g' \
+  -e 's,[@]VERSION[@],$(VERSION),g' \
+  -e "s,[@]configure_input[@],Generated from $$in.in; do not edit by hand.,g" \
+  -e 's,[@]datadir[@],$(datadir),g'
+
+## This file depends on Makefile so it is rebuilt if $(VERSION),
+## $(datadir) or other do_subst'ituted variables change.
+## Use chmod a-w to prevent people from editing the wrong file by accident.
+Automake/Config.pm: Automake/Config.in Makefile
+       $(AM_V_at)rm -f $@ $@-t
+       $(AM_V_at)test -d Automake || mkdir Automake
+       $(AM_V_GEN)$(do_subst) $(srcdir)/Automake/Config.in >$@-t
+       $(AM_V_at)chmod a-w $@-t && mv -f $@-t $@
+EXTRA_DIST += Automake/Config.in
+
+## --------------------- ##
+##  Makefile fragments.  ##
+## --------------------- ##
+
+amdir = $(pkgvdatadir)/am
+
+dist_am_DATA = \
+  am/ansi2knr.am \
+  am/check.am \
+  am/check-html.am \
+  am/check2.am \
+  am/clean-hdr.am \
+  am/clean.am \
+  am/compile.am \
+  am/configure.am \
+  am/data.am \
+  am/dejagnu.am \
+  am/depend.am \
+  am/depend2.am \
+  am/distdir.am \
+  am/footer.am \
+  am/header-vars.am \
+  am/header.am \
+  am/install.am \
+  am/inst-vars.am \
+  am/java.am \
+  am/lang-compile.am \
+  am/lex.am \
+  am/library.am \
+  am/libs.am \
+  am/libtool.am \
+  am/lisp.am \
+  am/ltlib.am \
+  am/ltlibrary.am \
+  am/mans-vars.am \
+  am/mans.am \
+  am/multilib.am \
+  am/program.am \
+  am/progs.am \
+  am/python.am \
+  am/remake-hdr.am \
+  am/scripts.am \
+  am/subdirs.am \
+  am/tags.am \
+  am/texi-vers.am \
+  am/texibuild.am \
+  am/texinfos.am \
+  am/vala.am \
+  am/yacc.am
diff --git a/lib/am/Makefile.am b/lib/am/Makefile.am
deleted file mode 100644 (file)
index 7b37989..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-## Process this file with automake to create Makefile.in
-
-## Makefile for Automake lib/am.
-
-# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2008,
-# 2009, 2012 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-amdir = $(pkgvdatadir)/am
-
-dist_am_DATA = \
-ansi2knr.am \
-check.am \
-check-html.am \
-check2.am \
-clean-hdr.am \
-clean.am \
-compile.am \
-configure.am \
-data.am \
-dejagnu.am \
-depend.am \
-depend2.am \
-distdir.am \
-footer.am \
-header-vars.am \
-header.am \
-install.am \
-inst-vars.am \
-java.am \
-lang-compile.am \
-lex.am \
-library.am \
-libs.am \
-libtool.am \
-lisp.am \
-ltlib.am \
-ltlibrary.am \
-mans-vars.am \
-mans.am \
-multilib.am \
-program.am \
-progs.am \
-python.am \
-remake-hdr.am \
-scripts.am \
-subdirs.am \
-tags.am \
-texi-vers.am \
-texibuild.am \
-texinfos.am \
-vala.am \
-yacc.am
index b0d5335..b92576d 100644 (file)
@@ -36,7 +36,7 @@ if %?NOTRANS_MANS%
 ?!HAVE_NOTRANS?        list2=''; \
 ?HAVE_NOTRANS? list2='%NOTRANS_LIST%'; \
        test -n "$(man%SECTION%dir)" \
-         && case "$$list1$$list2" in *[^\ ]*) :;; *) false;; esac \
+         && test -n "`echo $$list1$$list2`" \
          || exit 0; \
        echo " $(MKDIR_P) '$(DESTDIR)$(man%SECTION%dir)'"; \
        $(MKDIR_P) "$(DESTDIR)$(man%SECTION%dir)" || exit 1; \
@@ -77,7 +77,7 @@ if %?TRANS_MANS%
 ?!HAVE_TRANS?  list2=''; \
 ?HAVE_TRANS?   list2='%TRANS_LIST%'; \
        test -n "$(man%SECTION%dir)" \
-         && case "$$list1$$list2" in *[^\ ]*) :;; *) false;; esac \
+         && test -n "`echo $$list1$$list2`" \
          || exit 0; \
        echo " $(MKDIR_P) '$(DESTDIR)$(man%SECTION%dir)'"; \
        $(MKDIR_P) "$(DESTDIR)$(man%SECTION%dir)" || exit 1; \
index 9190e8f..1a1766e 100644 (file)
@@ -94,6 +94,18 @@ endif ! %?LOCAL-TEXIS%
 ## Installing.  ##
 ## ------------ ##
 
+## Some code should be run only if install-info actually exists, and
+## if the user doesn't request it not to be run (through the
+## 'AM_UPDATE_INFO_DIR' environment variable).  See automake bug#9773
+## and Debian Bug#543992.
+if %?FIRST%
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+endif
+
 ## Look in both . and srcdir because the info pages might have been
 ## rebuilt in the build directory.  Can't cd to srcdir; that might
 ## break a possible install-sh reference.
@@ -222,16 +234,7 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-## Only run this code if install-info actually exists, and if the user
-## doesn't request it not to be run (through the `AM_UPDATE_INFO_DIR'
-## environment variable).  See automake bug#9773 and Debian Bug#543992.
-       @am__run_installinfo=yes; \
-       case $$AM_UPDATE_INFO_DIR in \
-         n|no|NO) am__run_installinfo=no;; \
-         *) (install-info --version) >/dev/null 2>&1 \
-              || am__run_installinfo=no;; \
-       esac; \
-       if test $$am__run_installinfo = yes; then \
+       @if $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
 ## Strip directory
@@ -322,9 +325,7 @@ uninstall-info-am:
        @$(PRE_UNINSTALL)
 ## Run two loops here so that we can handle PRE_UNINSTALL and
 ## NORMAL_UNINSTALL correctly.
-       @if test -d '$(DESTDIR)$(infodir)' && \
-           (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
index 325713f..25a39e6 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-12.15; # UTC
+scriptversion=2012-03-27.16; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
 # 2011, 2012 Free Software Foundation, Inc.
@@ -289,23 +289,26 @@ aix)
   ;;
 
 icc)
-  # Intel's C compiler understands '-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
+  # However on
+  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want:
+  # which is wrong.  We want
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using :
+  # and will wrap long lines using '\':
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-
+  # tcc 0.9.26 (FIXME still under development at the moment of writing)
+  # will emit a similar output, but also prepend the continuation lines
+  # with horizontal tabulation characters.
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -318,11 +321,17 @@ icc)
   # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
   # Do two passes, one to just change these to
   # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
+    < "$tmpdepfile" > "$depfile"
+  sed '
+    s/[ '"$tab"'][ '"$tab"']*/ /g
+    s/^ *//
+    s/ *\\*$//
+    s/^[^:]*: *//
+    /^$/d
+    /:$/d
+    s/$/ :/
+  ' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
index b2a8e05..e8feaa3 100644 (file)
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-XFAIL_TESTS = \
-all.test \
-auxdir2.test \
-cond17.test \
-dist-auxfile.test \
-dist-auxfile-2.test \
-dist-pr109765.test \
-gcj6.test \
-instdir-cond2.test \
-java-nobase.test \
-objext-pr10128.test \
-pr8365-remake-timing.test \
-lex-subobj-nodep.test \
-remake-am-pr10111.test \
-remake-m4-pr10111.test \
-txinfo5.test
-
 include $(srcdir)/parallel-tests.am
 
 $(srcdir)/parallel-tests.am: gen-parallel-tests Makefile.am
index 1d3d12f..8eaed4b 100755 (executable)
@@ -31,9 +31,7 @@ AC_CONFIG_FILES([./foo:a.in:b.in:c.in])
 AC_OUTPUT
 END
 
-echo foo = barbarbar > Makefile.am
-
-touch a.in b.in c.in
+touch a.in b.in c.in Makefile.am
 
 $ACLOCAL
 
@@ -46,17 +44,20 @@ grep "^configure\.in:4:.* omit leading '\\./'" stderr
 grep "^configure\.in:4:.*remake rules might be subtly broken" stderr
 
 # Check that our warning was actually justified.
+sed 's/^AM_INIT_AUTOMAKE/&([-Wall -Wno-unsupported])/' <configure.in >t
+mv -f t configure.in
+rm -rf autom4te*.cache
+$ACLOCAL
 $AUTOCONF
 $AUTOMAKE -Wall -Wno-unsupported
 ./configure
 $MAKE
-grep barbarbar Makefile
-# No need to sleep here, configure did that for us already.
-echo foo = bazbazbaz > Makefile.am
+$sleep
+touch Makefile.am
 # Check that remake rules do truly break -- otherwise automake is
 # giving a bogus warning.
-$MAKE 2>stderr && { cat stderr >&2 Exit 1; }
+$MAKE 2>stderr && { cat stderr >&2; Exit 1; }
 cat stderr >&2
-grep "config\\.status:.*invalid argument.*[\`\"']Makefile[\`\"']" stderr
+grep "config\\.status:.*invalid argument.*Makefile" stderr
 
 :
index 044bf6d..405480d 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2011, 2012 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
@@ -78,12 +78,28 @@ fi
 # by default (if the `install-info' program is available).
 # This should happen in a normal as well as in a DESTDIR installation.
 if test $have_installinfo = yes; then
+
   $MAKE install-info
   test -f $instdir/info/foo.info
   test -f $instdir/info/dir
+  $FGREP 'Does nothing at all, but has a nice name' $instdir/info/dir
+
+  $MAKE uninstall
+  test ! -f $instdir/info/foo.info
+  $FGREP 'but has a nice name' $instdir/info/dir && Exit 1
+
+  dir="$destdir/$cwd/$instdir/info"
+
   $MAKE DESTDIR="$cwd/$destdir" install-info
-  test -f "$destdir/$cwd/$instdir"/info/foo.info
-  test -f "$destdir/$cwd/$instdir"/info/dir
+  test -f "$dir"/foo.info
+  test -f "$dir"/dir
+  $FGREP 'Does nothing at all, but has a nice name' "$dir"/dir
+  $MAKE DESTDIR="$cwd/$destdir" uninstall
+  test ! -f "$dir"/foo.info
+  $FGREP 'but has a nice name' "$dir"/dir && Exit 1
+
+  unset dir
+
 fi
 
 rm -rf $instdir $destdir
@@ -121,6 +137,11 @@ END
   $MAKE install-info
   test -f $instdir/info/foo.info
   test -f $instdir/info/dir
+  $MAKE uninstall
+  test ! -f $instdir/info/foo.info
+  test -f $instdir/info/dir
+  $FGREP 'but has a nice name' $instdir/info/dir && Exit 1
+  : For shells with busted 'set -e'.
 fi
 
 rm -rf $instdir bin/install-info
@@ -134,15 +155,24 @@ for val in no NO n; do
   test -f $instdir/info/foo.info
   test ! -f $instdir/info/dir
 done
+
+$MAKE install-info
+chmod a-w $instdir/info/dir
+for val in no NO n; do
+  env AM_UPDATE_INFO_DIR="$val" $MAKE uninstall
+  $FGREP 'Does nothing at all, but has a nice name' $instdir/info/dir
+done
+
 if test $have_installinfo = yes; then
   for val in 'yes' 'who cares!'; do
     rm -rf $instdir
     env AM_UPDATE_INFO_DIR="$val" $MAKE install-info
     test -f $instdir/info/foo.info
     test -f $instdir/info/dir
+    env AM_UPDATE_INFO_DIR="$val" $MAKE uninstall
+    test ! -f $instdir/info/foo.info
+    $FGREP 'but has a nice name' $instdir/info/dir && Exit 1
   done
 fi
 
-rm -rf $instdir
-
 :
diff --git a/tests/link_cond.test b/tests/link_cond.test
new file mode 100755 (executable)
index 0000000..0d61865
--- /dev/null
@@ -0,0 +1,90 @@
+#! /bin/sh
+# Copyright (C) 2012 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that automatic determination of the linker works well with
+# conditional use of languages in a single program.
+# This currently doesn't truly work, but we have an easy workaround
+# at least, that is tested here.
+# See automake bug#11089.
+
+required='cc c++'
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_PROG_CC
+AC_PROG_CXX
+AM_CONDITIONAL([HAVE_CXX], [test $have_cxx = yes])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = foo
+if HAVE_CXX
+foo_SOURCES = more.c++
+else
+foo_SOURCES = less.c
+endif
+## FIXME: ideally, this workaround shouldn't be needed.
+if HAVE_CXX
+foo_LINK = $(CXXLINK)
+else
+foo_LINK = $(LINK)
+endif
+END
+
+$ACLOCAL
+$AUTOMAKE
+$AUTOCONF
+
+rm -f *.c++
+cat > less.c <<'END'
+/* Valid C but deliberately invalid C++ */
+main ()
+{
+  int new = 0;
+  return new;
+}
+END
+
+./configure have_cxx=no
+CXX=false $MAKE -e
+
+# Sanity check.
+rm -f foo foo.exe
+CC=false $MAKE -e && Exit 99
+
+$MAKE distclean
+
+rm -f *.c
+cat > more.c++ <<'END'
+/* Valid C++ but deliberately invalid C */
+using namespace std;
+int main (void)
+{
+  return 0;
+}
+END
+
+./configure have_cxx=yes
+CC=false $MAKE -e
+
+# Sanity check.
+rm -f foo foo.exe
+CXX=false $MAKE -e && Exit 99
+
+:
index 3280833..c344171 100644 (file)
 ## You should have received a copy of the GNU General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+XFAIL_TESTS = \
+all.test \
+auxdir2.test \
+cond17.test \
+dist-auxfile.test \
+dist-auxfile-2.test \
+dist-pr109765.test \
+gcj6.test \
+instdir-cond2.test \
+java-nobase.test \
+objext-pr10128.test \
+pr8365-remake-timing.test \
+lex-subobj-nodep.test \
+remake-am-pr10111.test \
+remake-m4-pr10111.test \
+txinfo5.test
+
 perl_TESTS = \
 pm/Condition.pl \
 pm/Condition-t.pl \
@@ -395,9 +412,6 @@ extra8.test \
 extra10.test \
 extra11.test \
 extra12.test \
-extra-portability.test \
-extra-portability2.test \
-extra-portability3.test \
 extradep.test \
 extradep2.test \
 f90only.test \
@@ -539,6 +553,7 @@ libtoo11.test \
 license.test \
 license2.test \
 link_c_cxx.test \
+link_cond.test \
 link_dist.test \
 link_f90_only.test \
 link_fc.test \
@@ -914,6 +929,7 @@ vala2.test \
 vala3.test \
 vala4.test \
 vala5.test \
+vala-vapi.test \
 vala-vpath.test \
 vala-mix.test \
 vala-mix2.test \
index 73a07d9..fe48f26 100755 (executable)
@@ -24,17 +24,18 @@ set -e
 cat >> configure.in <<'END'
 AC_PROG_CC
 AM_PROG_CC_C_O
-AM_PROG_VALAC
+AM_PROG_VALAC([0.7.3])
 AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
-bin_PROGRAMS = zardoz mu
+bin_PROGRAMS = zardoz mu baz
 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
+baz_SOURCES = baz.c
 END
 
 if cross_compiling; then :; else
@@ -74,6 +75,14 @@ chocke me
 #endif
 END
 
+# For automake bug#11229.
+cat > baz.c <<'END'
+int main (void)
+{
+  return 0;
+}
+END
+
 $ACLOCAL
 $AUTOMAKE -a
 $AUTOCONF
index 88d2818..298f88d 100755 (executable)
@@ -25,7 +25,7 @@ set -e
 cat >> configure.in <<'END'
 AC_PROG_CC
 AC_PROG_CXX
-AM_PROG_VALAC
+AM_PROG_VALAC([0.7.3])
 AC_OUTPUT
 END
 
diff --git a/tests/vala-vapi.test b/tests/vala-vapi.test
new file mode 100755 (executable)
index 0000000..46e0dd4
--- /dev/null
@@ -0,0 +1,91 @@
+#! /bin/sh
+# Copyright (C) 2012 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test and that vapi files are correctly handled by Vala support.
+
+required='valac cc GNUmake'
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in <<'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AM_PROG_VALAC([0.7.3])
+AC_OUTPUT
+END
+
+cat > Makefile.am <<'END'
+bin_PROGRAMS = zardoz
+AM_VALAFLAGS = --profile=posix
+zardoz_SOURCES = zardoz.vala foo.vapi foo.h
+END
+
+cat > zardoz.vala <<'END'
+int main ()
+{
+    stdout.printf (BARBAR);
+    return 0;
+}
+END
+
+echo '#define BARBAR "Zardoz!\n"' > foo.h
+
+cat > foo.vapi <<'END'
+[CCode (cprefix="", lower_case_cprefix="", cheader_filename="foo.h")]
+public const string BARBAR;
+END
+
+if cross_compiling; then :; else
+  unindent >> Makefile.am <<'END'
+    check-local: test2
+    .PHONY: test1 test2
+    test1:
+       ./zardoz
+       ./zardoz | grep 'Zardoz!'
+    test2:
+       ./zardoz
+       ./zardoz | grep 'Quux!'
+END
+fi
+
+$ACLOCAL
+$AUTOMAKE -a
+$AUTOCONF
+
+./configure --enable-dependency-tracking
+
+$MAKE
+ls -l        # For debugging.
+cat zardoz.c # Likewise.
+grep 'BARBAR' zardoz.c
+$MAKE test1
+
+# Simple check on remake rules.
+$sleep
+echo '#define BAZBAZ "Quux!\n"' > foo.h
+sed 's/BARBAR/BAZBAZ/' zardoz.vala > t && mv -f t zardoz.vala || Exit 99
+$MAKE && Exit 1
+sed 's/BARBAR/BAZBAZ/' foo.vapi > t && mv -f t foo.vapi || Exit 99
+$MAKE
+cat zardoz.c # For debugging.
+grep 'BAZBAZ' zardoz.c
+$MAKE test2
+
+# Check the distribution.
+$MAKE distcheck
+
+:
index 8f2b677..311eb3a 100755 (executable)
@@ -25,7 +25,7 @@ set -e
 cat >> configure.in << 'END'
 AC_CONFIG_SRCDIR([hello.vala])
 AC_PROG_CC
-AM_PROG_VALAC([0.7])
+AM_PROG_VALAC([0.7.3])
 AC_OUTPUT
 END