5 kx # Make findutils.
5 kx
5 kx # Copyright (C) 1996-2021 Free Software Foundation, Inc.
5 kx
5 kx # This program is free software: you can redistribute it and/or modify
5 kx # it under the terms of the GNU General Public License as published by
5 kx # the Free Software Foundation, either version 3 of the License, or
5 kx # (at your option) any later version.
5 kx
5 kx # This program is distributed in the hope that it will be useful,
5 kx # but WITHOUT ANY WARRANTY; without even the implied warranty of
5 kx # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5 kx # GNU General Public License for more details.
5 kx
5 kx # You should have received a copy of the GNU General Public License
5 kx # along with this program. If not, see <https://www.gnu.org/licenses/>.
5 kx
5 kx AUTOMAKE_OPTIONS = gnu std-options readme-alpha
5 kx
5 kx AM_CFLAGS = $(WARN_CFLAGS)
5 kx
5 kx EXTRA_DIST = \
5 kx COPYING \
5 kx ChangeLog \
5 kx README-hacking \
5 kx THANKS \
5 kx TODO \
5 kx build-aux/git-version-gen \
5 kx config.h.in \
5 kx stamp-h.in \
5 kx tests/GNUmakefile \
5 kx tool-versions.txt
5 kx
5 kx DISTCLEANFILES = tool-versions.txt
5 kx
5 kx
5 kx # "gnulib-tests" is the gnulib unit test dir.
5 kx SUBDIRS = gl build-aux lib find xargs doc po m4 gnulib-tests
5 kx
5 kx ALL_RECURSIVE_TARGETS =
5 kx
5 kx ACLOCAL_AMFLAGS = -I gl/m4 -I m4
5 kx
5 kx TESTFILE_SUFFIXES = .exp .xo .xe .xi
5 kx
5 kx tool-versions.txt: Makefile
5 kx ( automake --version ; echo ; \
5 kx autoconf --version ; echo ; \
5 kx $(CC) --version ; echo ; \
5 kx m4 --version ; echo ; \
5 kx gettext --version ; echo ; \
5 kx runtest --version ; echo ; \
5 kx makeinfo --version ) > $@
5 kx
5 kx # Have .tarball-version based versions only in tarball builds.
5 kx dist-hook: gen-ChangeLog findutils-check-testfiles
5 kx $(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
5 kx
5 kx # gen-Changelog must still work when $(top_srcdir)/.git does not exist
5 kx # because "make distcheck" verifies that you can "make dist" from the
5 kx # tarball generated by "make dist". We still need that to work.
5 kx .PHONY: gen-ChangeLog
5 kx gen-ChangeLog:
5 kx $(AM_V_GEN)if test -d $(top_srcdir)/.git; then \
5 kx $(AUXDIR)/gen-changelog.sh $(top_srcdir) > $(distdir)/cl-t \
5 kx && { rm -f $(distdir)/ChangeLog \
5 kx && mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
5 kx else \
5 kx echo "WARNING: $@: cannot generate ChangeLog since" >&2 && \
5 kx echo "$(top_srcdir) has no .git subdirectory" >&2 ; \
5 kx fi
5 kx
5 kx ## Check that we actually shipped all the test files that exist in the source.
5 kx ## runtest will run all the .exp files it finds, and so if we don't ship all
5 kx ## of them, there will be some tests which people using the CVS code will be
5 kx ## running, but people using the source distribution will not.
5 kx findutils-check-testfiles:
5 kx @echo
5 kx $(AUXDIR)/check-testfiles.sh "$(distdir)" "$(srcdir)" $(TESTFILE_SUFFIXES)
5 kx
5 kx
5 kx findutils-check-smells:
5 kx find $(srcdir) \( -path $(srcdir)/autom4te.cache -o \
5 kx -path $(srcdir)/gnulib -o \
5 kx -path $(srcdir)/gl -o \
5 kx -path $(srcdir)/gnulib-tests -o \
5 kx -name .git -o \
5 kx \( -type d -name CVS \) \
5 kx \) -prune -o \
5 kx \( -type f -o -type l \) \
5 kx \! \( -name '*~' -o -name '*.xo' -o -name '*.xi' \) \
5 kx -print0 | \
5 kx xargs -0 python $(AUXDIR)/src-sniff.py
5 kx
5 kx # Update gnulib to latest, merging some additional files we take from there
5 kx # as well. This only works if the working tree of both findutils and gnulib
5 kx # are clean (which is checked first).
5 kx # The following is a good start to find additional candidates for copying:
5 kx # git ls-files \
5 kx # | sed 's,^.*/,,g; /^gnulib$/d; /^t-t$/d; /\.c$/d' \
5 kx # | grep -Ff - <( cd gnulib && git ls-files )
5 kx .PHONY: gnulib-sync update-gnulib-to-latest
5 kx gnulib-sync update-gnulib-to-latest:
5 kx @( cd $(srcdir) \
5 kx && { printf 'gnulib: ' && git -C gnulib describe --always --dirty \
5 kx && printf 'findutils: ' && git describe --always --dirty \
5 kx || echo dirty; \
5 kx } | grep 'dirty$$' \
5 kx && { echo "error: tree is dirty" >&2; exit 1; } || : \
5 kx && git submodule foreach git pull origin master \
5 kx && cp -v gnulib/doc/COPYINGv3 COPYING \
5 kx && cp -v gnulib/doc/fdl-1.3.texi doc/fdl.texi \
5 kx && cp -v gnulib/build-aux/bootstrap bootstrap \
5 kx && cp -v gnulib/tests/init.sh tests/init.sh \
5 kx && git status --short -- gnulib COPYING doc/fdl.texi bootstrap \
5 kx tests/init.sh \
5 kx )
5 kx
5 kx # Clean coverage files generated by running binaries built with gcc
5 kx # -fprofile-arcs -ftest-coverage. We touch subdirectories here
5 kx # because the relevant Makefile.am files (which we would otherwise
5 kx # edit to add an $(RM) command in their own coverage-clean rule) are
5 kx # generated by gnulib-tool and therefore we cannot add the rule to
5 kx # those files.
5 kx coverage-clean:
5 kx for dir in . gl/lib gl/lib/glthread gl/lib/uniwidth gnulib-tests \
5 kx gnulib-tests/uniwidth; do \
5 kx rm -f $${dir}/*.gcno $${dir}/*.gcda $${dir}/*.gcov $${dir}/*.lcov; \
5 kx done
5 kx
5 kx clean-local: coverage-clean
5 kx
5 kx include $(top_srcdir)/tests/local.mk