document mingw linker fix and close associated bug
[debian/gzip] / Makefile.am
index 0193e7ec3489a7d0012bba17853c15bbddfd6800..d4ecc3f18a018e3c57a179a55e3483a566c917dd 100644 (file)
 # Make gzip (GNU zip).
 
-## Copyright (C) 1999, 2001, 2002 Free Software Foundation
+# Copyright (C) 1999, 2001-2002, 2006-2007, 2009-2018 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 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 3 of the License, 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.
+# 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, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-AUTOMAKE_OPTIONS = gnits dist-shar
-ACLOCAL_AMFLAGS = -I m4
+ALL_RECURSIVE_TARGETS =
+BUILT_SOURCES =
+
+SUBDIRS = lib doc . tests
+AM_CPPFLAGS = -I$(top_srcdir)/lib
+AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
+
+# Tell the linker to omit references to unused shared libraries.
+AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS)
+
+noinst_LIBRARIES = libver.a
+nodist_libver_a_SOURCES = version.c version.h
+DISTCLEANFILES = version.c version.h
 
 man_MANS = gunzip.1 gzexe.1 gzip.1 \
   zcat.1 zcmp.1 zdiff.1 zforce.1 zgrep.1 zless.1 zmore.1 znew.1
 
-M4DIR = $(srcdir)/m4
-ACINCLUDE_INPUTS = $(M4DIR)/shell.m4
-
 EXTRA_DIST = $(ACINCLUDE_INPUTS) $(man_MANS) \
-  algorithm.doc amiga/match.a amiga/Makefile.gcc amiga/Makefile.sasc \
-  amiga/tailor.c amiga/utime.h atari/Makefile.st crypt.h getopt.h \
-  gzexe.in gzip.doc gzip.h lzw.h msdos/match.asm msdos/tailor.c \
-  msdos/gzip.prj msdos/doturboc.bat msdos/Makefile.msc msdos/Makefile.bor \
-  msdos/Makefile.djg nt/Makefile.nt os2/gzip.def os2/Makefile.os2 \
-  os2/gzip16.def primos/include/errno.h primos/include/fcntl.h \
-  primos/include/stdlib.h primos/include/sysStat.h \
-  primos/include/sysTypes.h primos/build.cpl primos/readme \
-  primos/primos.c primos/ci.opts revision.h sample/makecrc.c \
+  ChangeLog-2007 \
+  cfg.mk       \
+  dist-check.mk        \
+  algorithm.doc \
+  gunzip.in gzexe.in gzip.doc \
+  revision.h sample/makecrc.c \
   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 zdiff.in \
-  zforce.in zgrep.in zless.in zmore.in znew.in
+  tailor.h \
+  zcat.in zcmp.in zdiff.in \
+  zegrep.in zfgrep.in zforce.in zgrep.in zless.in zmore.in znew.in
+noinst_HEADERS = gzip.h lzw.h
 
 bin_PROGRAMS = gzip
-bin_SCRIPTS = gzexe zdiff zgrep zforce zless zmore znew
+bin_SCRIPTS = gunzip gzexe zcat zcmp zdiff \
+  zegrep zfgrep zforce zgrep zless zmore znew
 gzip_SOURCES = \
-  bits.c crypt.c deflate.c getopt.c getopt1.c gzip.c inflate.c lzw.c \
-  trees.c unlzh.c unlzw.c unpack.c unzip.c util.c yesno.c zip.c
-gzip_LDADD = @LIBOBJS@
-
-AM_MAKEINFOFLAGS = --no-split
-
-info_TEXINFOS = gzip.texi
-gzip_TEXINFOS = fdl.texi
-
-ASCPP = @ASCPP@
-LN_S = @LN_S@
-
-match.$(OBJEXT): match.c
-       cp $(srcdir)/match.c _match.S
-       $(ASCPP) _match.S >_match.s
-       $(CC) -c $(CFLAGS) _match.s
-       mv _match.$(OBJEXT) match.$(OBJEXT)
-       rm -f _match.S _match.s
+  bits.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 = libver.a lib/libgzip.a
+gzip_LDADD += $(LIB_CLOCK_GETTIME)
+
+BUILT_SOURCES += version.c
+version.c: Makefile
+       $(AM_V_GEN)rm -f $@
+       $(AM_V_at)printf '#include <config.h>\n' > $@t
+       $(AM_V_at)printf 'char const *Version = "$(PACKAGE_VERSION)";\n' >> $@t
+       $(AM_V_at)chmod a-w $@t
+       $(AM_V_at)mv $@t $@
+
+BUILT_SOURCES += version.h
+version.h: Makefile
+       $(AM_V_GEN)rm -f $@
+       $(AM_V_at)printf 'extern char const *Version;\n' > $@t
+       $(AM_V_at)chmod a-w $@t
+       $(AM_V_at)mv $@t $@
 
 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 $(bin_PROGRAMS)
