# This file is part of Mailfromd. # Copyright (C) 2005-2020 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=\ calloutd.texi\ fdl.texi\ functions.texi\ gacopyz.texi\ macros.texi\ mfdbtool.texi\ mtasim.texi\ pmult.texi\ sexp.texi\ strftime.texi\ upgrade.texi EXTRA_DIST = \ gendocs_template\ gendocs.sh clean-local: @rm -rf manual AM_MAKEINFOFLAGS = -I $(abs_top_srcdir) @IMPRIMATUR_MAKEINFOFLAGS@ # Imprimatur setup imprimatur_INPUT=$(info_TEXINFOS) $(mailfromd_TEXINFOS) include ../imprimatur/imprimatur.mk CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh # Checking check-options: check-mailfromd-options check-calloutd-options check-mfdbtool-options # FIXME: Options log-facility and mailer are added by the corresponding # mailutils capabilities. The check is unable to trace that. check-mailfromd-options: @$(CHECK_DOCS) "mailfromd options" \ '/mu_option mailfromd_options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg;/mu_option srv_options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@opindex *\([^@,]*\), --.*mailfromd option.*/\1/p' \ $(top_srcdir)/src/main.c $(top_srcdir)/src/srvcfg.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) # FIXME: Same here check-calloutd-options: @$(CHECK_DOCS) "calloutd options" \ '/mu_option calloutd_options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg;/mu_option srv_options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@opindex *\([^@,]*\), --.*calloutd option.*/\1/p' \ $(top_srcdir)/src/calloutd.c $(top_srcdir)/src/srvcfg.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-mfdbtool-options: @$(CHECK_DOCS) "mfdbtool options" \ '/mu_option mfdbtool_options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@opindex *\([^@,]*\), --.*mfdbtool option.*/\1/p' \ $(top_srcdir)/src/mfdbtool.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-config: @$(CHECK_DOCS) 'configuration statements' \ '/mf_cfg_param\[\] *= *{/,/^}/s/[ \t]*{ *"\([a-zA-Z_][^,"]*\)".*/\1/pg;/srv_cfg_param\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@deffn {Mailfromd Conf} *\([^@, ]*\).*/\1/p' \ $(top_srcdir)/src/main.c $(top_srcdir)/src/srvcfg.c $(top_srcdir)/lib/dbcfg.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-sub-config: @list=`sed -n '/mf_cfg_param\[\] *= *{/,/^}/{s/[ \t]*{ *"\([^,"]*\)", *mu_cfg_section *,.*/\1/pg}' $(top_srcdir)/src/main.c | sed /^runtime$$/d`; \ for ident in $$list; do \ cident=`echo $$ident | tr '-' '_'`; \ $(CHECK_DOCS) "$$ident configuration statements" \ "/$${cident}_section_param"'\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ "s/@deffn {$${ident}}"' *\([^@,]*\).*/\1/p' \ $(top_srcdir)/src/main.c $(top_srcdir)/lib/dbcfg.c -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS); \ done # FIXME: This rule does not take into account possible subsections. # None of the *.bi sources declares them anyway, so it's OK for now. check-runtime-config: @$(CHECK_DOCS) 'MFL runtime configuration statements' \ '/struct *mu_cfg_param *[a-zA-Z_][a-zA-Z0-9_]*_cfg_param\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@deffn {runtime} *\([^@, ]*\).*/\1/p' \ $(top_srcdir)/src/builtin/*.bi -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-builtins: @$(CHECK_DOCS) 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)/src/builtin/*.bi -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-mflib: @$(CHECK_DOCS) "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) exceptions \ '/dclex e_/s/dclex \(e_[^ ]*\)/\1/p' \ 's/@cindex \(e_[^,]*\), exception type/\1/p' \ $(top_srcdir)/mflib/status.mf -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) check-pragmas: @$(CHECK_DOCS) pragmas \ '/MF_PRAGMA(/s/MF_PRAGMA(\(.[^,]*\),.*/\1/p;/install_pragma/s/install_pragma("\(.*\)".*/\1/p' \ 's/@subsection Pragma \(.*\)/\1/p' \ $(top_srcdir)/src/builtin/*.bi $(top_srcdir)/src/gram.y -- \ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) all-check-docs: imprimatur-basic-checks check-options check-pragmas \ check-config check-sub-config check-runtime-config \ check-builtins check-mflib check-exceptions check-docs: @$(MAKE) -k all-check-docs # master-menu: imprimatur-master-menu untabify: imprimatur-untabify final: imprimatur-final GENDOCS=$(srcdir)/gendocs.sh --no-copy-images --html '--init-file=$(abs_srcdir)/html.init' TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -I $(abs_top_srcdir) -I $(top_srcdir)/imprimatur .PHONY: manual manual: TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \ MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS) $(AM_MAKEINFOFLAGS)" \ TEXI2DVI="$(TEXI2DVI)" \ $(GENDOCS) $(PACKAGE) '$(PACKAGE_NAME) manual' manual.tar.bz2: manual tar cfj manual.tar.bz2 manual man-tar: manual.tar.bz2