enforce the proper_name_utf8-requires-ICONV link rule
authorJim Meyering <meyering@redhat.com>
Mon, 9 Jun 2008 08:52:20 +0000 (10:52 +0200)
committerJim Meyering <meyering@redhat.com>
Mon, 9 Jun 2008 08:54:57 +0000 (10:54 +0200)
* maint.mk (sc_proper_name_utf8_requires_ICONV): New rule.
* src/Makefile.am (timeout_LDADD, truncate_LDADD): Add $(LIBICONV).

maint.mk
src/Makefile.am

index 9363baf..7f86349 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -466,6 +466,23 @@ sc_immutable_NEWS:
            { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \
        fi
 
+# Each program that uses proper_name_utf8 must link with
+# one of the ICONV libraries.
+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");                                      \
+           base=$$(basename "$$p" .c);                                 \
+           grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \
+             || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \
+         done;                                                         \
+         test $$fail = 1 &&                                            \
+           { echo 1>&2 '$(ME): the above not link with any ICONV library'; \
+             exit 1; } || :;                                           \
+       fi
+
 # Update the hash stored above.  Do this after each release and
 # for any corrections to old entries.
 update-NEWS-hash: NEWS
index 04c4615..342fc09 100644 (file)
@@ -81,6 +81,8 @@ df_LDADD = $(LDADD)
 du_LDADD = $(LDADD)
 ptx_LDADD = $(LDADD)
 split_LDADD = $(LDADD)
+timeout_LDADD = $(LDADD)
+truncate_LDADD = $(LDADD)
 
 # for eaccess in lib/euidaccess.c.
 chcon_LDADD = $(LDADD) $(LIB_SELINUX)
@@ -151,6 +153,8 @@ df_LDADD += $(LIBICONV)
 du_LDADD += $(LIBICONV)
 ptx_LDADD += $(LIBICONV)
 split_LDADD += $(LIBICONV)
+timeout_LDADD += $(LIBICONV)
+truncate_LDADD += $(LIBICONV)
 
 $(PROGRAMS): ../lib/libcoreutils.a