# This Makefile requires the use of GNU make. Some targets require
# that you have tools like git, makeinfo and cppi installed.
+# Required for the use of <(...) below.
+SHELL=/bin/bash
+
# Produce some files that are not stored in the repository.
all:
in modules/ 1>&2; exit 1; } || : \
else :; fi
+sc_prohibit_leading_TABs:
+ if test -d .git; then \
+ git grep -l '^ * ' lib m4 tests \
+ | grep -Ev '^lib/reg|Makefile|test-update-copyright' \
+ | grep . \
+ && { printf '*** %s\n' 'indent with spaces, not TABs;' \
+ 1>&2; exit 1; } || : \
+ else :; fi
+
sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT:
if test -d .git; then \
url=http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/22874; \
fcntl \
fprintf-posix \
open \
- printf-posix \
+ printf-posix-rpl \
snprintf \
sprintf-posix \
stdio_h \
$$(cd ./modules; grep -ilrE '(meyering|blake)' .) \
| sort -u \
| grep '\.c$$' \
- | grep -v '/getloadavg\.c$$' \
+ | grep -vE '/(stdio-(read|write)|getloadavg)\.c$$' \
| xargs cppi -c
+# Ensure that the list of symbols checked for by the
+# sc_prohibit_intprops_without_use rule match those in the actual file.
+# Extract the symbols from the .h file and compare with the list of
+# symbols extracted from the rule in maint.mk.
+sc_check_sym_list:
+ i=lib/intprops.h; \
+ diff -u <(perl -lne '/^# *define ([A-Z]\w+)\(/ and print $$1' $$i|fmt) \
+ <(sed -n /^_intprops_name/,/^_intprops_syms_re/p top/maint.mk \
+ |sed '/^_/d;s/^ //;s/ *\\$$//')
+
# Regenerate some files that are stored in the repository.
regen: MODULES.html