aboutsummaryrefslogtreecommitdiff
path: root/doc/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Makefile.am')
-rw-r--r--doc/Makefile.am141
1 files changed, 141 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..0394d05
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,141 @@
+# This file is part of Mailfromd.
+# Copyright (C) 2005, 2006, 2007, 2008 Sergey Poznyakoff
+#
+# Mailfromd is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# Mailfromd is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Mailfromd. If not, see <http://www.gnu.org/licenses/>.
+
+info_TEXINFOS=mailfromd.texi
+mailfromd_TEXINFOS=\
+ fdl.texi\
+ gacopyz.texi\
+ macros.texi\
+ mtasim.texi\
+ rendition.texi\
+ strftime.texi\
+ values.texi
+
+EXTRA_DIST = \
+ check-docs.sh\
+ gendocs_template\
+ mastermenu.el\
+ untabify.el
+
+clean-local:
+ rm -rf manual
+
+# Checking
+check-format:
+ @if test -n "`cat $(info_TEXINFOS) $(mailfromd_TEXINFOS) | tr -d -c '\t'`"; then \
+ echo "Sources contain tabs; run make untabify"; \
+ false; \
+ fi
+
+check-pragmas:
+ @check-docs.sh pragmas \
+ '/} option_cache\[\] = {/,/^}/s/[ \t]*{ *"\(.*\)".*/\1/pg' \
+ 's/@deffnx* {pragma option} *\([^@, ]*\) .*/\1/p' \
+ $(top_srcdir)/mfd/main.c -- \
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
+ $(info_TEXINFOS)
+
+check-options:
+ @check-docs.sh options \
+ '/argp_option options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \
+ 's/@opindex *\([^@,]*\).*/\1/p' \
+ $(top_srcdir)/mfd/main.c -- \
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
+ $(info_TEXINFOS)
+
+check-builtins:
+ @check-docs.sh builtins \
+ '/MF_DEFUN/{s/[ \t]*MF_DEFUN *(\([^,][^,]*\),.*/\1/p;\
+ s/[ \t]*MF_DEFUN_VARARGS *(\([^,][^,]*\),.*/\1/p}' \
+ 's/@deftypefn {Built-in Function} *[^ ][^ ]* *\([^ ]*\).*/\1/p' \
+ $(top_srcdir)/mfd/bi_*.m4 -- \
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
+ $(info_TEXINFOS)
+
+check-mflib:
+ @check-docs.sh "library functions" \
+ '/^[ \t]*func[ \t][ \t]*__/b;\
+ /^[ \t]*func/s/[ \t]*func[ \t][ \t]*\(.[^ \t(]*\).*/\1/p' \
+ 's/@deftypefn {Library Function} *[^ ][^ ]* *\([^ ]*\).*/\1/p' \
+ $(top_srcdir)/mflib/*.mf -- \
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
+ $(info_TEXINFOS)
+
+check-exceptions:
+ @check-docs.sh exceptions \
+ '/typedef enum mf_status_code {/,/^};/s/[ \t]*mf_\(.*\),.*/\1/p' \
+ 's/@cindex \([^,][^,]*\), exception type/\1/p' \
+ $(top_srcdir)/mfd/mailfromd.h -- \
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
+ $(info_TEXINFOS)
+
+check-refs:
+ @sed -e = $(info_TEXINFOS) $(mailfromd_TEXINFOS) | \
+ sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/$(info_TEXINFOS):\1: \2/gp}' > $@-t; \
+ if [ -s $@-t ]; then echo "Unresolved cross-references:"; cat $@-t;\
+ fi
+ rm -f $@-t
+
+check-fixmes:
+ @sed -e = $(info_TEXINFOS) | \
+ sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/$(info_TEXINFOS):\1: \2/gp}' > $@-t; \
+ if [ -s $@-t ]; then echo "Unresolved FIXMEs:"; cat $@-t;\
+ fi
+ rm -f $@-t
+
+check-unrevised:
+ @grep -Hn @UNREVISED $(info_TEXINFOS) > $@-t; \
+ if [ -s $@-t ]; then \
+ echo "Unrevised nodes:"; \
+ cat $@-t; \
+ rm $@-t; \
+ false;\
+ else \
+ rm $@-t; \
+ fi
+
+all-check-docs: check-format check-options check-pragmas check-builtins check-mflib check-exceptions check-refs check-fixmes check-unrevised
+
+check-docs:
+ $(MAKE) -k all-check-docs
+
+#
+
+master-menu:
+ emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS)
+
+untabify:
+ emacs -batch -l untabify.el $(info_TEXINFOS) $(mailfromd_TEXINFOS)
+
+final: untabify master-menu
+
+# The rendering level is one of PUBLISH, DISTRIB or PROOF.
+# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
+
+MAKEINFOFLAGS=-D$(RENDITION)
+
+GENDOCS=gendocs.sh
+
+TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
+
+# Make sure you set TEXINPUTS.
+# TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions
+manual:
+ TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
+ MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
+ TEXI2DVI="$(TEXI2DVI) -t @finalout" \
+ $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
+

Return to:

Send suggestions and report system problems to the System administrator.