xenocara/util/cf/lnxdoc.rules
2006-11-25 16:15:45 +00:00

146 lines
4.5 KiB
Plaintext

XCOMM $XFree86: xc/config/cf/lnxdoc.rules,v 3.27 2003/01/15 03:17:29 dawes Exp $
XCOMM
XCOMM Rules for formatting Linuxdoc-SGML documentation
XCOMM
#include <lnxdoc.tmpl>
#ifdef DontInstallLinuxDoc
#define LinuxDocInstall(file,dest) /* do nothing */
#define LinuxDocInstallMultiple(files,dest) /* do nothing */
#define LinuxDocInstallIfExists(file,dest) /* do nothing */
#else
#define LinuxDocInstall(file,dest) InstallNonExecFile(file,dest)
#define LinuxDocInstallMultiple(files,dest) @@\
InstallMultipleDest(install,files,dest)
#define LinuxDocInstallIfExists(file,dir) @@\
install:: @@\
MakeDir($(DESTDIR)dir) @@\
@if [ -f file ]; then set -x; \ @@\
$(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) \ @@\
file $(DESTDIR)dir; \ @@\
fi
#endif
/* Version for sgmlfmt */
#if BuildLinuxDocPS
#define LinuxDocSgmlToPs(sgmlfile,base) @@\
all:: base.ps PdfTarget(base) @@\
@@\
base.ps: sgmlfile $(SGMLDEPENDS) @@\
RemoveFile(_$@ $@) @@\
@(BASE=`basename sgmlfile .sgml`;\ @@\
set -x;\ @@\
RemoveFile($$BASE.ps);\ @@\
$(SGMLFMTCMD) -f ps sgmlfile && \ @@\
$(MV) $$BASE.ps _$@ && $(MV) _$@ $@) @@\
@@\
LinuxDocInstall(base.ps,$(XFREE86PSDOCDIR)) @@\
@@\
ConvertPsToPdf(base) @@\
@@\
LinuxDocInstallIfExists(base.pdf,$(XFREE86PDFDOCDIR)) @@\
@@\
clean:: @@\
RemoveFile(Concat(_,base.ps) base.ps)
#else
#define LinuxDocSgmlToPs(sgmlfile,base) /**/
#endif
#if BuildLinuxDocText
#define LinuxDocSgmlToText(sgmlfile,textfile) @@\
AllTarget(textfile) @@\
@@\
textfile: sgmlfile $(SGMLDEPENDS) @@\
RemoveFiles(_$@ $@) @@\
@(BASE=`basename sgmlfile .sgml`;\ @@\
set -x;\ @@\
RemoveFile($$BASE.latin1);\ @@\
$(SGMLFMTCMD) -f latin1 -b -n sgmlfile && \ @@\
$(CVSIDENTFIX) < $$BASE.latin1 | $(XORGIDENTFIX) | $(XFREE86IDENTFIX) > _$@ && $(MV) _$@ $@ && \ @@\
RemoveFile($$BASE.latin1)) @@\
@@\
LinuxDocInstall(textfile,$(XFREE86DOCDIR)) @@\
@@\
clean:: @@\
@(file=textfile; set -x; RemoveFiles(_$$file $$file))
#else
#define LinuxDocSgmlToText(sgmlfile,textfile) /**/
#endif
#if BuildLinuxDocHtml
#define LinuxDocSgmlToHtml(sgmlfile,base) @@\
AllTarget(base.html) @@\
@@\
base.html: sgmlfile $(SGMLDEPENDS) @@\
@if [ sgmlfile != base.sgml ]; then $(LN) sgmlfile base.sgml; fi @@\
RemoveFiles(base*.html) @@\
$(SGMLFMTCMD) -f html base.sgml || RemoveFile($@) @@\
@if [ sgmlfile != base.sgml ]; then RemoveFile(base.sgml); fi @@\
@@\
LinuxDocInstallMultiple(base*.html,$(XFREE86HTMLDOCDIR)) @@\
@@\
clean:: @@\
RemoveFiles(base*.html)
#else
#define LinuxDocSgmlToHtml(sgmlfile,base) /**/
#endif
/*
* Rule for maintainers to use to updated formatted copies of docs in the
* source tree. Use with care.
*/
#ifndef UpdateFormattedDocLong
#define UpdateFormattedDocLong(textfile,dstdir,dstfile) @@\
update.docs:: textfile @@\
-@if [ -f dstdir/dstfile ]; then \ @@\
if [ "$(FORCEUPDATE)" = yes ]; then set -x; \ @@\
if [ "$(FOLLOWLINK)" = no ]; then \ @@\
$(RM) dstdir/dstfile; \ @@\
fi; \ @@\
cp textfile dstdir/dstfile; \ @@\
echo "" >> dstdir/dstfile; \ @@\
echo "\$$XdotOrg\$$" >> dstdir/dstfile; \ @@\
else \ @@\
$(RM) __tmp1__ __tmp2__; \ @@\
fgrep -v "\$$XdotOrg:" textfile > __tmp1__; \ @@\
fgrep -v "\$$XdotOrg:" dstdir/dstfile > __tmp2__; \ @@\
if diff -B __tmp1__ __tmp2__ > /dev/null 2>&1; then :; \ @@\
else set -x; \ @@\
if [ "$(FOLLOWLINK)" = no ]; then \ @@\
$(RM) dstdir/dstfile; \ @@\
fi; \ @@\
cp textfile dstdir/dstfile ; \ @@\
echo "" >> dstdir/dstfile; \ @@\
echo "\$$XdotOrg"": \$$" >> dstdir/dstfile; \ @@\
fi; \ @@\
fi; \ @@\
fi @@\
@$(RM) __tmp1__ __tmp2__
#endif
#ifndef UpdateFormattedDoc
#define UpdateFormattedDoc(textfile,dstdir) @@\
UpdateFormattedDocLong(textfile,dstdir,textfile)
#endif
/*
* Avoid using LinuxDocTargetLong with base != sgmlfile because HTML
* index generation assumes that base == sgmlfile.
*/
#define LinuxDocTargetLong(sgmlfile,textfile,base) @@\
LinuxDocSgmlToText(sgmlfile,textfile) @@\
LinuxDocSgmlToHtml(sgmlfile,base) @@\
LinuxDocSgmlToPs(sgmlfile,base) @@\
UpdateFormattedDoc(textfile,$(FORMATTEDDIR))
#define LinuxDocReadmeTarget(base) @@\
LinuxDocTargetLong(base.sgml,ReadmeFile(base),base)
#define LinuxDocTarget(base) @@\
LinuxDocTargetLong(base.sgml,base,base)