X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=Makefile;h=5dda3b5593c8baa840d83cde6b8192571e32a7b0;hb=4182945756440f7cd372997318210fdb954ebbda;hp=c3bf4a979dfdd122772eb4c43684c4f860d2cc6c;hpb=897b54c334d903950172863b57b5de744b3c5092;p=gnulib.git diff --git a/Makefile b/Makefile index c3bf4a979..5dda3b559 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,13 @@ -# Makefile for gnulib central. +# GNU Makefile for gnulib central. # Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # in any medium, are permitted without royalty provided the copyright # notice and this notice are preserved. +# This Makefile requires the use of GNU make. Some targets require +# that you have tools like git, makeinfo and cppi installed. + # Produce some files that are not stored in the repository. all: @@ -12,11 +15,12 @@ all: info html dvi pdf: cd doc && $(MAKE) $@ && $(MAKE) mostlyclean +# Collect the names of rules starting with `sc_'. +syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p'\ + Makefile)) + # Perform some platform independent checks on the gnulib code. -check: \ - sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT \ - sc_pragma_columns \ - sc_prefer_ac_check_funcs_once +check: $(syntax-check-rules) sc_prefer_ac_check_funcs_once: if test -d .git; then \ @@ -33,6 +37,42 @@ sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT: " see <$$url>" 1>&2; exit 1; } || : \ else :; fi +# Files in m4/ that (exceptionally) may use AC_LIBOBJ. +# Do not include their ".m4" suffix. +allow_AC_LIBOBJ = \ + close \ + dprintf \ + dup2 \ + faccessat \ + fchdir \ + fclose \ + fcntl \ + fprintf-posix \ + open \ + printf-posix-rpl \ + snprintf \ + sprintf-posix \ + stdio_h \ + vasnprintf \ + vasprintf \ + vdprintf \ + vfprintf-posix \ + vprintf-posix \ + vsnprintf \ + vsprintf-posix + +allow_AC_LIBOBJ_or := $(shell echo $(allow_AC_LIBOBJ) | tr -s ' ' '|') + +sc_prohibit_AC_LIBOBJ_in_m4: + url=http://article.gmane.org/gmane.comp.lib.gnulib.bugs/26995; \ + if test -d .git; then \ + git ls-files m4 \ + | grep -Ev '^m4/($(allow_AC_LIBOBJ_or))\.m4$$' \ + | xargs grep '^ *AC_LIBOBJ(' \ + && { printf '%s\n' 'Do not use AC_LIBOBJ in m4/*.m4;' \ + "see <$$url>"; exit 1; } || :; \ + else :; fi + sc_pragma_columns: if test -d .git; then \ git ls-files|grep '\.in\.h$$' \ @@ -45,6 +85,16 @@ sc_pragma_columns: exit 1; } || :; \ else :; fi +# Verify that certain (for now, only Jim Meyering and Eric Blake's) +# *.c files are consistently cpp indented. +sc_cpp_indent_check: + ./gnulib-tool --extract-filelist \ + $$(cd ./modules; grep -ilrE '(meyering|blake)' .) \ + | sort -u \ + | grep '\.c$$' \ + | grep -v '/getloadavg\.c$$' \ + | xargs cppi -c + # Regenerate some files that are stored in the repository. regen: MODULES.html