Imported Upstream version 1.3.14
[debian/gzip] / Makefile.am
index 5799d753936e96c2a4d45e33e05286ae1179e560..59cc615e7b31e77bbfeb2a58f22d3b5448946073 100644 (file)
@@ -1,10 +1,10 @@
 # Make gzip (GNU zip).
 
-# Copyright (C) 1999, 2001, 2002, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2001-2002, 2006-2007, 2009 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 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 
 # This program is distributed in the hope that it will be useful,
@@ -24,6 +24,8 @@ man_MANS = gunzip.1 gzexe.1 gzip.1 \
   zcat.1 zcmp.1 zdiff.1 zforce.1 zgrep.1 zless.1 zmore.1 znew.1
 
 EXTRA_DIST = $(ACINCLUDE_INPUTS) $(man_MANS) \
+  ChangeLog-2007 \
+  tests/hufts-segv.gz \
   algorithm.doc amiga/match.a amiga/Makefile.gcc amiga/Makefile.sasc \
   amiga/tailor.c amiga/utime.h atari/Makefile.st crypt.h \
   gunzip.in gzexe.in gzip.doc gzip.h lzw.h msdos/match.asm msdos/tailor.c \
@@ -36,7 +38,8 @@ EXTRA_DIST = $(ACINCLUDE_INPUTS) $(man_MANS) \
   sample/ztouch sample/add.c sample/sub.c sample/zread.c sample/zfile \
   tailor.h vms/Makefile.mms vms/gzip.hlp vms/vms.c vms/Readme.vms \
   vms/Makefile.vms vms/Makefile.gcc vms/makegzip.com zcat.in zcmp.in zdiff.in \
-  zegrep.in zfgrep.in zforce.in zgrep.in zless.in zmore.in znew.in
+  zegrep.in zfgrep.in zforce.in zgrep.in zless.in zmore.in znew.in \
+  tests/test-lib.sh
 
 bin_PROGRAMS = gzip
 bin_SCRIPTS = gunzip gzexe zcat zcmp zdiff \
@@ -45,37 +48,66 @@ gzip_SOURCES = \
   bits.c crypt.c deflate.c gzip.c inflate.c lzw.c \
   trees.c unlzh.c unlzw.c unpack.c unzip.c util.c zip.c
 gzip_LDADD = lib/libgzip.a
+gzip_LDADD += $(LIB_CLOCK_GETTIME)
 
 gzip.doc: gzip.1
-       groff -man -Tascii $(srcdir)/gzip.1 | col -b | uniq >$@
+       $(AM_V_GEN)groff -man -Tascii $(srcdir)/gzip.1 | col -b | uniq > $@-t \
+         && mv $@-t $@
 
-gzip.doc.gz: gzip.doc
-       gzip <$? >$@
+gzip.doc.gz: gzip.doc $(bin_PROGRAMS)
+       $(AM_V_GEN)./gzip < $(srcdir)/gzip.doc >$@-t && mv $@-t $@
 
 SUFFIXES = .in
 .in:
-       sed \
+       $(AM_V_GEN)sed \
                -e 's|/bin/sh|$(SHELL)|g' \
-               -e 's|BINDIR|$${GZIP_BINDIR-'\''$(bindir)'\''}|g' \
+               -e 's|[@]bindir@|'\''$(bindir)'\''|g' \
                -e 's|[@]VERSION@|$(VERSION)|g' \
-               $(srcdir)/$@.in >$@
-       chmod a+x $@
+               $(srcdir)/$@.in >$@-t \
+         && chmod a+x $@-t \
+         && mv $@-t $@
+
+# Arrange so that .tarball-version appears only in the distribution
+# tarball, and never in a checked-out repository.
+dist-hook: gen-ChangeLog
+       $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
+
+gen_start_date = 2008-01-01
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d .git; then                                \
+         $(top_srcdir)/build-aux/gitlog-to-changelog                   \
+           --since=$(gen_start_date) > $(distdir)/cl-t;                \
+         rm -f $(distdir)/ChangeLog;                                   \
+         mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
+       fi
 
 # A simple test, just of gzip -- more of a sanity check than anything else.
-FILES_TO_CHECK = $(bin_SCRIPTS) $(gzip_LDADD) \
+FILES_TO_CHECK = $(bin_SCRIPTS) \
   $(top_srcdir)/ChangeLog $(top_srcdir)/configure $(top_srcdir)/gzip.c
