* 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'.
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
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
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
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
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
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
Makefile
contrib/Makefile
doc/Makefile
- lib/Automake/Makefile
lib/Makefile
- lib/am/Makefile
m4/Makefile
tests/Makefile
tests/defs
* 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
@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
@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
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.
@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
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
+++ /dev/null
-## 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
## 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
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 \
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
+++ /dev/null
-## 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
?!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; \
?!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; \
## 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.
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
@$(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|^.*/||'`; \
#! /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.
;;
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 :
# 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"
;;
# 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
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
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
:
#! /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
# 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
$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
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
-
:
--- /dev/null
+#! /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
+
+:
## 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 \
extra10.test \
extra11.test \
extra12.test \
-extra-portability.test \
-extra-portability2.test \
-extra-portability3.test \
extradep.test \
extradep2.test \
f90only.test \
license.test \
license2.test \
link_c_cxx.test \
+link_cond.test \
link_dist.test \
link_f90_only.test \
link_fc.test \
vala3.test \
vala4.test \
vala5.test \
+vala-vapi.test \
vala-vpath.test \
vala-mix.test \
vala-mix2.test \
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
#endif
END
+# For automake bug#11229.
+cat > baz.c <<'END'
+int main (void)
+{
+ return 0;
+}
+END
+
$ACLOCAL
$AUTOMAKE -a
$AUTOCONF
cat >> configure.in <<'END'
AC_PROG_CC
AC_PROG_CXX
-AM_PROG_VALAC
+AM_PROG_VALAC([0.7.3])
AC_OUTPUT
END
--- /dev/null
+#! /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
+
+:
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