+       $(AM_V_GEN)./gzip < $(srcdir)/gzip.doc >$@-t && mv $@-t $@
 
 SUFFIXES = .in
 .in:
-       sed \
-               -e '$(SEDCMD)' \
+       $(AM_V_GEN)rm -f $@-t $@ \
+          && sed \
                -e 's|/bin/sh|$(SHELL)|g' \
-               -e 's|BINDIR|$(bindir)|g' \
-               $(srcdir)/$@.in >$@
-       chmod a+x $@
+               -e 's|[@]GREP@|$(GREP)|g' \
+               -e 's|[@]VERSION@|$(VERSION)|g' \
+               $(srcdir)/$@.in >$@-t \
+         && chmod a=rx $@-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
+
+# Prepend "." to $PATH:
+new_path = PATH=.$(PATH_SEPARATOR)$$PATH
+
+# A simple test, just of gzip -- more of a sanity check than anything else.
+FILES_TO_CHECK = $(bin_SCRIPTS) \
+  $(top_srcdir)/ChangeLog $(top_srcdir)/configure $(top_srcdir)/gzip.c
+check-local: $(FILES_TO_CHECK) $(bin_PROGRAMS) gzip.doc.gz
+       $(AM_V_GEN)$(new_path); { test '$(srcdir)' != . \
+                                   || zdiff gzip.doc.gz; }
+       $(AM_V_at)$(new_path); zdiff $(srcdir)/gzip.doc $(srcdir)/gzip.doc
+       $(AM_V_at)$(new_path); zdiff $(srcdir)/gzip.doc gzip.doc.gz
+       $(AM_V_at)$(new_path); zdiff - $(srcdir)/gzip.doc <gzip.doc.gz
+       $(AM_V_at)$(new_path); zdiff gzip.doc.gz gzip.doc.gz
+       $(AM_V_at)$(new_path); zgrep -iV >/dev/null
+       $(AM_V_at)$(new_path);                          \
+       for opt in --rsyncable '' -1 -9; do             \
+          for file in $(FILES_TO_CHECK); do            \
+            gzip $$opt -c -- "$$file"                  \
+              | gzip -d | cmp - "$$file" || exit 1;    \
+          done;                                                \
+       done
 
 install-exec-hook: remove-installed-links
 install-exec-hook remove-installed-links:
        @for prog_ext in $(bin_PROGRAMS) $(bin_SCRIPTS); do \
          prog=`echo "$$prog_ext"|sed 's/$(EXEEXT)$$//'`; \
          case $$prog in \
-         gzip) aliases='gunzip zcat';; \
-         zdiff) aliases='zcmp';; \
-         zgrep) aliases='zegrep zfgrep';; \
+         gunzip) aliases='uncompress';; \
          *) continue;; \
          esac; \
          transform='$(transform)'; \
          test "X$$prog" = "X$$prog_ext" || \
            transform="$$transform"';s/$$/$(EXEEXT)/'; \
-         source=$(DESTDIR)$(bindir)/`echo "$$prog"|sed "$$transform"`; \
+         destbindir=$(DESTDIR)$(bindir); \
+         source=`echo "$$prog"|sed "$$transform"`; \
          for alias in $$aliases; do \
-           dest=$(DESTDIR)$(bindir)/`echo "$$alias"|sed "$$transform"`; \
+           dest=`echo "$$alias"|sed "$$transform"`; \
            (set -x; \
+            cd "$$destbindir" && \
             rm -f "$$dest" && \
             case $@ in \
             install-exec-hook) \
-              for ln in ln "$(LN_S)"; do \
-                $$ln "$$source" "$$dest" && break; \
-              done;; \
+              ln "$$source" "$$dest" || $(LN_S) "$$source" "$$dest";; \
             esac \
            ) || exit; \
          done; \
@@ -105,6 +154,11 @@ install-exec-hook remove-installed-links:
 
 uninstall-local: remove-installed-links
 
+ALL_RECURSIVE_TARGETS += distcheck-hook
+distcheck-hook:
+       $(MAKE) my-distcheck
+
 MAINTAINERCLEANFILES = gzip.doc
 
-MOSTLYCLEANFILES = _match.s gzexe zdiff zforce zgrep zless zmore znew
+MOSTLYCLEANFILES = _match.i match_.s _match.S gzip.doc.gz \
+  gunzip gzexe zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew