# Makefile for GNU tar documentation. # Copyright 1994-2023 Free Software Foundation, Inc. # This file is part of GNU tar. # GNU tar 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 of the License, or # (at your option) any later version. # GNU tar 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 this program. If not, see . info_TEXINFOS = tar.texi tar_TEXINFOS = \ dumpdir.texi\ tar-snapshot-edit.texi\ fdl.texi\ genfile.texi\ header.texi\ intern.texi\ parse-datetime.texi\ recipes.texi\ rendition.texi\ snapshot.texi\ sparse.texi\ value.texi dist_man_MANS=tar.1 $(RMT_8) if PU_RMT_COND RMT_8=rmt.8 endif EXTRA_DIST = gendocs_template mastermenu.el texify.sed untabify.el rmt.8 # The rendering level is anyone of PUBLISH, DISTRIB or PROOF. # Just call 'make RENDITION=PROOF [target]' if you want PROOF rendition. RENDITION = DISTRIB MAKEINFOFLAGS=-D$(RENDITION) header.texi: $(top_srcdir)/src/tar.h sed -f $(srcdir)/texify.sed $(top_srcdir)/src/tar.h \ | expand >$@ master-menu: $(tar_TEXINFOS) emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) untabify: emacs -batch -l untabify.el $(info_TEXINFOS) $(tar_TEXINFOS) final: untabify master-menu # Checking check-format: @if test -n "`cat $(info_TEXINFOS) $(tar_TEXINFOS) | tr -d -c '\t'`"; then \ echo "Sources contain tabs; run make untabify"; \ false; \ fi check-options: @ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \ $(top_builddir)/src/tar --usage | \ sed -n 's/^\[--\([^]\=\[]*\).*/\1/p' | sort | uniq > opts.$$$$;\ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) | \ sed -n '/^@macro/,/^@end macro/d;s/@opindex *\([^@,]*\).*/\1/p' \ | sort | uniq > docs.$$$$;\ status=0;\ join -v1 opts.$$$$ docs.$$$$ > report.$$$$;\ if test -s report.$$$$; then \ echo 'Not documented options:'; \ cat report.$$$$; \ status=1; \ fi; \ join -v2 opts.$$$$ docs.$$$$ > report.$$$$;\ if test -s report.$$$$; then \ echo 'Non-existing options:';\ cat report.$$$$; \ status=1; \ fi; \ rm opts.$$$$ docs.$$$$ report.$$$$;\ test $$status -ne 0 && exit $$status check-refs: @for file in $(info_TEXINFOS) $(tar_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); \ 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-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-refs check-fixmes check-unrevised check-docs: $(MAKE) -k all-check-docs # clean-local: rm -rf manual GENDOCS=$(srcdir)/gendocs.sh TEXI2DVI=texi2dvi -E # Make sure you set TEXINPUTS # Usual value is: # /usr/share/texmf/pdftex/plain/misc:/usr/share/texmf/pdftex/config manual: TEXINPUTS=$(srcdir):$(top_srcdir)/build-tex:$(TEXINPUTS) \ MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \ TEXI2DVI="$(TEXI2DVI) -t '@set DISTRIB' -t @finalout" \ $(GENDOCS) --texi2html tar 'GNU tar manual' manual-rebuild: clean-local manual