* THANKS: Update, now that I have a name for jemm4jemm.
[coreutils/bo.git] / doc / Makefile.am
blob870c33e33c534aa5b56d81daab3e083b25bfdb99
1 # Make coreutils documentation.                         -*-Makefile-*-
3 # Copyright (C) 1995-1998, 2001-2007 Free Software Foundation, Inc.
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 info_TEXINFOS = coreutils.texi
20 EXTRA_DIST = perm.texi getdate.texi constants.texi fdl.texi
22 # The following is necessary if the package name is 8 characters or longer.
23 # If the info documentation would be split into 10 or more separate files,
24 # then this is necessary even if the package name is 7 characters long.
26 # Tell makeinfo to put everything in a single info file: <package>.info.
27 # Otherwise, it would also generate files with names like <package>.info-[123],
28 # and those names all map to one 14-byte name (<package>.info-) on some crufty
29 # old systems.
30 AM_MAKEINFOFLAGS = --no-split
32 constants.texi: $(top_srcdir)/src/tail.c
33         LC_ALL=C \
34         sed -n -e 's/^#define \(DEFAULT_MAX[_A-Z]*\) \(.*\)/@set \1 \2/p' \
35           $(top_srcdir)/src/tail.c > t-$@
36         mv t-$@ $@
38 MAINTAINERCLEANFILES = constants.texi
40 $(DVIS): $(EXTRA_DIST)
41 $(INFO_DEPS): $(EXTRA_DIST)
43 # Extended regular expressions to match word starts and ends.
44 _W = (^|[^A-Za-z0-9_])
45 W_ = ([^A-Za-z0-9_]|$$)
47 syntax_checks =         \
48   sc-avoid-io           \
49   sc-avoid-non-zero     \
50   sc-avoid-timezone     \
51   sc-avoid-zeroes       \
52   sc-exponent-grouping  \
53   sc-use-small-caps-NUL
55 .PHONY: $(syntax_checks) check-texinfo
57 # List words/regexps here that should not appear in the texinfo documentation.
58 check-texinfo: $(syntax_checks)
59         fail=0; \
60         grep '@url{' $(srcdir)/*.texi && fail=1; \
61         grep '\$$@"' $(srcdir)/*.texi && fail=1; \
62         grep -n '[^[:punct:]]@footnote' $(srcdir)/*.texi && fail=1; \
63         grep -n filename $(srcdir)/*.texi \
64             | $(EGREP) -v 'setfilename|[{]filename[}]' \
65           && fail=1; \
66         $(PERL) -e 1 2> /dev/null && { $(PERL) -ne \
67           '/\bPOSIX\b/ && !/\@acronym{POSIX}/ && !/^\* / || /{posix}/ and print,exit 1' \
68           $(srcdir)/*.texi 2> /dev/null || fail=1; }; \
69         $(EGREP) -i '$(_W)builtins?$(W_)' $(srcdir)/*.texi && fail=1; \
70         $(EGREP) -i '$(_W)path(name)?s?$(W_)' $(srcdir)/*.texi \
71           | $(EGREP) -v '@vindex PATH$$|@env[{]PATH[}]' && fail=1; \
72         exit $$fail
74 # Use `time zone', not `timezone'.
75 sc-avoid-timezone:
76         $(EGREP) timezone $(srcdir)/*.texi && exit 1 || :
78 # Check for insufficient exponent grouping, e.g.,
79 # @math{2^64} should be @math{2^{64}}.
80 sc-exponent-grouping:
81         $(EGREP) '\{.*\^[0-9][0-9]' $(srcdir)/*.texi && exit 1 || :
83 # E.g., use @sc{nul}, not NUL.
84 sc-use-small-caps-NUL:
85         $(EGREP) '$(_W)NUL$(W_)' $(srcdir)/*.texi && exit 1 || :
87 # Say I/O, not IO.
88 sc-avoid-io:
89         $(EGREP) '$(_W)IO$(W_)' $(srcdir)/*.texi && exit 1 || :
91 # I prefer nonzero over non-zero.
92 sc-avoid-non-zero:
93         $(EGREP) non-zero $(srcdir)/*.texi && exit 1 || :
95 # Use `zeros', not `zeroes' (nothing wrong with `zeroes'. just be consistent).
96 sc-avoid-zeroes:
97         $(EGREP) -i '$(_W)zeroes$(W_)' $(srcdir)/*.texi && exit 1 || :
99 check: check-texinfo