2001-12-24 09:57:46 -05:00
|
|
|
## Process this file with Automake to produce Makefile.in
|
|
|
|
|
2011-11-21 08:59:36 -05:00
|
|
|
dist_bin_SCRIPTS = bin/stow bin/chkstow
|
|
|
|
info_TEXINFOS = doc/stow.texi
|
|
|
|
dist_man_MANS = doc/stow.8
|
2011-11-24 12:00:33 -05:00
|
|
|
dist_doc_DATA = \
|
|
|
|
README \
|
2011-11-28 18:17:50 -05:00
|
|
|
doc/manual.html \
|
2011-11-24 12:00:33 -05:00
|
|
|
ChangeLog doc/ChangeLog.OLD
|
2011-11-28 18:17:50 -05:00
|
|
|
doc_DATA = doc/manual.pdf
|
2011-11-24 11:22:11 -05:00
|
|
|
|
|
|
|
# Would be nice to include the split page HTML version of the manual
|
|
|
|
# in the distribution, but automake doesn't support wildcards and I'm
|
|
|
|
# loathe to explicitly list every single page here :-(
|
|
|
|
#nobase_dist_doc_DATA = doc/stow.html/*.html
|
|
|
|
|
2011-11-24 11:28:09 -05:00
|
|
|
pmdir = $(libdir)/perl5
|
2011-11-21 08:59:36 -05:00
|
|
|
dist_pm_DATA = lib/Stow.pm
|
|
|
|
pmstowdir = $(pmdir)/Stow
|
|
|
|
dist_pmstow_DATA = lib/Stow/Util.pm
|
2011-11-16 09:04:03 -05:00
|
|
|
|
2011-11-24 12:33:36 -05:00
|
|
|
TEXINFO_TEX = doc/texinfo.tex
|
|
|
|
export TEXI2DVI_BUILD_MODE = clean
|
2011-11-24 11:32:01 -05:00
|
|
|
AM_MAKEINFOFLAGS = -I $(srcdir)
|
|
|
|
|
|
|
|
# We require this -I parameter to ensure that the include of the
|
|
|
|
# default ignore list in the manual works. Unfortunately this is
|
|
|
|
# the only way to do it:
|
|
|
|
#
|
|
|
|
# http://article.gmane.org/gmane.comp.sysutils.automake.bugs/4334/match=passing+parameters
|
|
|
|
#
|
|
|
|
# even though it annoyingly produces a warning with the -Wall option
|
|
|
|
# to AM_INIT_AUTOMAKE which has to be silenced via -Wno-override.
|
|
|
|
TEXI2DVI = texi2dvi $(AM_MAKEINFOFLAGS)
|
|
|
|
|
|
|
|
DEFAULT_IGNORE_LIST = $(srcdir)/default-ignore-list
|
|
|
|
|
|
|
|
TESTS_DIR = $(srcdir)/t
|
|
|
|
TESTS_OUT = tmp-testing-trees
|
|
|
|
TESTS_ENVIRONMENT = $(PERL) -I$(srcdir)/bin -I$(srcdir)/lib -I$(TESTS_DIR)
|
|
|
|
|
|
|
|
# This is a kind of hack; TESTS needs to be set to ensure that the
|
|
|
|
# `check-am' target makes check-TESTS, but we override check-TESTS
|
|
|
|
# so it doesn't really matter what it's set to, as long as it already
|
|
|
|
# exists (otherwise automake will try to build it).
|
|
|
|
TESTS = t
|
2011-11-16 09:04:03 -05:00
|
|
|
|
2011-11-24 11:32:01 -05:00
|
|
|
# GNU autotools standardised on the 'check' target, but CPAN (and the
|
|
|
|
# rest of the world) standardised on the 'test' target.
|
|
|
|
test: check
|
|
|
|
|
|
|
|
# required in vpath mode to ensure $build/t/ exists
|
|
|
|
check_DATA = $(TESTS_OUT)
|
|
|
|
|
|
|
|
# Test::Harness produces cleaner output than automake's default test
|
|
|
|
# harness, albeit without the pretty colours provided by the
|
|
|
|
# `color-tests' AM_INIT_AUTOMAKE option. This also dodges having to
|
|
|
|
# set TESTS to the full list of tests, which is good because automake
|
|
|
|
# doesn't support wildcards, and so it would be too easy to forget to
|
|
|
|
# add a new one to the list.
|
|
|
|
#
|
|
|
|
# Note that automake's `check' rule cannot be overridden
|
|
|
|
# for some weird reason:
|
|
|
|
#
|
|
|
|
# http://thread.gmane.org/gmane.comp.sysutils.automake.general/13040/focus=13041
|
|
|
|
#
|
|
|
|
# so we override check-TESTS instead which is where the real work is
|
|
|
|
# done anyway. Unfortunately this produces a warning with the -Wall
|
|
|
|
# option to AM_INIT_AUTOMAKE which has to be silenced via
|
|
|
|
# -Wno-override.
|
|
|
|
check-TESTS:
|
|
|
|
dir=$(TESTS_DIR); \
|
|
|
|
$(TESTS_ENVIRONMENT) -MTest::Harness -e 'runtests(@ARGV)' "$${dir#./}"/*.t
|
|
|
|
|
|
|
|
$(TESTS_OUT):
|
|
|
|
mkdir -p $@
|
|
|
|
|
2011-11-21 08:59:36 -05:00
|
|
|
CPAN_FILES = MANIFEST MANIFEST.SKIP Build.PL META.yml META.json
|
|
|
|
EXTRA_DIST = \
|
|
|
|
bin/stow.in bin/chkstow.in lib/Stow.pm.in \
|
2011-11-28 18:17:50 -05:00
|
|
|
doc/stow.pdf \
|
2011-11-21 08:59:36 -05:00
|
|
|
$(TESTS) t/testutil.pm \
|
|
|
|
$(TEXINFO_TEX) \
|
2011-11-24 11:32:01 -05:00
|
|
|
$(DEFAULT_IGNORE_LIST) \
|
2011-11-21 08:59:36 -05:00
|
|
|
$(CPAN_FILES)
|
|
|
|
CLEANFILES = $(bin_SCRIPTS) $(dist_pm_DATA)
|
2011-11-16 09:04:03 -05:00
|
|
|
|
2011-11-24 11:22:11 -05:00
|
|
|
# clean up auto-generated files
|
2011-11-16 09:04:03 -05:00
|
|
|
clean-local:
|
2011-11-24 11:32:01 -05:00
|
|
|
-rm -rf $(TESTS_OUT) \
|
2011-11-24 12:33:36 -05:00
|
|
|
bin/stow bin/chkstow doc/stow.8 ChangeLog \
|
2011-11-28 18:17:50 -05:00
|
|
|
doc/manual.html doc/manual.pdf
|
2011-11-16 09:04:03 -05:00
|
|
|
|
|
|
|
# this is more explicit and reliable than the config file trick
|
|
|
|
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
|
2011-11-18 10:09:39 -05:00
|
|
|
-e 's|[@]VERSION[@]|$(VERSION)|g'
|
2011-11-16 09:04:03 -05:00
|
|
|
|
2011-11-21 08:59:36 -05:00
|
|
|
bin/stow: bin/stow.in Makefile
|
2011-11-24 11:32:01 -05:00
|
|
|
[ -d bin ] || mkdir bin # required in vpath mode
|
2011-11-16 09:04:03 -05:00
|
|
|
$(edit) < $< > $@
|
|
|
|
chmod +x $@
|
2001-12-24 09:57:46 -05:00
|
|
|
|
2011-11-21 08:59:36 -05:00
|
|
|
bin/chkstow: bin/chkstow.in Makefile
|
2011-11-24 11:32:01 -05:00
|
|
|
[ -d bin ] || mkdir bin # required in vpath mode
|
2011-11-16 09:04:03 -05:00
|
|
|
$(edit) < $< > $@
|
|
|
|
chmod +x $@
|
2001-12-24 09:57:46 -05:00
|
|
|
|
2011-11-23 18:45:48 -05:00
|
|
|
lib/Stow.pm: lib/Stow.pm.in Makefile $(DEFAULT_IGNORE_LIST)
|
2011-11-24 11:32:01 -05:00
|
|
|
[ -d lib ] || mkdir lib # required in vpath mode
|
2011-11-23 18:45:48 -05:00
|
|
|
( $(edit) < $<; cat $(DEFAULT_IGNORE_LIST) ) > $@
|
2011-11-24 11:28:09 -05:00
|
|
|
|
2011-11-24 12:33:36 -05:00
|
|
|
##############################################################################
|
|
|
|
# The below rules are only used by the developer.
|
|
|
|
##############################################################################
|
2001-12-24 09:57:46 -05:00
|
|
|
|
2011-11-24 12:33:36 -05:00
|
|
|
# It's conventional to generate $project.info, but it's also nicer to
|
|
|
|
# generate manual.html and manual.pdf (which ultimately go somewhere
|
|
|
|
# like /usr/share/doc/stow/) rather than stow.html and stow.pdf, to
|
|
|
|
# make it obvious that these files contain the manual. So we have to
|
2011-11-28 18:17:50 -05:00
|
|
|
# jump through a few extra hoops.
|
|
|
|
doc/manual.pdf: doc/stow.pdf
|
2011-11-24 12:33:36 -05:00
|
|
|
[ -d doc ] || mkdir doc # required in vpath mode
|
2011-11-28 18:17:50 -05:00
|
|
|
cp $< $@
|
2011-11-24 12:33:36 -05:00
|
|
|
|
2011-11-28 18:17:50 -05:00
|
|
|
doc/manual.html: doc/stow.texi
|
2001-12-24 09:57:46 -05:00
|
|
|
-rm -f $@
|
2011-11-28 18:17:50 -05:00
|
|
|
texi2html --P=$(srcdir) --output=$@ -expandinfo -menu -monolithic -verbose $<
|
2011-11-16 09:30:55 -05:00
|
|
|
|
2011-11-24 11:52:50 -05:00
|
|
|
doc/stow.8: bin/stow Makefile
|
2011-11-24 11:32:01 -05:00
|
|
|
[ -d doc ] || mkdir doc # required in vpath mode
|
2011-11-24 11:52:50 -05:00
|
|
|
pod2man $< > $@
|
|
|
|
|
2011-11-24 12:00:33 -05:00
|
|
|
|
|
|
|
ChangeLog: doc/ChangeLog.OLD Makefile
|
|
|
|
@if [ -d .git ]; then \
|
|
|
|
( \
|
|
|
|
git log \
|
|
|
|
--format="format:%ad %aN <%aE>%n%n * %w(70,0,4)%s%+b%n" \
|
|
|
|
--name-status \
|
|
|
|
v2.0.2..HEAD \
|
|
|
|
| sed 's/^\([A-Z]\)\t/ \1 /'; \
|
|
|
|
cat $< \
|
|
|
|
) > $@; \
|
|
|
|
else \
|
|
|
|
echo "Not in a git repository; can't update ChangeLog."; \
|
|
|
|
fi
|