# 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 . info_TEXINFOS=mailfromd.texi mailfromd_TEXINFOS=\ fdl.texi\ gacopyz.texi\ macros.texi\ mtasim.texi\ pies.texi\ pmult.texi\ rendition.texi\ smap.texi\ strftime.texi\ upgrade.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 *(\([a-zA-Z_][a-zA-Z0-9_]*\),.*/\1/p;s/[ \t]*MF_DEFUN_VARARGS\(_NO_PROM\)\? *(\([a-zA-Z_][a-zA-Z0-9_]*\),.*/\2/p;s/[ \t]*MF_DEFUN_CTYPE *(\([a-zA-Z_][a-zA-Z0-9_]*\))/\1/p}'\ 's/@deftypefnx\{0,1\} {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_exception_code {/,/^};/s/[ \t]*mfe_\(.*\),.*/e_\1/p;/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: @for file in $(info_TEXINFOS) $(mailfromd_TEXINFOS); \ do \ sed -e = $$file | \ sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \ done > $@-t; \ if [ -s $@-t ]; then \ echo "Unresolved cross-references:"; \ cat $@-t;\ rm $@-t; \ else \ rm -f $@-t; \ fi check-fixmes: @for file in $(info_TEXINFOS) $(mailfromd_TEXINFOS); \ do \ sed -e = $$file | \ sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \ done > $@-t; \ if [ -s $@-t ]; then \ echo "Unresolved FIXMEs:"; \ cat $@-t; \ rm $@-t; \ false; \ else \ rm -f $@-t; \ fi check-writeme: @grep -Hn @WRITEME $(info_TEXINFOS) $(mailfromd_TEXINFOS) > $@-t; \ if [ -s $@-t ]; then \ echo "Empty nodes:"; \ cat $@-t; \ rm $@-t; \ false;\ else \ rm $@-t; \ fi check-unrevised: @grep -Hn @UNREVISED $(info_TEXINFOS) $(mailfromd_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-writeme check-unrevised check-docs: @$(MAKE) -k all-check-docs # master-menu: $(AM_V_GEN)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'