Mercurial > gnulib
annotate top/maint.mk @ 40059:990e00720616
maint.mk: Split long argument lists
$(VC_LIST_EXCEPT) is usually expanded into arguments for a command.
When a project contains too many, some operating systems can't pass all
the arguments because they hit the limit of arguments. FreeBSD and macOS
are known to have the exec limit of 256k memory used by arguments.
More on the issue:
http://lists.gnu.org/archive/html/bug-gnulib/2015-08/msg00019.html
https://www.redhat.com/archives/libvir-list/2015-August/msg00758.html
xargs without flags can be used to limit number of arguments, coupled
with use of the shell's built-in echo which is not subject to the exec
limits.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20181213153453.38123-2-r.bolshakov@yadro.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Roman Bolshakov <r.bolshakov@yadro.com> |
---|---|
date | Thu, 13 Dec 2018 18:34:52 +0300 |
parents | b06060465f09 |
children | b5beaade237e |
rev | line source |
---|---|
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1 # -*-Makefile-*- |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
2 # This Makefile fragment tries to be general-purpose enough to be |
11501
5223ecd9ec17
maint.mk: import improvements from m4
Eric Blake <ebb9@byu.net>
parents:
11500
diff
changeset
|
3 # used by many projects via the gnulib maintainer-makefile module. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
4 |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
39959
diff
changeset
|
5 ## Copyright (C) 2001-2019 Free Software Foundation, Inc. |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
6 ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
7 ## This program is free software: you can redistribute it and/or modify |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
8 ## it under the terms of the GNU General Public License as published by |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
9 ## the Free Software Foundation, either version 3 of the License, or |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
10 ## (at your option) any later version. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
11 ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
12 ## This program is distributed in the hope that it will be useful, |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
13 ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
14 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
15 ## GNU General Public License for more details. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
16 ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
17 ## You should have received a copy of the GNU General Public License |
19190 | 18 ## along with this program. If not, see <https://www.gnu.org/licenses/>. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
19 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
20 # This is reported not to work with make-3.79.1 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
21 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
22 ME := maint.mk |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
23 |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
24 # Helper variables. |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
25 _empty = |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
26 _sp = $(_empty) $(_empty) |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
27 |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
28 # _equal,S1,S2 |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
29 # ------------ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
30 # If S1 == S2, return S1, otherwise the empty string. |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
31 _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
32 |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
33 # member-check,VARIABLE,VALID-VALUES |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
34 # ---------------------------------- |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
35 # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
36 # return it. Die otherwise. |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
37 member-check = \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
38 $(strip \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
39 $(if $($(1)), \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
40 $(if $(findstring $(_sp),$($(1))), \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
41 $(error invalid $(1): '$($(1))', expected $(2)), \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
42 $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
43 $(error invalid $(1): '$($(1))', expected $(2)))), \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
44 $(error $(1) undefined))) |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
45 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
46 # Do not save the original name or timestamp in the .tar.gz file. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
47 # Use --rsyncable if available. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
48 gzip_rsyncable := \ |
13376 | 49 $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ |
50 && printf %s --rsyncable) | |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
51 GZIP_ENV = '--no-name --best $(gzip_rsyncable)' |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
52 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
53 GIT = git |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
54 VC = $(GIT) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
55 |
16000
79bbea2afc18
maint.mk: don't maintain a second build-aux variable.
Gary V. Vaughan <gary@gnu.org>
parents:
15990
diff
changeset
|
56 VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
57 |
18624
789224cb7717
maint.mk: hoist gnulib_dir definition earlier
Eric Blake <eblake@redhat.com>
parents:
18623
diff
changeset
|
58 # You can override this variable in cfg.mk if your gnulib submodule lives |
789224cb7717
maint.mk: hoist gnulib_dir definition earlier
Eric Blake <eblake@redhat.com>
parents:
18623
diff
changeset
|
59 # in a different location. |
789224cb7717
maint.mk: hoist gnulib_dir definition earlier
Eric Blake <eblake@redhat.com>
parents:
18623
diff
changeset
|
60 gnulib_dir ?= $(srcdir)/gnulib |
789224cb7717
maint.mk: hoist gnulib_dir definition earlier
Eric Blake <eblake@redhat.com>
parents:
18623
diff
changeset
|
61 |
12736
123f8b43a3aa
top/maint.mk (VC_LIST_EXCEPT): Filter list through VC_LIST_ALWAYS_EXCLUDE_REGEX.
Simon Josefsson <simon@josefsson.org>
parents:
12608
diff
changeset
|
62 # You can override this variable in cfg.mk to set your own regexp |
123f8b43a3aa
top/maint.mk (VC_LIST_EXCEPT): Filter list through VC_LIST_ALWAYS_EXCLUDE_REGEX.
Simon Josefsson <simon@josefsson.org>
parents:
12608
diff
changeset
|
63 # matching files to ignore. |
123f8b43a3aa
top/maint.mk (VC_LIST_EXCEPT): Filter list through VC_LIST_ALWAYS_EXCLUDE_REGEX.
Simon Josefsson <simon@josefsson.org>
parents:
12608
diff
changeset
|
64 VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ |
123f8b43a3aa
top/maint.mk (VC_LIST_EXCEPT): Filter list through VC_LIST_ALWAYS_EXCLUDE_REGEX.
Simon Josefsson <simon@josefsson.org>
parents:
12608
diff
changeset
|
65 |
12768
f12919d53a60
maint.mk: make VC_LIST_EXCEPT robustly handle a srcdir containing "."
Jim Meyering <meyering@redhat.com>
parents:
12767
diff
changeset
|
66 # This is to preprocess robustly the output of $(VC_LIST), so that even |
f12919d53a60
maint.mk: make VC_LIST_EXCEPT robustly handle a srcdir containing "."
Jim Meyering <meyering@redhat.com>
parents:
12767
diff
changeset
|
67 # when $(srcdir) is a pathological name like "....", the leading sed command |
f12919d53a60
maint.mk: make VC_LIST_EXCEPT robustly handle a srcdir containing "."
Jim Meyering <meyering@redhat.com>
parents:
12767
diff
changeset
|
68 # removes only the intended prefix. |
12771
a11a67aec9bf
maint.mk: fix syntax-check in a non-srcdir build directory
Jim Meyering <meyering@redhat.com>
parents:
12768
diff
changeset
|
69 _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) |
12768
f12919d53a60
maint.mk: make VC_LIST_EXCEPT robustly handle a srcdir containing "."
Jim Meyering <meyering@redhat.com>
parents:
12767
diff
changeset
|
70 |
12773
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
71 # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
72 # when $(srcdir) is not ".". |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
73 ifeq ($(srcdir),.) |
17107
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
74 _prepend_srcdir_prefix = |
12773
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
75 else |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
76 _prepend_srcdir_prefix = | $(SED) 's|^|$(srcdir)/|' |
12773
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
77 endif |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
78 |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
79 # In order to be able to consistently filter "."-relative names, |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
80 # (i.e., with no $(srcdir) prefix), this definition is careful to |
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
81 # remove any $(srcdir) prefix, and to restore what it removes. |
14432
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
82 _sc_excl = \ |
16997
efd55e9041c8
maint.mk: minor simplification.
Akim Demaille <akim@lrde.epita.fr>
parents:
16990
diff
changeset
|
83 $(or $(exclude_file_name_regexp--$@),^$$) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
84 VC_LIST_EXCEPT = \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
85 $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ |
12767
941bc7981053
maint.mk: fix VC_LIST_EXCEPT for srcdir != builddir
Jiri Denemark <jdenemar@redhat.com>
parents:
12736
diff
changeset
|
86 | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ |
941bc7981053
maint.mk: fix VC_LIST_EXCEPT for srcdir != builddir
Jiri Denemark <jdenemar@redhat.com>
parents:
12736
diff
changeset
|
87 else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ |
14432
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
88 | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ |
12773
1fedbaac4fa9
maint.mk: do not prepend "./" after filtering
Jim Meyering <meyering@redhat.com>
parents:
12771
diff
changeset
|
89 $(_prepend_srcdir_prefix) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
90 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
91 ifeq ($(origin prev_version_file), undefined) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
92 prev_version_file = $(srcdir)/.prev-version |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
93 endif |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
94 |
11736
9f4d092a26a4
maint.mk: avoid warnings about missing files
Jim Meyering <meyering@redhat.com>
parents:
11733
diff
changeset
|
95 PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
96 VERSION_REGEXP = $(subst .,\.,$(VERSION)) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
97 PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
98 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
99 ifeq ($(VC),$(GIT)) |
17107
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
100 this-vc-tag = v$(VERSION) |
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
101 this-vc-tag-regexp = v$(VERSION_REGEXP) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
102 else |
17107
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
103 tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') |
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
104 tag-this-version = $(subst .,_,$(VERSION)) |
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
105 this-vc-tag = $(tag-package)-$(tag-this-version) |
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
106 this-vc-tag-regexp = $(this-vc-tag) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
107 endif |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
108 my_distdir = $(PACKAGE)-$(VERSION) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
109 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
110 # Old releases are stored here. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
111 release_archive_dir ?= ../release |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
112 |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
113 # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
114 # But overwrite VERSION. |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
115 ifdef RELEASE |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
116 VERSION := $(word 1, $(RELEASE)) |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
117 RELEASE_TYPE ?= $(word 2, $(RELEASE)) |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
118 endif |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
119 |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
120 # Validate and return $(RELEASE_TYPE), or die. |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
121 RELEASE_TYPES = alpha beta stable |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
122 release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) |
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
123 |
12329
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
124 # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. |
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
125 # Use alpha.gnu.org for alpha and beta releases. |
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
126 # Use ftp.gnu.org for stable releases. |
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
127 gnu_ftp_host-alpha = alpha.gnu.org |
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
128 gnu_ftp_host-beta = alpha.gnu.org |
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
129 gnu_ftp_host-stable = ftp.gnu.org |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
130 gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) |
12329
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
131 |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
132 url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ |
19190 | 133 https://ftpmirror.gnu.org/$(PACKAGE), \ |
19188
402398d798a1
maintainer-makefile: FTP -> HTTPS
Paul Eggert <eggert@cs.ucla.edu>
parents:
18904
diff
changeset
|
134 https://$(gnu_rel_host)/gnu/$(PACKAGE)) |
12329
1d8d8b72ddd8
build: mention ftp redirector in release announcements
Eric Blake <ebb9@byu.net>
parents:
12325
diff
changeset
|
135 |
12383
a22f69c2029c
maintainer-makefile: allow customization of NEWS entry format
Alfred M. Szmidt <ams@gnu.org>
parents:
12329
diff
changeset
|
136 # Override this in cfg.mk if you are using a different format in your |
a22f69c2029c
maintainer-makefile: allow customization of NEWS entry format
Alfred M. Szmidt <ams@gnu.org>
parents:
12329
diff
changeset
|
137 # NEWS file. |
12384
8620ff59758a
maint.mk: news-check: use grep -E
Jim Meyering <meyering@redhat.com>
parents:
12383
diff
changeset
|
138 today = $(shell date +%Y-%m-%d) |
13393
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
139 |
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
140 # Select which lines of NEWS are searched for $(news-check-regexp). |
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
141 # This is a sed line number spec. The default says that we search |
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
142 # lines 1..10 of NEWS for $(news-check-regexp). |
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
143 # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". |
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
144 news-check-lines-spec ?= 1,10 |
12385
ad3ca6ce84b0
maint.mk: backslash-escape parens in default regexp
Jim Meyering <meyering@redhat.com>
parents:
12384
diff
changeset
|
145 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' |
12383
a22f69c2029c
maintainer-makefile: allow customization of NEWS entry format
Alfred M. Szmidt <ams@gnu.org>
parents:
12329
diff
changeset
|
146 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
147 # Prevent programs like 'sort' from considering distinct strings to be equal. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
148 # Doing it here saves us from having to set LC_ALL elsewhere in this file. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
149 export LC_ALL = C |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
150 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
151 ## --------------- ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
152 ## Sanity checks. ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
153 ## --------------- ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
154 |
17695
cb3ab1f4efea
maintainer-makefile: avoid spurious error messages
Eric Blake <eblake@redhat.com>
parents:
17649
diff
changeset
|
155 ifneq ($(_gl-Makefile),) |
17201
34b7c5b6a266
maint.mk: avoid extra forks
Stefano Lattarini <stefano.lattarini@gmail.com>
parents:
17162
diff
changeset
|
156 _cfg_mk := $(wildcard $(srcdir)/cfg.mk) |
11736
9f4d092a26a4
maint.mk: avoid warnings about missing files
Jim Meyering <meyering@redhat.com>
parents:
11733
diff
changeset
|
157 |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
158 # Collect the names of rules starting with 'sc_'. |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
159 syntax-check-rules := $(sort $(shell $(SED) -n \ |
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
160 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(srcdir)/$(ME) $(_cfg_mk))) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
161 .PHONY: $(syntax-check-rules) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
162 |
14357
e52d28567d4e
maintainer-makefile: make syntax-check a no-op from tarballs
Eric Blake <eblake@redhat.com>
parents:
14216
diff
changeset
|
163 ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) |
17107
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
164 local-checks-available += $(syntax-check-rules) |
14357
e52d28567d4e
maintainer-makefile: make syntax-check a no-op from tarballs
Eric Blake <eblake@redhat.com>
parents:
14216
diff
changeset
|
165 else |
17107
b80255c1ec9d
maint.mk: formatting changes
Akim Demaille <akim@lrde.epita.fr>
parents:
17106
diff
changeset
|
166 local-checks-available += no-vc-detected |
14357
e52d28567d4e
maintainer-makefile: make syntax-check a no-op from tarballs
Eric Blake <eblake@redhat.com>
parents:
14216
diff
changeset
|
167 no-vc-detected: |
e52d28567d4e
maintainer-makefile: make syntax-check a no-op from tarballs
Eric Blake <eblake@redhat.com>
parents:
14216
diff
changeset
|
168 @echo "No version control files detected; skipping syntax check" |
e52d28567d4e
maintainer-makefile: make syntax-check a no-op from tarballs
Eric Blake <eblake@redhat.com>
parents:
14216
diff
changeset
|
169 endif |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
170 .PHONY: $(local-checks-available) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
171 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
172 # Arrange to print the name of each syntax-checking rule just before running it. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
173 $(syntax-check-rules): %: %.m |
12866
bedb32c7fa1b
maint.mk: mark syntax-check sc_*.m rules as .PHONY
Jim Meyering <meyering@redhat.com>
parents:
12865
diff
changeset
|
174 sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) |
bedb32c7fa1b
maint.mk: mark syntax-check sc_*.m rules as .PHONY
Jim Meyering <meyering@redhat.com>
parents:
12865
diff
changeset
|
175 .PHONY: $(sc_m_rules_) |
bedb32c7fa1b
maint.mk: mark syntax-check sc_*.m rules as .PHONY
Jim Meyering <meyering@redhat.com>
parents:
12865
diff
changeset
|
176 $(sc_m_rules_): |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
177 @echo $(patsubst sc_%.m, %, $@) |
13208
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
178 @date +%s.%N > .sc-start-$(basename $@) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
179 |
13208
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
180 # Compute and print the elapsed time for each syntax-check rule. |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
181 sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
182 .PHONY: $(sc_z_rules_) |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
183 $(sc_z_rules_): %.z: % |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
184 @end=$$(date +%s.%N); \ |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
185 start=$$(cat .sc-start-$*); \ |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
186 rm -f .sc-start-$*; \ |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
187 awk -v s=$$start -v e=$$end \ |
13221
6b5e6ecef4f5
maint.mk: generate more concise timing data for syntax-check rules
Jim Meyering <meyering@redhat.com>
parents:
13210
diff
changeset
|
188 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null |
13208
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
189 |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
190 # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
191 # that computes and prints elapsed time. |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
192 local-check := \ |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
193 $(patsubst sc_%, sc_%.z, \ |
85be704c72eb
maint.mk: print the elapsed time for each syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13207
diff
changeset
|
194 $(filter-out $(local-checks-to-skip), $(local-checks-available))) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
195 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
196 syntax-check: $(local-check) |
17695
cb3ab1f4efea
maintainer-makefile: avoid spurious error messages
Eric Blake <eblake@redhat.com>
parents:
17649
diff
changeset
|
197 endif |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
198 |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
199 # _sc_search_regexp |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
200 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
201 # This macro searches for a given construct in the selected files and |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
202 # then takes some action. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
203 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
204 # Parameters (shell variables): |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
205 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
206 # prohibit | require |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
207 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
208 # Regular expression (ERE) denoting either a forbidden construct |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
209 # or a required construct. Those arguments are exclusive. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
210 # |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
211 # exclude |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
212 # |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
213 # Regular expression (ERE) denoting lines to ignore that matched |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
214 # a prohibit construct. For example, this can be used to exclude |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
215 # comments that mention why the nearby code uses an alternative |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
216 # construct instead of the simpler prohibited construct. |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
217 # |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
218 # in_vc_files | in_files |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
219 # |
16978
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
220 # grep-E-style regexp selecting the files to check. For in_vc_files, |
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
221 # the regexp is used to select matching files from the list of all |
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
222 # version-controlled files; for in_files, it's from the names printed |
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
223 # by "find $(srcdir)". When neither is specified, use all files that |
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
224 # are under version control. |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
225 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
226 # containing | non_containing |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
227 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
228 # Select the files (non) containing strings matching this regexp. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
229 # If both arguments are specified then CONTAINING takes |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
230 # precedence. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
231 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
232 # with_grep_options |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
233 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
234 # Extra options for grep. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
235 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
236 # ignore_case |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
237 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
238 # Ignore case. |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
239 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
240 # halt |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
241 # |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
242 # Message to display before to halting execution. |
14432
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
243 # |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
244 # Finally, you may exempt files based on an ERE matching file names. |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
245 # For example, to exempt from the sc_space_tab check all files with the |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
246 # .diff suffix, set this Make variable: |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
247 # |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
248 # exclude_file_name_regexp--sc_space_tab = \.diff$ |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
249 # |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
250 # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
251 # when filtering by name via in_files, we explicitly filter out matching |
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
252 # names here as well. |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
253 |
16553
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
254 # Initialize each, so that envvar settings cannot interfere. |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
255 export require = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
256 export prohibit = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
257 export exclude = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
258 export in_vc_files = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
259 export in_files = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
260 export containing = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
261 export non_containing = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
262 export halt = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
263 export with_grep_options = |
3542db992ebe
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
Jim Meyering <jim@meyering.net>
parents:
16552
diff
changeset
|
264 |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
265 # By default, _sc_search_regexp does not ignore case. |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
266 export ignore_case = |
13376 | 267 _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
268 |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
269 define _sc_say_and_exit |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
270 dummy=; : so we do not need a semicolon before each use; \ |
13376 | 271 { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
272 endef |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
273 |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
274 define _sc_search_regexp |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
275 dummy=; : so we do not need a semicolon before each use; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
276 \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
277 : Check arguments; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
278 test -n "$$prohibit" && test -n "$$require" \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
279 && { msg='Cannot specify both prohibit and require' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
280 $(_sc_say_and_exit) } || :; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
281 test -z "$$prohibit" && test -z "$$require" \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
282 && { msg='Should specify either prohibit or require' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
283 $(_sc_say_and_exit) } || :; \ |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
284 test -z "$$prohibit" && test -n "$$exclude" \ |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
285 && { msg='Use of exclude requires a prohibit pattern' \ |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
286 $(_sc_say_and_exit) } || :; \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
287 test -n "$$in_vc_files" && test -n "$$in_files" \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
288 && { msg='Cannot specify both in_vc_files and in_files' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
289 $(_sc_say_and_exit) } || :; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
290 test "x$$halt" != x \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
291 || { msg='halt not defined' $(_sc_say_and_exit) }; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
292 \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
293 : Filter by file name; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
294 if test -n "$$in_files"; then \ |
14432
dcc1567d7f4e
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Jim Meyering <meyering@redhat.com>
parents:
14415
diff
changeset
|
295 files=$$(find $(srcdir) | grep -E "$$in_files" \ |
16978
8d1ddfdb8668
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Jim Meyering <meyering@redhat.com>
parents:
16913
diff
changeset
|
296 | grep -Ev '$(_sc_excl)'); \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
297 else \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
298 files=$$($(VC_LIST_EXCEPT)); \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
299 if test -n "$$in_vc_files"; then \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
300 files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
301 fi; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
302 fi; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
303 \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
304 : Filter by content; \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
305 test -n "$$files" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
306 && test -n "$$containing" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
307 && { files=$$(echo "$$files" | xargs grep -l "$$containing"); } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
308 || :; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
309 test -n "$$files" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
310 && test -n "$$non_containing" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
311 && { files=$$(echo "$$files" | xargs grep -vl "$$non_containing"); } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
312 || :; \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
313 \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
314 : Check for the construct; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
315 if test -n "$$files"; then \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
316 if test -n "$$prohibit"; then \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
317 echo "$$files" |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
318 | xargs grep $$with_grep_options $(_ignore_case) -nE \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
319 "$$prohibit" /dev/null \ |
16726
518ff78686bb
maint.mk: fix syntax checks without exclusions
Eric Blake <eblake@redhat.com>
parents:
16691
diff
changeset
|
320 | grep -vE "$${exclude:-^$$}" \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
321 && { msg="$$halt" $(_sc_say_and_exit) } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
322 || :; \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
323 else \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
324 echo "$$files" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
325 | xargs \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
326 grep $$with_grep_options $(_ignore_case) -LE "$$require" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
327 | grep . \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
328 && { msg="$$halt" $(_sc_say_and_exit) } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
329 || :; \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
330 fi \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
331 else :; \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
332 fi || :; |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
333 endef |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
334 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
335 sc_avoid_if_before_free: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
336 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
337 | grep -v useless-if-before-free \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
338 | xargs \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
339 $(srcdir)/$(_build-aux)/useless-if-before-free \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
340 $(useless_free_options) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
341 && { printf '$(ME): found useless "if"' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
342 ' before "free" above\n' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
343 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
344 || : |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
345 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
346 sc_cast_of_argument_to_free: |
16322
7256be967b3a
maint.mk: use more readable (yet functionally equivalent) quoting
Jim Meyering <meyering@redhat.com>
parents:
16299
diff
changeset
|
347 @prohibit='\<free *\( *\(' halt="don't cast free argument" \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
348 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
349 |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
350 sc_cast_of_x_alloc_return_value: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
351 @prohibit='\*\) *x(m|c|re)alloc\>' \ |
16322
7256be967b3a
maint.mk: use more readable (yet functionally equivalent) quoting
Jim Meyering <meyering@redhat.com>
parents:
16299
diff
changeset
|
352 halt="don't cast x*alloc return value" \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
353 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
354 |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
355 sc_cast_of_alloca_return_value: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
356 @prohibit='\*\) *alloca\>' \ |
16322
7256be967b3a
maint.mk: use more readable (yet functionally equivalent) quoting
Jim Meyering <meyering@redhat.com>
parents:
16299
diff
changeset
|
357 halt="don't cast alloca return value" \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
358 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
359 |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
360 sc_space_tab: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
361 @prohibit='[ ] ' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
362 halt='found SPACE-TAB sequence; remove the SPACE' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
363 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
364 |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
365 # Don't use *scanf or the old ato* functions in "real" code. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
366 # They provide no error checking mechanism. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
367 # Instead, use strto* functions. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
368 sc_prohibit_atoi_atof: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
369 @prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
370 halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
371 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
372 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
373 # Use STREQ rather than comparing strcmp == 0, or != 0. |
16386
bb8c8cc1050d
maint.mk: tell sc_prohibit_strcmp to ding "0 == strcmp (...)", too
Jim Meyering <meyering@redhat.com>
parents:
16360
diff
changeset
|
374 sp_ = strcmp *\(.+\) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
375 sc_prohibit_strcmp: |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
376 @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)' \ |
17087
ba92000376ad
maint.mk: relax sc_prohibit_strcmp, to avoid a false positive
Jim Meyering <meyering@redhat.com>
parents:
17055
diff
changeset
|
377 exclude='# *define STRN?EQ\(' \ |
17055
672cf835d212
maint.mk: avoid redundant file name in message
Eric Blake <eblake@redhat.com>
parents:
17036
diff
changeset
|
378 halt='replace strcmp calls above with STREQ/STRNEQ' \ |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
379 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
380 |
16880
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
381 # Really. You don't want to use this function. |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
382 # It may fail to NUL-terminate the destination, |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
383 # and always NUL-pads out to the specified length. |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
384 sc_prohibit_strncpy: |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
385 @prohibit='\<strncpy *\(' \ |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
386 halt='do not use strncpy, period' \ |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
387 $(_sc_search_regexp) |
cb54ca844f1c
maint.mk: add strncpy-prohibiting syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
16878
diff
changeset
|
388 |
12208
a377ab624fcc
maint: detect usage(1) and other suspicious exits
Eric Blake <ebb9@byu.net>
parents:
12083
diff
changeset
|
389 # Pass EXIT_*, not number, to usage, exit, and error (when exiting) |
12325
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
390 # Convert all uses automatically, via these two commands: |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
391 # git grep -l '\<exit *(1)' \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
392 # | grep -vEf .x-sc_prohibit_magic_number_exit \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
393 # | xargs --no-run-if-empty \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
394 # perl -pi -e 's/(^|[^.])\b(exit ?)\(1\)/$1$2(EXIT_FAILURE)/' |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
395 # git grep -l '\<exit *(0)' \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
396 # | grep -vEf .x-sc_prohibit_magic_number_exit \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
397 # | xargs --no-run-if-empty \ |
444e305ec8cc
maint.mk: improve sc_prohibit_magic_number_exit
Jim Meyering <meyering@redhat.com>
parents:
12287
diff
changeset
|
398 # perl -pi -e 's/(^|[^.])\b(exit ?)\(0\)/$1$2(EXIT_SUCCESS)/' |
12208
a377ab624fcc
maint: detect usage(1) and other suspicious exits
Eric Blake <ebb9@byu.net>
parents:
12083
diff
changeset
|
399 sc_prohibit_magic_number_exit: |
17001 | 400 @prohibit='(^|[^.])\<(usage|exit|error) ?\(-?[0-9]+[,)]' \ |
17088
1ad5cd44b28f
maint.mk: teach sc_prohibit_magic_number_exit to accept 77
Jim Meyering <meyering@redhat.com>
parents:
17087
diff
changeset
|
401 exclude='exit \(77\)|error ?\(((0|77),|[^,]*)' \ |
17001 | 402 halt='use EXIT_* values rather than magic number' \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
403 $(_sc_search_regexp) |
12208
a377ab624fcc
maint: detect usage(1) and other suspicious exits
Eric Blake <ebb9@byu.net>
parents:
12083
diff
changeset
|
404 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
405 # Using EXIT_SUCCESS as the first argument to error is misleading, |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
406 # since when that parameter is 0, error does not exit. Use '0' instead. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
407 sc_error_exit_success: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
408 @prohibit='error *\(EXIT_SUCCESS,' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
409 in_vc_files='\.[chly]$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
410 halt='found error (EXIT_SUCCESS' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
411 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
412 |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
413 # "FATAL:" should be fully upper-cased in error messages |
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
414 # "WARNING:" should be fully upper-cased, or fully lower-cased |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
415 sc_error_message_warn_fatal: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
416 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
417 | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
418 | grep -E '"Warning|"Fatal|"fatal' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
419 && { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
420 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
421 || : |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
422 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
423 # Error messages should not start with a capital letter |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
424 sc_error_message_uppercase: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
425 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
426 | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
427 | grep -E '"[A-Z]' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
428 | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
429 && { echo '$(ME): found capitalized error message' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
430 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
431 || : |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
432 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
433 # Error messages should not end with a period |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
434 sc_error_message_period: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
435 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
436 | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
437 | grep -E '[^."]\."' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
438 && { echo '$(ME): found error message ending in period' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
439 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
440 || : |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
441 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
442 sc_file_system: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
443 @prohibit=file''system \ |
19526
746a94b46791
maint.mk: exempt "/proc/filesystems" from "file system" syntax check
Jim Meyering <meyering@fb.com>
parents:
19484
diff
changeset
|
444 exclude='/proc/filesystems' \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
445 ignore_case=1 \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
446 halt='found use of "file''system"; spell it "file system"' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
447 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
448 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
449 # Don't use cpp tests of this symbol. All code assumes config.h is included. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
450 sc_prohibit_have_config_h: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
451 @prohibit='^# *if.*HAVE''_CONFIG_H' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
452 halt='found use of HAVE''_CONFIG_H; remove' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
453 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
454 |
11519
49521800ab0c
maint.mk: allow package-specific header to provide <config.h>
Eric Blake <ebb9@byu.net>
parents:
11518
diff
changeset
|
455 # Nearly all .c files must include <config.h>. However, we also permit this |
49521800ab0c
maint.mk: allow package-specific header to provide <config.h>
Eric Blake <ebb9@byu.net>
parents:
11518
diff
changeset
|
456 # via inclusion of a package-specific header, if cfg.mk specified one. |
49521800ab0c
maint.mk: allow package-specific header to provide <config.h>
Eric Blake <ebb9@byu.net>
parents:
11518
diff
changeset
|
457 # config_h_header must be suitable for grep -E. |
49521800ab0c
maint.mk: allow package-specific header to provide <config.h>
Eric Blake <ebb9@byu.net>
parents:
11518
diff
changeset
|
458 config_h_header ?= <config\.h> |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
459 sc_require_config_h: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
460 @require='^# *include $(config_h_header)' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
461 in_vc_files='\.c$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
462 halt='the above files do not include <config.h>' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
463 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
464 |
18353
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
465 # Print each file name for which the first #include does not match |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
466 # $(config_h_header). Like grep -m 1, this only looks at the first match. |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
467 perl_config_h_first_ = \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
468 -e 'BEGIN {$$ret = 0}' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
469 -e 'if (/^\# *include\b/) {' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
470 -e ' if (not m{^\# *include $(config_h_header)}) {' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
471 -e ' print "$$ARGV\n";' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
472 -e ' $$ret = 1;' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
473 -e ' }' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
474 -e ' \# Move on to next file after first include' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
475 -e ' close ARGV;' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
476 -e '}' \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
477 -e 'END {exit $$ret}' |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
478 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
479 # You must include <config.h> before including any other header file. |
11519
49521800ab0c
maint.mk: allow package-specific header to provide <config.h>
Eric Blake <ebb9@byu.net>
parents:
11518
diff
changeset
|
480 # This can possibly be via a package-specific header, if given by cfg.mk. |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
481 sc_require_config_h_first: |
17715
24551c8f1ea2
maint.mk: less syntax-check noise when SIGPIPE is ignored
Eric Blake <eblake@redhat.com>
parents:
17696
diff
changeset
|
482 @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ |
18353
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
483 files=$$($(VC_LIST_EXCEPT) | grep '\.c$$') && \ |
f5ee80c41809
maint.mk: speed up require_config_h_first
Ján Tomko <jtomko@redhat.com>
parents:
18352
diff
changeset
|
484 perl -n $(perl_config_h_first_) $$files || \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
485 { echo '$(ME): the above files include some other header' \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
486 'before <config.h>' 1>&2; exit 1; } || :; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
487 else :; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
488 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
489 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
490 sc_prohibit_HAVE_MBRTOWC: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
491 @prohibit='\bHAVE_MBRTOWC\b' \ |
13202
69a6d1611d1b
maint.mk: correct a diagnostic
Jim Meyering <meyering@redhat.com>
parents:
13192
diff
changeset
|
492 halt="do not use $$prohibit; it is always defined" \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
493 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
494 |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
495 # To use this "command" macro, you must first define two shell variables: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
496 # h: the header name, with no enclosing <> or "" |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
497 # re: a regular expression that matches IFF something provided by $h is used. |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
498 define _sc_header_without_use |
11853
97a383c7cec4
maint.mk: _header_without_use: fix a quoting bug and remove a bash'ism
Jim Meyering <meyering@redhat.com>
parents:
11847
diff
changeset
|
499 dummy=; : so we do not need a semicolon before each use; \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
500 h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`; \ |
17715
24551c8f1ea2
maint.mk: less syntax-check noise when SIGPIPE is ignored
Eric Blake <eblake@redhat.com>
parents:
17696
diff
changeset
|
501 if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
502 files=$$(grep -l '^# *include '"$$h_esc" \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
503 $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
504 grep -LE "$$re" $$files | grep . && \ |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
505 { echo "$(ME): the above files include $$h but don't use it" \ |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
506 1>&2; exit 1; } || :; \ |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
507 else :; \ |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
508 fi |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
509 endef |
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
510 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
511 # Prohibit the inclusion of assert.h without an actual use of assert. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
512 sc_prohibit_assert_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
513 @h='assert.h' re='\<assert *\(' $(_sc_header_without_use) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
514 |
12245
86929e33bdad
maint.mk: Prohibit inclusion of "close-stream.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12208
diff
changeset
|
515 # Prohibit the inclusion of close-stream.h without an actual use. |
86929e33bdad
maint.mk: Prohibit inclusion of "close-stream.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12208
diff
changeset
|
516 sc_prohibit_close_stream_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
517 @h='close-stream.h' re='\<close_stream *\(' $(_sc_header_without_use) |
12245
86929e33bdad
maint.mk: Prohibit inclusion of "close-stream.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12208
diff
changeset
|
518 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
519 # Prohibit the inclusion of getopt.h without an actual use. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
520 sc_prohibit_getopt_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
521 @h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
522 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
523 # Don't include quotearg.h unless you use one of its functions. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
524 sc_prohibit_quotearg_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
525 @h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
526 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
527 # Don't include quote.h unless you use one of its functions. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
528 sc_prohibit_quote_without_use: |
16691
fcfa472825d5
quote: fix syntax-check
Akim Demaille <akim@lrde.epita.fr>
parents:
16556
diff
changeset
|
529 @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \ |
fcfa472825d5
quote: fix syntax-check
Akim Demaille <akim@lrde.epita.fr>
parents:
16556
diff
changeset
|
530 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
531 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
532 # Don't include this header unless you use one of its functions. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
533 sc_prohibit_long_options_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
534 @h='long-options.h' re='\<parse_long_options *\(' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
535 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
536 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
537 # Don't include this header unless you use one of its functions. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
538 sc_prohibit_inttostr_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
539 @h='inttostr.h' re='\<(off|[iu]max|uint)tostr *\(' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
540 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
541 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
542 # Don't include this header unless you use one of its functions. |
12861
2afdfba76c99
maint.mk: prohibit inclusion of "ignore-value.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12827
diff
changeset
|
543 sc_prohibit_ignore_value_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
544 @h='ignore-value.h' re='\<ignore_(value|ptr) *\(' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
545 $(_sc_header_without_use) |
12861
2afdfba76c99
maint.mk: prohibit inclusion of "ignore-value.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12827
diff
changeset
|
546 |
2afdfba76c99
maint.mk: prohibit inclusion of "ignore-value.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12827
diff
changeset
|
547 # Don't include this header unless you use one of its functions. |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
548 sc_prohibit_error_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
549 @h='error.h' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
550 re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
551 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
552 |
12287
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
553 # Don't include xalloc.h unless you use one of its functions. |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
554 # Consider these symbols: |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
555 # perl -lne '/^# *define (\w+)\(/ and print $1' lib/xalloc.h|grep -v '^__'; |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
556 # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/xalloc.h |
12287
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
557 # Divide into two sets on case, and filter each through this: |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
558 # | sort | perl -MRegexp::Assemble -le \ |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
559 # 'print Regexp::Assemble->new(file => "/dev/stdin")->as_string'|sed 's/\?://g' |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
560 # Note this was produced by the above: |
12576
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
561 # _xa1 = \ |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
562 #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
563 # But we can do better, in at least two ways: |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
564 # 1) take advantage of two "dup"-suffixed strings: |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
565 # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
566 # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
567 # "char|[cmz]" |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
568 # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) |
51b39cac47f1
maint.mk: include 4 more function names in alloca.h-checking regexp
Jim Meyering <meyering@redhat.com>
parents:
12559
diff
changeset
|
569 _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) |
12287
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
570 _xa2 = X([CZ]|N?M)ALLOC |
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
571 sc_prohibit_xalloc_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
572 @h='xalloc.h' \ |
12287
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
573 re='\<($(_xa1)|$(_xa2)) *\('\ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
574 $(_sc_header_without_use) |
12287
0c467c7c0132
maint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering <meyering@redhat.com>
parents:
12245
diff
changeset
|
575 |
12863
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
576 # Extract function names: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
577 # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h |
12863
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
578 _hash_re = \ |
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
579 clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning |
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
580 _hash_fn = \<($(_hash_re)) *\( |
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
581 _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> |
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
582 sc_prohibit_hash_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
583 @h='hash.h' \ |
12863
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
584 re='$(_hash_fn)|$(_hash_struct)'\ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
585 $(_sc_header_without_use) |
12863
8fd1fe5e9683
maint.mk: prohibit inclusion of "hash.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12861
diff
changeset
|
586 |
14855
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
587 sc_prohibit_cloexec_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
588 @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ |
14855
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
589 $(_sc_header_without_use) |
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
590 |
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
591 sc_prohibit_posixver_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
592 @h='posixver.h' re='\<posix2_version *\(' $(_sc_header_without_use) |
14855
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
593 |
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
594 sc_prohibit_same_without_use: |
39959
2dc9b14f6416
maintainer-makefile: fix syntax-check rule for "same.h"
Bernhard Voelker <mail@bernhard-voelker.de>
parents:
19526
diff
changeset
|
595 @h='same.h' re='\<same_name(at)? *\(' $(_sc_header_without_use) |
14855
d08e35db9bba
maint.mk: add three prohibit-header-without-use rules
Jim Meyering <meyering@redhat.com>
parents:
14801
diff
changeset
|
596 |
12865
19a113553866
maint.mk: prohibit inclusion of "hash-pjw.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12864
diff
changeset
|
597 sc_prohibit_hash_pjw_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
598 @h='hash-pjw.h' \ |
16299
1e8c74a6b668
maint: enable sc_prohibit_hash_pjw_without_use
Jim Meyering <meyering@redhat.com>
parents:
16261
diff
changeset
|
599 re='\<hash_pjw\>' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
600 $(_sc_header_without_use) |
12865
19a113553866
maint.mk: prohibit inclusion of "hash-pjw.h" without_use
Jim Meyering <meyering@redhat.com>
parents:
12864
diff
changeset
|
601 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
602 sc_prohibit_safe_read_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
603 @h='safe-read.h' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
604 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
605 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
606 sc_prohibit_argmatch_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
607 @h='argmatch.h' \ |
15337
787a6021ecd5
maint.mk: correct omissions in prohibit_argmatch_without_use check
Jim Meyering <meyering@redhat.com>
parents:
15321
diff
changeset
|
608 re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<(invalid_arg|argmatch(_exit_fn|_(in)?valid)?) *\()' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
609 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
610 |
12035
2898ee238452
syntax-check: detect unnecessary inclusion of canonicalize.h
Jim Meyering <meyering@redhat.com>
parents:
11969
diff
changeset
|
611 sc_prohibit_canonicalize_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
612 @h='canonicalize.h' \ |
16331
2f966fea20dc
maint.mk: sc_prohibit_canonicalize_without_use: avoid false positive
Jim Meyering <meyering@redhat.com>
parents:
16322
diff
changeset
|
613 re='CAN_(EXISTING|ALL_BUT_LAST|MISSING)|canonicalize_(mode_t|filename_mode|file_name)' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
614 $(_sc_header_without_use) |
12035
2898ee238452
syntax-check: detect unnecessary inclusion of canonicalize.h
Jim Meyering <meyering@redhat.com>
parents:
11969
diff
changeset
|
615 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
616 sc_prohibit_root_dev_ino_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
617 @h='root-dev-ino.h' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
618 re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
619 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
620 |
11954
c2aabb82023d
syntax-check: detect unnecessary inclusion of openat.h
Jim Meyering <meyering@redhat.com>
parents:
11927
diff
changeset
|
621 sc_prohibit_openat_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
622 @h='openat.h' \ |
17585
31d5dfacc483
maint.mk: adapt openat.h-include-without-use test
Jim Meyering <meyering@fb.com>
parents:
17579
diff
changeset
|
623 re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat|(FCHMOD|FCHOWN|STAT)AT_INLINE)\>' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
624 $(_sc_header_without_use) |
11954
c2aabb82023d
syntax-check: detect unnecessary inclusion of openat.h
Jim Meyering <meyering@redhat.com>
parents:
11927
diff
changeset
|
625 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
626 # Prohibit the inclusion of c-ctype.h without an actual use. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
627 ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
628 |isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
629 sc_prohibit_c_ctype_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
630 @h='c-ctype.h' re='\<c_($(ctype_re)) *\(' \ |
13098
8d61d11c6cf0
maint.mk: split a long line
Jim Meyering <meyering@redhat.com>
parents:
13097
diff
changeset
|
631 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
632 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
633 # The following list was generated by running: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
634 # man signal.h|col -b|perl -ne '/bsd_signal.*;/.../sigwaitinfo.*;/ and print' \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
635 # | perl -lne '/^\s+(?:int|void).*?(\w+).*/ and print $1' | fmt |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
636 _sig_functions = \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
637 bsd_signal kill killpg pthread_kill pthread_sigmask raise sigaction \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
638 sigaddset sigaltstack sigdelset sigemptyset sigfillset sighold sigignore \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
639 siginterrupt sigismember signal sigpause sigpending sigprocmask sigqueue \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
640 sigrelse sigset sigsuspend sigtimedwait sigwait sigwaitinfo |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
641 _sig_function_re = $(subst $(_sp),|,$(strip $(_sig_functions))) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
642 # The following were extracted from "man signal.h" manually. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
643 _sig_types_and_consts = \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
644 MINSIGSTKSZ SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
645 SA_RESETHAND SA_RESTART SA_SIGINFO SIGEV_NONE SIGEV_SIGNAL \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
646 SIGEV_THREAD SIGSTKSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SS_DISABLE \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
647 SS_ONSTACK mcontext_t pid_t sig_atomic_t sigevent siginfo_t sigset_t \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
648 sigstack sigval stack_t ucontext_t |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
649 # generated via this: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
650 # perl -lne '/^#ifdef (SIG\w+)/ and print $1' lib/sig2str.c|sort -u|fmt -70 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
651 _sig_names = \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
652 SIGABRT SIGALRM SIGALRM1 SIGBUS SIGCANCEL SIGCHLD SIGCLD SIGCONT \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
653 SIGDANGER SIGDIL SIGEMT SIGFPE SIGFREEZE SIGGRANT SIGHUP SIGILL \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
654 SIGINFO SIGINT SIGIO SIGIOT SIGKAP SIGKILL SIGKILLTHR SIGLOST SIGLWP \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
655 SIGMIGRATE SIGMSG SIGPHONE SIGPIPE SIGPOLL SIGPRE SIGPROF SIGPWR \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
656 SIGQUIT SIGRETRACT SIGSAK SIGSEGV SIGSOUND SIGSTKFLT SIGSTOP SIGSYS \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
657 SIGTERM SIGTHAW SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGURG SIGUSR1 \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
658 SIGUSR2 SIGVIRT SIGVTALRM SIGWAITING SIGWINCH SIGWIND SIGWINDOW \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
659 SIGXCPU SIGXFSZ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
660 _sig_syms_re = $(subst $(_sp),|,$(strip $(_sig_names) $(_sig_types_and_consts))) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
661 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
662 # Prohibit the inclusion of signal.h without an actual use. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
663 sc_prohibit_signal_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
664 @h='signal.h' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
665 re='\<($(_sig_function_re)) *\(|\<($(_sig_syms_re))\>' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
666 $(_sc_header_without_use) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
667 |
14756
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
668 # Don't include stdio--.h unless you use one of its functions. |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
669 sc_prohibit_stdio--_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
670 @h='stdio--.h' re='\<((f(re)?|p)open|tmpfile) *\(' \ |
14756
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
671 $(_sc_header_without_use) |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
672 |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
673 # Don't include stdio-safer.h unless you use one of its functions. |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
674 sc_prohibit_stdio-safer_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
675 @h='stdio-safer.h' re='\<((f(re)?|p)open|tmpfile)_safer *\(' \ |
14756
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
676 $(_sc_header_without_use) |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
677 |
13304
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
678 # Prohibit the inclusion of strings.h without a sensible use. |
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
679 # Using the likes of bcmp, bcopy, bzero, index or rindex is not sensible. |
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
680 sc_prohibit_strings_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
681 @h='strings.h' \ |
13304
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
682 re='\<(strn?casecmp|ffs(ll)?)\>' \ |
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
683 $(_sc_header_without_use) |
e5593199cd7e
maint.mk: prohibit unwarranted use of <strings.h>
Jim Meyering <meyering@redhat.com>
parents:
13302
diff
changeset
|
684 |
18622
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
685 # Extract the raw list of symbol names with this: |
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
686 gl_extract_define_simple = \ |
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
687 /^\# *define ([A-Z]\w+)\(/ and print $$1 |
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
688 # Filter out duplicates and convert to a space-separated list: |
18623
4c11f0afa3b7
maint.mk: do not always evaluate intprops-related shell
Jim Meyering <meyering@fb.com>
parents:
18622
diff
changeset
|
689 _intprops_names = \ |
18622
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
690 $(shell f=$(gnulib_dir)/lib/intprops.h; \ |
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
691 perl -lne '$(gl_extract_define_simple)' $$f | sort -u | tr '\n' ' ') |
7faf67396166
maint.mk: improve sc_prohibit_intprops_without_use
Jim Meyering <meyering@fb.com>
parents:
18616
diff
changeset
|
692 # Remove trailing space and convert to a regular expression: |
13029
44ae789f77b0
maint.mk: prohibit inclusion of "intprops.h" without use
Jim Meyering <meyering@redhat.com>
parents:
12866
diff
changeset
|
693 _intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names))) |
44ae789f77b0
maint.mk: prohibit inclusion of "intprops.h" without use
Jim Meyering <meyering@redhat.com>
parents:
12866
diff
changeset
|
694 # Prohibit the inclusion of intprops.h without an actual use. |
44ae789f77b0
maint.mk: prohibit inclusion of "intprops.h" without use
Jim Meyering <meyering@redhat.com>
parents:
12866
diff
changeset
|
695 sc_prohibit_intprops_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
696 @h='intprops.h' \ |
13029
44ae789f77b0
maint.mk: prohibit inclusion of "intprops.h" without use
Jim Meyering <meyering@redhat.com>
parents:
12866
diff
changeset
|
697 re='\<($(_intprops_syms_re)) *\(' \ |
13097
ef132cd978fc
maint.mk: s/_header_without_use/_sc_header_without_use/
Jose E. Marchesi <jemarch@gnu.org>
parents:
13085
diff
changeset
|
698 $(_sc_header_without_use) |
13029
44ae789f77b0
maint.mk: prohibit inclusion of "intprops.h" without use
Jim Meyering <meyering@redhat.com>
parents:
12866
diff
changeset
|
699 |
14216
676f66180a36
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
Jim Meyering <meyering@redhat.com>
parents:
14210
diff
changeset
|
700 _stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t |
676f66180a36
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
Jim Meyering <meyering@redhat.com>
parents:
14210
diff
changeset
|
701 # Prohibit the inclusion of stddef.h without an actual use. |
676f66180a36
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
Jim Meyering <meyering@redhat.com>
parents:
14210
diff
changeset
|
702 sc_prohibit_stddef_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
703 @h='stddef.h' \ |
15990
2f6844abf7fd
maint.mk: fix a bug in sc_prohibit_stddef_without_use
Jim Meyering <meyering@redhat.com>
parents:
15989
diff
changeset
|
704 re='\<($(_stddef_syms_re))\>' \ |
14216
676f66180a36
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
Jim Meyering <meyering@redhat.com>
parents:
14210
diff
changeset
|
705 $(_sc_header_without_use) |
676f66180a36
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
Jim Meyering <meyering@redhat.com>
parents:
14210
diff
changeset
|
706 |
16035
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
707 _de1 = dirfd|(close|(fd)?open|read|rewind|seek|tell)dir(64)?(_r)? |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
708 _de2 = (versionsort|struct dirent|getdirentries|alphasort|scandir(at)?)(64)? |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
709 _de3 = MAXNAMLEN|DIR|ino_t|d_ino|d_fileno|d_namlen |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
710 _dirent_syms_re = $(_de1)|$(_de2)|$(_de3) |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
711 # Prohibit the inclusion of dirent.h without an actual use. |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
712 sc_prohibit_dirent_without_use: |
16053
48e53ddfb126
maint.mk: silence new syntax check
Eric Blake <eblake@redhat.com>
parents:
16035
diff
changeset
|
713 @h='dirent.h' \ |
16035
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
714 re='\<($(_dirent_syms_re))\>' \ |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
715 $(_sc_header_without_use) |
88def2ddf509
maint.mk: also prohibit inclusion of dirent.h without use
Jim Meyering <meyering@redhat.com>
parents:
16000
diff
changeset
|
716 |
15437
055938f44a46
maint.mk: prohibit inclusion of "verify.h" without use
Jim Meyering <meyering@redhat.com>
parents:
15409
diff
changeset
|
717 # Prohibit the inclusion of verify.h without an actual use. |
055938f44a46
maint.mk: prohibit inclusion of "verify.h" without use
Jim Meyering <meyering@redhat.com>
parents:
15409
diff
changeset
|
718 sc_prohibit_verify_without_use: |
055938f44a46
maint.mk: prohibit inclusion of "verify.h" without use
Jim Meyering <meyering@redhat.com>
parents:
15409
diff
changeset
|
719 @h='verify.h' \ |
18904
1a69bcd148cd
maint.mk: update regex to reflect 2013 addition of "assume" to verify.h
Jim Meyering <meyering@fb.com>
parents:
18669
diff
changeset
|
720 re='\<(verify(true|expr)?|assume|static_assert) *\(' \ |
15437
055938f44a46
maint.mk: prohibit inclusion of "verify.h" without use
Jim Meyering <meyering@redhat.com>
parents:
15409
diff
changeset
|
721 $(_sc_header_without_use) |
055938f44a46
maint.mk: prohibit inclusion of "verify.h" without use
Jim Meyering <meyering@redhat.com>
parents:
15409
diff
changeset
|
722 |
14756
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
723 # Don't include xfreopen.h unless you use one of its functions. |
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
724 sc_prohibit_xfreopen_without_use: |
15321
eada9764cc6a
maint.mk: enhance useless header checks
Eric Blake <eblake@redhat.com>
parents:
15319
diff
changeset
|
725 @h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use) |
14756
b44f65e44220
maint.mk: three new prohibit_<HDR>_without_use rules
Jim Meyering <meyering@redhat.com>
parents:
14754
diff
changeset
|
726 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
727 sc_obsolete_symbols: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
728 @prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
729 halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
730 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
731 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
732 # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
733 |
11468
65ab7e6dcafe
maint.mk: import changes to syntax-check macros from coreutils
Reuben Thomas <rrt@sc3d.org>
parents:
11406
diff
changeset
|
734 # Each nonempty ChangeLog line must start with a year number, or a TAB. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
735 sc_changelog: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
736 @prohibit='^[^12 ]' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
737 in_vc_files='^ChangeLog$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
738 halt='found unexpected prefix in a ChangeLog' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
739 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
740 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
741 # Ensure that each .c file containing a "main" function also |
13853
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
742 # calls bindtextdomain. |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
743 sc_bindtextdomain: |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
744 @require='bindtextdomain *\(' \ |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
745 in_vc_files='\.c$$' \ |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
746 containing='\<main *(' \ |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
747 halt='the above files do not call bindtextdomain' \ |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
748 $(_sc_search_regexp) |
2f3dbd409322
maintainer-makefile: check for i18n setup
Eric Blake <eblake@redhat.com>
parents:
13704
diff
changeset
|
749 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
750 # Require that the final line of each test-lib.sh-using test be this one: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
751 # Exit $fail |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
752 # Note: this test requires GNU grep's --label= option. |
11646
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
753 Exit_witness_file ?= tests/test-lib.sh |
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
754 Exit_base := $(notdir $(Exit_witness_file)) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
755 sc_require_test_exit_idiom: |
11646
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
756 @if test -f $(srcdir)/$(Exit_witness_file); then \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
757 die=0; \ |
11646
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
758 for i in $$(grep -l -F 'srcdir/$(Exit_base)' \ |
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
759 $$($(VC_LIST) tests)); do \ |
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
760 tail -n1 $$i | grep '^Exit .' > /dev/null \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
761 && : || { die=1; echo $$i; } \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
762 done; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
763 test $$die = 1 && \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
764 { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ |
11646
fc7e7bde323e
tests: maint.mk: make sc_require_test_exit_idiom more generic
Jim Meyering <meyering@redhat.com>
parents:
11575
diff
changeset
|
765 echo 1>&2 'Exit something'; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
766 exit 1; } || :; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
767 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
768 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
769 sc_trailing_blank: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
770 @prohibit='[ ]$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
771 halt='found trailing blank(s)' \ |
17090
4444e06d3a94
maint.mk: exempt trailing blanks found in "binary" files
Jim Meyering <meyering@redhat.com>
parents:
17089
diff
changeset
|
772 exclude='^Binary file .* matches$$' \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
773 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
774 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
775 # Match lines like the following, but where there is only one space |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
776 # between the options and the description: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
777 # -D, --all-repeated[=delimit-method] print all duplicate lines\n |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
778 longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
779 sc_two_space_separator_in_usage: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
780 @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
781 halt='help2man requires at least two spaces between an option and its description'\ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
782 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
783 |
14864
93b21a56e926
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
Jim Meyering <meyering@redhat.com>
parents:
14855
diff
changeset
|
784 # A regexp matching function names like "error" that may be used |
93b21a56e926
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
Jim Meyering <meyering@redhat.com>
parents:
14855
diff
changeset
|
785 # to emit translatable messages. |
93b21a56e926
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
Jim Meyering <meyering@redhat.com>
parents:
14855
diff
changeset
|
786 _gl_translatable_diag_func_re ?= error |
93b21a56e926
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
Jim Meyering <meyering@redhat.com>
parents:
14855
diff
changeset
|
787 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
788 # Look for diagnostics that aren't marked for translation. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
789 # This won't find any for which error's format string is on a separate line. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
790 sc_unmarked_diagnostics: |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
791 @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
792 exclude='(_|ngettext ?)\(' \ |
17055
672cf835d212
maint.mk: avoid redundant file name in message
Eric Blake <eblake@redhat.com>
parents:
17036
diff
changeset
|
793 halt='found unmarked diagnostic(s)' \ |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
794 $(_sc_search_regexp) |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
795 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
796 # Avoid useless parentheses like those in this example: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
797 # #if defined (SYMBOL) || defined (SYM2) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
798 sc_useless_cpp_parens: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
799 @prohibit='^# *if .*defined *\(' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
800 halt='found useless parentheses in cpp directive' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
801 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
802 |
13275
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
803 # List headers for which HAVE_HEADER_H is always true, assuming you are |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
804 # using the appropriate gnulib module. CAUTION: for each "unnecessary" |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
805 # #if HAVE_HEADER_H that you remove, be sure that your project explicitly |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
806 # requires the gnulib module that guarantees the usability of that header. |
13277
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
807 gl_assured_headers_ = \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
808 cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g' |
13275
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
809 |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
810 # Convert the list of names to upper case, and replace each space with "|". |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
811 az_ = abcdefghijklmnopqrstuvwxyz |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
812 AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ |
13277
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
813 gl_header_upper_case_or_ = \ |
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
814 $$($(gl_assured_headers_) \ |
13275
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
815 | tr $(az_)/.- $(AZ_)___ \ |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
816 | tr -s ' ' '|' \ |
13277
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
817 ) |
13275
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
818 sc_prohibit_always_true_header_tests: |
13277
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
819 @or=$(gl_header_upper_case_or_); \ |
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
820 re="HAVE_($$or)_H"; \ |
b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
Jim Meyering <meyering@redhat.com>
parents:
13275
diff
changeset
|
821 prohibit='\<'"$$re"'\>' \ |
13704
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
822 halt=$$(printf '%s\n' \ |
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
823 'do not test the above HAVE_<header>_H symbol(s);' \ |
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
824 ' with the corresponding gnulib module, they are always true') \ |
13275
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
825 $(_sc_search_regexp) |
2917aab6182c
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Jim Meyering <meyering@redhat.com>
parents:
13253
diff
changeset
|
826 |
16988
ef9bd8b01585
maint.mk: new syntax check for HAVE_DECL checks
Eric Blake <eblake@redhat.com>
parents:
16979
diff
changeset
|
827 sc_prohibit_defined_have_decl_tests: |
17386
70c2a43965ef
maint.mk: catch more abuse of HAVE_DECL in syntax-check
Eric Blake <eblake@redhat.com>
parents:
17249
diff
changeset
|
828 @prohibit='(#[ ]*ifn?def|\<defined)\>[ (]+HAVE_DECL_' \ |
17055
672cf835d212
maint.mk: avoid redundant file name in message
Eric Blake <eblake@redhat.com>
parents:
17036
diff
changeset
|
829 halt='HAVE_DECL macros are always defined' \ |
16988
ef9bd8b01585
maint.mk: new syntax check for HAVE_DECL checks
Eric Blake <eblake@redhat.com>
parents:
16979
diff
changeset
|
830 $(_sc_search_regexp) |
ef9bd8b01585
maint.mk: new syntax check for HAVE_DECL checks
Eric Blake <eblake@redhat.com>
parents:
16979
diff
changeset
|
831 |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
832 # ================================================================== |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
833 gl_other_headers_ ?= \ |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
834 intprops.h \ |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
835 openat.h \ |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
836 stat-macros.h |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
837 |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
838 # Perl -lne code to extract "significant" cpp-defined symbols from a |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
839 # gnulib header file, eliminating a few common false-positives. |
15989
30a6c0b6ac8c
maint.mk: exempt ENODATA from a syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
15966
diff
changeset
|
840 # The exempted names below are defined only conditionally in gnulib, |
30a6c0b6ac8c
maint.mk: exempt ENODATA from a syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
15966
diff
changeset
|
841 # and hence sometimes must/may be defined in application code. |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
842 gl_extract_significant_defines_ = \ |
13337
23825f79a03a
maint.mk: gnulib doesn't guarantee NSIG
Eric Blake <eblake@redhat.com>
parents:
13333
diff
changeset
|
843 /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ |
23825f79a03a
maint.mk: gnulib doesn't guarantee NSIG
Eric Blake <eblake@redhat.com>
parents:
13333
diff
changeset
|
844 && $$2 !~ /(?:rpl_|_used_without_)/\ |
15989
30a6c0b6ac8c
maint.mk: exempt ENODATA from a syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
15966
diff
changeset
|
845 && $$1 !~ /^(?:NSIG|ENODATA)$$/\ |
15478
206163b08a1f
maint.mk: avoid sc_prohibit_always-defined_macros failure in coreutils
Jim Meyering <meyering@redhat.com>
parents:
15437
diff
changeset
|
846 && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
847 and print $$1 |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
848 |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
849 # Create a list of regular expressions matching the names |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
850 # of macros that are guaranteed to be defined by parts of gnulib. |
13333
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
851 define def_sym_regex |
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
852 gen_h=$(gl_generated_headers_); \ |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
853 (cd $(gnulib_dir)/lib; \ |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
854 for f in *.in.h $(gl_other_headers_); do \ |
15660
d12c46223fa1
maint.mk: avoid warnings from perl about missing files
Martin von Gagern <Martin.vGagern@gmx.net>
parents:
15615
diff
changeset
|
855 test -f $$f \ |
d12c46223fa1
maint.mk: avoid warnings from perl about missing files
Martin von Gagern <Martin.vGagern@gmx.net>
parents:
15615
diff
changeset
|
856 && perl -lne '$(gl_extract_significant_defines_)' $$f; \ |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
857 done; \ |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
858 ) | sort -u \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
859 | $(SED) 's/^/^ *# *(define|undef) */;s/$$/\\>/' |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
860 endef |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
861 |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
862 # Don't define macros that we already get from gnulib header files. |
13333
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
863 sc_prohibit_always-defined_macros: |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
864 @if test -d $(gnulib_dir); then \ |
13333
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
865 case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ |
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
866 echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ |
dd75a1afe536
maint.mk: avoid using a temporary file in the always-defined-macros check
Jim Meyering <meyering@redhat.com>
parents:
13331
diff
changeset
|
867 esac; \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
868 regex=$$($(def_sym_regex)); export regex; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
869 $(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
870 | xargs sh -c 'echo $$regex | grep -E -f - "$$@"' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
871 dummy /dev/null \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
872 && { printf '$(ME): define the above' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
873 ' via some gnulib .h file\n' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
874 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
875 || :; \ |
13329
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
876 fi |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
877 # ================================================================== |
256d057c7f1f
maint.mk: prohibit definition of symbols defined by gnulib
Jim Meyering <meyering@redhat.com>
parents:
13309
diff
changeset
|
878 |
13253
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
879 # Prohibit checked in backup files. |
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
880 sc_prohibit_backup_files: |
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
881 @$(VC_LIST) | grep '~$$' && \ |
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
882 { echo '$(ME): found version controlled backup file' 1>&2; \ |
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
883 exit 1; } || : |
51e653bb55dd
top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files.
Simon Josefsson <simon@josefsson.org>
parents:
13241
diff
changeset
|
884 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
885 # Require the latest GPL. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
886 sc_GPL_version: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
887 @prohibit='either ''version [^3]' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
888 halt='GPL vN, N!=3' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
889 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
890 |
12593
e8847ec6bc92
maint.mk: detect incorrect GFDL usage
Eric Blake <ebb9@byu.net>
parents:
12592
diff
changeset
|
891 # Require the latest GFDL. Two regexp, since some .texi files end up |
e8847ec6bc92
maint.mk: detect incorrect GFDL usage
Eric Blake <ebb9@byu.net>
parents:
12592
diff
changeset
|
892 # line wrapping between 'Free Documentation License,' and 'Version'. |
e8847ec6bc92
maint.mk: detect incorrect GFDL usage
Eric Blake <ebb9@byu.net>
parents:
12592
diff
changeset
|
893 _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) |
e8847ec6bc92
maint.mk: detect incorrect GFDL usage
Eric Blake <ebb9@byu.net>
parents:
12592
diff
changeset
|
894 sc_GFDL_version: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
895 @prohibit='$(_GFDL_regexp)' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
896 halt='GFDL vN, N!=3' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
897 $(_sc_search_regexp) |
12593
e8847ec6bc92
maint.mk: detect incorrect GFDL usage
Eric Blake <ebb9@byu.net>
parents:
12592
diff
changeset
|
898 |
13880
fe3adfe381fa
maint.mk: add a URL discussing the no-@acronym policy
Jim Meyering <meyering@redhat.com>
parents:
13871
diff
changeset
|
899 # Don't use Texinfo's @acronym{}. |
19439
8bfc20b57265
maint: shorten https://lists.gnu.org/archive/html/... links
Jim Meyering <meyering@fb.com>
parents:
19192
diff
changeset
|
900 # https://lists.gnu.org/r/bug-gnulib/2010-03/msg00321.html |
13233
2376509f2722
maint.mk: texinfo_suffix_re_: correct the default regexp
Jim Meyering <meyering@redhat.com>
parents:
13232
diff
changeset
|
901 texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ |
13045
04f53e0b1556
top/maint.mk (sc_texinfo_acronym): Add rule.
Simon Josefsson <simon@josefsson.org>
parents:
13029
diff
changeset
|
902 sc_texinfo_acronym: |
13232
80668c656e53
top/maint.mk (sc_texinfo_acronym): Improve filename regexp.
Simon Josefsson <simon@josefsson.org>
parents:
13221
diff
changeset
|
903 @prohibit='@acronym\{' \ |
80668c656e53
top/maint.mk (sc_texinfo_acronym): Improve filename regexp.
Simon Josefsson <simon@josefsson.org>
parents:
13221
diff
changeset
|
904 in_vc_files='$(texinfo_suffix_re_)' \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
905 halt='found use of Texinfo @acronym{}' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
906 $(_sc_search_regexp) |
13045
04f53e0b1556
top/maint.mk (sc_texinfo_acronym): Add rule.
Simon Josefsson <simon@josefsson.org>
parents:
13029
diff
changeset
|
907 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
908 cvs_keywords = \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
909 Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
910 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
911 sc_prohibit_cvs_keyword: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
912 @prohibit='\$$($(cvs_keywords))\$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
913 halt='do not use CVS keyword expansion' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
914 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
915 |
13209
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
916 # This Perl code is slightly obfuscated. Not only is each "$" doubled |
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
917 # because it's in a Makefile, but the $$c's are comments; we cannot |
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
918 # use "#" due to the way the script ends up concatenated onto one line. |
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
919 # It would be much more concise, and would produce better output (including |
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
920 # counts) if written as: |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
921 # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... |
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
922 # but that would be far less efficient, reading the entire contents |
13209
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
923 # of each file, rather than just the last two bytes of each. |
14394
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
924 # In addition, while the code below detects both blank lines and a missing |
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
925 # newline at EOF, the above detects only the former. |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
926 # |
13209
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
927 # This is a perl script that is expected to be the single-quoted argument |
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
928 # to a command-line "-le". The remaining arguments are file names. |
16261
0505376775c9
maint.mk: fix description in comment
Jim Meyering <meyering@redhat.com>
parents:
16235
diff
changeset
|
929 # Print the name of each file that does not end in exactly one newline byte. |
14394
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
930 # I.e., warn if there are blank lines (2 or more newlines), or if the |
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
931 # last byte is not a newline. However, currently we don't complain |
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
932 # about any file that contains exactly one byte. |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
933 # Exit nonzero if at least one such file is found, otherwise, exit 0. |
13209
473dffe238d2
maint.mk: improve empty-line-at-EOF check
Jim Meyering <meyering@redhat.com>
parents:
13208
diff
changeset
|
934 # Warn about, but otherwise ignore open failure. Ignore seek/read failure. |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
935 # |
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
936 # Use this if you want to remove trailing empty lines from selected files: |
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
937 # perl -pi -0777 -e 's/\n\n+$/\n/' files... |
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
938 # |
14394
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
939 require_exactly_one_NL_at_EOF_ = \ |
13241
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
940 foreach my $$f (@ARGV) \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
941 { \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
942 open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
943 my $$p = sysseek (F, -2, 2); \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
944 my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
945 my $$last_two_bytes; \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
946 defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
947 close F; \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
948 $$c = "ignore read failure"; \ |
14394
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
949 $$p && ($$last_two_bytes eq "\n\n" \ |
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
950 || substr ($$last_two_bytes,1) ne "\n") \ |
74d1558ae43f
maint.mk: detect missing-NL-at-EOF, too
Jim Meyering <meyering@redhat.com>
parents:
14357
diff
changeset
|
951 and (print $$f), $$fail=1; \ |
13241
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
952 } \ |
cf12b14b472b
maint.mk: use gnu-style indentation in an embedded perl script
Jim Meyering <meyering@redhat.com>
parents:
13233
diff
changeset
|
953 END { exit defined $$fail } |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
954 sc_prohibit_empty_lines_at_EOF: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
955 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
956 | xargs perl -le '$(require_exactly_one_NL_at_EOF_)' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
957 || { echo '$(ME): empty line(s) or no newline at EOF' 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
958 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
959 || : |
13203
0f51b742ab58
maint.mk: new syntax-check rule: prohibit empty lines at end of file
Jim Meyering <meyering@redhat.com>
parents:
13202
diff
changeset
|
960 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
961 # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
962 # This is a bit of a kludge, since it prevents use of the string |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
963 # even in comments, but for now it does the job with no false positives. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
964 sc_prohibit_stat_st_blocks: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
965 @prohibit='[.>]st_blocks' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
966 halt='do not use st_blocks; use ST_NBLOCKS' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
967 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
968 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
969 # Make sure we don't define any S_IS* macros in src/*.c files. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
970 # They're already defined via gnulib's sys/stat.h replacement. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
971 sc_prohibit_S_IS_definition: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
972 @prohibit='^ *# *define *S_IS' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
973 halt='do not define S_IS* macros; include <sys/stat.h>' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
974 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
975 |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
976 # Perl block to convert a match to FILE_NAME:LINENO:TEST, |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
977 # that is shared by two definitions below. |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
978 perl_filename_lineno_text_ = \ |
14575
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
979 -e ' {' \ |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
980 -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
981 -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
982 -e ' print "$$ARGV:$$n:$$v\n";' \ |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
983 -e ' }' |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
984 |
18357
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
985 prohibit_doubled_words_ = \ |
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
986 the then in an on if is it but for or at and do to |
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
987 # expand the regex before running the check to avoid using expensive captures |
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
988 prohibit_doubled_word_expanded_ = \ |
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
989 $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_))) |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
990 prohibit_doubled_word_RE_ ?= \ |
18357
454e054b95a9
maint.mk: expand the prohibit_doubled_word regex
Ján Tomko <jtomko@redhat.com>
parents:
18353
diff
changeset
|
991 /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
992 prohibit_doubled_word_ = \ |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
993 -e 'while ($(prohibit_doubled_word_RE_))' \ |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
994 $(perl_filename_lineno_text_) |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
995 |
14575
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
996 # Define this to a regular expression that matches |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
997 # any filename:dd:match lines you want to ignore. |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
998 # The default is to ignore no matches. |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
999 ignore_doubled_word_match_RE_ ?= ^$$ |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
1000 |
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
1001 sc_prohibit_doubled_word: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1002 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1003 | xargs perl -n -0777 $(prohibit_doubled_word_) \ |
14575
df394b4db95d
maint.mk: prohibit doubled words
Jim Meyering <meyering@redhat.com>
parents:
14572
diff
changeset
|
1004 | grep -vE '$(ignore_doubled_word_match_RE_)' \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1005 | grep . \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1006 && { echo '$(ME): doubled words' 1>&2; exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1007 || : |
14563
4f85858b0e7f
maint.mk: prohibit \<the the\>
Jim Meyering <meyering@redhat.com>
parents:
14560
diff
changeset
|
1008 |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
1009 # A regular expression matching undesirable combinations of words like |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
1010 # "can not"; this matches them even when the two words appear on different |
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
1011 # lines, but not when there is an intervening delimiter like "#" or "*". |
16789
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1012 # Similarly undesirable, "See @xref{...}", since an @xref should start |
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1013 # a sentence. Explicitly prohibit any prefix of "see" or "also". |
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1014 # Also prohibit a prefix matching "\w+ +". |
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1015 # @pxref gets the same see/also treatment and should be parenthesized; |
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1016 # presume it must *not* start a sentence. |
18669
2be0cea51886
maint.mk: enforce spelling of "timestamp" (i.e., no space)
Jim Meyering <meyering@fb.com>
parents:
18648
diff
changeset
|
1017 # POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too. |
16789
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1018 bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ |
b05bc6bf8e60
maint.mk: expand syntax-check rule to catch @xref and @pxref abuse
Akim Demaille <akim@lrde.epita.fr>
parents:
16726
diff
changeset
|
1019 bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ |
14725
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1020 prohibit_undesirable_word_seq_RE_ ?= \ |
18669
2be0cea51886
maint.mk: enforce spelling of "timestamp" (i.e., no space)
Jim Meyering <meyering@fb.com>
parents:
18648
diff
changeset
|
1021 /(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims |
14725
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1022 prohibit_undesirable_word_seq_ = \ |
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1023 -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
1024 $(perl_filename_lineno_text_) |
14725
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1025 # Define this to a regular expression that matches |
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1026 # any filename:dd:match lines you want to ignore. |
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1027 # The default is to ignore no matches. |
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1028 ignore_undesirable_word_sequence_RE_ ?= ^$$ |
14724
ba27b43f49e7
maint.mk: improve "can not" detection and generalize rule name
Jim Meyering <meyering@redhat.com>
parents:
14718
diff
changeset
|
1029 |
14725
d27620fb3331
maint.mk: adjust previous commit
Jim Meyering <meyering@redhat.com>
parents:
14724
diff
changeset
|
1030 sc_prohibit_undesirable_word_seq: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1031 @$(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1032 | xargs perl -n -0777 $(prohibit_undesirable_word_seq_) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1033 | grep -vE '$(ignore_undesirable_word_sequence_RE_)' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1034 | grep . \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1035 && { echo '$(ME): undesirable word sequence' >&2; exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1036 || : |
14560
ff63cf60e142
maint.mk: prohibit use of "can not"
Jim Meyering <meyering@redhat.com>
parents:
14523
diff
changeset
|
1037 |
17752
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1038 # Except for shell files and for loops, double semicolon is probably a mistake |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1039 sc_prohibit_double_semicolon: |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1040 @prohibit='; *;[ {} \]*(/[/*]|$$)' \ |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1041 in_vc_files='\.[chly]$$' \ |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1042 exclude='\bfor *\(.*\)' \ |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1043 halt="Double semicolon detected" \ |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1044 $(_sc_search_regexp) |
89ba0beadf6a
maintainer-makefile: add syntax check for useless ';;'
Eric Blake <eblake@redhat.com>
parents:
17724
diff
changeset
|
1045 |
13085
fb5165836aea
maint.mk: prohibit use of test's -o and -a operators
Jim Meyering <meyering@redhat.com>
parents:
13058
diff
changeset
|
1046 _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" |
fb5165836aea
maint.mk: prohibit use of test's -o and -a operators
Jim Meyering <meyering@redhat.com>
parents:
13058
diff
changeset
|
1047 _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" |
fb5165836aea
maint.mk: prohibit use of test's -o and -a operators
Jim Meyering <meyering@redhat.com>
parents:
13058
diff
changeset
|
1048 # Using test's -a and -o operators is not portable. |
13101
8dad7d30953c
maint.mk: check for [ as well as test
Eric Blake <eblake@redhat.com>
parents:
13098
diff
changeset
|
1049 # We prefer test over [, since the latter is spelled [[ in configure.ac. |
13085
fb5165836aea
maint.mk: prohibit use of test's -o and -a operators
Jim Meyering <meyering@redhat.com>
parents:
13058
diff
changeset
|
1050 sc_prohibit_test_minus_ao: |
13104
3f4bdc04f3f1
maint.mk: fix some fallout
Eric Blake <eblake@redhat.com>
parents:
13103
diff
changeset
|
1051 @prohibit='(\<test| \[+) .+ -[ao] ' \ |
3f4bdc04f3f1
maint.mk: fix some fallout
Eric Blake <eblake@redhat.com>
parents:
13103
diff
changeset
|
1052 halt='$(_ptm1); $(_ptm2)' \ |
3f4bdc04f3f1
maint.mk: fix some fallout
Eric Blake <eblake@redhat.com>
parents:
13103
diff
changeset
|
1053 $(_sc_search_regexp) |
13085
fb5165836aea
maint.mk: prohibit use of test's -o and -a operators
Jim Meyering <meyering@redhat.com>
parents:
13058
diff
changeset
|
1054 |
13855
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1055 # Avoid a test bashism. |
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1056 sc_prohibit_test_double_equal: |
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1057 @prohibit='(\<test| \[+) .+ == ' \ |
13865
85922ab33c1c
maintainer-makefile: cover a few more files
Eric Blake <eblake@redhat.com>
parents:
13858
diff
changeset
|
1058 containing='#! */bin/[a-z]*sh' \ |
13855
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1059 halt='use "test x = x", not "test x =''= x"' \ |
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1060 $(_sc_search_regexp) |
78d646edb95c
maintainer-makefile: prohibit test x == x
Eric Blake <eblake@redhat.com>
parents:
13853
diff
changeset
|
1061 |
12608
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1062 # Each program that uses proper_name_utf8 must link with one of the |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1063 # ICONV libraries. Otherwise, some ICONV library must appear in LDADD. |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1064 # The perl -0777 invocation below extracts the possibly-multi-line |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1065 # definition of LDADD from the appropriate Makefile.am and exits 0 |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1066 # when it contains "ICONV". |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1067 sc_proper_name_utf8_requires_ICONV: |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1068 @progs=$$($(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1069 | xargs grep -l 'proper_name_utf8 ''("'); \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1070 if test "x$$progs" != x; then \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1071 fail=0; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1072 for p in $$progs; do \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1073 dir=$$(dirname "$$p"); \ |
12608
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1074 perl -0777 \ |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1075 -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \ |
d2cfa946257a
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
Jim Meyering <meyering@redhat.com>
parents:
12606
diff
changeset
|
1076 $$dir/Makefile.am && continue; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1077 base=$$(basename "$$p" .c); \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1078 grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1079 || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1080 done; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1081 test $$fail = 1 && \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1082 { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1083 exit 1; } || :; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1084 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1085 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1086 # Warn about "c0nst struct Foo const foo[]", |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1087 # but not about "char const *const foo" or "#define const const". |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1088 sc_redundant_const: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1089 @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1090 halt='redundant "const" in declarations' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1091 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1092 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1093 sc_const_long_option: |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
1094 @prohibit='^ *static.*struct option ' \ |
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
1095 exclude='const struct option|struct option const' \ |
17055
672cf835d212
maint.mk: avoid redundant file name in message
Eric Blake <eblake@redhat.com>
parents:
17036
diff
changeset
|
1096 halt='add "const" to the above declarations' \ |
16552
b9f8d388ab96
maint.mk: add per-line exclusions to prohibitions
Eric Blake <eblake@redhat.com>
parents:
16386
diff
changeset
|
1097 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1098 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1099 NEWS_hash = \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1100 $$($(SED) -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1101 $(srcdir)/NEWS \ |
12592
f46f6a6b078c
maint.mk: ignore multi-line copyright in NEWS
Eric Blake <ebb9@byu.net>
parents:
12581
diff
changeset
|
1102 | perl -0777 -pe \ |
f46f6a6b078c
maint.mk: ignore multi-line copyright in NEWS
Eric Blake <ebb9@byu.net>
parents:
12581
diff
changeset
|
1103 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1104 | md5sum - \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1105 | $(SED) 's/ .*//') |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1106 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1107 # Ensure that we don't accidentally insert an entry into an old NEWS block. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1108 sc_immutable_NEWS: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1109 @if test -f $(srcdir)/NEWS; then \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1110 test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1111 { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1112 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1113 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1114 # Update the hash stored above. Do this after each release and |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1115 # for any corrections to old entries. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1116 update-NEWS-hash: NEWS |
11750
246d2e2f523d
maint.mk: relax update-NEWS-hash to accept more syntax
Peter Simons <simons@cryp.to>
parents:
11736
diff
changeset
|
1117 perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1118 $(srcdir)/cfg.mk |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1119 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1120 # Ensure that we use only the standard $(VAR) notation, |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1121 # not @...@ in Makefile.am, now that we can rely on automake |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1122 # to emit a definition for each substituted variable. |
14611
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1123 # However, there is still one case in which @VAR@ use is not just |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1124 # legitimate, but actually required: when augmenting an automake-defined |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1125 # variable with a prefix. For example, gettext uses this: |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1126 # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1127 # otherwise, makeinfo would put German or French (current locale) |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1128 # navigation hints in the otherwise-English documentation. |
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1129 # |
12606
47c45341eca0
maint.mk: allow packages to add makefile @@ exceptions
Eric Blake <ebb9@byu.net>
parents:
12593
diff
changeset
|
1130 # Allow the package to add exceptions via a hook in cfg.mk; |
47c45341eca0
maint.mk: allow packages to add makefile @@ exceptions
Eric Blake <ebb9@byu.net>
parents:
12593
diff
changeset
|
1131 # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by |
47c45341eca0
maint.mk: allow packages to add makefile @@ exceptions
Eric Blake <ebb9@byu.net>
parents:
12593
diff
changeset
|
1132 # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. |
47c45341eca0
maint.mk: allow packages to add makefile @@ exceptions
Eric Blake <ebb9@byu.net>
parents:
12593
diff
changeset
|
1133 _makefile_at_at_check_exceptions ?= |
47c45341eca0
maint.mk: allow packages to add makefile @@ exceptions
Eric Blake <ebb9@byu.net>
parents:
12593
diff
changeset
|
1134 sc_makefile_at_at_check: |
16360
817d5933e56e
maint.mk: also prohibit lower-case @var@
Eric Blake <eblake@redhat.com>
parents:
16331
diff
changeset
|
1135 @perl -ne '/\@\w+\@/' \ |
817d5933e56e
maint.mk: also prohibit lower-case @var@
Eric Blake <eblake@redhat.com>
parents:
16331
diff
changeset
|
1136 -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ |
14611
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1137 -e ''$(_makefile_at_at_check_exceptions) \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1138 -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ |
14611
268395c9bfdf
maint.mk: makefile_at_at_check extend and clean up
Jim Meyering <meyering@redhat.com>
parents:
14575
diff
changeset
|
1139 $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1140 && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1141 |
12384
8620ff59758a
maint.mk: news-check: use grep -E
Jim Meyering <meyering@redhat.com>
parents:
12383
diff
changeset
|
1142 news-check: NEWS |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1143 $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $< \ |
13393
50e9a2259a7d
maint.mk: make the news-check rule more configurable
Peter Simons <simons@cryp.to>
parents:
13378
diff
changeset
|
1144 | grep -E $(news-check-regexp) >/dev/null; then \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1145 :; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1146 else \ |
12384
8620ff59758a
maint.mk: news-check: use grep -E
Jim Meyering <meyering@redhat.com>
parents:
12383
diff
changeset
|
1147 echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1148 exit 1; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1149 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1150 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1151 sc_makefile_TAB_only_indentation: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1152 @prohibit='^ [ ]{8}' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1153 in_vc_files='akefile|\.mk$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1154 halt='found TAB-8-space indentation' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1155 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1156 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1157 sc_m4_quote_check: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1158 @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1159 in_vc_files='(^configure\.ac|\.m4)$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1160 halt='quote the first arg to AC_DEF*' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1161 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1162 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1163 fix_po_file_diag = \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1164 'you have changed the set of files with translatable diagnostics;\n\ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1165 apply the above patch\n' |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1166 |
18352
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1167 # Generate a list of files in which to search for translatable strings. |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1168 perl_translatable_files_list_ = \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1169 -e 'foreach $$file (@ARGV) {' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1170 -e ' \# Consider only file extensions with one or two letters' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1171 -e ' $$file =~ /\...?$$/ or next;' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1172 -e ' \# Ignore m4 and mk files' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1173 -e ' $$file =~ /\.m[4k]$$/ and next;' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1174 -e ' \# Ignore a .c or .h file with a corresponding .l or .y file' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1175 -e ' $$file =~ /(.+)\.[ch]$$/ && (-e "$${1}.l" || -e "$${1}.y")' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1176 -e ' and next;' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1177 -e ' \# Skip unreadable files' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1178 -e ' -r $$file or next;' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1179 -e ' print "$$file ";' \ |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1180 -e '}' |
c397b02b9e03
maint.mk: speed up sc_po_check
Ján Tomko <jtomko@redhat.com>
parents:
18294
diff
changeset
|
1181 |
17141
1070c9dd8d54
maint.mk: let packages tweak sc_po_check pattern
Eric Blake <eblake@redhat.com>
parents:
17109
diff
changeset
|
1182 # Verify that all source files using _() (more specifically, files that |
17143
78950b779f13
maint.mk: rename a new configurable variable
Jim Meyering <jim@meyering.net>
parents:
17141
diff
changeset
|
1183 # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. |
14433
00046711b6a6
maint.mk: let po check work in VPATH build
Eric Blake <eblake@redhat.com>
parents:
14432
diff
changeset
|
1184 po_file ?= $(srcdir)/po/POTFILES.in |
14704
0223f2067342
maintainer-makefile: make sc_po_check easier to tune
Eric Blake <eblake@redhat.com>
parents:
14699
diff
changeset
|
1185 generated_files ?= $(srcdir)/lib/*.[ch] |
17143
78950b779f13
maint.mk: rename a new configurable variable
Jim Meyering <jim@meyering.net>
parents:
17141
diff
changeset
|
1186 _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1187 sc_po_check: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1188 @if test -f $(po_file); then \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1189 grep -E -v '^(#|$$)' $(po_file) \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1190 | grep -v '^src/false\.c$$' | sort > $@-1; \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1191 { $(VC_LIST_EXCEPT); echo $(generated_files); } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1192 | xargs perl $(perl_translatable_files_list_) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1193 | xargs grep -E -l '$(_gl_translatable_string_re)' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1194 | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1195 | sort -u > $@-2; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1196 diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1197 || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1198 rm -f $@-1 $@-2; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1199 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1200 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1201 # Sometimes it is useful to change the PATH environment variable |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1202 # in Makefiles. When doing so, it's better not to use the Unix-centric |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1203 # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. |
17055
672cf835d212
maint.mk: avoid redundant file name in message
Eric Blake <eblake@redhat.com>
parents:
17036
diff
changeset
|
1204 msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1205 sc_makefile_path_separator_check: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1206 @prohibit='PATH[=].*:' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1207 in_vc_files='akefile|\.mk$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1208 halt=$(msg) \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1209 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1210 |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1211 # Check that 'make alpha' will not fail at the end of the process, |
15811
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1212 # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1213 # and is read-only. |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1214 writable-files: |
17104
bcbe636cc12f
maint.mk: silent rules
Akim Demaille <akim@lrde.epita.fr>
parents:
17091
diff
changeset
|
1215 $(AM_V_GEN)if test -d $(release_archive_dir); then \ |
15811
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1216 for file in $(DIST_ARCHIVES); do \ |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1217 for p in ./ $(release_archive_dir)/; do \ |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1218 test -e $$p$$file || continue; \ |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1219 test -w $$p$$file \ |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1220 || { echo ERROR: $$p$$file is not writable; fail=1; }; \ |
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1221 done; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1222 done; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1223 test "$$fail" && exit 1 || : ; \ |
15811
bc3da814a8b3
maint.mk: adjust a release-related rule not to require use of gzip
Jim Meyering <meyering@redhat.com>
parents:
15660
diff
changeset
|
1224 else :; \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1225 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1226 |
13635
102e01a1ca93
maint.mk: avoid obscure sc_copyright_check failure in coreutils
Jim Meyering <meyering@redhat.com>
parents:
13393
diff
changeset
|
1227 v_etc_file = $(gnulib_dir)/lib/version-etc.c |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1228 sample-test = tests/sample-test |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1229 texi = doc/$(PACKAGE).texi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1230 # Make sure that the copyright date in $(v_etc_file) is up to date. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1231 # Do the same for the $(sample-test) and the main doc/.texi file. |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1232 sc_copyright_check: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1233 @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1234 in_files=$(v_etc_file) \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1235 halt='out of date copyright in $(v_etc_file); update it' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1236 $(_sc_search_regexp) |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1237 @require='# Copyright \(C\) '$$(date +%Y)' Free' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1238 in_vc_files=$(sample-test) \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1239 halt='out of date copyright in $(sample-test); update it' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1240 $(_sc_search_regexp) |
17649
eb299235d783
maint.mk: Relax the copyright check to cater for non FSF projects
Assaf Gordon <agordon@wi.mit.edu>
parents:
17613
diff
changeset
|
1241 @require='Copyright @copyright\{\} .*'$$(date +%Y) \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1242 in_vc_files=$(texi) \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1243 halt='out of date copyright in $(texi); update it' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1244 $(_sc_search_regexp) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1245 |
13185
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1246 # If tests/help-version exists and seems to be new enough, assume that its |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1247 # use of init.sh and path_prepend_ is correct, and ensure that every other |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1248 # use of init.sh is identical. |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1249 # This is useful because help-version cross-checks prog --version |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1250 # with $(VERSION), which verifies that its path_prepend_ invocation |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1251 # sets PATH correctly. This is an inexpensive way to ensure that |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1252 # the other init.sh-using tests also get it right. |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1253 _hv_file ?= $(srcdir)/tests/help-version |
13331
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1254 _hv_regex_weak ?= ^ *\. .*/init\.sh" |
15315
94b3a0b47189
maint.mk: add syntax-check to avoid char[PATH_MAX]
Eric Blake <eblake@redhat.com>
parents:
14864
diff
changeset
|
1255 # Fix syntax-highlighters " |
13331
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1256 _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" |
13185
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1257 sc_cross_check_PATH_usage_in_tests: |
13192
ba35e9647b3b
maint.mk: print better diagnostic when there is no $(_hv_file)
Jim Meyering <meyering@redhat.com>
parents:
13185
diff
changeset
|
1258 @if test -f $(_hv_file); then \ |
13331
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1259 grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1260 || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1261 exit 0; }; \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1262 grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1263 || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1264 exit 1; }; \ |
dc2c7e3048ec
maint.mk: improve sc_cross_check_PATH_usage_in_tests
Jim Meyering <meyering@redhat.com>
parents:
13329
diff
changeset
|
1265 good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ |
40059
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1266 $(VC_LIST_EXCEPT) \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1267 | xargs grep -lE '$(_hv_regex_weak)' \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1268 | xargs grep -LFx "$$good" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1269 | grep . \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1270 && { printf "$(ME): the above files use" \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1271 " path_prepend_ inconsistently\n" 1>&2; \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1272 exit 1; } \ |
990e00720616
maint.mk: Split long argument lists
Roman Bolshakov <r.bolshakov@yadro.com>
parents:
40057
diff
changeset
|
1273 || :; \ |
13185
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1274 fi |
8845faccc61b
maint.mk: add a PATH crosschecking syntax-check rule
Jim Meyering <meyering@redhat.com>
parents:
13126
diff
changeset
|
1275 |
16134
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1276 # BRE regex of file contents to identify a test script. |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1277 _test_script_regex ?= \<init\.sh\> |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1278 |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1279 # In tests, use "compare expected actual", not the reverse. |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1280 sc_prohibit_reversed_compare_failure: |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1281 @prohibit='\<compare [^ ]+ ([^ ]*exp|/dev/null)' \ |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1282 containing='$(_test_script_regex)' \ |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1283 halt='reversed compare arguments' \ |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1284 $(_sc_search_regexp) |
456f788a2768
maint.mk: add syntax check for use of compare from init.sh
Eric Blake <eblake@redhat.com>
parents:
16088
diff
changeset
|
1285 |
12816
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1286 # #if HAVE_... will evaluate to false for any non numeric string. |
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1287 # That would be flagged by using -Wundef, however gnulib currently |
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1288 # tests many undefined macros, and so we can't enable that option. |
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1289 # So at least preclude common boolean strings as macro values. |
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1290 sc_Wundef_boolean: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1291 @prohibit='^#define.*(yes|no|true|false)$$' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1292 in_files='$(CONFIG_INCLUDE)' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1293 halt='Use 0 or 1 for macro values' \ |
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1294 $(_sc_search_regexp) |
12816
7a4d2814715b
syntax-check: detect incorrect boolean macro values in config.h
Pádraig Brady <P@draigBrady.com>
parents:
12773
diff
changeset
|
1295 |
15315
94b3a0b47189
maint.mk: add syntax-check to avoid char[PATH_MAX]
Eric Blake <eblake@redhat.com>
parents:
14864
diff
changeset
|
1296 # Even if you use pathmax.h to guarantee that PATH_MAX is defined, it might |
15316
b62cfb73a10c
maint.mk: test further PATH_MAX issues
Eric Blake <eblake@redhat.com>
parents:
15315
diff
changeset
|
1297 # not be constant, or might overflow a stack. In general, use PATH_MAX as |
b62cfb73a10c
maint.mk: test further PATH_MAX issues
Eric Blake <eblake@redhat.com>
parents:
15315
diff
changeset
|
1298 # a limit, not an array or alloca size. |
b62cfb73a10c
maint.mk: test further PATH_MAX issues
Eric Blake <eblake@redhat.com>
parents:
15315
diff
changeset
|
1299 sc_prohibit_path_max_allocation: |
17089
60234c636185
maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX
Jim Meyering <meyering@redhat.com>
parents:
17088
diff
changeset
|
1300 @prohibit='(\balloca *\([^)]*|\[[^]]*)\bPATH_MAX' \ |
15316
b62cfb73a10c
maint.mk: test further PATH_MAX issues
Eric Blake <eblake@redhat.com>
parents:
15315
diff
changeset
|
1301 halt='Avoid stack allocations of size PATH_MAX' \ |
15315
94b3a0b47189
maint.mk: add syntax-check to avoid char[PATH_MAX]
Eric Blake <eblake@redhat.com>
parents:
14864
diff
changeset
|
1302 $(_sc_search_regexp) |
94b3a0b47189
maint.mk: add syntax-check to avoid char[PATH_MAX]
Eric Blake <eblake@redhat.com>
parents:
14864
diff
changeset
|
1303 |
12827
d844fd639561
maint: add a syntax-check rule to check for vulnerable Makefile.in
Jim Meyering <meyering@redhat.com>
parents:
12816
diff
changeset
|
1304 sc_vulnerable_makefile_CVE-2009-4029: |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1305 @prohibit='perm -777 -exec chmod a\+rwx|chmod 777 \$$\(distdir\)' \ |
17036
73562b8a8559
maintainer-makefile: Fix syntax error with dash.
Simon Josefsson <simon@josefsson.org>
parents:
17033
diff
changeset
|
1306 in_files='(^|/)Makefile\.in$$' \ |
13704
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
1307 halt=$$(printf '%s\n' \ |
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
1308 'the above files are vulnerable; beware of running' \ |
fe063c25c0ce
maint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering <meyering@redhat.com>
parents:
13635
diff
changeset
|
1309 ' "make dist*" rules, and upgrade to fixed automake' \ |
19192
d86e08b1f555
all: Replace many more http URLs by https URLs. Update stale URLs.
Bruno Haible <bruno@clisp.org>
parents:
19190
diff
changeset
|
1310 ' see https://bugzilla.redhat.com/show_bug.cgi?id=542609 for details') \ |
13103
3622812c3a89
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
Jose E. Marchesi <jemarch@gnu.org>
parents:
13102
diff
changeset
|
1311 $(_sc_search_regexp) |
12827
d844fd639561
maint: add a syntax-check rule to check for vulnerable Makefile.in
Jim Meyering <meyering@redhat.com>
parents:
12816
diff
changeset
|
1312 |
16979
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1313 sc_vulnerable_makefile_CVE-2012-3386: |
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1314 @prohibit='chmod a\+w \$$\(distdir\)' \ |
17036
73562b8a8559
maintainer-makefile: Fix syntax error with dash.
Simon Josefsson <simon@josefsson.org>
parents:
17033
diff
changeset
|
1315 in_files='(^|/)Makefile\.in$$' \ |
16979
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1316 halt=$$(printf '%s\n' \ |
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1317 'the above files are vulnerable; beware of running' \ |
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1318 ' "make distcheck", and upgrade to fixed automake' \ |
19192
d86e08b1f555
all: Replace many more http URLs by https URLs. Update stale URLs.
Bruno Haible <bruno@clisp.org>
parents:
19190
diff
changeset
|
1319 ' see https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2012-3386 for details') \ |
16979
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1320 $(_sc_search_regexp) |
1346cf3efb4d
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
Jim Meyering <meyering@redhat.com>
parents:
16978
diff
changeset
|
1321 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1322 vc-diff-check: |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1323 $(AM_V_GEN)(unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || : |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1324 $(AM_V_at)if test -s vc-diffs; then \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1325 cat vc-diffs; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1326 echo "Some files are locally modified:" 1>&2; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1327 exit 1; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1328 else \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1329 rm vc-diffs; \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1330 fi |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1331 |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1332 rel-files = $(DIST_ARCHIVES) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1333 |
17529
5a97f701bcef
maint.mk: restore functionality removed by recent change
Jim Meyering <meyering@fb.com>
parents:
17527
diff
changeset
|
1334 gnulib-version = $$(cd $(gnulib_dir) \ |
5a97f701bcef
maint.mk: restore functionality removed by recent change
Jim Meyering <meyering@fb.com>
parents:
17527
diff
changeset
|
1335 && { git describe || git rev-parse --short=10 HEAD; } ) |
11501
5223ecd9ec17
maint.mk: import improvements from m4
Eric Blake <ebb9@byu.net>
parents:
11500
diff
changeset
|
1336 bootstrap-tools ?= autoconf,automake,gnulib |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1337 |
17532
f5ce1e130606
maint.mk: prefer gpgv2 over gpgv
Jim Meyering <meyering@fb.com>
parents:
17529
diff
changeset
|
1338 gpgv = $$(gpgv2 --version >/dev/null && echo gpgv2 || echo gpgv) |
12539
dafd055586ef
maint.mk: don't require explicit gpg_key_ID in cfg.mk
Jim Meyering <meyering@redhat.com>
parents:
12538
diff
changeset
|
1339 # If it's not already specified, derive the GPG key ID from |
dafd055586ef
maint.mk: don't require explicit gpg_key_ID in cfg.mk
Jim Meyering <meyering@redhat.com>
parents:
12538
diff
changeset
|
1340 # the signed tag we've just applied to mark this release. |
17008
631997178451
maint.mk: absolute VPATH build fix
Akim Demaille <akim@lrde.epita.fr>
parents:
17005
diff
changeset
|
1341 gpg_key_ID ?= \ |
631997178451
maint.mk: absolute VPATH build fix
Akim Demaille <akim@lrde.epita.fr>
parents:
17005
diff
changeset
|
1342 $$(cd $(srcdir) \ |
631997178451
maint.mk: absolute VPATH build fix
Akim Demaille <akim@lrde.epita.fr>
parents:
17005
diff
changeset
|
1343 && git cat-file tag v$(VERSION) \ |
17532
f5ce1e130606
maint.mk: prefer gpgv2 over gpgv
Jim Meyering <meyering@fb.com>
parents:
17529
diff
changeset
|
1344 | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null \ |
17008
631997178451
maint.mk: absolute VPATH build fix
Akim Demaille <akim@lrde.epita.fr>
parents:
17005
diff
changeset
|
1345 | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}') |
12539
dafd055586ef
maint.mk: don't require explicit gpg_key_ID in cfg.mk
Jim Meyering <meyering@redhat.com>
parents:
12538
diff
changeset
|
1346 |
13306
3b72fc82a799
maint.mk, announce-gen: allow project-specific announcement mail headers
Jim Meyering <meyering@redhat.com>
parents:
13304
diff
changeset
|
1347 translation_project_ ?= coordinator@translationproject.org |
14699
6b83b217fcdd
maint.mk: use info-gnu@ as the default only for a stable release
Jim Meyering <meyering@redhat.com>
parents:
14651
diff
changeset
|
1348 |
6b83b217fcdd
maint.mk: use info-gnu@ as the default only for a stable release
Jim Meyering <meyering@redhat.com>
parents:
14651
diff
changeset
|
1349 # Make info-gnu the default only for a stable release. |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1350 announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1351 announcement_mail_headers_stable = \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1352 To: info-gnu@gnu.org \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1353 Cc: $(announcement_Cc_) \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1354 Mail-Followup-To: $(PACKAGE_BUGREPORT) |
13306
3b72fc82a799
maint.mk, announce-gen: allow project-specific announcement mail headers
Jim Meyering <meyering@redhat.com>
parents:
13304
diff
changeset
|
1355 |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1356 announcement_Cc_alpha = $(translation_project_) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1357 announcement_mail_headers_alpha = \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1358 To: $(PACKAGE_BUGREPORT) \ |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1359 Cc: $(announcement_Cc_) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1360 |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1361 announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1362 announcement_mail_headers_beta = $(announcement_mail_headers_alpha) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1363 |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1364 announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type)) |
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1365 announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1366 announcement: NEWS ChangeLog $(rel-files) |
17104
bcbe636cc12f
maint.mk: silent rules
Akim Demaille <akim@lrde.epita.fr>
parents:
17091
diff
changeset
|
1367 # Not $(AM_V_GEN) since the output of this command serves as |
17202
5b730fea4cab
maint.mk: typofix in comments
Stefano Lattarini <stefano.lattarini@gmail.com>
parents:
17201
diff
changeset
|
1368 # announcement message: it would start with " GEN announcement". |
17104
bcbe636cc12f
maint.mk: silent rules
Akim Demaille <akim@lrde.epita.fr>
parents:
17091
diff
changeset
|
1369 $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ |
13306
3b72fc82a799
maint.mk, announce-gen: allow project-specific announcement mail headers
Jim Meyering <meyering@redhat.com>
parents:
13304
diff
changeset
|
1370 --mail-headers='$(announcement_mail_headers_)' \ |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
1371 --release-type=$(release-type) \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1372 --package=$(PACKAGE) \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1373 --prev=$(PREV_VERSION) \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1374 --curr=$(VERSION) \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1375 --gpg-key-id=$(gpg_key_ID) \ |
16907
3cd0e20dcf8e
announce-gen: VPATH issues
Akim Demaille <akim@lrde.epita.fr>
parents:
16904
diff
changeset
|
1376 --srcdir=$(srcdir) \ |
12581
25232b487199
maint: support 'make announcement' from a VPATH build
Eric Blake <ebb9@byu.net>
parents:
12576
diff
changeset
|
1377 --news=$(srcdir)/NEWS \ |
11501
5223ecd9ec17
maint.mk: import improvements from m4
Eric Blake <ebb9@byu.net>
parents:
11500
diff
changeset
|
1378 --bootstrap-tools=$(bootstrap-tools) \ |
16554
dad9ad605e56
maint.mk: allow announcement for non-gnulib project
Eric Blake <eblake@redhat.com>
parents:
16553
diff
changeset
|
1379 $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ |
dad9ad605e56
maint.mk: allow announcement for non-gnulib project
Eric Blake <eblake@redhat.com>
parents:
16553
diff
changeset
|
1380 echo --gnulib-version=$(gnulib-version);; esac) \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1381 --no-print-checksums \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1382 $(addprefix --url-dir=, $(url_dir_list)) |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1383 |
17021
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1384 .PHONY: release-commit |
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1385 release-commit: |
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1386 $(AM_V_GEN)cd $(srcdir) \ |
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1387 && $(_build-aux)/do-release-commit-and-tag \ |
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1388 -C $(abs_builddir) $(RELEASE) |
37799b20257d
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
Akim Demaille <akim@lrde.epita.fr>
parents:
17018
diff
changeset
|
1389 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1390 ## ---------------- ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1391 ## Updating files. ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1392 ## ---------------- ## |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1393 |
19188
402398d798a1
maintainer-makefile: FTP -> HTTPS
Paul Eggert <eggert@cs.ucla.edu>
parents:
18904
diff
changeset
|
1394 ftp-gnu = https://ftp.gnu.org/gnu |
19190 | 1395 www-gnu = https://www.gnu.org |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1396 |
12864
9ab78f8f0368
maint.mk: allow the default upload destination dir to be overridden
Jim Meyering <meyering@redhat.com>
parents:
12863
diff
changeset
|
1397 upload_dest_dir_ ?= $(PACKAGE) |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1398 upload_command = \ |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1399 $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1400 --to $(gnu_rel_host):$(upload_dest_dir_) \ |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1401 $(rel-files) |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1402 emit_upload_commands: |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1403 @echo ===================================== |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1404 @echo ===================================== |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1405 @echo '$(upload_command)' |
12538
a8059f620e8f
maint.mk: create announcement template in ~/, not in /tmp
Jim Meyering <meyering@redhat.com>
parents:
12443
diff
changeset
|
1406 @echo '# send the ~/announce-$(my_distdir) e-mail' |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1407 @echo ===================================== |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1408 @echo ===================================== |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1409 |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1410 .PHONY: upload |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1411 upload: |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1412 $(AM_V_GEN)$(upload_command) |
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1413 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1414 define emit-commit-log |
15587
a9fbdd1023d5
maint.mk: mark the post-release commit log with "maint: " prefix
Jim Meyering <meyering@redhat.com>
parents:
15493
diff
changeset
|
1415 printf '%s\n' 'maint: post-release administrivia' '' \ |
a9fbdd1023d5
maint.mk: mark the post-release commit log with "maint: " prefix
Jim Meyering <meyering@redhat.com>
parents:
15493
diff
changeset
|
1416 '* NEWS: Add header line for next release.' \ |
a9fbdd1023d5
maint.mk: mark the post-release commit log with "maint: " prefix
Jim Meyering <meyering@redhat.com>
parents:
15493
diff
changeset
|
1417 '* .prev-version: Record previous version.' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1418 '* cfg.mk (old_NEWS_hash): Auto-update.' |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1419 endef |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1420 |
11534
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1421 .PHONY: no-submodule-changes |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1422 no-submodule-changes: |
17244
3b0b0f3b01a6
maint.mk: handle missing git with more grace
Peter Rosin <peda@lysator.liu.se>
parents:
17202
diff
changeset
|
1423 $(AM_V_GEN)if test -d $(srcdir)/.git \ |
3b0b0f3b01a6
maint.mk: handle missing git with more grace
Peter Rosin <peda@lysator.liu.se>
parents:
17202
diff
changeset
|
1424 && git --version >/dev/null 2>&1; then \ |
11547
3f43faadaf9d
maint: make the new no-submodule-changes rule VPATH-safe
Eric Blake <ebb9@byu.net>
parents:
11534
diff
changeset
|
1425 diff=$$(cd $(srcdir) && git submodule -q foreach \ |
3f43faadaf9d
maint: make the new no-submodule-changes rule VPATH-safe
Eric Blake <ebb9@byu.net>
parents:
11534
diff
changeset
|
1426 git diff-index --name-only HEAD) \ |
11534
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1427 || exit 1; \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1428 case $$diff in '') ;; \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1429 *) echo '$(ME): submodule files are locally modified:'; \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1430 echo "$$diff"; exit 1;; esac; \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1431 else \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1432 : ; \ |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1433 fi |
9f608fba8b1c
build: ensure that a release build fails when a submodule is unclean
Jim Meyering <meyering@redhat.com>
parents:
11519
diff
changeset
|
1434 |
14137
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1435 submodule-checks ?= no-submodule-changes public-submodule-commit |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1436 |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1437 # Ensure that each sub-module commit we're using is public. |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1438 # Without this, it is too easy to tag and release code that |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1439 # cannot be built from a fresh clone. |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1440 .PHONY: public-submodule-commit |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1441 public-submodule-commit: |
17244
3b0b0f3b01a6
maint.mk: handle missing git with more grace
Peter Rosin <peda@lysator.liu.se>
parents:
17202
diff
changeset
|
1442 $(AM_V_GEN)if test -d $(srcdir)/.git \ |
3b0b0f3b01a6
maint.mk: handle missing git with more grace
Peter Rosin <peda@lysator.liu.se>
parents:
17202
diff
changeset
|
1443 && git --version >/dev/null 2>&1; then \ |
14190
6699cf2b13db
maint.mk: improve the public-submodule-commit rule
Jim Meyering <meyering@redhat.com>
parents:
14140
diff
changeset
|
1444 cd $(srcdir) && \ |
17162
f54c37d872ca
maint.mk: avoid gratuitous failure
Theophile Ranquet <ranquet@lrde.epita.fr>
parents:
17143
diff
changeset
|
1445 git submodule --quiet foreach \ |
17579
b8e838c6fffc
maint: fix public-submodule-commit to work with newer git
Jim Meyering <meyering@fb.com>
parents:
17576
diff
changeset
|
1446 'test "$$(git rev-parse "$$sha1")" \ |
b8e838c6fffc
maint: fix public-submodule-commit to work with newer git
Jim Meyering <meyering@fb.com>
parents:
17576
diff
changeset
|
1447 = "$$(git merge-base origin "$$sha1")"' \ |
14137
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1448 || { echo '$(ME): found non-public submodule commit' >&2; \ |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1449 exit 1; }; \ |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1450 else \ |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1451 : ; \ |
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1452 fi |
14199
d6780f2a0ebc
maint.mk: make "check" depend on public-submodule-commit by default
Jim Meyering <meyering@redhat.com>
parents:
14190
diff
changeset
|
1453 # This rule has a high enough utility/cost ratio that it should be a |
d6780f2a0ebc
maint.mk: make "check" depend on public-submodule-commit by default
Jim Meyering <meyering@redhat.com>
parents:
14190
diff
changeset
|
1454 # dependent of "check" by default. However, some of us do occasionally |
d6780f2a0ebc
maint.mk: make "check" depend on public-submodule-commit by default
Jim Meyering <meyering@redhat.com>
parents:
14190
diff
changeset
|
1455 # commit a temporary change that deliberately points to a non-public |
d6780f2a0ebc
maint.mk: make "check" depend on public-submodule-commit by default
Jim Meyering <meyering@redhat.com>
parents:
14190
diff
changeset
|
1456 # submodule commit, and want to be able to use rules like "make check". |
14201
0efdc4f3700e
maint.mk: adjust variable name to be consistent with other gl_ vars
Jim Meyering <meyering@redhat.com>
parents:
14199
diff
changeset
|
1457 # In that case, run e.g., "make check gl_public_submodule_commit=" |
14199
d6780f2a0ebc
maint.mk: make "check" depend on public-submodule-commit by default
Jim Meyering <meyering@redhat.com>
parents:
14190
diff
changeset
|
1458 # to disable this test. |
14201
0efdc4f3700e
maint.mk: adjust variable name to be consistent with other gl_ vars
Jim Meyering <meyering@redhat.com>
parents:
14199
diff
changeset
|
1459 gl_public_submodule_commit ?= public-submodule-commit |
0efdc4f3700e
maint.mk: adjust variable name to be consistent with other gl_ vars
Jim Meyering <meyering@redhat.com>
parents:
14199
diff
changeset
|
1460 check: $(gl_public_submodule_commit) |
14137
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1461 |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1462 .PHONY: alpha beta stable release |
12083
b7b81ca175f4
maint.mk: requiring "make major" was annoying, for a "minor" release.
Jim Meyering <meyering@redhat.com>
parents:
12035
diff
changeset
|
1463 ALL_RECURSIVE_TARGETS += alpha beta stable |
14137
2dbfa19b11d0
maint.mk: add pre-release check to ensure submodule commits are public
Eric Blake <eblake@redhat.com>
parents:
14079
diff
changeset
|
1464 alpha beta stable: $(local-check) writable-files $(submodule-checks) |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1465 $(AM_V_GEN)test $@ = stable \ |
12083
b7b81ca175f4
maint.mk: requiring "make major" was annoying, for a "minor" release.
Jim Meyering <meyering@redhat.com>
parents:
12035
diff
changeset
|
1466 && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1467 || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1468 || : |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1469 $(AM_V_at)$(MAKE) vc-diff-check |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1470 $(AM_V_at)$(MAKE) news-check |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1471 $(AM_V_at)$(MAKE) distcheck |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1472 $(AM_V_at)$(MAKE) dist |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1473 $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1474 $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ |
12443
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1475 |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1476 release: |
17527
909b44293f8e
maint.mk: fix "release" target to build _version
Jim Meyering <meyering@fb.com>
parents:
17526
diff
changeset
|
1477 $(AM_V_GEN)$(MAKE) _version |
17109
58f466c59931
maint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille <akim@lrde.epita.fr>
parents:
17107
diff
changeset
|
1478 $(AM_V_GEN)$(MAKE) $(release-type) |
17106
e429e0d221f9
maint.mk: provide "make upload" to ease uploading
Akim Demaille <akim@lrde.epita.fr>
parents:
17105
diff
changeset
|
1479 |
12443
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1480 # Override this in cfg.mk if you follow different procedures. |
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1481 release-prep-hook ?= release-prep |
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1482 |
13871
8c865631b168
maint.mk: rename variable: s/noteworthy/gl_noteworthy_news_/
Jim Meyering <meyering@redhat.com>
parents:
13865
diff
changeset
|
1483 gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] |
12443
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1484 .PHONY: release-prep |
3a97f22a64eb
maint.mk: allow a project to override release-prep commands
Alfred M. Szmidt <ams@gnu.org>
parents:
12441
diff
changeset
|
1485 release-prep: |
17105
f8dcc5a28ca3
maint.mk: factor the validation of RELEASE_TYPE
Akim Demaille <akim@lrde.epita.fr>
parents:
17104
diff
changeset
|
1486 $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1487 > ~/announce-$(my_distdir) |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1488 $(AM_V_at)if test -d $(release_archive_dir); then \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1489 ln $(rel-files) $(release_archive_dir); \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1490 chmod a-w $(rel-files); \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1491 fi |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1492 $(AM_V_at)echo $(VERSION) > $(prev_version_file) |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1493 $(AM_V_at)$(MAKE) update-NEWS-hash |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1494 $(AM_V_at)perl -pi \ |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1495 -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1496 $(srcdir)/NEWS |
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1497 $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ |
17013
12eb56636194
maint.mk: avoid a sub-shell
Jim Meyering <meyering@redhat.com>
parents:
17012
diff
changeset
|
1498 cd $(srcdir) && $(VC) commit -m "$$msg" -a |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1499 |
13309
eeb72cb4f562
maint.mk: allow to pass options to gendocs.sh
Jim Meyering <meyering@redhat.com>
parents:
13306
diff
changeset
|
1500 # Override this with e.g., -s $(srcdir)/some_other_name.texi |
eeb72cb4f562
maint.mk: allow to pass options to gendocs.sh
Jim Meyering <meyering@redhat.com>
parents:
13306
diff
changeset
|
1501 # if the default $(PACKAGE)-derived name doesn't apply. |
eeb72cb4f562
maint.mk: allow to pass options to gendocs.sh
Jim Meyering <meyering@redhat.com>
parents:
13306
diff
changeset
|
1502 gendocs_options_ ?= |
eeb72cb4f562
maint.mk: allow to pass options to gendocs.sh
Jim Meyering <meyering@redhat.com>
parents:
13306
diff
changeset
|
1503 |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1504 .PHONY: web-manual |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1505 web-manual: |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1506 $(AM_V_GEN)test -z "$(manual_title)" \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1507 && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1508 $(AM_V_at)cd '$(srcdir)/doc'; \ |
16000
79bbea2afc18
maint.mk: don't maintain a second build-aux variable.
Gary V. Vaughan <gary@gnu.org>
parents:
15990
diff
changeset
|
1509 $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ |
13309
eeb72cb4f562
maint.mk: allow to pass options to gendocs.sh
Jim Meyering <meyering@redhat.com>
parents:
13306
diff
changeset
|
1510 -o '$(abs_builddir)/doc/manual' \ |
11495
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1511 --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ |
d88c5ec9288d
Sync maint.mk with coreutils.
Simon Josefsson <simon@josefsson.org>
parents:
11484
diff
changeset
|
1512 "$(PACKAGE_NAME) - $(manual_title)" |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1513 $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1514 |
17017
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1515 .PHONY: web-manual-update |
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1516 web-manual-update: |
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1517 $(AM_V_GEN)cd $(srcdir) \ |
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1518 && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) |
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1519 |
f8db24372e01
maint.mk: provide a web-manual-update target
Akim Demaille <akim@lrde.epita.fr>
parents:
17013
diff
changeset
|
1520 |
10738
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1521 # Code Coverage |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1522 |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1523 init-coverage: |
11406
ae9bcb808cfd
maint.mk: really add $(AM_MAKEFLAGS)
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents:
11405
diff
changeset
|
1524 $(MAKE) $(AM_MAKEFLAGS) clean |
10738
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1525 lcov --directory . --zerocounters |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1526 |
10757
0affc3e42aa9
maint.mk: Use --coverage.
Simon Josefsson <simon@josefsson.org>
parents:
10738
diff
changeset
|
1527 COVERAGE_CCOPTS ?= "-g --coverage" |
10738
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1528 COVERAGE_OUT ?= doc/coverage |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1529 |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1530 build-coverage: |
11406
ae9bcb808cfd
maint.mk: really add $(AM_MAKEFLAGS)
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents:
11405
diff
changeset
|
1531 $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) |
ae9bcb808cfd
maint.mk: really add $(AM_MAKEFLAGS)
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents:
11405
diff
changeset
|
1532 $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check |
10738
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1533 mkdir -p $(COVERAGE_OUT) |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1534 lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1535 --capture |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1536 |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1537 gen-coverage: |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1538 genhtml --output-directory $(COVERAGE_OUT) \ |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1539 $(COVERAGE_OUT)/$(PACKAGE).info \ |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1540 --highlight --frames --legend \ |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1541 --title "$(PACKAGE_NAME)" |
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1542 |
18648
b09a54d60570
maint.mk: support parallel execution of coverage
Pádraig Brady <P@draigBrady.com>
parents:
18626
diff
changeset
|
1543 coverage: |
b09a54d60570
maint.mk: support parallel execution of coverage
Pádraig Brady <P@draigBrady.com>
parents:
18626
diff
changeset
|
1544 $(MAKE) init-coverage |
b09a54d60570
maint.mk: support parallel execution of coverage
Pádraig Brady <P@draigBrady.com>
parents:
18626
diff
changeset
|
1545 $(MAKE) build-coverage |
b09a54d60570
maint.mk: support parallel execution of coverage
Pádraig Brady <P@draigBrady.com>
parents:
18626
diff
changeset
|
1546 $(MAKE) gen-coverage |
10738
af888e12d10d
top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
Simon Josefsson <simon@josefsson.org>
parents:
10368
diff
changeset
|
1547 |
17005
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1548 # Some projects carry local adjustments for gnulib modules via patches in |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1549 # a gnulib patch directory whose default name is gl/ (defined in bootstrap |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1550 # via local_gl_dir=gl). Those patches become stale as the originals evolve |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1551 # in gnulib. Use this rule to refresh any stale patches. It applies each |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1552 # patch to the original in $(gnulib_dir) and uses the temporary result to |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1553 # generate a fuzz-free .diff file. If you customize the name of your local |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1554 # gnulib patch directory via bootstrap.conf, this rule detects that name. |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1555 # Run this from a non-VPATH (i.e., srcdir) build directory. |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1556 .PHONY: refresh-gnulib-patches |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1557 refresh-gnulib-patches: |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1558 gl=gl; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1559 if test -f bootstrap.conf; then \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1560 t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1561 -e 'END{defined $$d and print $$d}' bootstrap.conf); \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1562 test -n "$$t" && gl=$$t; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1563 fi; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1564 for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1565 b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//'); \ |
17005
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1566 VERSION_CONTROL=none \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1567 patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1568 ( cd $(gnulib_dir) || exit 1; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1569 git diff "$$b" > "../$$gl/$$diff"; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1570 git checkout $$b ) || exit 1; \ |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1571 done |
f471a51b1369
maint.mk: new rule: refresh-gnulib-patches
Jim Meyering <meyering@redhat.com>
parents:
17001
diff
changeset
|
1572 |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1573 # Update gettext files. |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1574 PACKAGE ?= $(shell basename $(PWD)) |
11484
489151a3b578
maintainer-makefile: (PO_DOMAIN): New variable, allows overriding of gettext domain.
Simon Josefsson <simon@josefsson.org>
parents:
11468
diff
changeset
|
1575 PO_DOMAIN ?= $(PACKAGE) |
19192
d86e08b1f555
all: Replace many more http URLs by https URLs. Update stale URLs.
Bruno Haible <bruno@clisp.org>
parents:
19190
diff
changeset
|
1576 POURL = https://translationproject.org/latest/$(PO_DOMAIN)/ |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1577 PODIR ?= po |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1578 refresh-po: |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1579 rm -f $(PODIR)/*.po && \ |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1580 echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1581 wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1582 echo 'en@boldquot' > $(PODIR)/LINGUAS && \ |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1583 echo 'en@quot' >> $(PODIR)/LINGUAS && \ |
17613
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1584 ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \ |
c18fb7a002f4
maintainer-makefiles: use $(SED) for syntax check
Eric Blake <eblake@redhat.com>
parents:
17585
diff
changeset
|
1585 sort >> $(PODIR)/LINGUAS |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1586 |
13286
bacd8565eeaa
top/maint.mk (indent): Run twice to produce idempotent results.
Simon Josefsson <simon@josefsson.org>
parents:
13278
diff
changeset
|
1587 # Running indent once is not idempotent, but running it twice is. |
9811
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1588 INDENT_SOURCES ?= $(C_SOURCES) |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1589 .PHONY: indent |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1590 indent: |
5f79eb63c21e
Alter GNUmakefile to install into top directory.
Eric Blake <ebb9@byu.net>
parents:
diff
changeset
|
1591 indent $(INDENT_SOURCES) |
13286
bacd8565eeaa
top/maint.mk (indent): Run twice to produce idempotent results.
Simon Josefsson <simon@josefsson.org>
parents:
13278
diff
changeset
|
1592 indent $(INDENT_SOURCES) |
11776
9deb84e458cb
maint.mk: add a copyright-updating rule
Jim Meyering <meyering@redhat.com>
parents:
11750
diff
changeset
|
1593 |
11834
5c2855361aa1
maint.mk: support update-copyright-env
Joel E. Denny <jdenny@clemson.edu>
parents:
11788
diff
changeset
|
1594 # If you want to set UPDATE_COPYRIGHT_* environment variables, |
5c2855361aa1
maint.mk: support update-copyright-env
Joel E. Denny <jdenny@clemson.edu>
parents:
11788
diff
changeset
|
1595 # put the assignments in this variable. |
5c2855361aa1
maint.mk: support update-copyright-env
Joel E. Denny <jdenny@clemson.edu>
parents:
11788
diff
changeset
|
1596 update-copyright-env ?= |
5c2855361aa1
maint.mk: support update-copyright-env
Joel E. Denny <jdenny@clemson.edu>
parents:
11788
diff
changeset
|
1597 |
11776
9deb84e458cb
maint.mk: add a copyright-updating rule
Jim Meyering <meyering@redhat.com>
parents:
11750
diff
changeset
|
1598 # Run this rule once per year (usually early in January) |
9deb84e458cb
maint.mk: add a copyright-updating rule
Jim Meyering <meyering@redhat.com>
parents:
11750
diff
changeset
|
1599 # to update all FSF copyright year lists in your project. |
11836
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1600 # If you have an additional project-specific rule, |
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1601 # add it in cfg.mk along with a line 'update-copyright: prereq'. |
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1602 # By default, exclude all variants of COPYING; you can also |
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1603 # add exemptions (such as ChangeLog..* for rotated change logs) |
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1604 # in the file .x-update-copyright. |
11776
9deb84e458cb
maint.mk: add a copyright-updating rule
Jim Meyering <meyering@redhat.com>
parents:
11750
diff
changeset
|
1605 .PHONY: update-copyright |
11836
4103ca3d0881
maint.mk: simplify update-copyright rule
Eric Blake <ebb9@byu.net>
parents:
11834
diff
changeset
|
1606 update-copyright: |
17018
5c9f5fd5fc49
maint.mk: use silent-rules support from Automake
Akim Demaille <akim@lrde.epita.fr>
parents:
17017
diff
changeset
|
1607 $(AM_V_GEN)grep -l -w Copyright \ |
11847
5dd8e8cf05db
maint.mk: give full control over update-copyright exclusions
Joel E. Denny <jdenny@clemson.edu>
parents:
11836
diff
changeset
|
1608 $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ |
16000
79bbea2afc18
maint.mk: don't maintain a second build-aux variable.
Gary V. Vaughan <gary@gnu.org>
parents:
15990
diff
changeset
|
1609 | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1610 |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1611 # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1612 # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1613 |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1614 # NOTE: to override any _gl_TS_* default value, you must |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1615 # define the variable(s) using "export" in cfg.mk. |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1616 _gl_TS_dir ?= src |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1617 |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1618 ALL_RECURSIVE_TARGETS += sc_tight_scope |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1619 sc_tight_scope: tight-scope.mk |
15615
79e8ec9a79db
maint.mk: sc_tight_scope: propagate failure from sub-make
Jim Meyering <meyering@redhat.com>
parents:
15587
diff
changeset
|
1620 @fail=0; \ |
79e8ec9a79db
maint.mk: sc_tight_scope: propagate failure from sub-make
Jim Meyering <meyering@redhat.com>
parents:
15587
diff
changeset
|
1621 if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1622 > /dev/null \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1623 && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1624 > /dev/null 2>&1; then \ |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1625 echo '$(ME): skipping $@'; \ |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1626 else \ |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1627 $(MAKE) -s -C $(_gl_TS_dir) \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1628 -f Makefile \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1629 -f $(abs_top_srcdir)/cfg.mk \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1630 -f $(abs_top_builddir)/$< \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1631 _gl_tight_scope \ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1632 || fail=1; \ |
15615
79e8ec9a79db
maint.mk: sc_tight_scope: propagate failure from sub-make
Jim Meyering <meyering@redhat.com>
parents:
15587
diff
changeset
|
1633 fi; \ |
79e8ec9a79db
maint.mk: sc_tight_scope: propagate failure from sub-make
Jim Meyering <meyering@redhat.com>
parents:
15587
diff
changeset
|
1634 rm -f $<; \ |
79e8ec9a79db
maint.mk: sc_tight_scope: propagate failure from sub-make
Jim Meyering <meyering@redhat.com>
parents:
15587
diff
changeset
|
1635 exit $$fail |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1636 |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1637 tight-scope.mk: $(ME) |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1638 @rm -f $@ $@-t |
16088
780e83599399
maint.mk: fix tight-scope.mk generation in VPATH builds.
Gary V. Vaughan <gary@gnu.org>
parents:
16055
diff
changeset
|
1639 @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1640 @chmod a=r $@-t && mv $@-t $@ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1641 |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1642 ifeq (a,b) |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1643 # TS-start |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1644 |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1645 # Most functions should have static scope. |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1646 # Any that don't must be marked with 'extern', but 'main' |
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1647 # and 'usage' are exceptions: they're always extern, but |
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1648 # do not need to be marked. Symbols matching '__.*' are |
14754
1299c18d8f6a
maint.mk: exclude compiler symbols from sc_tight_scope
Pádraig Brady <P@draigBrady.com>
parents:
14728
diff
changeset
|
1649 # reserved by the compiler, so are automatically excluded below. |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1650 _gl_TS_unmarked_extern_functions ?= main usage |
18135
a2239167f5f7
maint.mk: _gl_TS_function_match: fix "extern" name extracting regexp
Jim Meyering <meyering@fb.com>
parents:
18134
diff
changeset
|
1651 _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\w+) *\(/ |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1652 |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1653 # If your project uses a macro like "XTERN", then put |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1654 # the following in cfg.mk to override this default: |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1655 # export _gl_TS_extern = extern|XTERN |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1656 _gl_TS_extern ?= extern |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1657 |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1658 # The second nm|grep checks for file-scope variables with 'extern' scope. |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1659 # Without gnulib's progname module, you might put program_name here. |
16235
18a38c9615f0
In commentary, do not use ` to quote.
Paul Eggert <eggert@cs.ucla.edu>
parents:
16212
diff
changeset
|
1660 # Symbols matching '__.*' are reserved by the compiler, |
14754
1299c18d8f6a
maint.mk: exclude compiler symbols from sc_tight_scope
Pádraig Brady <P@draigBrady.com>
parents:
14728
diff
changeset
|
1661 # so are automatically excluded below. |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1662 _gl_TS_unmarked_extern_vars ?= |
14718
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1663 |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1664 # NOTE: the _match variables are perl expressions -- not mere regular |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1665 # expressions -- so that you can extend them to match other patterns |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1666 # and easily extract matched variable names. |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1667 # For example, if your project declares some global variables via |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1668 # a macro like this: GLOBAL(type, var_name, initializer), then you |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1669 # can override this definition to automatically extract those names: |
b952f928cb43
maint.mk: change semantics/name of tight_scope variables
Jim Meyering <meyering@redhat.com>
parents:
14717
diff
changeset
|
1670 # export _gl_TS_var_match = \ |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1671 # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1672 _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1673 |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1674 # The names of object files in (or relative to) $(_gl_TS_dir). |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1675 _gl_TS_obj_files ?= *.$(OBJEXT) |
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1676 |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1677 # Files in which to search for the one-line style extern declarations. |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1678 # $(_gl_TS_dir)-relative. |
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1679 _gl_TS_headers ?= $(noinst_HEADERS) |
17091
ecace80c3b49
maint.mk: generalize _gl_tight_scope for non-recursive make
Jim Meyering <meyering@redhat.com>
parents:
17090
diff
changeset
|
1680 _gl_TS_other_headers ?= *.h |
14801
60872968acd0
maint.mk: more tight_scope improvements
Jim Meyering <meyering@redhat.com>
parents:
14800
diff
changeset
|
1681 |
14716
8cfc1daa9cff
maint.mk: tweak new rule's name not to impinge
Jim Meyering <meyering@redhat.com>
parents:
14715
diff
changeset
|
1682 .PHONY: _gl_tight_scope |
8cfc1daa9cff
maint.mk: tweak new rule's name not to impinge
Jim Meyering <meyering@redhat.com>
parents:
14715
diff
changeset
|
1683 _gl_tight_scope: $(bin_PROGRAMS) |
18134
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1684 sed_wrap='s/^/^_?/;s/$$/$$/'; \ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1685 t=exceptions-$$$$; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1686 trap 's=$$?; rm -f $$t; exit $$s' 0; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1687 for sig in 1 2 3 13 15; do \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1688 eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1689 done; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1690 src=`for f in $(SOURCES); do \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1691 test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1692 hdr=`for f in $(_gl_TS_headers); do \ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1693 test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ |
18134
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1694 ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1695 grep -h -A1 '^extern .*[^;]$$' $$src \ |
18139
1393742e21f0
maint.mk: sc_tight_scope: remove extraneous expressions
Pádraig Brady <P@draigBrady.com>
parents:
18135
diff
changeset
|
1696 | grep -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ |
14800
a5a7a62228b6
maint.mk: generalize/improve the tight-scope rule
Jim Meyering <meyering@redhat.com>
parents:
14756
diff
changeset
|
1697 perl -lne \ |
18134
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1698 '$(_gl_TS_function_match) and print $$1' $$hdr; \ |
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1699 ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ |
17866
0b202278c177
maint.mk: fix compatibility with OS X nm
Pádraig Brady <P@draigBrady.com>
parents:
17848
diff
changeset
|
1700 nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|grep -Ev -f $$t \ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1701 && { echo the above functions should have static scope >&2; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1702 exit 1; } || : ; \ |
18134
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1703 ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \ |
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1704 perl -lne '$(_gl_TS_var_match) and print $$1' \ |
17091
ecace80c3b49
maint.mk: generalize _gl_tight_scope for non-recursive make
Jim Meyering <meyering@redhat.com>
parents:
17090
diff
changeset
|
1705 $$hdr $(_gl_TS_other_headers) \ |
18134
4c7844c2aa58
maint.mk: sc_tight_scope: factor and support OS X
Jim Meyering <meyering@fb.com>
parents:
17866
diff
changeset
|
1706 ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ |
17866
0b202278c177
maint.mk: fix compatibility with OS X nm
Pádraig Brady <P@draigBrady.com>
parents:
17848
diff
changeset
|
1707 nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \ |
14715
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1708 | sort -u | grep -Ev -f $$t \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1709 && { echo the above variables should have static scope >&2; \ |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1710 exit 1; } || : |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1711 # TS-end |
80242e285601
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
Jim Meyering <meyering@redhat.com>
parents:
14709
diff
changeset
|
1712 endif |