summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2013-05-10 21:18:40 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-05-10 21:18:40 +0200
commit0cf58ea7c1c05cdc7b6abff6edc68e934333d1e2 (patch)
treea4007dd22de95af4cc9440b3b7a1a85a562a1ba1
parent0dd95c8d51099aaca08fab7815e2c536908250e2 (diff)
parent7a2ff99d85c7abcd2753e9815fc8fdac4b13e38f (diff)
downloadautomake-0cf58ea7c1c05cdc7b6abff6edc68e934333d1e2.tar.gz
Merge branch 'maint'
* maint: news: document new 'subdir-objects' warning PLANS: one minor fixlet (mostly cosmetic) PLANS: we have already dropped support for split info files in master NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended PLANS: fix reference to non-existent 'next' branch PLANS: fix botched version reference maintcheck: fix two references to old location of aclocal and automake dist: deprecated shar and tar+compress formats
-rw-r--r--NEWS12
-rw-r--r--PLANS/obsolete-removed/configure.in.txt6
-rw-r--r--PLANS/rm-f-without-args.txt4
-rw-r--r--PLANS/texi/drop-split-info-files.txt6
-rw-r--r--doc/automake.texi19
-rw-r--r--lib/Automake/Options.pm17
-rw-r--r--lib/am/distdir.am6
-rw-r--r--maintainer/syntax-checks.mk4
-rwxr-xr-xt/dist-formats.tap50
-rwxr-xr-xt/dist-lzma.sh (renamed from t/lzma.sh)4
-rwxr-xr-xt/dist-shar.sh47
-rwxr-xr-xt/dist-tarZ.sh59
-rw-r--r--t/list-of-tests.mk4
13 files changed, 185 insertions, 53 deletions
diff --git a/NEWS b/NEWS
index 56a3eb4e8..a79920caf 100644
--- a/NEWS
+++ b/NEWS
@@ -143,6 +143,16 @@ New in 1.14:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
+ - The next major Automake version (2.0) will unconditionally turn on
+ the 'subdir-objects' option. I order to smooth out the transition,
+ we now give a warning (in the category 'unsupported') whenever a
+ source file is present in a subdirectory but the 'subdir-object' is
+ not enabled. For example, the following usage will trigger such a
+ warning (of course, assuming the 'subdir-objects' option is off):
+
+ bin_PROGRAMS = sub/foo
+ sub_foo_SOURCES = sub/main.c sub/bar.c
+
- Automake will automatically enhance the AC_PROG_CC autoconf macro
to make it check, at configure time, that the C compiler supports
the combined use of both the "-c -o" options. This "rewrite" of
@@ -183,7 +193,7 @@ New in 1.14:
Now that we have the 'info-in-builddir' option that explicitly causes
generated '.info' files to be placed in the builddir, this hack should
be longer necessary, so we deprecate it with runtime warnings. It will
- likely be removed altogether in Automake 1.14.
+ likely be removed altogether in Automake 2.0.
* Relative directory in Makefile fragments:
diff --git a/PLANS/obsolete-removed/configure.in.txt b/PLANS/obsolete-removed/configure.in.txt
index 180f92c14..d3f6da795 100644
--- a/PLANS/obsolete-removed/configure.in.txt
+++ b/PLANS/obsolete-removed/configure.in.txt
@@ -1,5 +1,5 @@
-In Automake 1.13.x
-------------------
+In Automake 1.13.x (once planned, then dropped)
+-----------------------------------------------
We are already warning about 'configure.in' used as the name for the
Autoconf input file ('configure.ac' should be used instead); we've
@@ -24,5 +24,5 @@ that Autoconf will actually have started deprecating 'configure.in'
by the time Automake 2.0 is released.
Note that the removal of 'configure.in' has already been implemented
-in our 'next' branch (from where the 2.0 release will be finally
+in our 'master' branch (from where the 2.0 release will be finally
cut); see commits 'v1.13-17-gbff57c8' and 'v1.13-21-g7626e63'.
diff --git a/PLANS/rm-f-without-args.txt b/PLANS/rm-f-without-args.txt
index 918e0492d..b940fc3e9 100644
--- a/PLANS/rm-f-without-args.txt
+++ b/PLANS/rm-f-without-args.txt
@@ -13,8 +13,8 @@ accordingly, to get rid of the awful idiom:
See automake bug#10828.
-For Automake 1.13.2 (DONE)
---------------------------
+For Automake 1.14 (DONE)
+------------------------
Add a temporary "probe check" in AM_INIT_AUTOMAKE that verifies that
the no-args "rm -f" usage is supported on the system configure is
diff --git a/PLANS/texi/drop-split-info-files.txt b/PLANS/texi/drop-split-info-files.txt
index 8b36ecb05..a0a5636e7 100644
--- a/PLANS/texi/drop-split-info-files.txt
+++ b/PLANS/texi/drop-split-info-files.txt
@@ -1,7 +1,7 @@
-For automake 2.0
-----------------
+For in Automake 2.0 (DONE)
+--------------------------
-We want to drop split info files in Automake 2.0.
+We will drop split info files in Automake 2.0.
See automake bug#13351: <http://debbugs.gnu.org/13351>.
Basically, it has been confirmed that the original reason behind
diff --git a/doc/automake.texi b/doc/automake.texi
index 779116944..e1d0b425e 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -8693,13 +8693,16 @@ Generate a @samp{zip} archive of the distribution.
@item @code{dist-tarZ}
Generate a tar archive of the distribution, compressed with the
-historical (obsolescent) program @command{compress}. Use of this
-option is discouraged.
+historical (and obsolescent) program @command{compress}. This
+option is deprecated, and it and the corresponding functionality
+will be removed altogether in Automake 2.0.
@trindex dist-tarZ
@item @code{dist-shar}
-Generate a @samp{shar} archive of the distribution. This format archive
-is obsolescent, and use of this option is discouraged.
+Generate a @samp{shar} archive of the distribution. This format
+archive is obsolescent, and use of this option is deprecated.
+It and the corresponding functionality will be removed altogether
+in Automake 2.0.
@trindex dist-shar
@end table
@@ -10095,15 +10098,17 @@ Hook @code{dist-zip} to @code{dist}.
@cindex Option, @option{dist-shar}
@opindex dist-shar
Hook @code{dist-shar} to @code{dist}. Use of this option
-is discouraged, as the @samp{shar} format is obsolescent and
-problematic.
+is deprecated, as the @samp{shar} format is obsolescent and
+problematic. Support for it will be removed altogether in
+Automake 2.0.
@trindex dist-shar
@item @option{dist-tarZ}
@cindex Option, @option{dist-tarZ}
@opindex dist-tarZ
Hook @code{dist-tarZ} to @code{dist}. Use of this option
-is discouraged, as the @samp{compress} program is obsolete.
+is deprecated, as the @samp{compress} program is obsolete.
+Support for it will be removed altogether in Automake 2.0.
@trindex dist-tarZ
@item @option{filename-length-max=99}
diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm
index e3f551a43..737d2a170 100644
--- a/lib/Automake/Options.pm
+++ b/lib/Automake/Options.pm
@@ -272,8 +272,6 @@ sub _is_valid_easy_option ($)
dejagnu
dist-bzip2
dist-lzip
- dist-shar
- dist-tarZ
dist-xz
dist-zip
info-in-builddir
@@ -334,6 +332,21 @@ sub _process_option_list (\%@)
error ($where, "support for lzma-compressed distribution " .
"archives has been removed");
}
+ # TODO: Make this a fatal error in Automake 2.0.
+ elsif ($_ eq 'dist-shar')
+ {
+ msg ('obsolete', $where,
+ "support for shar distribution archives is deprecated.\n" .
+ " It will be removed in Automake 2.0");
+ }
+ # TODO: Make this a fatal error in Automake 2.0.
+ elsif ($_ eq 'dist-tarZ')
+ {
+ msg ('obsolete', $where,
+ "support for distribution archives compressed with " .
+ "legacy program 'compress' is deprecated.\n" .
+ " It will be removed in Automake 2.0");
+ }
elsif (/^filename-length-max=(\d+)$/)
{
delete $options->{$_};
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
index e5d8d5ea9..0e5f6bdb9 100644
--- a/lib/am/distdir.am
+++ b/lib/am/distdir.am
@@ -339,12 +339,18 @@ dist-xz: distdir
?COMPRESS?DIST_ARCHIVES += $(distdir).tar.Z
.PHONY: dist-tarZ
dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
?SHAR?DIST_ARCHIVES += $(distdir).shar.gz
.PHONY: dist-shar
dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk
index 6cfa603c2..0bd362cf9 100644
--- a/maintainer/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -504,11 +504,11 @@ sc_tests_PATH_SEPARATOR:
## Try to make sure all @...@ substitutions are covered by our
## substitution rule.
sc_perl_at_substs:
- @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' aclocal | wc -l` -ne 0; then \
+ @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' bin/aclocal | wc -l` -ne 0; then \
echo "Unresolved @...@ substitution in aclocal" 1>&2; \
exit 1; \
fi
- @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' automake | wc -l` -ne 0; then \
+ @if test `grep -E '^[^#]*@[A-Za-z_0-9]+@' bin/automake | wc -l` -ne 0; then \
echo "Unresolved @...@ substitution in automake" 1>&2; \
exit 1; \
fi
diff --git a/t/dist-formats.tap b/t/dist-formats.tap
index 730fa5d07..bebac374d 100755
--- a/t/dist-formats.tap
+++ b/t/dist-formats.tap
@@ -20,7 +20,7 @@
am_create_testdir=empty
. test-init.sh
-plan_ 70
+plan_ 66
# ---------------------------------------------------- #
# Common and/or auxiliary subroutines and variables. #
@@ -56,12 +56,10 @@ setup_vars_for_compression_format ()
suffix=NONE compressor=NONE
case $1 in
gzip) suffix=tar.gz compressor=gzip ;;
- tarZ) suffix=tar.Z compressor=compress ;;
lzip) suffix=tar.lz compressor=lzip ;;
xz) suffix=tar.xz compressor=xz ;;
bzip2) suffix=tar.bz2 compressor=bzip2 ;;
zip) suffix=zip compressor=zip ;;
- shar) suffix=shar.gz compressor=shar ;;
*) fatal_ "invalid compression format '$1'";;
esac
}
@@ -73,20 +71,6 @@ have_compressor ()
# Assume gzip(1) is available on every reasonable portability target.
gzip)
return 0;;
- # On Cygwin, as of 9/2/2012, 'compress' is provided by sharutils
- # and is just a dummy script that is not able to actually compress
- # (it can only decompress). So, check that the 'compress' program
- # is actually able to compress input.
- # Note that, at least on GNU/Linux, 'compress' does (and is
- # documented to) exit with status 2 if the output is larger than
- # the input after (attempted) compression; so we need to pass it
- # an input that it can actually reduce in size when compressing.
- compress)
- for x in 1 2 3 4 5 6 7 8; do
- echo aaaaaaaaaaaaaaaaaaaaa
- done | compress -c >/dev/null && return 0
- return 1
- ;;
*)
case $1 in
# Do not use --version, or older versions bzip2 would try to
@@ -113,7 +97,7 @@ have_compressor ()
fatal_ "have_compressor(): dead code reached"
}
-all_compression_formats='gzip tarZ lzip xz bzip2 zip shar'
+all_compression_formats='gzip lzip xz bzip2 zip'
all_compressors=$(
for x in $all_compression_formats; do
@@ -305,7 +289,7 @@ END
nogzip in am and bzip2 in am
nogzip in ac and xz in am
nogzip in am and lzip in ac
-nogzip in ac and tarZ in ac
+nogzip in ac and zip in ac
# ----------------------------------------------------------- #
@@ -324,13 +308,13 @@ end_subtest
# Parallel compression. #
# ----------------------- #
-# We only use formats requiring 'gzip', 'bzip2' and 'compress' programs,
-# since there are the most likely to be all found on the great majority
+# We only use formats requiring 'gzip', 'bzip2' and 'xz' programs,
+# since there are the most likely to be all found on the majority
# of systems.
-start_subtest parallel-compression ac_opts=dist-bzip2 am_opts=dist-tarZ
+start_subtest parallel-compression ac_opts=dist-bzip2 am_opts=dist-xz
-desc=gzip+bzip2+tarZ
+desc=gzip+bzip2+xz
tarname=parallel-compression-1.0
check_tarball ()
@@ -353,11 +337,17 @@ check_tarball ()
command_ok_ "$desc [automake]" $AUTOMAKE
-skip_reason=
-have_compressor compress || skip_reason="'compress' not available"
-have_compressor bzip2 || skip_reason="'bzip2' not available"
+if ! have_compressor xz && ! have_compressor bzip2; then
+ skip_reason="both 'bzip2' and 'xz' are unavailable"
+elif ! have_compressor xz; then
+ skip_reason="'xz' not available"
+elif ! have_compressor bzip2; then
+ skip_reason="'bzip2' not available"
+else
+ skip_reason=
+fi
if test "$MAKE_j4" = false; then
- test -z "$skip_reason" || skip_reason="$skip_reason and "
+ test -z "$skip_reason" || skip_reason="$skip_reason, and "
skip_reason="${skip_reason}make concurrency unavailable"
fi
@@ -370,7 +360,7 @@ else
ls -l # For debugging.
command_ok_ "$desc [check .tar.gz tarball]" check_tarball gzip
command_ok_ "$desc [check .tar.bz2 tarball]" check_tarball bzip2
- command_ok_ "$desc [check .tar.Z tarball]" check_tarball tarZ
+ command_ok_ "$desc [check .tar.xz tarball]" check_tarball xz
fi
unset tarname desc skip_reason
@@ -445,8 +435,8 @@ END
chmod a+x check-distdir grep-distdir-error
for prog in tar $all_compressors; do
case $prog in
- tar|shar|zip) cp check-distdir $prog;;
- *) cp grep-distdir-error $prog;;
+ tar|zip) cp check-distdir $prog;;
+ *) cp grep-distdir-error $prog;;
esac
done
unset prog
diff --git a/t/lzma.sh b/t/dist-lzma.sh
index 30fc689b9..d1d3e4b67 100755
--- a/t/lzma.sh
+++ b/t/dist-lzma.sh
@@ -25,8 +25,8 @@ $ACLOCAL --force
AUTOMAKE_fails -Wnone -Wno-error
grep "^Makefile\\.am:1:.*$errmsg" stderr
-cat > configure.ac << 'END'
-AC_INIT([lzma], [1.0])
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
AM_INIT_AUTOMAKE([no-dist-gzip dist-lzma])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/t/dist-shar.sh b/t/dist-shar.sh
new file mode 100755
index 000000000..cd0442552
--- /dev/null
+++ b/t/dist-shar.sh
@@ -0,0 +1,47 @@
+#! /bin/sh
+# Copyright (C) 2013 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/>.
+
+# Check support for no-dist-gzip with dist-shar.
+
+required=shar
+. test-init.sh
+
+errmsg='support for shar .*deprecated'
+
+echo AUTOMAKE_OPTIONS = dist-shar > Makefile.am
+$ACLOCAL
+AUTOMAKE_fails -Wnone -Wobsolete
+grep "^Makefile\\.am:1:.*$errmsg" stderr
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE([no-dist-gzip dist-shar])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+: > Makefile.am
+
+rm -rf autom4te*.cache
+$ACLOCAL
+AUTOMAKE_run -Wno-error
+grep "^configure\\.ac:2:.*$errmsg" stderr
+
+$AUTOCONF
+./configure
+$MAKE distcheck
+test -f $distdir.shar.gz
+
+:
diff --git a/t/dist-tarZ.sh b/t/dist-tarZ.sh
new file mode 100755
index 000000000..f27648166
--- /dev/null
+++ b/t/dist-tarZ.sh
@@ -0,0 +1,59 @@
+#! /bin/sh
+# Copyright (C) 2013 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/>.
+
+# Check support for no-dist-gzip with dist-tarZ.
+
+. test-init.sh
+
+# On Cygwin, as of 9/2/2012, 'compress' is provided by sharutils
+# and is just a dummy script that is not able to actually compress
+# (it can only decompress). So, check that the 'compress' program
+# is actually able to compress input.
+# Note that, at least on GNU/Linux, 'compress' does (and is
+# documented to) exit with status 2 if the output is larger than
+# the input after (attempted) compression; so we need to pass it
+# an input that it can actually reduce in size when compressing.
+for x in 1 2 3 4 5 6 7 8; do
+ echo aaaaaaaaaaaaaaaaaaaaa
+done | compress -c >/dev/null \
+ || skip_ "cannot find a working 'compress' program"
+
+errmsg=".*legacy .*'compress' .*deprecated"
+
+echo AUTOMAKE_OPTIONS = dist-tarZ > Makefile.am
+$ACLOCAL
+AUTOMAKE_fails -Wnone -Wobsolete
+grep "^Makefile\\.am:1:.*$errmsg" stderr
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE([no-dist-gzip dist-tarZ])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+END
+: > Makefile.am
+
+rm -rf autom4te*.cache
+$ACLOCAL
+AUTOMAKE_run -Wno-error
+grep "^configure\\.ac:2:.*$errmsg" stderr
+
+$AUTOCONF
+./configure
+$MAKE distcheck
+test -f dist-tarz-1.0.tar.Z
+
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index d494ef6a9..0d6f5d1b7 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -384,6 +384,9 @@ t/destdir.sh \
t/dir-named-obj-is-bad.sh \
t/discover.sh \
t/dist-formats.tap \
+t/dist-lzma.sh \
+t/dist-tarZ.sh \
+t/dist-shar.sh \
t/dist-auxdir-many-subdirs.sh \
t/dist-auxfile-2.sh \
t/dist-auxfile.sh \
@@ -656,7 +659,6 @@ t/ltinstloc.sh \
t/ltlibobjs.sh \
t/ltlibsrc.sh \
t/ltorder.sh \
-t/lzma.sh \
t/m4-inclusion.sh \
t/maintclean.sh \
t/maintclean-vpath.sh \