changeset 12608:d2cfa946257a

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.
author Jim Meyering <meyering@redhat.com>
date Sat, 09 Jan 2010 11:41:00 +0100
parents 6b3184074239
children 887426b7b1d6
files ChangeLog top/maint.mk
diffstat 2 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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.
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -524,14 +524,20 @@
 	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"; }; \