summaryrefslogtreecommitdiff
path: root/cfg.mk
blob: 58c01cc065172de9f4389ea90b28d2ef9451fd17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# cfg.mk -- Configuration for maintainer-makefile
#
#   Copyright (c) 2011 Free Software Foundation, Inc.
#   Written by Gary V. Vaughan, 2011
#
#   This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING.  If not, a copy
# can be downlodad from http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Boston, # MA 02111-1301, USA.

# Set format of NEWS
old_NEWS_hash := d41d8cd98f00b204e9800998ecf8427e

manual_title = Portable Dynamic Shared Object Management

# Set the release announcement email addresses, maint.mk will email the
# translation-project instead of autotools-announce otherwise.
ifeq ($(RELEASE_TYPE),stable)
announcement_Cc_ = autotools-announce@gnu.org
else
announcement_Cc_ = autotools-announce@gnu.org, $(PACKAGE_BUGREPORT)
endif

# Don't syntax check the mail subdirectory.
VC_LIST_ALWAYS_EXCLUDE_REGEX = ^mail/

local-checks-to-fix =				\
	sc_prohibit_always-defined_macros	\
	sc_require_config_h			\
	sc_require_config_h_first

local-checks-to-skip =				\
	$(local-checks-to-fix)			\
	sc_GPL_version				\
	sc_cast_of_x_alloc_return_value		\
	sc_trailing_blank			\
	sc_unmarked_diagnostics

# GPL_version: checks for GPLv3, which we don't use
# cast_of_x_alloc_return_value:
#         We support C++ compilation which does require casting here.
# trailing_blank: flags valid rfc3676 separators
# unmarked_diagnostics: libtool isn't internationalized

sc_trailing_blank-non-rfc3676:
	@prohibit='([^-][^-][	 ][	 ]*|^[	 ][	 ]*)$$'		\
	halt='found trailing blank(s)'					\
	  $(_sc_search_regexp)

# Avoid useless quotes around assignments with no shell metacharacters.
# Backtick and dollar expansions are not resplit on the RHS of an
# assignment, so those metachars are not listed in the prohibit regex,
# although @ is listed, since it most likely indicates that something
# will be spliced in before the shell executes, and it may need to be
# quoted if it contains any metacharacters after splicing.
define _sc_search_regexp_or_exclude
  files=$$($(VC_LIST_EXCEPT));						\
  if test -n "$$files"; then						\
    grep -nE "$$prohibit" $$files | grep -v '## exclude from $@'	\
      && { msg="$$halt" $(_sc_say_and_exit) } || :;			\
  else :;								\
  fi || :;
endef

sc_useless_quotes_in_assignment:
	@prohibit='^[	 ]*[A-Za-z_][A-Za-z0-9_]*="[^	 !#&()*;<>?@~^{|}]*"$$'	\
	halt='found spurious quotes around assignment value'		\
	  $(_sc_search_regexp_or_exclude)

# Avoid useless quotes around case arguments such as:
#   case "$foo" in ...
exclude_file_name_regexp--sc_useless_quotes_in_case = ^cfg.mk$$
sc_useless_quotes_in_case:
	@prohibit='case "[^	 "]*"[	 ][	 ]*in'			\
	halt='found spurious quotes around case argument'		\
	  $(_sc_search_regexp)

# List syntax-check exempted files.
exclude_file_name_regexp--sc_bindtextdomain = ^tests/.*demo[0-9]*/.*\.c$$
exclude_file_name_regexp--sc_error_message_uppercase = \
  ^$(_build-aux)/cvsu$$
exclude_file_name_regexp--sc_program_name = ^tests/.*demo[0-9]*/.*\.c$$
exclude_file_name_regexp--sc_prohibit_strcmp = \
  ^(doc/libtool.texi|tests/.*demo/.*\.c)$$
exclude_file_name_regexp--sc_prohibit_test_minus_ao = \
  ^m4/libtool.m4$$
exclude_file_name_regexp--sc_space_tab = \.diff$$
exclude_file_name_regexp--sc_trailing_blank-non-rfc3676 = \.diff$$