-check-local: $(FILES_TO_CHECK) gzip.doc.gz
-       { test '$(srcdir)' != . || GZIP_BINDIR=. ./zdiff -c gzip.doc.gz; }
-       GZIP_BINDIR=. ./zdiff -c $(srcdir)/gzip.doc $(srcdir)/gzip.doc
-       GZIP_BINDIR=. ./zdiff $(srcdir)/gzip.doc gzip.doc.gz
-       GZIP_BINDIR=. ./zdiff -c - $(srcdir)/gzip.doc <gzip.doc.gz
-       GZIP_BINDIR=. ./zdiff -c gzip.doc.gz gzip.doc.gz
-       GZIP_BINDIR=. ./zgrep -iV >/dev/null
+check-local: $(FILES_TO_CHECK) $(bin_PROGRAMS) gzip.doc.gz
+       { test '$(srcdir)' != . || ./zdiff --__bindir . -c gzip.doc.gz; }
+       ./zdiff --__bindir . -c $(srcdir)/gzip.doc $(srcdir)/gzip.doc
+       ./zdiff --__bindir . $(srcdir)/gzip.doc gzip.doc.gz
+       ./zdiff --__bindir . -c - $(srcdir)/gzip.doc <gzip.doc.gz
+       ./zdiff --__bindir . -c gzip.doc.gz gzip.doc.gz
+       ./zgrep --__bindir . -iV >/dev/null
        for file in $(FILES_TO_CHECK); do \
-         ./gzip -cv -- "$$file" | ./gzip -d | cmp - "$$file" || exit; \
+         ./gzip -cv -- "$$file" | ./gzip -d | cmp - "$$file" || exit 1; \
        done
+       ./gzip -dc $(srcdir)/tests/hufts-segv.gz > /dev/null 2>&1; \
+         test $$? = 1
+       k=in-$$$$; printf a | ./gzip > $$k && \
+         test "`cat $$k | ./gzip -dc $$k - $$k`" = aaa && rm $$k
        @echo 'Test succeeded.'
 
+TESTS =                                                \
+  tests/trailing-nul                           \
+  tests/zdiff                                  \
+  tests/zgrep-f
+
+EXTRA_DIST += $(TESTS)
+
 install-exec-hook: remove-installed-links
 install-exec-hook remove-installed-links:
        @for prog_ext in $(bin_PROGRAMS) $(bin_SCRIPTS); do \
@@ -108,3 +140,44 @@ MAINTAINERCLEANFILES = gzip.doc
 
 MOSTLYCLEANFILES = _match.i match_.s _match.S gzip.doc.gz \
   gunzip gzexe zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew
+
+# Note that the first lines are statements.  They ensure that environment
+# variables that can perturb tests are unset or set to expected values.
+# The rest are envvar settings that propagate build-related Makefile
+# variables to test scripts.
+TESTS_ENVIRONMENT =                            \
+  tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.;        \
+  TMPDIR=$$tmp__; export TMPDIR;               \
+  exec 9>&2;                                   \
+  shell_or_perl_() {                           \
+    if grep '^\#!/usr/bin/perl' "$$1" > /dev/null; then                        \
+      if $(PERL) -e 'use warnings' > /dev/null 2>&1; then              \
+       grep '^\#!/usr/bin/perl -T' "$$1" > /dev/null && T_=T || T_=;   \
+        $(PERL) -w$$T_ -I$(srcdir) -MCoreutils                         \
+             -M"CuTmpdir qw($$f)" -- "$$1";    \
+      else                                     \
+       echo 1>&2 "$$tst: configure did not find a usable version of Perl," \
+         "so skipping this test";              \
+       (exit 77);                              \
+      fi;                                      \
+    else                                       \
+      $(SHELL) "$$1";                          \
+    fi;                                                \
+  };                                           \
+  export                                       \
+  abs_top_builddir='$(abs_top_builddir)'       \
+  abs_top_srcdir='$(abs_top_srcdir)'           \
+  abs_srcdir='$(abs_srcdir)'                   \
+  srcdir='$(srcdir)'                           \
+  top_srcdir='$(top_srcdir)'                   \
+  CC='$(CC)'                                   \
+  MAKE=$(MAKE)                                 \
+  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'     \
+  PACKAGE_VERSION=$(PACKAGE_VERSION)           \
+  PERL='$(PERL)'                               \
+  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
+  REPLACE_GETCWD=$(REPLACE_GETCWD)             \
+  PATH='$(abs_top_builddir)$(PATH_SEPARATOR)'"$$PATH" \
+  ; shell_or_perl_
+
+VERBOSE = yes