maint: indent with TABs in Makefile
[gnulib.git] / Makefile
1 # Makefile for gnulib central.
2 # Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc.
3 #
4 # Copying and distribution of this file, with or without modification,
5 # in any medium, are permitted without royalty provided the copyright
6 # notice and this notice are preserved.
7
8 # Produce some files that are not stored in the repository.
9 all:
10
11 # Produce the documentation in readable form.
12 info html dvi pdf:
13         cd doc && $(MAKE) $@ && $(MAKE) mostlyclean
14
15 # Perform some platform independent checks on the gnulib code.
16 check: \
17   sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT                     \
18   sc_pragma_columns                                                     \
19   sc_prefer_ac_check_funcs_once
20
21 sc_prefer_ac_check_funcs_once:
22         if test -d .git; then                                           \
23           git grep -w -l AC_CHECK_FUNCS modules                         \
24             && { echo use AC_CHECK_FUNCS_ONCE, not AC_CHECK_FUNCS       \
25                    in modules/ 1>&2; exit 1; } || :                     \
26         else :; fi
27
28 sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT:
29         if test -d .git; then                                           \
30           url=http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/22874; \
31           git grep '^[   ]*TESTS_ENVIRONMENT += PATH=' modules          \
32             && { printf '%s\n' 'Do not augment PATH via TESTS_ENVIRONMENT;' \
33                  "  see <$$url>" 1>&2; exit 1; } || :                   \
34         else :; fi
35
36 sc_pragma_columns:
37         if test -d .git; then                                           \
38           git ls-files|grep '\.in\.h$$'                                 \
39               | xargs grep -l '^@PRAGMA_SYSTEM_HEADER@'                 \
40               | xargs grep -L '^@PRAGMA_COLUMNS@'                       \
41               | grep .                                                  \
42             && { printf '%s\n'                                          \
43                    'the files listed above use @PRAGMA_SYSTEM_HEADER@'  \
44                    'without also using @PRAGMA_COLUMNS@' 1>&2;          \
45                  exit 1; } || :;                                        \
46         else :; fi
47
48 # Regenerate some files that are stored in the repository.
49 regen: MODULES.html
50
51 # MODULES.html is periodically being generated and copied to the web pages at
52 # :ext:USER@cvs.savannah.gnu.org:/web/gnulib/gnulib/
53 # where it then appears at <http://www.gnu.org/software/gnulib/MODULES.html>.
54 MODULES.html: MODULES.html.sh
55         ./MODULES.html.sh > MODULES.html