X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=maint.mk;h=929d8c3bcd2456742b69666c105f3acaf39219a4;hp=ef828d1cb80a7ca5f22f6b38e374b399e16ab8fe;hb=cb555a94fa5188122569ed3803c463f27ccd0261;hpb=3419874b2109f62cf21d63c87e45ae6d819fc243 diff --git a/maint.mk b/maint.mk index ef828d1c..929d8c3b 100644 --- a/maint.mk +++ b/maint.mk @@ -38,13 +38,14 @@ VC-tag = git tag -s -m '$(VERSION)' -u '$(gpg_key_ID)' VC_LIST = $(build_aux)/vc-list-files -C $(srcdir) VC_LIST_EXCEPT = \ - $(VC_LIST) | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; else grep -v ChangeLog; fi + $(VC_LIST) | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ + else grep -Ev "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif -PREV_VERSION := $(shell cat $(prev_version_file)) +PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) @@ -70,9 +71,11 @@ export LC_ALL = C ## Sanity checks. ## ## --------------- ## +_cfg_mk := $(shell test -f $(srcdir)/cfg.mk && echo '$(srcdir)/cfg.mk') + # Collect the names of rules starting with `sc_'. -syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \ - $(srcdir)/$(ME) $(srcdir)/cfg.mk) +syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \ + $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) local-checks-available = \ @@ -232,7 +235,8 @@ sc_prohibit_HAVE_MBRTOWC: # h: the header, enclosed in <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _header_without_use - h_esc=`echo "$$h"|sed 's/\./\\./g'`; \ + dummy=; : so we do not need a semicolon before each use; \ + h_esc=`echo "$$h"|sed 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ files=$$(grep -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ @@ -490,7 +494,7 @@ sc_immutable_NEWS: # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS - perl -pi -e 's/^(old_NEWS_hash = ).*/$${1}'"$(NEWS_hash)/" \ + perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, @@ -540,6 +544,7 @@ sc_po_check: for file in $$($(VC_LIST_EXCEPT)) lib/*.[ch]; do \ test -r $$file || continue; \ case $$file in \ + *.m4|*.mk) continue ;; \ *.?|*.??) ;; \ *) continue;; \ esac; \ @@ -613,21 +618,6 @@ vc-diff-check: rm vc-diffs; \ fi -cvs-check: vc-diff-check - -ALL_RECURSIVE_TARGETS += maintainer-distcheck -maintainer-distcheck: - $(MAKE) distcheck - $(MAKE) taint-distcheck - $(MAKE) my-distcheck - - -# Don't make a distribution if checks fail. -# Also, make sure the NEWS file is up-to-date. -ALL_RECURSIVE_TARGETS += vc-dist -vc-dist: $(local-check) cvs-check maintainer-distcheck - XZ_OPT=-9ev $(MAKE) dist - # Use this to make sure we don't run these programs when building # from a virgin tgz file, below. null_AM_MAKEFLAGS = \ @@ -703,8 +693,10 @@ alpha beta major: $(local-check) writable-files no-submodule-changes && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : - $(MAKE) vc-dist + $(MAKE) vc-diff-check $(MAKE) news-date-check + $(MAKE) distcheck + $(MAKE) dist XZ_OPT=-9ev $(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir) if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ @@ -768,3 +760,20 @@ INDENT_SOURCES ?= $(C_SOURCES) .PHONY: indent indent: indent $(INDENT_SOURCES) + +# If you want to set UPDATE_COPYRIGHT_* environment variables, +# put the assignments in this variable. +update-copyright-env ?= + +# Run this rule once per year (usually early in January) +# to update all FSF copyright year lists in your project. +# If you have an additional project-specific rule, +# add it in cfg.mk along with a line 'update-copyright: prereq'. +# By default, exclude all variants of COPYING; you can also +# add exemptions (such as ChangeLog..* for rotated change logs) +# in the file .x-update-copyright. +.PHONY: update-copyright +update-copyright: + grep -l -w Copyright \ + $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ + | $(update-copyright-env) xargs $(build_aux)/$@