summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--top/maint.mk10
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4d4137ed42..9bacb894b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-09 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
+ * top/maint.mk (sc_proper_name_utf8_requires_ICONV): Adapt to work
+ also when $(LIBICONV) is part of LDADD, rather than ${prog}_LDADD.
+
2010-01-08 Simon Josefsson <simon@josefsson.org>
* lib/dup2.c (rpl_dup2): Improve comment.
diff --git a/top/maint.mk b/top/maint.mk
index 3cd1a93bf0..3651543267 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -524,14 +524,20 @@ sc_prohibit_S_IS_definition:
msg='do not define S_IS* macros; include <sys/stat.h>' \
$(_prohibit_regexp)
-# Each program that uses proper_name_utf8 must link with
-# one of the ICONV libraries.
+# Each program that uses proper_name_utf8 must link with one of the
+# ICONV libraries. Otherwise, some ICONV library must appear in LDADD.
+# The perl -0777 invocation below extracts the possibly-multi-line
+# definition of LDADD from the appropriate Makefile.am and exits 0
+# when it contains "ICONV".
sc_proper_name_utf8_requires_ICONV:
@progs=$$(grep -l 'proper_name_utf8 ''("' $$($(VC_LIST_EXCEPT)));\
if test "x$$progs" != x; then \
fail=0; \
for p in $$progs; do \
dir=$$(dirname "$$p"); \
+ perl -0777 \
+ -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \
+ $$dir/Makefile.am && continue; \
base=$$(basename "$$p" .c); \
grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \
|| { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \