X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Makefile.am;h=f55f6fbbd4a54bc8d3864935c02e4d3a8a5e1867;hb=b6e6409a68595fec2c9bf484b36f0a498bd18d87;hp=7c49ab6e6c4a4bebf053465bc6b3dbaf665317fd;hpb=641a5a4bf09cdc07acf1539caa86f6197feb032e;p=platform%2Fupstream%2Fautomake.git diff --git a/Makefile.am b/Makefile.am index 7c49ab6..f55f6fb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,34 +17,60 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -## lib goes first, because it builds Config.pm, used by aclocal and -## automake (run in doc, tests, and in the rebuild rules.) -## `.' goes before doc and tests, because the latter two directories -## run aclocal and automake. -SUBDIRS = lib . contrib doc m4 tests +## Might be updated later. +CLEANFILES = +DISTCLEANFILES = +MAINTAINERCLEANFILES = +EXTRA_DIST = + +## ------------ ## +## Top level. ## +## ------------ ## + +# We want a handful of substitutions to be fully-expanded by make; +# then use config.status to substitute the remainder where a single +# expansion is sufficient. We use a funny notation here to avoid +# configure substitutions in our text. +do_subst = ( sed \ + -e "s,[@]configure_input[@],Generated from $$in; do not edit by hand.,g" \ + -e 's,[@]datadir[@],$(datadir),g' \ + -e 's,[@]amdir[@],$(amdir),g' \ + -e 's,[@]bindir[@],$(bindir),g' \ + -e 's,[@]docdir[@],$(docdir),g' \ + -e 's,[@]pkgvdatadir[@],$(pkgvdatadir),g' \ + -e 's,[@]scriptdir[@],$(scriptdir),g' \ + -e 's,[@]automake_acdir[@],$(automake_acdir),g' \ + -e 's,[@]system_acdir[@],$(system_acdir),g' \ +## Hack to avoid a spurious substitution in the Automake script (part 1). + -e 's,[@]am__isrc[@],!!@!!am__isrc!!@!!,g' \ + | $(SHELL) ./config.status --file=- \ +## Hack to avoid a spurious substitution in the Automake script (part 2). + | sed -e 's,!!@!!am__isrc!!@!!,@''am__isrc@,g' \ + ) + +# Generated files shouldn't contain unexpanded '@substitutions@', and +# should be made read-only, to prevent them from being edited by mistake +# instead of the file the are generated from. +generated_file_finalize = $(AM_V_at) \ + if LC_ALL=C grep '@[a-zA-Z0-9_][a-zA-Z0-9_]*@' $@-t; then \ + echo "$@ contains unexpanded substitution (see lines above)"; \ + exit 1; \ + fi; \ + chmod a-w $@-t && mv -f $@-t $@ bin_SCRIPTS = automake aclocal -CLEANFILES = $(bin_SCRIPTS) +CLEANFILES += $(bin_SCRIPTS) AUTOMAKESOURCES = automake.in aclocal.in TAGS_FILES = $(AUTOMAKESOURCES) -EXTRA_DIST = \ +EXTRA_DIST += \ + $(AUTOMAKESOURCES) \ + bootstrap.sh \ GNUmakefile \ syntax-checks.mk \ - HACKING \ - ChangeLog.96 \ - ChangeLog.98 \ - ChangeLog.00 \ - ChangeLog.01 \ - ChangeLog.02 \ - ChangeLog.03 \ - ChangeLog.04 \ - ChangeLog.09 \ - ChangeLog.11 \ - bootstrap \ - $(AUTOMAKESOURCES) + HACKING ## Make versioned links. We only run the transform on the root name; ## then we make a versioned link with the transformed base name. This @@ -66,62 +92,490 @@ uninstall-hook: rm -f "$(DESTDIR)$(bindir)/$$fv"; \ done - -## We can't use configure to do the substitution here; we must do it -## by hand. We use a funny notation here to avoid configure -## substitutions in our text. -do_subst = sed \ - -e 's,[@]APIVERSION[@],$(APIVERSION),g' \ - -e 's,[@]PACKAGE[@],$(PACKAGE),g' \ - -e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \ - -e 's,[@]PACKAGE_URL[@],$(PACKAGE_URL),g' \ - -e 's,[@]PATH_SEPARATOR[@],$(PATH_SEPARATOR),g' \ - -e 's,[@]PERL[@],$(PERL),g' \ - -e 's,[@]PERL_THREADS[@],$(PERL_THREADS),g' \ - -e 's,[@]SHELL[@],$(SHELL),g' \ - -e 's,[@]am_AUTOCONF[@],$(am_AUTOCONF),g' \ - -e 's,[@]am_AUTOM4TE[@],$(am_AUTOM4TE),g' \ - -e 's,[@]VERSION[@],$(VERSION),g' \ - -e 's,[@]configure_input[@],Generated from $@.in; do not edit by hand.,g' \ - -e 's,[@]datadir[@],$(datadir),g' - ## These files depend on Makefile so they are rebuilt if $(VERSION), ## $(datadir) or other do_subst'ituted variables change. -## Use chmod a-w to prevent people from editing the wrong file by accident. automake: automake.in aclocal: aclocal.in automake aclocal: Makefile $(AM_V_at)rm -f $@ $@-t - $(AM_V_GEN)$(do_subst) $(srcdir)/$@.in >$@-t + $(AM_V_GEN)in=$@.in; $(do_subst) <$(srcdir)/$@.in >$@-t +## We can't use '$(generated_file_finalize)' here, because currently +## Automake contains occurrences of unexpanded @substitutions@ in +## comments, and that is perfectly legit. $(AM_V_at)chmod a+x,a-w $@-t && mv -f $@-t $@ ## The master location for INSTALL is lib/INSTALL. -## This is where `make fetch' will install new versions. +## This is where "make fetch" will install new versions. ## Make sure we also update this copy. INSTALL: lib/INSTALL $(AM_V_GEN)cp $(srcdir)/lib/INSTALL $@ +# We don't use the default name for the autom4te cache directory, +# so we need this. +maintainer-clean-local: + rm -rf .autom4te.cache + + +## -------------------------------------------------------------------- ## +## Auxiliary scripts and files for use with "automake --add-missing". ## +## -------------------------------------------------------------------- ## + +dist_pkgvdata_DATA = \ + lib/COPYING \ + lib/INSTALL \ + lib/texinfo.tex + +## These must all be executable when installed. However, if we use +## _SCRIPTS, then the program transform will be applied, which is not +## what we want. So we make them executable by hand. +dist_script_DATA = \ + lib/config.guess \ + lib/config.sub \ + lib/install-sh \ + lib/mdate-sh \ + lib/missing \ + lib/mkinstalldirs \ + lib/elisp-comp \ + lib/ylwrap \ + lib/depcomp \ + lib/compile \ + lib/py-compile \ + lib/ar-lib \ + lib/test-driver \ + lib/tap-driver.sh \ + lib/tap-driver.pl + +install-data-hook: + @$(POST_INSTALL) + @for f in $(dist_script_DATA); do echo $$f; done \ + | sed 's,^lib/,,' \ + | ( st=0; \ + while read f; do \ + echo " chmod +x '$(DESTDIR)$(scriptdir)/$$f'"; \ + chmod +x "$(DESTDIR)$(scriptdir)/$$f" || st=1; \ + done; \ + exit $$st ) + +installcheck-local: installcheck-executable-scripts +installcheck-executable-scripts: + @for f in $(dist_script_DATA); do echo $$f; done \ + | sed 's,^lib/,,' \ + | while read f; do \ + path="$(pkgvdatadir)/$$f"; \ + test -x "$$path" || echo $$path; \ + done \ + | sed 's/$$/: not executable/' \ + | grep . 1>&2 && exit 1; exit 0 + + +## ---------------------------------------------------- ## +## Private perl modules used by automake and aclocal. ## +## ---------------------------------------------------- ## + +perllibdir = $(pkgvdatadir)/Automake +dist_perllib_DATA = \ + lib/Automake/ChannelDefs.pm \ + lib/Automake/Channels.pm \ + lib/Automake/Condition.pm \ + lib/Automake/Configure_ac.pm \ + lib/Automake/DisjConditions.pm \ + lib/Automake/FileUtils.pm \ + lib/Automake/General.pm \ + lib/Automake/Getopt.pm \ + lib/Automake/Item.pm \ + lib/Automake/ItemDef.pm \ + lib/Automake/Location.pm \ + lib/Automake/Options.pm \ + lib/Automake/Rule.pm \ + lib/Automake/RuleDef.pm \ + lib/Automake/Variable.pm \ + lib/Automake/VarDef.pm \ + lib/Automake/Version.pm \ + lib/Automake/XFile.pm \ + lib/Automake/Wrap.pm + +nodist_perllib_DATA = lib/Automake/Config.pm +CLEANFILES += $(nodist_perllib_DATA) + +lib/Automake/Config.pm: lib/Automake/Config.in Makefile + $(AM_V_at)rm -f $@ $@-t + $(AM_V_at)test -d lib/Automake || $(MKDIR_P) lib/Automake + $(AM_V_GEN)in=Config.in \ + && $(do_subst) <$(srcdir)/lib/Automake/Config.in >$@-t + $(generated_file_finalize) +EXTRA_DIST += lib/Automake/Config.in + + +## --------------------- ## +## Makefile fragments. ## +## --------------------- ## + +dist_am_DATA = \ + lib/am/check.am \ + lib/am/check2.am \ + lib/am/clean-hdr.am \ + lib/am/clean.am \ + lib/am/compile.am \ + lib/am/configure.am \ + lib/am/data.am \ + lib/am/dejagnu.am \ + lib/am/depend.am \ + lib/am/depend2.am \ + lib/am/distdir.am \ + lib/am/footer.am \ + lib/am/header-vars.am \ + lib/am/header.am \ + lib/am/install.am \ + lib/am/inst-vars.am \ + lib/am/java.am \ + lib/am/lang-compile.am \ + lib/am/lex.am \ + lib/am/library.am \ + lib/am/libs.am \ + lib/am/libtool.am \ + lib/am/lisp.am \ + lib/am/ltlib.am \ + lib/am/ltlibrary.am \ + lib/am/mans-vars.am \ + lib/am/mans.am \ + lib/am/program.am \ + lib/am/progs.am \ + lib/am/python.am \ + lib/am/remake-hdr.am \ + lib/am/scripts.am \ + lib/am/subdirs.am \ + lib/am/tags.am \ + lib/am/texi-vers.am \ + lib/am/texibuild.am \ + lib/am/texinfos.am \ + lib/am/vala.am \ + lib/am/yacc.am + + +## ------------------------------ ## +## Automake-provided m4 macros. ## +## ------------------------------ ## + +dist_automake_ac_DATA = \ + m4/amversion.m4 \ + m4/ar-lib.m4 \ + m4/as.m4 \ + m4/auxdir.m4 \ + m4/ccstdc.m4 \ + m4/cond.m4 \ + m4/cond-if.m4 \ + m4/depend.m4 \ + m4/depout.m4 \ + m4/dmalloc.m4 \ + m4/gcj.m4 \ + m4/header.m4 \ + m4/init.m4 \ + m4/install-sh.m4 \ + m4/lead-dot.m4 \ + m4/lex.m4 \ + m4/lispdir.m4 \ + m4/maintainer.m4 \ + m4/make.m4 \ + m4/minuso.m4 \ + m4/missing.m4 \ + m4/mkdirp.m4 \ + m4/obsol-gt.m4 \ + m4/obsol-lt.m4 \ + m4/obsolete.m4 \ + m4/options.m4 \ + m4/protos.m4 \ + m4/python.m4 \ + m4/runlog.m4 \ + m4/sanity.m4 \ + m4/silent.m4 \ + m4/strip.m4 \ + m4/substnot.m4 \ + m4/tar.m4 \ + m4/upc.m4 \ + m4/vala.m4 + +dist_system_ac_DATA = m4/acdir/README + +# We build amversion.m4 here, instead of from config.status, +# because config.status is rerun each time one of configure's +# dependencies change and amversion.m4 happens to be a configure +# dependency. configure and amversion.m4 would be rebuilt in +# loop otherwise. +# Use '$(top_srcdir)/m4' for the benefit of non-GNU makes: this is +# how amversion.m4 appears in our dependencies. +$(top_srcdir)/m4/amversion.m4: $(srcdir)/configure.ac $(srcdir)/m4/amversion.in + $(AM_V_at)rm -f $@-t $@ + $(AM_V_GEN)in=amversion.in \ + && $(do_subst) <$(srcdir)/m4/amversion.in >$@-t + $(generated_file_finalize) +EXTRA_DIST += m4/amversion.in + + +## ------------ ## +## Testsuite. ## +## ------------ ## + +# Run the tests with a proper shell detected at configure time. +LOG_COMPILER = $(AM_TEST_RUNNER_SHELL) + +TEST_EXTENSIONS = .pl .sh .tap +SH_LOG_COMPILER = $(LOG_COMPILER) +TAP_LOG_COMPILER = $(LOG_COMPILER) +PL_LOG_COMPILER = $(PERL) +AM_PL_LOG_FLAGS = -Mstrict -I $(builddir)/lib -I $(srcdir)/lib -w + +TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(srcdir)/lib/tap-driver.sh + +AM_TAP_LOG_DRIVER_FLAGS = --merge + +EXTRA_DIST += t/README t/ax/is t/ax/is_newest + +TESTS = ## Will be updated later. + +# Some testsuite-influential variables should be overridable from the +# test scripts, but not from the environment. +AM_TESTS_ENVIRONMENT = \ + for v in \ + required \ + am_using_tap \ + am_serial_tests \ + am_test_prefer_config_shell \ + am_original_AUTOMAKE \ + am_original_ACLOCAL \ + ; do \ + eval test x"\$${$$v}" = x || unset $$v; \ + done; +# We want warning messages and explanations for skipped tests to go to +# the console if possible, so set up 'stderr_fileno_' properly. +AM_TESTS_FD_REDIRECT = 9>&2 +AM_TESTS_ENVIRONMENT += stderr_fileno_=9; export stderr_fileno_; + +# Hand-written tests. + +include $(srcdir)/t/list-of-tests.mk + +TESTS += $(handwritten_TESTS) +EXTRA_DIST += $(handwritten_TESTS) + +# Automatically-generated tests wrapping hand-written ones. +# Also, automatically-computed dependencies for tests. + +include $(srcdir)/t/testsuite-part.am + +TESTS += $(generated_TESTS) +EXTRA_DIST += $(generated_TESTS) + +$(srcdir)/t/testsuite-part.am: + $(AM_V_at)rm -f t/testsuite-part.tmp $@ + $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \ + --srcdir $(srcdir) > t/testsuite-part.tmp + $(AM_V_at)chmod a-w t/testsuite-part.tmp + $(AM_V_at)mv -f t/testsuite-part.tmp $@ +EXTRA_DIST += gen-testsuite-part + +## The dependecies declared here are not truly complete, but such +## completeness would cause more issues than it would solve. See +## automake bug#11347. +$(generated_TESTS): $(srcdir)/gen-testsuite-part +$(srcdir)/t/testsuite-part.am: $(srcdir)/gen-testsuite-part Makefile.am + +# Static dependencies valid for each test case. +check_SCRIPTS = t/wrap/aclocal-$(APIVERSION) t/wrap/automake-$(APIVERSION) +dist_check_DATA = \ + t/ax/test-init.sh \ + t/ax/plain-functions.sh \ + t/ax/tap-functions.sh +nodist_check_DATA = defs-static + +# Few more static dependencies. +t/distcheck-missing-m4.log: t/ax/distcheck-hook-m4.am +t/distcheck-outdated-m4.log: t/ax/distcheck-hook-m4.am +EXTRA_DIST += t/ax/distcheck-hook-m4.am + +defs-static: defs-static.in Makefile + $(AM_V_at)rm -f $@ $@-t + $(AM_V_GEN)in=defs-static.in\ + && $(do_subst) <$(srcdir)/defs-static.in >$@-t + $(generated_file_finalize) +EXTRA_DIST += defs-static.in +CLEANFILES += defs-static + +# If two test scripts have the same basename, they will end up sharing +# the same log file, leading to all sort of undefined and undesired +# behaviours. +check-no-repeated-test-name: + @LC_ALL=C; export LC_ALL; \ + lst='$(TEST_LOGS)'; for log in $$lst; do echo $$log; done \ + | sort | uniq -c | awk '($$1 > 1) { print }' \ + | sed 's/\.log$$//' | grep . >&2 \ + && { \ + echo $@: test names listed above are duplicated >&2; \ + exit 1; \ + }; : +check-local: check-no-repeated-test-name +.PHONY: check-no-repeated-test-name + +## Checking the list of tests. +test_subdirs = t t/pm t/perf +include $(srcdir)/t/CheckListOfTests.am + # Run the testsuite with the installed aclocal and automake. -installcheck-local: +installcheck-local: installcheck-testsuite +installcheck-testsuite: am_running_installcheck=yes $(MAKE) $(AM_MAKEFLAGS) check -# Convenience proxy target for the test suites. -recheck: - $(am__cd) tests && $(MAKE) $(AM_MAKEFLAGS) $@ -.PHONY: recheck +clean-local: clean-local-check +.PHONY: clean-local-check +clean-local-check: + -set x t/*.dir; shift; \ + if test "$$#,$$1" = "1,*.dir"; then \ + : there is no test directory to clean; \ + else \ + find "$$@" -type d ! -perm -700 -exec chmod u+rwx {} ';'; \ + rm -rf "$$@"; \ + fi; + + +## ---------------- ## +## Documentation. ## +## ---------------- ## + +info_TEXINFOS = doc/automake.texi doc/automake-history.texi +doc_automake_TEXINFOS = doc/fdl.texi +doc_automake_history_TEXINFOS = doc/fdl.texi + +man1_MANS = \ + doc/aclocal.1 \ + doc/automake.1 \ + doc/aclocal-$(APIVERSION).1 \ + doc/automake-$(APIVERSION).1 + +$(man1_MANS): $(srcdir)/configure.ac + +CLEANFILES += $(man1_MANS) +EXTRA_DIST += doc/help2man + +update_mans = \ + $(AM_V_GEN): \ + && $(MKDIR_P) doc \ + && PATH="$(abs_builddir)/t/wrap$(PATH_SEPARATOR)$$PATH" \ + && export PATH \ + && $(PERL) $(srcdir)/doc/help2man --output=$@ + +doc/aclocal.1 doc/automake.1: + $(AM_V_GEN): \ + && $(MKDIR_P) doc \ + && f=`echo $@ | sed 's|.*/||; s|\.1$$||; $(transform)'` \ + && echo ".so man1/$$f-$(APIVERSION).1" > $@ + +doc/aclocal-$(APIVERSION).1: aclocal.in aclocal lib/Automake/Config.pm + $(update_mans) aclocal-$(APIVERSION) +doc/automake-$(APIVERSION).1: automake.in automake lib/Automake/Config.pm + $(update_mans) automake-$(APIVERSION) + + +## ---------------------------- ## +## Example package "amhello". ## +## ---------------------------- ## + +amhello_sources = \ + doc/amhello/configure.ac \ + doc/amhello/Makefile.am \ + doc/amhello/README \ + doc/amhello/src/main.c \ + doc/amhello/src/Makefile.am + +amhello_configury = \ + aclocal.m4 \ + autom4te.cache \ + Makefile.in \ + config.h.in \ + configure \ + depcomp \ + install-sh \ + missing \ + src/Makefile.in + +dist_noinst_DATA = $(amhello_sources) +dist_doc_DATA = $(srcdir)/doc/amhello-1.0.tar.gz + +# We depend on configure.ac so that we regenerate the tarball +# whenever the Automake version changes. +# aclocal-$(APIVERSION) and automake-$(APIVERSION) are generated by +# configure in 't/wrap'. +$(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac + $(AM_V_GEN): \ + && PATH="$(abs_top_builddir)/t/wrap$(PATH_SEPARATOR)$$PATH" \ + && export PATH \ + && $(am__cd) $(srcdir)/doc/amhello \ + && ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL \ + && AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE \ + && AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF \ + && AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE \ + && AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF \ + && AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER \ + && AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE \ + && $(am_AUTORECONF) -vfi \ + && ./configure \ + && $(MAKE) $(AM_MAKEFLAGS) distcheck \ + && $(MAKE) $(AM_MAKEFLAGS) distclean \ + && rm -rf $(amhello_configury) \ + && mv -f amhello-1.0.tar.gz .. + + +## ------------------------------------------------- ## +## Third-party, obsolescent or experimental stuff. ## +## ------------------------------------------------- ## + +EXTRA_DIST += \ + contrib/check-html.am \ + contrib/multilib/README \ + contrib/multilib/config-ml.in \ + contrib/multilib/symlink-tree \ + contrib/multilib/multilib.am \ + contrib/multilib/multi.m4 \ + contrib/README + + +## --------------------------------------------------- ## +## Older files, kept mostly for historical interest. ## +## --------------------------------------------------- ## + +EXTRA_DIST += \ + old/ChangeLog-tests \ + old/ChangeLog.96 \ + old/ChangeLog.98 \ + old/ChangeLog.00 \ + old/ChangeLog.01 \ + old/ChangeLog.02 \ + old/ChangeLog.03 \ + old/ChangeLog.04 \ + old/ChangeLog.09 \ + old/ChangeLog.11 \ + old/TODO + + +########################################################################## -################################################################ -## ## Everything past here is useful to the maintainer, but probably not -## to anybody else -## +## to anybody else. + +########################################################################## + + +## --------------------------------------------------------- ## +## Automatic generation of the ChangeLog from git history. ## +## --------------------------------------------------------- ## gitlog_to_changelog_command = $(PERL) $(srcdir)/lib/gitlog-to-changelog -gitlog_to_changelog_options = --since='2011-12-28 00:00:00' \ +gitlog_to_changelog_fixes = $(srcdir)/.git-log-fix +gitlog_to_changelog_options = --amend=$(gitlog_to_changelog_fixes) \ + --since='2011-12-28 00:00:00' \ --no-cluster --format '%s%n%n%b' -# Automatic generation of the ChangeLog from git history. -# +EXTRA_DIST += lib/gitlog-to-changelog +EXTRA_DIST += $(gitlog_to_changelog_fixes) + # When executed from a git checkout, generate the ChangeLog from the git # history. When executed from an extracted distribution tarball, just # copy the distributed ChangeLog in the build directory (and if this @@ -129,9 +583,9 @@ gitlog_to_changelog_options = --since='2011-12-28 00:00:00' \ # give an error). # # We need the apparently useless dependency from another .PHONY target -# `am--changelog-regen-hook' to work around a bug of Solaris make, which +# 'am--changelog-regen-hook' to work around a bug of Solaris make, which # doesn't execute the recipe of a target named as an existing file, even -# if such target is declared `.PHONY' (yikes!) +# if such target is declared '.PHONY' (yikes!) # .PHONY: am--changelog-regen-hook am--changelog-regen-hook: @@ -154,12 +608,11 @@ ChangeLog: am--changelog-regen-hook exit 1; \ fi -# Ensure tests are world-executable -dist-hook: - $(am__cd) $(distdir)/tests && chmod a+rx *.test +## --------------------------- ## +## Perl coverage statistics. ## +## --------------------------- ## -# Perl coverage statistics. PERL_COVERAGE_DB = $(abs_top_builddir)/cover_db PERL_COVERAGE_FLAGS = -MDevel::Cover=-db,$(PERL_COVERAGE_DB),-silent,on,-summary,off PERL_COVER = cover @@ -172,8 +625,8 @@ check-coverage-run recheck-coverage-run: all check-coverage-report: @if test ! -d "$(PERL_COVERAGE_DB)"; then \ - echo "No coverage database found in \`$(PERL_COVERAGE_DB)'." >&2; \ - echo "Please run \`make check-coverage' first" >&2; \ + echo "No coverage database found in '$(PERL_COVERAGE_DB)'." >&2; \ + echo "Please run \"make check-coverage\" first" >&2; \ exit 1; \ fi $(PERL_COVER) $(PERL_COVER_FLAGS) "$(PERL_COVERAGE_DB)" @@ -193,10 +646,15 @@ clean-local: clean-coverage .PHONY: check-coverage recheck-coverage check-coverage-run \ recheck-coverage-run check-coverage-report clean-coverage -## Tagging and/or uploading stable and beta releases. + +## ---------------------------------------------------- ## +## Tagging and/or uploading stable and beta releases. ## +## ---------------------------------------------------- ## GIT = git +EXTRA_DIST += lib/gnupload + version_rx = ^[1-9][0-9]*\.[0-9][0-9]*(\.[0-9][0-9]*)? stable_version_rx = $(version_rx)$$ beta_version_rx = $(version_rx)[bdfhjlnprtvxz]$$ @@ -231,9 +689,6 @@ git-tag-release: maintainer-check esac; \ $(determine_release_type); \ $(git_must_have_clean_workdir); \ -## Make sure the NEWS file is up-to-date. - sed 1q $(srcdir)/NEWS | grep '$(VERSION)' >/dev/null \ - || fatal "NEWS not updated"; \ ## If all was successful, tag the release in the local repository. $$run $(GIT) tag -s "v$(VERSION)" -m "$$release_type $(VERSION)" @@ -254,6 +709,11 @@ git-upload-release: .PHONY: git-upload-release git-tag-release + +## ------------------------------------------------------------------ ## +## Explore differences of autogenerated files in different commits. ## +## ------------------------------------------------------------------ ## + ## Visually comparing differences between the Makefile.in files in ## automake's own build system as generated in two different branches ## might help to catch bugs and blunders. This has already happened a @@ -271,7 +731,7 @@ autodiffs: && $(am__cd) tmp \ && $(GIT) checkout -q "$$rev" \ && echo "$@: bootstrapping $$rev" \ - && $(SHELL) ./bootstrap \ + && $(SHELL) ./bootstrap.sh \ && echo "$@: copying files from $$rev" \ && makefile_ins=`find . -name Makefile.in` \ && (tar cf - configure aclocal.m4 $$makefile_ins) | \ @@ -290,6 +750,7 @@ autodiffs: && get_autofiles_from_rev $$OLD_COMMIT old \ && get_autofiles_from_rev $$NEW_COMMIT new \ && exit 0 + ## With lots of eye candy; we like our developers pampered and spoiled :-) compare-autodiffs: autodiffs @set -u; \ @@ -323,6 +784,11 @@ compare-autodiffs: autodiffs exit $$st .PHONY: autodiffs compare-autodiffs + +## --------------------------------------------------------------------- ## +## Synchronize third-party files that are committed in our repository. ## +## --------------------------------------------------------------------- ## + ## Program to use to fetch files. WGET = wget WGET_SV_CVS = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/ @@ -370,15 +836,27 @@ fetch: exit $$stat .PHONY: fetch + +## ------------------------------------------------ ## +## Update copyright years of all committed files. ## +## ------------------------------------------------ ## + +EXTRA_DIST += lib/update-copyright + update_copyright_env = \ UPDATE_COPYRIGHT_FORCE=1 \ UPDATE_COPYRIGHT_USE_INTERVALS=2 .PHONY: update-copyright update-copyright: - $(AM_V_GEN)excluded_re=`echo $(FETCHFILES) \ + $(AM_V_GEN)set -e; \ + current_year=`date +%Y` && test -n "$$current_year" \ + || { echo "$@: cannot get current year" >&2; exit 1; }; \ + sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" \ + bootstrap.sh configure.ac; \ + excluded_re=`echo $(FETCHFILES) \ | sed -e 's|^|lib/|' -e 's| | lib/|g' -e 's, ,|,g'`; \ $(GIT) ls-files \ - | grep -Ev '/(COPYING|INSTALL)' \ + | grep -Ev '^(lib/)?(COPYING|INSTALL)$$' \ | grep -Ev "^($$excluded_re)$$" \ | $(update_copyright_env) xargs $(srcdir)/lib/$@