From 3c3ff958e5d692ec4ce9b025821abba103cc7b94 Mon Sep 17 00:00:00 2001 From: Antonio Diaz Diaz Date: Wed, 24 Feb 2010 19:41:59 +0100 Subject: Add lzip compression support. * automake.in (handle_dist): Recognize dist-lzip. (make_paragraphs): Map LZIP to dist-lzip. * doc/automake.texi (Dist): Add dist-lzip. (Options): Likewise. * lib/Automake/Options.pm (_process_option_list): Add dist-lzip. * lib/am/distdir.am (dist dist-all): Add command to create an lzip-compressed tarball. (distcheck): Handle lzip-compressed tarballs just like the others. * tests/defs.in: Test for lzip, too. * tests/lzip.test: New file, based on nogzip.test. * tests/Makefile.am (TESTS): Add lzip.test. * NEWS: Update. Signed-off-by: Ralf Wildenhues --- ChangeLog | 17 +++++++++++++++++ Makefile.in | 10 ++++++++-- NEWS | 2 ++ automake.in | 3 ++- doc/automake.texi | 16 ++++++++++++++-- lib/Automake/Options.pm | 2 +- lib/am/distdir.am | 13 +++++++++++-- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/lzip.test | 41 +++++++++++++++++++++++++++++++++++++++++ 10 files changed, 98 insertions(+), 8 deletions(-) create mode 100755 tests/lzip.test diff --git a/ChangeLog b/ChangeLog index e6df59750..d702c91f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2010-02-24 Antonio Diaz Diaz (tiny change) + Ralf Wildenhues + + Add lzip compression support. + * automake.in (handle_dist): Recognize dist-lzip. + (make_paragraphs): Map LZIP to dist-lzip. + * doc/automake.texi (Dist): Add dist-lzip. + (Options): Likewise. + * lib/Automake/Options.pm (_process_option_list): Add dist-lzip. + * lib/am/distdir.am + (dist dist-all): Add command to create an lzip-compressed tarball. + (distcheck): Handle lzip-compressed tarballs just like the others. + * tests/defs.in: Test for lzip, too. + * tests/lzip.test: New file, based on nogzip.test. + * tests/Makefile.am (TESTS): Add lzip.test. + * NEWS: Update. + 2010-02-22 Karl Berry Improve help message of mdate-sh. diff --git a/Makefile.in b/Makefile.in index 9088a0b63..dcca05f78 100644 --- a/Makefile.in +++ b/Makefile.in @@ -605,6 +605,10 @@ dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -9 -c >$(distdir).tar.lz + $(am__remove_distdir) + dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) @@ -642,6 +646,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -818,8 +824,8 @@ uninstall-am: uninstall-binSCRIPTS .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ + dist-hook dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-binSCRIPTS \ install-data install-data-am install-dvi install-dvi-am \ diff --git a/NEWS b/NEWS index a3ce191e7..5374770d2 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ New in 1.11.0a: - The `lzma' compression scheme and associated automake option `dist-lzma' is obsoleted by `xz' and `dist-xz' due to upstream changes. + - "make dist" can now create lzip-compressed tarballs. + Bugs fixed in 1.11.0a: * Bugs introduced by 1.11: diff --git a/automake.in b/automake.in index 8692d61f8..0a10abdcc 100755 --- a/automake.in +++ b/automake.in @@ -3895,7 +3895,7 @@ sub handle_dist () { my $archive_defined = option 'no-dist-gzip' ? 0 : 1; $archive_defined ||= - grep { option "dist-$_" } qw(shar zip tarZ bzip2 lzma xz); + grep { option "dist-$_" } qw(shar zip tarZ bzip2 lzip lzma xz); error (option 'no-dist-gzip', "no-dist-gzip specified but no dist-* specified, " . "at least one archive format must be enabled") @@ -7049,6 +7049,7 @@ sub make_paragraphs ($%) 'XZ' => !! option 'dist-xz', 'LZMA' => !! option 'dist-lzma', + 'LZIP' => !! option 'dist-lzip', 'BZIP2' => !! option 'dist-bzip2', 'COMPRESS' => !! option 'dist-tarZ', 'GZIP' => ! option 'no-dist-gzip', diff --git a/doc/automake.texi b/doc/automake.texi index f319075c5..185652eb1 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -8441,6 +8441,11 @@ frequently smaller than gzipped archives. Generate a gzip tar archive of the distribution. @trindex dist-gzip +@item @code{dist-lzip} +Generate an @samp{lzip} tar archive of the distribution. @command{lzip} +archives are frequently smaller than @command{bzip2}-compressed archives. +@trindex dist-lzip + @item @code{dist-lzma} Generate an @samp{lzma} tar archive of the distribution. @command{lzma} archives are frequently smaller than @command{bzip2}-compressed archives. @@ -8991,6 +8996,12 @@ Cause @command{dejagnu}-specific rules to be generated. @xref{DejaGnu Tests}. Hook @code{dist-bzip2} to @code{dist}. @trindex dist-bzip2 +@item @option{dist-lzip} +@cindex Option, @option{dist-lzip} +@opindex dist-lzip +Hook @code{dist-lzip} to @code{dist}. +@trindex dist-lzip + @item @option{dist-lzma} @cindex Option, @option{dist-lzma} @opindex dist-lzma @@ -9263,7 +9274,8 @@ In order to use this option with C sources, you should add These three mutually exclusive options select the tar format to use when generating tarballs with @samp{make dist}. (The tar file created is then compressed according to the set of @option{no-dist-gzip}, -@option{dist-bzip2}, @option{dist-xz} and @option{dist-tarZ} options in use.) +@option{dist-bzip2}, @option{dist-lzip}, @option{dist-tarZ} and +@option{dist-xz} options in use.) These options must be passed as arguments to @code{AM_INIT_AUTOMAKE} (@pxref{Macros}) because they can require additional configure checks. @@ -12921,4 +12933,4 @@ parentheses is the number of generated test cases. @c LocalWords: LTALLOCA MALLOC malloc memcmp strdup alloca libcompat xyz DFOO @c LocalWords: unprefixed buildable preprocessed DBAZ DDATADIR WARNINGCFLAGS @c LocalWords: LIBFOOCFLAGS LIBFOOLDFLAGS ftable testSubDir obj LIBTOOLFLAGS -@c LocalWords: barexec Pinard's automatize initialize lzma xz +@c LocalWords: barexec Pinard's automatize initialize lzip lzma xz diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm index cacc7d2e1..8d004d9b0 100644 --- a/lib/Automake/Options.pm +++ b/lib/Automake/Options.pm @@ -259,7 +259,7 @@ sub _process_option_list (\%$@) elsif ($_ eq 'no-installman' || $_ eq 'no-installinfo' || $_ eq 'dist-shar' || $_ eq 'dist-zip' || $_ eq 'dist-tarZ' || $_ eq 'dist-bzip2' - || $_ eq 'dist-lzma' || $_ eq 'dist-xz' + || $_ eq 'dist-lzip' || $_ eq 'dist-lzma' || $_ eq 'dist-xz' || $_ eq 'no-dist-gzip' || $_ eq 'no-dist' || $_ eq 'dejagnu' || $_ eq 'no-texinfo.tex' || $_ eq 'readme-alpha' || $_ eq 'check-news' diff --git a/lib/am/distdir.am b/lib/am/distdir.am index ec4d5e5cc..ad051c322 100644 --- a/lib/am/distdir.am +++ b/lib/am/distdir.am @@ -1,6 +1,6 @@ ## automake - create Makefile.in from Makefile.am -## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -## Free Software Foundation, Inc. +## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +## 2010 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 @@ -344,6 +344,12 @@ dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) +?LZIP?DIST_ARCHIVES += $(distdir).tar.lz +.PHONY: dist-lzip +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -9 -c >$(distdir).tar.lz + $(am__remove_distdir) + ?LZMA?DIST_ARCHIVES += $(distdir).tar.lzma .PHONY: dist-lzma dist-lzma: distdir @@ -396,6 +402,7 @@ endif %?SUBDIRS% dist dist-all: distdir ?GZIP? tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz ?BZIP2? tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 +?LZIP? tardir=$(distdir) && $(am__tar) | lzip -9 -c >$(distdir).tar.lz ?LZMA? tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma ?XZ? tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz ?COMPRESS? tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z @@ -429,6 +436,8 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ diff --git a/tests/Makefile.am b/tests/Makefile.am index 4b73a627e..67c162b87 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -445,6 +445,7 @@ ltinstloc.test \ ltlibobjs.test \ ltlibsrc.test \ ltorder.test \ +lzip.test \ lzma.test \ maintclean.test \ make.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 709739e41..d53423c9d 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -680,6 +680,7 @@ ltinstloc.test \ ltlibobjs.test \ ltlibsrc.test \ ltorder.test \ +lzip.test \ lzma.test \ maintclean.test \ make.test \ diff --git a/tests/lzip.test b/tests/lzip.test new file mode 100755 index 000000000..fecbc83fa --- /dev/null +++ b/tests/lzip.test @@ -0,0 +1,41 @@ +#! /bin/sh +# Copyright (C) 2010 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 . + +# Check support for no-dist-gzip with lzip + +required=lzip +. ./defs || Exit 1 + +set -e + +cat > configure.in << 'END' +AC_INIT([lzip], [1.0]) +AM_INIT_AUTOMAKE([no-dist-gzip dist-lzip]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END + +cat > Makefile.am << 'END' +test: distcheck + test $(DIST_ARCHIVES) = lzip-1.0.tar.lz + test -f $(DIST_ARCHIVES) +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE +./configure +$MAKE test -- cgit v1.2.1