## Process this file with automake to produce Makefile.in
## Copyright (C) 2000-2004 Roger Leigh
##
## 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 <https://www.gnu.org/licenses/>.
## Process this file with automake to produce Makefile.in.
@SET_MAKE@
ACLOCAL_AMFLAGS = -I m4 -I m4local
include $(top_srcdir)/scripts/global.mk
## Variables
BUILT_SOURCES = src/xml/xmli18n-tmp.h
SUBDIRS = include src samples test po man doc scripts
DISTDIRS = m4 m4extra
CONFIGSUMMARYDIR=$(pkglibdir)/@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@
docdir = $(datadir)/$(PACKAGE)/doc
src/xml/xmli18n-tmp.h:
$(MAKE) -C src/xml
## Rules
# Libtool dependency
libtool: $(LIBTOOL_DEPS)
cd $(srcdir); \
$(SHELL) ./config.status --recheck
# Don't list ChangeLog as a dependency here because it forces network
# access, and because it usually runs as superuser rather than the user
# who normally builds Gutenprint.
# Don't list config.summary either because it's generated by configure.
install-data-local: NEWS AUTHORS COPYING README
$(MKDIR_P) $(DESTDIR)$(docdir)
$(INSTALL_DATA) $(srcdir)/NEWS $(DESTDIR)$(docdir)
$(INSTALL_DATA) $(srcdir)/ChangeLog $(DESTDIR)$(docdir)
$(INSTALL_DATA) $(srcdir)/AUTHORS $(DESTDIR)$(docdir)
$(INSTALL_DATA) $(srcdir)/COPYING $(DESTDIR)$(docdir)
$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(docdir)
$(MKDIR_P) $(DESTDIR)$(CONFIGSUMMARYDIR)
$(INSTALL_DATA) config.summary $(DESTDIR)$(CONFIGSUMMARYDIR)
# git log is local, so it's fast enough that we don't need to
# engage in any subterfuge like we did with CVS. It's really fast
# when we use a static file from the pre-Git era (since there are no
# live branches from that time) to save a lot of diffs.
# This isn't really the right spot for these checks.
# It's perfectly legal to update the change log even if NEWS
# or configure is out of date. But it greatly reduces build spew
# to do it here, and manually updating the changelog is not a
# normal thing to do.
ChangeLog: dist-time-check dist-news-check
if [ -d .git -a -f ChangeLog.pre-5.2.11 ] ; then \
$(MAKE) -C scripts mkgitlog; \
scripts/mkgitlog -i ChangeLog.pre-5.2.11 -r gutenprint-5_2_11 > ChangeLog; \
fi
dist: src/xml/xmli18n-tmp.h
dist-time-check:
@if [ "$(top_srcdir)/configure" -ot "$(top_srcdir)/configure.ac" ] ; then \
echo 1>&2; \
echo "****************************************************************" 1>&2; \
echo "*** configure is out of date (older than configure.ac) -- rerun ./autogen.sh first!" 1>&2; \
echo "****************************************************************" 1>&2; \
echo 1>&2; \
exit 1; \
fi
# This would normally be done by AM_INIT_AUTOMAKE. However,
# we don't want to do this if we're building a snapshot, because
# we don't want to update the NEWS file for each snapshot and
# there's no convenient way I've found to conditionalize the
# automake options.
dist-news-check:
@if [ "$$STP_BUILD_SNAPSHOT" = "" ] ; then \
case "`sed 15q $(srcdir)/NEWS`" in \
*$(VERSION)*) : ;; \
*) \
echo 1>&2; \
echo "****************************************************************" 1>&2; \
echo "*** NEWS not updated to $(VERSION); not releasing" 1>&2; \
echo "****************************************************************" 1>&2; \
echo 1>&2; \
exit 1; \
esac ; \
fi
git-version-stamp:
if [ -d .git ] ; then scripts/gversion > /dev/null; fi
dist-hook: dist-time-check dist-news-check git-version-stamp
for dir in $(DISTDIRS) ; do \
if test -d $(srcdir)/$$dir ; then \
mkdir $(distdir)/$$dir; \
for dirfile in $(srcdir)/$$dir/*; do \
if test -f $$dirfile ; then \
cp -p $$dirfile $(distdir)/$$dir; \
fi \
done \
fi \
done
# Remove any backup files found in distdir
$(FIND) $(distdir) -name '.*' -print | xargs $(RM) -rf
$(FIND) $(distdir) -name '#*' -print | xargs $(RM) -rf
$(FIND) $(distdir) -name '*~' -print | xargs $(RM) -rf
snapshot: scripts/gversion git-version-stamp
$(MAKE) dist distdir=$(PACKAGE)-$(VERSION)-`date +"%Y%m%d%H%M%S"`
#################################################################
# TESTING #
#################################################################
CPUS=`scripts/count-cpus`
# STP_PROFILE=full
MAKECHECK=STP_TEST_SUITE=1 /usr/bin/time $(MAKE) -k -s -j$(CPUS) DISTCHECK_CONFIGURE_FLAGS=NO_PKGCONFIG_PATHS=1 check
MAKEDISTCHECK=STP_TEST_SUITE=1 STP_TEST_DIST=1 /usr/bin/time $(MAKE) -k -s -j$(CPUS) DISTCHECK_CONFIGURE_FLAGS=NO_PKGCONFIG_PATHS=1 distcheck
MAKECHECK_PARALLEL=STP_PARALLEL=$(CPUS) $(MAKECHECK)
MAKEDISTCHECK_PARALLEL=STP_PARALLEL=$(CPUS) $(MAKEDISTCHECK)
# ...but we can't do
# AM_TESTS_ENVIRONMENT=STP_PARALLEL=$(shell scripts/count-cpus)
# because $(shell...) is (still only) a GNU extension, which we
# want to avoid. And we can't do
# AM_TESTS_ENVIRONMENT=STP_PARALLEL=`scripts/count-cpus`
# because all expansions are lazy, so anything not in the root directory
# won't find the script. And we can't even do
# AM_TESTS_ENVIRONMENT=STP_PARALLEL=`(at)TOP_BUILDDIR(at)scripts/count-cpus`
# because TOP_BUILDDIR itself is a relative path. And, just to make it
# even more fun, we won't be able to do
# AM_TESTS_ENVIRONMENT!=
# syntax even if POSIX approves it because it's only present in GNU make 4,
# but Apple doesn't use that.
# check-%: is a GNU make extension, so we have to explicitly list the targets
# of interest. Bah humbug.
CHECK_TARGETS=check-parallel check-minimal check-fast check-full
CHECK_VALGRIND_TARGETS=check-valgrind check-valgrind-minimal check-valgrind-fast
$(CHECK_TARGETS) $(CHECK_VALGRIND_TARGETS):
STP_TEST_PROFILE=`echo $@ |sed -e s/check-// -e s/-/_/g -e s/parallel//` $(MAKECHECK_PARALLEL)
DISTCHECK_TARGETS=distcheck-parallel distcheck-minimal distcheck-fast distcheck-full
DISTCHECK_VALGRIND_TARGETS=distcheck-valgrind distcheck-valgrind-minimal distcheck-valgrind-fast
$(DISTCHECK_TARGETS) $(DISTCHECK_VALGRIND_TARGETS):
STP_TEST_PROFILE=`echo $@ |sed -e s/distcheck-// -e s/-/_/g -e s/parallel//` $(MAKEDISTCHECK_PARALLEL)
checksums: scripts/count-cpus
STP_PARALLEL=$(CPUS) $(MAKE) -j$(CPUS) -C src/testpattern checksums-release
build-release: scripts/build-release scripts/count-cpus
STP_PARALLEL=$(CPUS) /usr/bin/time scripts/build-release
sanity: scripts/build-release scripts/count-cpus
STP_PARALLEL=$(CPUS) /usr/bin/time scripts/build-release preflight check_git check_git_builds
## Clean
CLEANMFOUR = \
m4/*
CLEANPO = \
po/ChangeLog \
po/gutenprint.pot \
po/Makefile.in.in \
po/boldquot.sed \
po/en@boldquot.header \
po/en@quot.header \
po/insert-header.sin \
po/Makevars.template \
po/quot.sed \
po/remove-potcdate.sin \
po/Rules-quot \
po/*~
CLEANFILES = .noupdate
MAINTAINERCLEANFILES = \
ABOUT-NLS \
ChangeLog \
INSTALL \
aclocal.m4 \
config.h.in \
config.h.in~ \
config.rpath \
configure \
git-version-stamp \
Makefile.in \
stamp-h.in \
stamp-h1.in \
stamp-h2.in \
stamp-h3.in \
stamp-h4.in \
$(CLEANMFOUR) \
$(CLEANPO)
distclean-local:
-rm -f config.summary
uninstall-local:
-rm -f $(DESTDIR)$(CONFIGSUMMARYDIR)/config.summary
EXTRA_DIST = autogen.sh README.package git-version-stamp
.PHONY: deb html install-cups install-gimp snapshot ChangeLog Phony dist-time-check git-version-stamp