From root@gits.dyndns.org  Mon Oct  8 04:10:58 2001
Return-Path: <root@gits.dyndns.org>
Received: from smtp.noos.fr (lafontaine.noos.net [212.198.2.72])
	by hub.freebsd.org (Postfix) with ESMTP id F157537B401
	for <FreeBSD-gnats-submit@freebsd.org>; Mon,  8 Oct 2001 04:10:56 -0700 (PDT)
Received: (qmail 78703155 invoked by uid 0); 8 Oct 2001 11:05:02 -0000
Received: from unknown (HELO gits.dyndns.org) ([212.198.231.187]) (envelope-sender <root@gits.dyndns.org>)
          by 212.198.2.72 (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP
          for <FreeBSD-gnats-submit@freebsd.org>; 8 Oct 2001 11:05:02 -0000
Received: (from root@localhost)
	by gits.dyndns.org (8.11.6/8.11.6) id f98B51s58441;
	Mon, 8 Oct 2001 13:05:01 +0200 (CEST)
	(envelope-from root)
Message-Id: <200110081105.f98B51s58441@gits.dyndns.org>
Date: Mon, 8 Oct 2001 13:05:01 +0200 (CEST)
From: Cyrille Lefevre <clefevre@citeweb.net>
Reply-To: Cyrille Lefevre <clefevre@citeweb.net>
To: FreeBSD-gnats-submit@freebsd.org
Subject: build/install doc isn't /usr/obj prefix clean
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         31131
>Category:       docs
>Synopsis:       build/install doc isn't /usr/obj prefix clean
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 08 04:20:06 PDT 2001
>Closed-Date:    Mon Oct 29 01:24:32 PST 2001
>Last-Modified:  Mon Oct 29 01:25:32 PST 2001
>Originator:     Cyrille Lefevre
>Release:        FreeBSD 4.4-RC i386
>Organization:
ACME
>Environment:
System: FreeBSD gits 4.4-RC FreeBSD 4.4-RC #7: Thu Sep 20 12:40:17 CEST 2001 root@gits:/disk2/4.x-stable/src/sys/compile/CUSTOM i386

>Description:
	build/install doc isn't /usr/obj prefix clean.

	this set of patches fix this problem.

	also, all commands have been replaced by variables, long
	lines have been wrapped, unneeded subshells have been deleted,
	shell for loops have been replaced by make for loops, etc.
>How-To-Repeat:
	cd /usr/doc; make obj; make; make install
>Fix:

Index: Makefile
===================================================================
RCS file: /home/ncvs/doc/Makefile,v
retrieving revision 1.21
diff -u -r1.21 Makefile
--- Makefile	2001/06/11 01:16:19	1.21
+++ Makefile	2001/10/08 11:01:15
@@ -17,26 +17,32 @@
 
 DOC_PREFIX?=   ${.CURDIR}
 
+SUP?=		${PREFIX}/bin/cvsup
+SUPFLAGS?=	-g -L 2 -P -
 .if defined(SUPHOST)
 SUPFLAGS+=	-h ${SUPHOST}
 .endif
+
+CVS?=		/usr/bin/cvs
+CVSFLAGS?=	-q
+
 update:
 .if defined(SUP_UPDATE)
 .if !defined(DOCSUPFILE)
-	@echo "Error: Please define DOCSUPFILE before doing make update."
+	@${ECHO_CMD} "Error: Please define DOCSUPFILE before doing make update."
 	@exit 1
 .endif
-	@echo "--------------------------------------------------------------"
-	@echo ">>> Running ${SUP}"
-	@echo "--------------------------------------------------------------"
+	@${ECHODIR} "--------------------------------------------------------------"
+	@${ECHODIR} ">>> Running ${SUP}"
+	@${ECHODIR} "--------------------------------------------------------------"
 	@${SUP} ${SUPFLAGS} ${DOCSUPFILE}
 .elif defined(CVS_UPDATE)
-	@echo "--------------------------------------------------------------"
-	@echo ">>> Updating ${.CURDIR} from cvs repository" ${CVSROOT}
-	@echo "--------------------------------------------------------------"
-	cd ${.CURDIR}; cvs -q update -P -d
+	@${ECHODIR} "--------------------------------------------------------------"
+	@${ECHODIR} ">>> Updating ${.CURDIR} from cvs repository" ${CVSROOT}
+	@${ECHODIR} "--------------------------------------------------------------"
+	cd ${.CURDIR}; ${CVS} ${CVSFLAGS} update -P -d
 .else
-	@echo "Error: Please define either SUP_UPDATE or CVS_UPDATE first."
+	@${ECHO_CMD} "Error: Please define either SUP_UPDATE or CVS_UPDATE first."
 .endif
 
-.include "${DOC_PREFIX}/share/mk/doc.subdir.mk"
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: en_US.ISO8859-1/books/handbook/Makefile
===================================================================
RCS file: /home/ncvs/doc/en_US.ISO8859-1/books/handbook/Makefile,v
retrieving revision 1.50
diff -u -r1.50 Makefile
--- en_US.ISO8859-1/books/handbook/Makefile	2001/09/18 03:59:36	1.50
+++ en_US.ISO8859-1/books/handbook/Makefile	2001/09/25 00:23:09
@@ -143,11 +143,13 @@
 # limits in pdftex.  Until we split the Handbook up, build the PDF 
 # version using ps2pdf instead of pdftex.
 
+PS2PDF?=	${PREFIX}/bin/ps2pdf
+
 book.tex-pdf:
-	touch book.tex-pdf
+	${TOUCH} book.tex-pdf
 
 book.pdf: book.ps
-	ps2pdf book.ps book.pdf
+	${PS2PDF} book.ps book.pdf
 
 pgpkeyring: pgpkeys/chapter.sgml
 	@${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
Index: share/mk/doc.docbook.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.docbook.mk,v
retrieving revision 1.50
diff -u -r1.50 doc.docbook.mk
--- share/mk/doc.docbook.mk	2001/09/17 09:45:01	1.50
+++ share/mk/doc.docbook.mk	2001/10/08 10:48:35
@@ -118,12 +118,18 @@
 
 DOCBOOKCATALOG=	${PREFIX}/share/sgml/docbook/catalog
 DSSSLCATALOG=	${PREFIX}/share/sgml/docbook/dsssl/modular/catalog
+COLLATEINDEX=	${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl
 
 IMAGES_LIB?=
 
-JADEOPTS=	${JADEFLAGS} ${SGMLFLAGS} -c ${LANGUAGECATALOG} -c ${FREEBSDCATALOG} -c ${DSSSLCATALOG} -c ${DOCBOOKCATALOG} -c ${JADECATALOG} ${EXTRA_CATALOGS:S/^/-c /g}
+CATALOGS=	-c ${LANGUAGECATALOG} -c ${FREEBSDCATALOG} \
+		-c ${DSSSLCATALOG} -c ${DOCBOOKCATALOG} \
+		-c ${JADECATALOG} ${EXTRA_CATALOGS:S/^/-c /g}
+SGMLFLAGS+=	-D ${CANONICALOBJDIR}
+JADEOPTS=	${JADEFLAGS} ${SGMLFLAGS} ${CATALOGS}
 
-KNOWN_FORMATS=	html html.tar html-split html-split.tar txt rtf ps pdf tex dvi tar pdb
+KNOWN_FORMATS=	html html.tar html-split html-split.tar \
+		txt rtf ps pdf tex dvi tar pdb
 
 CSS_SHEET?=	${DOC_PREFIX}/share/misc/docbook.css
 
@@ -155,6 +161,32 @@
 TEXCMDS+=	\tracingstats=${TRACE}
 .endif
 
+PERL?=		/usr/bin/perl
+PKG_CREATE?=	/usr/sbin/pkg_create
+TAR?=		/usr/bin/tar
+TOUCH?=		/usr/bin/touch
+XARGS?=		/usr/bin/xargs
+
+TEX?=		${PREFIX}/bin/tex
+PDFTEX?=	${PREFIX}/bin/pdftex
+TIDY?=		${PREFIX}/bin/tidy
+TIDYFLAGS?=	-i -m -f /dev/null
+HTML2TXT?=	${PREFIX}/bin/links
+HTML2TXTFLAGS?=	-dump
+HTML2PDB?=	${PREFIX}/bin/iSiloBSD
+HTML2PDBFLAGS?=	-y -d0 -Idef
+DVIPS?=		${PREFIX}/bin/dvips
+.if defined(PAPERSIZE)
+DVIPSFLAGS?=	-t ${PAPERSIZE:L}
+.endif
+
+GZIP?=	-9
+GZIP_CMD?=	gzip -qf ${GZIP}
+BZIP2?=	-9
+BZIP2_CMD?=	bzip2 -qf ${BZIP2}
+ZIP?=	-9
+ZIP_CMD?=	${PREFIX}/bin/zip -j ${ZIP}
+
 # ------------------------------------------------------------------------
 #
 # Look at ${FORMATS} and work out which documents need to be generated.
@@ -202,12 +234,14 @@
 
 .if ${_cf} == "html-split"
 _docs+= index.html HTML.manifest ln*.html
-CLEANFILES+= `[ -f HTML.manifest ] && xargs < HTML.manifest` HTML.manifest ln*.html
+CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
+		HTML.manifest ln*.html
 CLEANFILES+= docbook.css
 
 .elif ${_cf} == "html-split.tar"
 _docs+= ${DOC}.html-split.tar
-CLEANFILES+= `[ -f HTML.manifest ] && xargs < HTML.manifest` HTML.manifest ln*.html
+CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
+		HTML.manifest ln*.html
 CLEANFILES+= ${DOC}.html-split.tar
 CLEANFILES+= docbook.css
 
@@ -236,7 +270,8 @@
 
 .elif ${_cf} == "pdf"
 _docs+= ${DOC}.pdf
-CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out ${DOC}.tex-pdf ${DOC}.pdf
+CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out \
+		${DOC}.tex-pdf ${DOC}.pdf
 
 .elif ${_cf} == "rtf"
 _docs+= ${DOC}.rtf
@@ -296,45 +331,56 @@
 
 all: ${_docs}
 
-index.html HTML.manifest: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${INDEX_SGML} ${HTML_SPLIT_INDEX} docbook.css
-	${JADE} -V html-manifest -ioutput.html -ioutput.html.images ${JADEOPTS} -d ${DSLHTML} -t sgml ${MASTERDOC}
+index.html HTML.manifest: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} \
+			  ${INDEX_SGML} ${HTML_SPLIT_INDEX} docbook.css
+	${JADE} -V html-manifest \
+		-ioutput.html -ioutput.html.images ${JADEOPTS} \
+		-d ${DSLHTML} -t sgml ${MASTERDOC}
 .if !defined(NO_TIDY)
-	-tidy -i -m -f /dev/null ${TIDYFLAGS} `xargs < HTML.manifest`
+	-${TIDY} ${TIDYFLAGS} $$(${XARGS} < HTML.manifest)
 .endif
 
-${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${INDEX_SGML} ${HTML_INDEX} docbook.css
-	${JADE} -ioutput.html -ioutput.html.images -V nochunks ${JADEOPTS} -d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || (rm -f ${.TARGET} && false)
+${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} \
+	     ${INDEX_SGML} ${HTML_INDEX} docbook.css
+	${JADE} -V nochunks \
+		-ioutput.html -ioutput.html.images ${JADEOPTS} \
+		-d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || \
+		(${RM} -f ${.TARGET} && false)
 .if !defined(NO_TIDY)
-	-tidy -i -m -f /dev/null ${TIDYFLAGS} ${.TARGET}
+	-${TIDY} ${TIDYFLAGS} ${.TARGET}
 .endif
 
 # Special target to produce HTML with no images in it.
 ${DOC}.html-text: ${SRCS} ${INDEX_SGML} ${HTML_INDEX}
-	${JADE} -ioutput.html -V nochunks ${JADEOPTS} -d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || (rm -f ${.TARGET} && false)
+	${JADE} -V nochunks \
+		-ioutput.html ${JADEOPTS} \
+		-d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || \
+		(${RM} -f ${.TARGET} && false)
 
 ${DOC}.html-split.tar: HTML.manifest
-	tar cf ${.TARGET} `xargs < HTML.manifest`
-	tar uf ${.TARGET} ${IMAGES_LIB}
-	tar uf ${.TARGET} ${IMAGES_PNG}
-	tar uf ${.TARGET} docbook.css
+	${TAR} cf ${.TARGET} $$(${XARGS} < HTML.manifest)
+	${TAR} uf ${.TARGET} ${IMAGES_LIB}
+	${TAR} uf ${.TARGET} ${IMAGES_PNG}
+	${TAR} uf ${.TARGET} docbook.css
 
 ${DOC}.html.tar: ${DOC}.html
-	tar cf ${.TARGET} ${DOC}.html
-	tar uf ${.TARGET} ${LOCAL_IMAGES_LIB}
-	tar uf ${.TARGET} ${IMAGES_PNG}
-	tar uf ${.TARGET} docbook.css
+	${TAR} cf ${.TARGET} ${DOC}.html
+	${TAR} uf ${.TARGET} ${LOCAL_IMAGES_LIB}
+	${TAR} uf ${.TARGET} ${IMAGES_PNG}
+	${TAR} uf ${.TARGET} docbook.css
 
 ${DOC}.txt: ${DOC}.html-text
-	links -dump ${.ALLSRC} > ${.TARGET}
+	${HTML2TXT} ${HTML2TXTFLAGS} ${.ALLSRC} > ${.TARGET}
 
 ${DOC}.pdb: ${DOC}.html
-	iSiloBSD -y -d0 -Idef ${DOC}.html ${DOC}.pdb
+	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
 
 ${.CURDIR:T}.pdb: ${DOC}.pdb
-	ln -f ${DOC}.pdb ${.CURDIR}.pdb
+	${LN} -f ${DOC}.pdb ${.CURDIR}.pdb
 
 ${DOC}.rtf: ${SRCS}
-	${JADE} -Vrtf-backend ${PRINTOPTS} ${JADEOPTS} -d ${DSLPRINT} -t rtf -o ${.TARGET} ${MASTERDOC}
+	${JADE} -V rtf-backend ${PRINTOPTS} ${JADEOPTS} \
+		-d ${DSLPRINT} -t rtf -o ${.TARGET} ${MASTERDOC}
 
 #
 # This sucks, but there's no way round it.  The PS and PDF formats need
@@ -344,33 +390,35 @@
 #
 
 ${DOC}.tex-ps: ${SRCS} ${IMAGES_EPS} ${INDEX_SGML} ${PRINT_INDEX}
-	${JADE} -Vtex-backend ${PRINTOPTS} ${JADEOPTS} -d ${DSLPRINT} -t tex -o ${.TARGET} ${MASTERDOC}
+	${JADE} -V tex-backend ${PRINTOPTS} ${JADEOPTS} \
+		-d ${DSLPRINT} -t tex -o ${.TARGET} ${MASTERDOC}
 
 ${DOC}.tex-pdf: ${SRCS} ${IMAGES_PDF} ${INDEX_SGML} ${PRINT_INDEX}
-	cp ${DOC_PREFIX}/share/web2c/pdftex.def ${.TARGET}
-	${JADE} -Vtex-backend ${PRINTOPTS} -ioutput.print.pdf ${JADEOPTS} -d ${DSLPRINT} -t tex -o /dev/stdout ${MASTERDOC} >> ${.TARGET}
+	${CP} ${DOC_PREFIX}/share/web2c/pdftex.def ${.TARGET}
+	${JADE} -V tex-backend ${PRINTOPTS} -ioutput.print.pdf ${JADEOPTS} \
+		-d ${DSLPRINT} -t tex -o /dev/stdout ${MASTERDOC} >> ${.TARGET}
 
 ${DOC}.dvi: ${DOC}.tex-ps
-	@echo "==> TeX pass 1/3"
-	-tex "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
-	@echo "==> TeX pass 2/3"
-	-tex "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
-	@echo "==> TeX pass 3/3"
-	-tex "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> TeX pass 1/3"
+	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> TeX pass 2/3"
+	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> TeX pass 3/3"
+	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
 
 ${DOC}.pdf: ${DOC}.tex-pdf
-	@echo "==> PDFTeX pass 1/3"
-	-pdftex "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
-	@echo "==> PDFTeX pass 2/3"
-	-pdftex "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
-	@echo "==> PDFTeX pass 3/3"
-	pdftex "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> PDFTeX pass 1/3"
+	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> PDFTeX pass 2/3"
+	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
+	@${ECHO} "==> PDFTeX pass 3/3"
+	${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
 
 ${DOC}.ps: ${DOC}.dvi
-	dvips -o ${.TARGET} ${.ALLSRC}
+	${DVIPS} -o ${.TARGET} ${.ALLSRC}
 
 ${DOC}.tar: ${SRCS}
-	tar cf ${.TARGET} ${.ALLSRC}
+	${TAR} cf ${.TARGET} ${.ALLSRC}
 
 # ------------------------------------------------------------------------
 #
@@ -383,7 +431,7 @@
 #
 
 lint validate:
-	${NSGMLS} ${SGMLFLAGS} -s -c ${LANGUAGECATALOG} -c ${FREEBSDCATALOG} -c ${DSSSLCATALOG} -c ${DOCBOOKCATALOG} -c ${JADECATALOG} ${EXTRA_CATALOGS:S/^/-c /g} ${MASTERDOC}
+	${NSGMLS} -s ${SGMLFLAGS} ${CATALOGS} ${MASTERDOC}
 
 # ------------------------------------------------------------------------
 #
@@ -399,22 +447,26 @@
 
 .if defined(GEN_INDEX)
 ${INDEX_SGML}:
-	perl ${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl -N -o ${.TARGET}
+	${PERL} ${COLLATEINDEX} -N -o ${.TARGET}
 .else
 ${INDEX_SGML}:
-	touch ${.TARGET}
+	${TOUCH} ${.TARGET}
 .endif
 
 ${HTML_INDEX}:
-	${JADE} -V html-index -ioutput.html -ioutput.html.images -V nochunks ${JADEOPTS} -d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
-	perl ${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl -g -o ${INDEX_SGML} ${.TARGET}
+	${JADE} -V html-index -V nochunks \
+		-ioutput.html -ioutput.html.images ${JADEOPTS} \
+		-d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
+	${PERL} ${COLLATEINDEX} -g -o ${INDEX_SGML} ${.TARGET}
 
 ${HTML_SPLIT_INDEX}:
-	${JADE} -V html-index -ioutput.html -ioutput.html.images ${JADEOPTS} -d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
-	perl ${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl -g -o ${INDEX_SGML} ${.TARGET}
+	${JADE} -V html-index \
+		-ioutput.html -ioutput.html.images ${JADEOPTS} \
+		-d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
+	${PERL} ${COLLATEINDEX} -g -o ${INDEX_SGML} ${.TARGET}
 
 ${PRINT_INDEX}: ${HTML_INDEX}
-	mv ${HTML_INDEX} ${.TARGET}
+	${MV} ${HTML_INDEX} ${.TARGET}
 
 # ------------------------------------------------------------------------
 #
@@ -437,13 +489,13 @@
 #
 
 _PROG_COMPRESS_gz: .USE
-	gzip -9 -c ${.ALLSRC} > ${.TARGET}
+	${GZIP_CMD} ${.ALLSRC} > ${.TARGET}
 
 _PROG_COMPRESS_bz2: .USE
-	bzip2 -9 -c ${.ALLSRC} > ${.TARGET}
+	${BZIP2_CMD} ${.ALLSRC} > ${.TARGET}
 
 _PROG_COMPRESS_zip: .USE
-	zip -j -9 ${.TARGET} ${.ALLSRC}
+	${ZIP_CMD} ${.TARGET} ${.ALLSRC}
 
 #
 # Build a list of targets for each compression scheme and output format.
@@ -454,7 +506,8 @@
 _cf=${_curformat}
 .for _curcompress in ${KNOWN_COMPRESS}
 .if ${_cf} == "html-split" || ${_cf} == "html"
-${DOC}.${_cf}.tar.${_curcompress}: ${DOC}.${_cf}.tar _PROG_COMPRESS_${_curcompress}
+${DOC}.${_cf}.tar.${_curcompress}: ${DOC}.${_cf}.tar \
+				   _PROG_COMPRESS_${_curcompress}
 .else
 ${DOC}.${_cf}.${_curcompress}: ${DOC}.${_cf} _PROG_COMPRESS_${_curcompress}
 .endif
@@ -497,8 +550,8 @@
 .if !target(install-${_cf})
 .if ${_cf} == "html-split"
 install-${_cf}: index.html
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
-	${INSTALL_DOCS} `xargs < HTML.manifest` ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
+	${INSTALL_DOCS} $$(${XARGS} < HTML.manifest) ${DESTDIR}
 	${INSTALL_DOCS} docbook.css ${DESTDIR}
 	@if [ -f ln*.html ]; then \
 		${INSTALL_DOCS} ln*.html ${DESTDIR}; \
@@ -507,15 +560,17 @@
 		(cd ${DESTDIR}; sh ${.OBJDIR}/${DOC}.ln); \
 	fi
 .for _curimage in ${IMAGES_LIB}
-	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || mkdir -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
-	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
+		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} \
+			${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 .endfor
 # Install the images.  First, loop over all the image names that contain a
 # directory seperator, make the subdirectories, and install.  Then loop over
 # the ones that don't contain a directory separator, and install them in the
 # top level.
 .for _curimage in ${IMAGES_PNG:M*/*}
-	mkdir -p ${DESTDIR}/${_curimage:H}
+	${MKDIR} -p ${DESTDIR}/${_curimage:H}
 	${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H}
 .endfor
 .for _curimage in ${IMAGES_PNG:N*/*}
@@ -523,24 +578,26 @@
 .endfor
 .for _compressext in ${KNOWN_COMPRESS}
 install-${_cf}.tar.${_compressext}: ${DOC}.${_cf}.tar.${_compressext}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 .endfor
 .elif ${_cf} == "html"
 install-${_cf}: ${DOC}.${_cf}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 	${INSTALL_DOCS} docbook.css ${DESTDIR}
 .for _curimage in ${IMAGES_LIB}
-	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || mkdir -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
-	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
+		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} \
+			${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 .endfor
 # Install the images.  First, loop over all the image names that contain a
 # directory seperator, make the subdirectories, and install.  Then loop over
 # the ones that don't contain a directory separator, and install them in the
 # top level.
 .for _curimage in ${IMAGES_PNG:M*/*}
-	mkdir -p ${DESTDIR}/${_curimage:H}
+	${MKDIR} -p ${DESTDIR}/${_curimage:H}
 	${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H}
 .endfor
 .for _curimage in ${IMAGES_PNG:N*/*}
@@ -548,12 +605,12 @@
 .endfor
 .else
 install-${_cf}: ${DOC}.${_cf}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 
 .for _compressext in ${KNOWN_COMPRESS}
 install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 .endfor
 .endif
@@ -576,7 +633,7 @@
 
 realpackage: ${FORMATS:S/^/package-/}
 packagelist:
-	@echo ${FORMATS:S/^/package-/}
+	@${ECHO_CMD} ${FORMATS:S/^/package-/}
 
 #
 # Build a list of package targets for each output target.  Each package
@@ -587,29 +644,21 @@
 _cf=${_curformat}
 .if ${_cf} == "html-split"
 package-${_curformat}: index.html
-	@cp HTML.manifest PLIST
-	@for images_png in ${IMAGES_PNG}; do \
-		echo $$images_png >> PLIST; \
-		echo docbook.css >> PLIST; \
-	done
+	@${CP} HTML.manifest PLIST
+	@${ECHO_CMD} ${IMAGES_PNG} docbook.css | ${XARGS} -n1 >> PLIST
 .elif ${_cf} == "html"
 package-${curformat}: ${DOC}.html
-	@echo ${DOC}.${_curformat} > PLIST
-	@for images_png in ${IMAGES_PNG}; do \
-		echo $$images_png >> PLIST; \
-		echo docbook.css >> PLIST; \
-	done
+	@${ECHO_CMD} ${DOC}.${_curformat} ${IMAGES_PNG} docbook.css | \
+		${XARGS} -n1 > PLIST
 .else
 package-${_curformat}: ${DOC}.${_curformat}
-	@echo ${DOC}.${_curformat} > PLIST
-	@for lib_images in ${IMAGES_LIB}; do \
-		echo $$lib_images >> PLIST; \
-	done
-.endif
-	@pkg_create -v -c -"FDP ${.CURDIR:T} ${_curformat} package" \
-		-d -"FDP ${.CURDIR:T} ${_curformat} package" -f PLIST \
-		-p ${DESTDIR} -s . ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
+	@${ECHO_CMD} ${DOC}.${_curformat} ${IMAGES_LIB} | ${XARGS} -n1 > PLIST
+.endif
+	@${PKG_CREATE} -v -f PLIST -p ${DESTDIR} -s . \
+		-c -"FDP ${.CURDIR:T} ${_curformat} package" \
+		-d -"FDP ${.CURDIR:T} ${_curformat} package" \
+		${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
 .endfor
 
 docbook.css: ${CSS_SHEET}
-	cp ${CSS_SHEET} ${.CURDIR}/docbook.css
+	${CP} ${CSS_SHEET} ${.TARGET}
Index: share/mk/doc.html.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.html.mk,v
retrieving revision 1.8
diff -u -r1.8 doc.html.mk
--- share/mk/doc.html.mk	2001/09/13 07:26:48	1.8
+++ share/mk/doc.html.mk	2001/10/08 10:48:54
@@ -56,12 +56,29 @@
 .endif
 
 .if defined(OPENJADE)
-NSGMLS?=	onsgmls
-SGMLNORM?=	osgmlnorm
+NSGMLS?=	${PREFIX}/bin/onsgmls
+SGMLNORM?=	${PREFIX}/bin/osgmlnorm
 .else
-NSGMLS?=	nsgmls
-SGMLNORM?=	sgmlnorm
+NSGMLS?=	${PREFIX}/bin/nsgmls
+SGMLNORM?=	${PREFIX}/bin/sgmlnorm
 .endif
+ 
+PKG_CREATE?=	/usr/sbin/pkg_create
+TAR?=		/usr/bin/tar
+
+TIDY?=		${PREFIX}/bin/tidy
+TIDYFLAGS?=	-i -m -f /dev/null
+HTML2TXT?=	${PREFIX}/bin/links
+HTML2TXTFLAGS?=	-dump
+HTML2PDB?=	${PREFIX}/bin/iSiloBSD
+HTML2PDBFLAGS?=	-y -d0 -Idef
+
+GZIP?=	-9
+GZIP_CMD?=	gzip -qf ${GZIP}
+BZIP2?=	-9
+BZIP2_CMD?=	bzip2 -qf ${BZIP2}
+ZIP?=	-9
+ZIP_CMD?=	${PREFIX}/bin/zip -j ${ZIP}
 
 # ------------------------------------------------------------------------
 #
@@ -116,22 +133,22 @@
 all: ${_docs}
 
 ${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} 
-	${SGMLNORM} -c ${HTMLCATALOG} ${SRCS} > ${.TARGET}
+	${SGMLNORM} -c ${HTMLCATALOG} ${SRCS:S|^|${.CURDIR}/|} > ${.TARGET}
 .if !defined(NO_TIDY)
-	-tidy -i -m -f /dev/null ${TIDYFLAGS} ${.TARGET}
+	-${TIDY} ${TIDYFLAGS} ${.TARGET}
 .endif
 
 ${DOC}.txt: ${DOC}.html
-	links -dump ${.ALLSRC} > ${.TARGET}
+	${HTML2TXT} ${HTML2TXTFLAGS} ${.ALLSRC} > ${.TARGET}
 
 ${DOC}.pdb: ${DOC}.html
-	iSiloBSD -y -d0 -Idef ${DOC}.html ${DOC}.pdb
+	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
 
 ${.CURDIR:T}.pdb: ${DOC}.pdb
-	ln -f ${DOC}.pdb ${.CURDIR}.pdb
+	${LN} -f ${DOC}.pdb ${.CURDIR}.pdb
 
 ${DOC}.tar: ${SRCS}
-	tar cf ${.TARGET} ${.ALLSRC}
+	${TAR} cf ${.TARGET} ${.ALLSRC}
 
 #
 # Build targets for any formats we've missed that we don't handle.
@@ -139,7 +156,7 @@
 .for _curformat in ${ALL_FORMATS}
 .if !target(${DOC}.${_curformat})
 ${DOC}.${_curformat}:
-	@echo \"${_curformat}\" is not a valid output format for this document.
+	@${ECHO_CMD} \"${_curformat}\" is not a valid output format for this document.
 .endif
 .endfor
 
@@ -177,13 +194,13 @@
 #
 
 _PROG_COMPRESS_gz: .USE
-	gzip -9 -c ${.ALLSRC} > ${.TARGET}
+	${GZIP_CMD} < ${.ALLSRC} > ${.TARGET}
 
 _PROG_COMPRESS_bz2: .USE
-	bzip2 -9 -c ${.ALLSRC} > ${.TARGET}
+	${BZIP2_CMD} < ${.ALLSRC} > ${.TARGET}
 
 _PROG_COMPRESS_zip: .USE
-	zip -j -9 ${.TARGET} ${.ALLSRC}
+	${ZIP_CMD} ${.TARGET} ${.ALLSRC}
 
 #
 # Build a list of targets for each compression scheme and output format.
@@ -203,7 +220,7 @@
 .for _curcompress in ${KNOWN_COMPRESS}
 .if !target(${DOC}.${_curformat}.${_curcompress})
 ${DOC}.${_curformat}.${_curcompress}:
-	@echo \"${_curformat}.${_curcompress}\" is not a valid output format for this document.
+	@${ECHO_CMD} \"${_curformat}.${_curcompress}\" is not a valid output format for this document.
 .endif
 .endfor
 .endfor
@@ -234,28 +251,30 @@
 _cf=${_curformat}
 .if !target(install-${_cf})
 install-${_cf}: ${DOC}.${_cf}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
-	${INSTALL_DOCS} ${CSS_SHEET} ${DESTDIR}
+	${INSTALL_DOCS} ${.CURDIR}/${CSS_SHEET} ${DESTDIR}
 .for _curimage in ${IMAGES_LIB}
-	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || mkdir -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
-	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
+		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} \
+			${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 .endfor
 # Install the images.  First, loop over all the image names that contain a
 # directory seperator, make the subdirectories, and install.  Then loop over
 # the ones that don't contain a directory separator, and install them in the
 # top level.
 .for _curimage in ${IMAGES_PNG:M*/*}
-	mkdir -p ${DESTDIR}/${_curimage:H}
-	${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H}
+	${MKDIR} -p ${DESTDIR}/${_curimage:H}
+	${INSTALL_DOCS} ${.CURDIR}/${_curimage} ${DESTDIR}/${_curimage:H}
 .endfor
 .for _curimage in ${IMAGES_PNG:N*/*}
-	${INSTALL_DOCS} ${_curimage} ${DESTDIR}
+	${INSTALL_DOCS} ${.CURDIR}/${_curimage} ${DESTDIR}
 .endfor
 
 .for _compressext in ${KNOWN_COMPRESS}
 install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext}
-	@[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
+	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 .endfor
 .endif
@@ -268,11 +287,11 @@
 .for _curformat in ${ALL_FORMATS}
 .if !target(install-${_curformat})
 install-${_curformat}:
-	@echo \"${_curformat}\" is not a valid output format for this document.
+	@${ECHO_CMD} \"${_curformat}\" is not a valid output format for this document.
 
 .for _compressext in ${KNOWN_COMPRESS}
 install-${_curformat}.${_compressext}:
-	@echo \"${_curformat}.${_compressext}\" is not a valid output format for this document.
+	@${ECHO_CMD} \"${_curformat}.${_compressext}\" is not a valid output format for this document.
 .endfor
 .endif
 .endfor
@@ -293,7 +312,7 @@
 
 realpackage: ${FORMATS:S/^/package-/}
 packagelist:
-	@echo ${FORMATS:S/^/package-/}
+	@${ECHO_CMD} ${FORMATS:S/^/package-/}
 
 #
 # Build a list of package targets for each output target.  Each package
@@ -303,8 +322,9 @@
 .for _curformat in ${KNOWN_FORMATS}
 _cf=${_curformat}
 package-${_curformat}: install-${_curformat}
-	@echo ${DOC}.${_curformat} > PLIST
-	@pkg_create -v -c -"FDP ${.CURDIR:T} ${_curformat} package" \
-		-d -"FDP ${.CURDIR:T} ${_curformat} package" -f PLIST \
-		-p ${DESTDIR} ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
+	@${ECHO_CMD} ${DOC}.${_curformat} > PLIST
+	@${PKG_CREATE} -v -f PLIST -p ${DESTDIR} \
+		-c -"FDP ${.CURDIR:T} ${_curformat} package" \
+		-d -"FDP ${.CURDIR:T} ${_curformat} package" \
+		${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
 .endfor
Index: share/mk/doc.images.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.images.mk,v
retrieving revision 1.11
diff -u -r1.11 doc.images.mk
--- share/mk/doc.images.mk	2001/08/14 21:51:25	1.11
+++ share/mk/doc.images.mk	2001/10/07 03:46:31
@@ -67,13 +67,22 @@
 # then we can use them directly, and don't need to list them.
 IMAGES_PDF=${IMAGES_GEN_PDF}
 
+SCR2PNG?=	${PREFIX}/bin/scr2png
+EPS2PNG?=	${PREFIX}/bin/peps
+EPS2PNGFLAGS?=	-p -r ${EPS2PNG_RES}
+PNGTOPNM?=	${PREFIX}/bin/pngtopnm
+PNMTOPS?=	${PREFIX}/bin/pnmtops
+PNMTOPSFLAGS?=	-noturn
+EPS2PDF?=	${PREFIX}/bin/epstopdf
+
 # Use suffix rules to convert .scr files to .png files
 .SUFFIXES:	.scr .png .eps
 
 .scr.png:
-	scr2png < ${.IMPSRC} > ${.TARGET}
+	${SCR2PNG} < ${.IMPSRC} > ${.TARGET}
 .scr.eps:
-	scr2png < ${.ALLSRC} | pngtopnm | pnmtops -noturn > ${.TARGET}
+	${SCR2PNG} < ${.ALLSRC} | ${PNGTOPNM} | \
+		${PNMTOPS} ${PNMTOPSFLAGS} > ${.TARGET}
 
 # We can't use suffix rules to generate the rules to convert EPS to PNG and
 # PNG to EPS.  This is because a .png file can depend on a .eps file, and
@@ -82,17 +91,17 @@
 
 .for _curimage in ${IMAGES_GEN_PNG}
 ${_curimage}: ${_curimage:S/.png$/.eps/}
-	peps -r ${EPS2PNG_RES} -p -o ${.TARGET} ${.ALLSRC}
+	${EPS2PNG} ${EPS2PNGFLAGS} -o ${.TARGET} ${.ALLSRC}
 .endfor
 
 .for _curimage in ${IMAGES_GEN_EPS}
 ${_curimage}: ${_curimage:S/.eps$/.png/}
-	pngtopnm ${.ALLSRC} | pnmtops -noturn > ${.TARGET}
+	${PNGTOPNM} ${.ALLSRC} | ${PNMTOPS} ${PNMTOPSFLAGS} > ${.TARGET}
 .endfor
 
 .for _curimage in ${IMAGES_GEN_PDF}
 ${_curimage}: ${_curimage:S/.pdf$/.eps/}
-	epstopdf --outfile=${.TARGET} ${_curimage:S/.pdf$/.eps/}
+	${EPSTOPDF} --outfile=${.TARGET} ${_curimage:S/.pdf$/.eps/}
 .endfor
 
 #
@@ -126,9 +135,6 @@
 #
 LOCAL_IMAGES_LIB_DIR?= imagelib
 
-CP?=		/bin/cp
-MKDIR?=		/bin/mkdir
-
 #
 # Create a target for each image used from the library.  This target just
 # ensures that each image required is copied from its location in 
@@ -136,6 +142,8 @@
 #
 .for _curimage in ${IMAGES_LIB}
 ${LOCAL_IMAGES_LIB_DIR}/${_curimage}: ${IMAGES_LIB_DIR}/${_curimage}
-	@[ -d ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || ${MKDIR} -p ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
-	${INSTALL} -C -c ${IMAGES_LIB_DIR}/${_curimage} ${LOCAL_IMAGES_LIB_DIR}/${_curimage}
+	@[ -d ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
+		${MKDIR} -p ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
+	${INSTALL_DOCS}  ${IMAGES_LIB_DIR}/${_curimage} \
+			 ${LOCAL_IMAGES_LIB_DIR}/${_curimage}
 .endfor
Index: share/mk/doc.install.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.install.mk,v
retrieving revision 1.4
diff -u -r1.4 doc.install.mk
--- share/mk/doc.install.mk	1999/10/13 00:42:21	1.4
+++ share/mk/doc.install.mk	2001/09/23 10:25:40
@@ -99,7 +99,9 @@
 .endif
 .endif
 
+COPY?=	-C
+
 # installation "script"
 INSTALL_DOCS?= \
-	${INSTALL} -C ${INSTALL_FLAGS} -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE}
+	${INSTALL} ${COPY} ${INSTALL_FLAGS} -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE}
 
Index: share/mk/doc.project.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.project.mk,v
retrieving revision 1.9
diff -u -r1.9 doc.project.mk
--- share/mk/doc.project.mk	2001/06/11 01:20:30	1.9
+++ share/mk/doc.project.mk	2001/10/08 11:00:05
@@ -68,6 +68,12 @@
 PREFIX?=	${LOCALBASE}
 PRI_LANG?=	en_US.ISO8859-1
 
+CP?=		/bin/cp
+LN?=		/bin/ln
+MKDIR?=		/bin/mkdir
+RM?=		/bin/rm
+MV?=		/bin/mv
+
 # Image processing (contains code used by the doc.<format>.mk files, so must
 # be listed first).
 .include "doc.images.mk"
Index: share/mk/doc.subdir.mk
===================================================================
RCS file: /home/ncvs/doc/share/mk/doc.subdir.mk,v
retrieving revision 1.6
diff -u -r1.6 doc.subdir.mk
--- share/mk/doc.subdir.mk	2001/05/22 03:18:38	1.6
+++ share/mk/doc.subdir.mk	2001/10/08 10:39:40
@@ -68,7 +68,6 @@
 LANGCODE:=	${LANGCODE:T}
 .endif
 
-
 .if !target(install)
 install: afterinstall symlinks 
 afterinstall: realinstall
@@ -93,11 +92,11 @@
 .if !target(symlinks)
 symlinks:
 .if defined(SYMLINKS) && !empty(SYMLINKS)
-	@set `echo ${SYMLINKS}`; \
+	@set $$(${ECHO_CMD} ${SYMLINKS}); \
 	while : ; do \
 		case $$# in \
 			0) break;; \
-			[12]) echo "warn: empty SYMLINKS: $$1 $$2"; break;; \
+			[12]) ${ECHO_CMD} "warn: empty SYMLINKS: $$1 $$2"; break;; \
 		esac; \
 		d=$$1; shift; \
 		l=$$1; shift; \
@@ -106,8 +105,8 @@
 			${ECHO} "$${d}/$${l} doesn't exist, not linking"; \
 		else \
 			${ECHO} $${d}/$${t} -\> $${d}/$${l}; \
-			(cd $${d} && rm -rf $${t}); \
-			(cd $${d} && ln -s $${l} $${t}); \
+			(cd $${d} && ${RM} -rf $${t}); \
+			(cd $${d} && ${LN} -s $${l} $${t}); \
 		fi; \
 	done
 .endif
@@ -121,9 +120,10 @@
 
 _SUBDIRUSE: .USE
 .for entry in ${SUBDIR}
-	@${ECHO} "===> ${DIRPRFX}${entry}"
-	@(cd ${.CURDIR}/${entry} && \
-	${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} DIRPRFX=${DIRPRFX}${entry}/ )
+	@${ECHODIR} "===> ${DIRPRFX}${entry}"
+	@cd ${.CURDIR}/${entry} && \
+	${MAKE} ${.TARGET:S/realpackage/package/:S/realinstall/install/} \
+		DIRPRFX=${DIRPRFX}${entry}/
 .endfor
 
 .if !defined(NOINCLUDEMK)
@@ -136,8 +136,7 @@
 .MAIN: all
 
 ${SUBDIR}::
-	cd ${.CURDIR}/${.TARGET}
-	${MAKE} all
+	@cd ${.CURDIR}/${.TARGET} && ${MAKE} all
 
 .for __target in all cleandir lint objlink install
 .if !target(${__target})
@@ -147,10 +146,10 @@
 
 .if !target(obj)
 obj:	_SUBDIRUSE
-	@if ! test -d ${CANONICALOBJDIR}/; then \
-		mkdir -p ${CANONICALOBJDIR}; \
-		if ! test -d ${CANONICALOBJDIR}/; then \
-			${ECHO} "Unable to create ${CANONICALOBJDIR}."; \
+	@if ! [ -d ${CANONICALOBJDIR}/ ]; then \
+		${MKDIR} -p ${CANONICALOBJDIR}; \
+		if ! [ -d ${CANONICALOBJDIR}/ ]; then \
+			${ECHO_CMD} "Unable to create ${CANONICALOBJDIR}."; \
 			exit 1; \
 		fi; \
 		${ECHO} "${CANONICALOBJDIR} created ${.CURDIR}"; \
@@ -159,40 +158,67 @@
 
 .if !target(objlink)
 objlink: _SUBDIRUSE
-	@if test -d ${CANONICALOBJDIR}/; then \
-		rm -f ${.CURDIR}/obj; \
-		ln -s ${CANONICALOBJDIR} ${.CURDIR}/obj; \
+	@if [ -d ${CANONICALOBJDIR}/ ]; then \
+		${RM} -f ${.CURDIR}/obj; \
+		${LN} -s ${CANONICALOBJDIR} ${.CURDIR}/obj; \
 	else \
-		echo "No ${CANONICALOBJDIR} to link to - do a make obj."; \
+		${ECHO_CMD} "No ${CANONICALOBJDIR} to link to - do a make obj."; \
 	fi
 .endif
 
 .if !target(whereobj)
 whereobj:
-	@echo ${.OBJDIR}
+	@${ECHO_CMD} ${.OBJDIR}
 .endif
 
 cleanobj:
 	@if [ -d ${CANONICALOBJDIR}/ ]; then \
-		rm -rf ${CANONICALOBJDIR}; \
+		${RM} -rf ${CANONICALOBJDIR}; \
 	else \
 		cd ${.CURDIR} && ${MAKE} clean cleandepend; \
 	fi
-	@if [ -h ${.CURDIR}/obj ]; then rm -f ${.CURDIR}/obj; fi
+	@if [ -h ${.CURDIR}/obj ]; then ${RM} -f ${.CURDIR}/obj; fi
 
 .if !target(clean)
 clean: _SUBDIRUSE
 .if defined(CLEANFILES) && !empty(CLEANFILES)
-	rm -f ${CLEANFILES}
+	${RM} -f ${CLEANFILES}
 .endif
 .if defined(CLEANDIRS) && !empty(CLEANDIRS)
-	rm -rf ${CLEANDIRS}
+	${RM} -rf ${CLEANDIRS}
 .endif
 .if defined(IMAGES_LIB) && !empty(LOCAL_IMAGES_LIB_DIR)
-	rm -rf ${LOCAL_IMAGES_LIB_DIR}
+	${RM} -rf ${LOCAL_IMAGES_LIB_DIR}
 .endif
 .endif
 
 cleandir: cleanobj _SUBDIRUSE
 
 .endif # end of NOINCLUDEMK section
+
+#
+# Create /usr/obj image subdirs when ${IMAGES} contains subdir/image.xxx
+#
+
+_imagesubdir=
+.for _imagedir in ${IMAGES:H}
+.if ${_imagesubdir:M${_imagedir}} == ""
+_imagesubdir+= ${_imagedir}
+.endif
+.endfor
+
+.if ${_imagesubdir} != ""
+_IMAGESUBDIR: .USE
+.for dir in ${_imagesubdir}
+	@if ! [ -d ${CANONICALOBJDIR}/${dir}/ ]; then \
+		${MKDIR} -p ${CANONICALOBJDIR}/${dir}; \
+		if ! [ -d ${CANONICALOBJDIR}/${dir}/ ]; then \
+			${ECHO_CMD} "Unable to create ${CANONICALOBJDIR}/${dir}/."; \
+			exit 1; \
+		fi; \
+		${ECHO} "${CANONICALOBJDIR}/${dir}/ created for ${.CURDIR}"; \
+	fi
+.endfor
+
+obj: _IMAGESUBDIR
+.endif
>Release-Note:
>Audit-Trail:

From: Cyrille Lefevre <clefevre@citeweb.net>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: docs/31131: build/install doc isn't /usr/obj prefix clean
Date: Mon, 8 Oct 2001 22:12:39 +0200 (CEST)

 also, this PR supersede PR #28306 which is wrong in the sense where
 docbook.css should be created in OBJDIR and not in CURDIR.
 
 Cyrille.
 -- 
 Cyrille Lefevre                 mailto:clefevre@citeweb.net

From: Cyrille Lefevre <clefevre@citeweb.net>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: docs/31131: build/install doc isn't /usr/obj prefix clean
Date: Tue, 9 Oct 2001 05:54:22 +0200 (CEST)

 well, when I tested this patch, the FORMATS variable contains only
 a subset of the KNOWN_FORMATS varaible. so, I made some new corrections
 to the doc Makefiles to be more objdir clean than ever. here is a
 complement to the previous patch set.
 
 PS : I have to make a new test using INSTALL_COMPRESSED=gz since I
 default it to nothing, but since this take a very long time on my
 computer (I've only a P166), I'll post more corrections later if any.
 
 Common subdirectories: /tmp/doc/share/mk/CVS and doc/share/mk/CVS
 diff -u /tmp/doc/share/mk/doc.docbook.mk doc/share/mk/doc.docbook.mk
 --- /tmp/doc/share/mk/doc.docbook.mk	Tue Oct  9 05:41:17 2001
 +++ doc/share/mk/doc.docbook.mk	Tue Oct  9 05:35:32 2001
 @@ -323,6 +323,7 @@
  CLEANFILES+= 		${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX}
  .endif
  
 +LOCAL_IMAGES_LIB ?=
  .for _curimage in ${IMAGES_LIB} 
  LOCAL_IMAGES_LIB += ${LOCAL_IMAGES_LIB_DIR}/${_curimage} 
  .endfor 
 @@ -359,14 +360,22 @@
  
  ${DOC}.html-split.tar: HTML.manifest
  	${TAR} cf ${.TARGET} $$(${XARGS} < HTML.manifest)
 +.if !empty(IMAGES_LIB)
  	${TAR} uf ${.TARGET} ${IMAGES_LIB}
 +.endif
 +.if !empty(IMAGES_PNG)
  	${TAR} uf ${.TARGET} ${IMAGES_PNG}
 +.endif
  	${TAR} uf ${.TARGET} docbook.css
  
  ${DOC}.html.tar: ${DOC}.html
  	${TAR} cf ${.TARGET} ${DOC}.html
 +.if !empty(LOCAL_IMAGES_LIB)
  	${TAR} uf ${.TARGET} ${LOCAL_IMAGES_LIB}
 +.endif
 +.if !empty(IMAGES_PNG)
  	${TAR} uf ${.TARGET} ${IMAGES_PNG}
 +.endif
  	${TAR} uf ${.TARGET} docbook.css
  
  ${DOC}.txt: ${DOC}.html-text
 @@ -376,7 +385,7 @@
  	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
  
  ${.CURDIR:T}.pdb: ${DOC}.pdb
 -	${LN} -f ${DOC}.pdb ${.CURDIR}.pdb
 +	${LN} -f ${DOC}.pdb ${.CURDIR:T}.pdb
  
  ${DOC}.rtf: ${SRCS}
  	${JADE} -V rtf-backend ${PRINTOPTS} ${JADEOPTS} \
 @@ -418,7 +427,7 @@
  	${DVIPS} -o ${.TARGET} ${.ALLSRC}
  
  ${DOC}.tar: ${SRCS}
 -	${TAR} cf ${.TARGET} ${.ALLSRC}
 +	${TAR} cf ${.TARGET} -C ${.CURDIR} ${.ALLSRC:S|${.CURDIR}/||}
  
  # ------------------------------------------------------------------------
  #
 diff -u /tmp/doc/share/mk/doc.html.mk doc/share/mk/doc.html.mk
 --- /tmp/doc/share/mk/doc.html.mk	Tue Oct  9 05:41:17 2001
 +++ doc/share/mk/doc.html.mk	Tue Oct  9 05:34:35 2001
 @@ -145,10 +145,10 @@
  	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
  
  ${.CURDIR:T}.pdb: ${DOC}.pdb
 -	${LN} -f ${DOC}.pdb ${.CURDIR}.pdb
 +	${LN} -f ${DOC}.pdb ${.CURDIR:T}.pdb
  
  ${DOC}.tar: ${SRCS}
 -	${TAR} cf ${.TARGET} ${.ALLSRC}
 +	${TAR} cf ${.TARGET} -C ${.CURDIR} ${.ALLSRC:S|${.CURDIR}/||}
  
  #
  # Build targets for any formats we've missed that we don't handle.
 diff -u /tmp/doc/share/mk/doc.images.mk doc/share/mk/doc.images.mk
 --- /tmp/doc/share/mk/doc.images.mk	Tue Oct  9 05:41:17 2001
 +++ doc/share/mk/doc.images.mk	Tue Oct  9 05:38:15 2001
 @@ -73,7 +73,7 @@
  PNGTOPNM?=	${PREFIX}/bin/pngtopnm
  PNMTOPS?=	${PREFIX}/bin/pnmtops
  PNMTOPSFLAGS?=	-noturn
 -EPS2PDF?=	${PREFIX}/bin/epstopdf
 +EPSTOPDF?=	${PREFIX}/bin/epstopdf
  
  # Use suffix rules to convert .scr files to .png files
  .SUFFIXES:	.scr .png .eps
 
 Cyrille.
 -- 
 Cyrille Lefevre                 mailto:clefevre@citeweb.net

From: Cyrille Lefevre <clefevre@citeweb.net>
To: freebsd-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: docs/31131: build/install doc isn't /usr/obj prefix clean
Date: Thu, 18 Oct 2001 16:45:28 +0200 (CEST)

 this patch set is a complement to both posted before.
 
 from /usr/doc, the first patch set should be applyed using patch,
 the second one using patch -p1 and this one using patch -p2.
 sorry for the convenient. if you prefer, I could submit one
 containing all all of them.
 
 many thing have been factorized (no need to repeat things) such as
 JADE calls (using HTMLOPTS var), install-* and packages-* targets.
 generated packages are more complete (w/ images and/or style sheet
 when needed).  a PLIST file is generated for each one which avoid
 rebuilding all of them.
 
 they are still some work to do such as getting rid of those .if tests
 in install-* and packages-* targets. much better would be to use
 SOME_VARIABLE_${curformat} which contains all the needed files.
 
 .ps and .pdf files aren't well tested since I'm missing some space
 to generate all off them... do you see what I mean ;^)
 
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/en_US.ISO8859-1/books/handbook/Makefile new/doc/en_US.ISO8859-1/books/handbook/Makefile
 --- old/doc/en_US.ISO8859-1/books/handbook/Makefile	Thu Oct 18 16:32:47 2001
 +++ new/doc/en_US.ISO8859-1/books/handbook/Makefile	Thu Oct 18 16:18:28 2001
 @@ -96,6 +96,13 @@
  IMAGES+= install/disk-layout.eps
  IMAGES+= install/edit-inetd-conf.scr
  
 +# Images from the cross-document image library
 +IMAGES_LIB=  callouts/1.png
 +IMAGES_LIB+= callouts/2.png
 +IMAGES_LIB+= callouts/3.png
 +IMAGES_LIB+= callouts/4.png
 +IMAGES_LIB+= callouts/5.png
 +
  # 
  # SRCS lists the individual SGML files that make up the document. Changes
  # to any of these files will force a rebuild
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.docbook.mk new/doc/share/mk/doc.docbook.mk
 --- old/doc/share/mk/doc.docbook.mk	Thu Oct 18 16:32:51 2001
 +++ new/doc/share/mk/doc.docbook.mk	Thu Oct 18 16:32:24 2001
 @@ -132,8 +132,11 @@
  		txt rtf ps pdf tex dvi tar pdb
  
  CSS_SHEET?=	${DOC_PREFIX}/share/misc/docbook.css
 +PDFTEX_DEF?=	${DOC_PREFIX}/share/web2c/pdftex.def
  
 -PRINTOPTS?=    -ioutput.print
 +HTMLOPTS?=	-ioutput.html -d ${DSLHTML} ${HTMLFLAGS}
 +
 +PRINTOPTS?=	-ioutput.print -d ${DSLPRINT} ${PRINTFLAGS}
  
  .if defined(BOOK_OUTPUT)
  NICE_HEADERS=1
 @@ -163,6 +166,7 @@
  
  PERL?=		/usr/bin/perl
  PKG_CREATE?=	/usr/sbin/pkg_create
 +SORT?=		/usr/bin/sort
  TAR?=		/usr/bin/tar
  TOUCH?=		/usr/bin/touch
  XARGS?=		/usr/bin/xargs
 @@ -236,56 +240,48 @@
  _docs+= index.html HTML.manifest ln*.html
  CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
  		HTML.manifest ln*.html
 -CLEANFILES+= docbook.css
 +CLEANFILES+= PLIST.${_curformat}
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
 +
 +.else
 +_docs+= ${DOC}.${_curformat}
 +CLEANFILES+= ${DOC}.${_curformat}
 +CLEANFILES+= PLIST.${_curformat}
  
 -.elif ${_cf} == "html-split.tar"
 -_docs+= ${DOC}.html-split.tar
 +.if ${_cf} == "html-split.tar"
  CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
  		HTML.manifest ln*.html
 -CLEANFILES+= ${DOC}.html-split.tar
 -CLEANFILES+= docbook.css
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "html"
 -_docs+= ${DOC}.html
 -CLEANFILES+= ${DOC}.html
 -CLEANFILES+= docbook.css
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "html.tar"
 -_docs+= ${DOC}.html.tar
 -CLEANFILES+= ${DOC}.html ${DOC}.html.tar
 -CLEANFILES+= docbook.css
 +CLEANFILES+= ${DOC}.html
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "txt"
 -_docs+= ${DOC}.txt
 -CLEANFILES+= ${DOC}.html ${DOC}.txt ${DOC}.html-text
 -CLEANFILES+= docbook.css
 +CLEANFILES+= ${DOC}.html ${DOC}.html-text
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "dvi"
 -_docs+= ${DOC}.dvi
 -CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex
 +CLEANFILES+= ${DOC}.aux ${DOC}.log ${DOC}.tex
 +
 +.elif ${_cf} == "tex"
 +CLEANFILES+= ${DOC}.aux ${DOC}.log
  
  .elif ${_cf} == "ps"
 -_docs+= ${DOC}.ps
 -CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex-ps ${DOC}.ps
 +CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex-ps
  
  .elif ${_cf} == "pdf"
 -_docs+= ${DOC}.pdf
 -CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out \
 -		${DOC}.tex-pdf ${DOC}.pdf
 -
 -.elif ${_cf} == "rtf"
 -_docs+= ${DOC}.rtf
 -CLEANFILES+= ${DOC}.rtf
 -
 -.elif ${_cf} == "tar"
 -_docs+= ${DOC}.tar
 -CLEANFILES+= ${DOC}.tar
 +CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out ${DOC}.tex-pdf
  
  .elif ${_cf} == "pdb"
 -_docs+= ${DOC}.pdb ${.CURDIR:T}.pdb
 -CLEANFILES+= ${DOC}.pdb ${.CURDIR:T}.pdb
 +_docs+= ${.CURDIR:T}.pdb
 +CLEANFILES+= ${.CURDIR:T}.pdb
  
  .endif
 +.endif
  .endfor
  
  
 @@ -300,10 +296,17 @@
  .for _curformat in ${FORMATS}
  _cf=${_curformat}
  .for _curcomp in ${INSTALL_COMPRESSED}
 +
  .if ${_cf} != "html-split" && ${_cf} != "html"
  _curinst+= install-${_curformat}.${_curcomp}
  _docs+= ${DOC}.${_curformat}.${_curcomp}
  CLEANFILES+= ${DOC}.${_curformat}.${_curcomp}
 +
 +.if  ${_cf} == "pdb"
 +_docs+= ${.CURDIR:T}.${_curformat}.${_curcomp}
 +CLEANFILES+= ${.CURDIR:T}.${_curformat}.${_curcomp}
 +
 +.endif
  .endif
  .endfor
  .endfor
 @@ -324,29 +327,28 @@
  CLEANFILES+= 		${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX}
  .endif
  
 -LOCAL_IMAGES_LIB ?=
 -.for _curimage in ${IMAGES_LIB} 
 -LOCAL_IMAGES_LIB += ${LOCAL_IMAGES_LIB_DIR}/${_curimage} 
 -.endfor 
 +.if ${.OBJDIR} != ${.CURDIR}
 +LOCAL_CSS_SHEET= ${.OBJDIR}/${CSS_SHEET:T}
 +.else
 +LOCAL_CSS_SHEET= ${CSS_SHEET:T}
 +.endif
  
  .MAIN: all
  
  all: ${_docs}
  
 -index.html HTML.manifest: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} \
 -			  ${INDEX_SGML} ${HTML_SPLIT_INDEX} docbook.css
 -	${JADE} -V html-manifest \
 -		-ioutput.html -ioutput.html.images ${JADEOPTS} \
 -		-d ${DSLHTML} -t sgml ${MASTERDOC}
 +index.html HTML.manifest: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
 +			  ${INDEX_SGML} ${HTML_SPLIT_INDEX} ${LOCAL_CSS_SHEET}
 +	${JADE} -V html-manifest ${HTMLOPTS} -ioutput.html.images \
 +		${JADEOPTS} -t sgml ${MASTERDOC}
  .if !defined(NO_TIDY)
  	-${TIDY} ${TIDYFLAGS} $$(${XARGS} < HTML.manifest)
  .endif
  
 -${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} \
 -	     ${INDEX_SGML} ${HTML_INDEX} docbook.css
 -	${JADE} -V nochunks \
 -		-ioutput.html -ioutput.html.images ${JADEOPTS} \
 -		-d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || \
 +${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
 +	     ${INDEX_SGML} ${HTML_INDEX} ${LOCAL_CSS_SHEET}
 +	${JADE} -V nochunks ${HTMLOPTS} -ioutput.html.images \
 +		${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || \
  		(${RM} -f ${.TARGET} && false)
  .if !defined(NO_TIDY)
  	-${TIDY} ${TIDYFLAGS} ${.TARGET}
 @@ -354,43 +356,39 @@
  
  # Special target to produce HTML with no images in it.
  ${DOC}.html-text: ${SRCS} ${INDEX_SGML} ${HTML_INDEX}
 -	${JADE} -V nochunks \
 -		-ioutput.html ${JADEOPTS} \
 -		-d ${DSLHTML} -t sgml ${MASTERDOC} > ${.TARGET} || \
 +	${JADE} -V nochunks ${HTMLOPTS} \
 +		${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || \
  		(${RM} -f ${.TARGET} && false)
  
 -${DOC}.html-split.tar: HTML.manifest
 -	${TAR} cf ${.TARGET} $$(${XARGS} < HTML.manifest)
 -.if !empty(IMAGES_LIB)
 -	${TAR} uf ${.TARGET} ${IMAGES_LIB}
 -.endif
 -.if !empty(IMAGES_PNG)
 -	${TAR} uf ${.TARGET} ${IMAGES_PNG}
 -.endif
 -	${TAR} uf ${.TARGET} docbook.css
 -
 -${DOC}.html.tar: ${DOC}.html
 -	${TAR} cf ${.TARGET} ${DOC}.html
 -.if !empty(LOCAL_IMAGES_LIB)
 -	${TAR} uf ${.TARGET} ${LOCAL_IMAGES_LIB}
 -.endif
 -.if !empty(IMAGES_PNG)
 -	${TAR} uf ${.TARGET} ${IMAGES_PNG}
 -.endif
 -	${TAR} uf ${.TARGET} docbook.css
 +${DOC}.html-split.tar: HTML.manifest ${LOCAL_IMAGES_LIB} \
 +		       ${LOCAL_IMAGES_PNG} ${LOCAL_CSS_SHEET}
 +	${TAR} cf ${.TARGET} $$(${XARGS} < HTML.manifest) \
 +		${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${CSS_SHEET:T}
 +
 +${DOC}.html.tar: ${DOC}.html ${LOCAL_IMAGES_LIB} \
 +		 ${LOCAL_IMAGES_PNG} ${LOCAL_CSS_SHEET}
 +	${TAR} cf ${.TARGET} ${DOC}.html \
 +		${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${CSS_SHEET:T}
  
  ${DOC}.txt: ${DOC}.html-text
  	${HTML2TXT} ${HTML2TXTFLAGS} ${.ALLSRC} > ${.TARGET}
  
 -${DOC}.pdb: ${DOC}.html
 -	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
 +${DOC}.pdb: ${DOC}.html ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG}
 +	${HTML2PDB} ${HTML2PDBFLAGS} ${DOC}.html ${.TARGET}
  
  ${.CURDIR:T}.pdb: ${DOC}.pdb
 -	${LN} -f ${DOC}.pdb ${.CURDIR:T}.pdb
 +	${LN} -f ${.ALLSRC} ${.TARGET}
 +
 +.if defined(INSTALL_COMPRESSED) && !empty(INSTALL_COMPRESSED)
 +.for _curcomp in ${INSTALL_COMPRESSED}
 +${.CURDIR:T}.pdb.${_curcomp}: ${DOC}.pdb.${_curcomp}
 +	${LN} -f ${.ALLSRC} ${.TARGET}
 +.endfor
 +.endif
  
 -${DOC}.rtf: ${SRCS}
 -	${JADE} -V rtf-backend ${PRINTOPTS} ${JADEOPTS} \
 -		-d ${DSLPRINT} -t rtf -o ${.TARGET} ${MASTERDOC}
 +${DOC}.rtf: ${SRCS} ${LOCAL_IMAGES_EPS}
 +	${JADE} -V rtf-backend ${PRINTOPTS} \
 +		${JADEOPTS} -t rtf -o ${.TARGET} ${MASTERDOC}
  
  #
  # This sucks, but there's no way round it.  The PS and PDF formats need
 @@ -399,36 +397,51 @@
  # format, which will then lead on to a different .dvi file as well.
  #
  
 -${DOC}.tex-ps: ${SRCS} ${IMAGES_EPS} ${INDEX_SGML} ${PRINT_INDEX}
 -	${JADE} -V tex-backend ${PRINTOPTS} ${JADEOPTS} \
 -		-d ${DSLPRINT} -t tex -o ${.TARGET} ${MASTERDOC}
 +${DOC}.tex: ${SRCS} ${LOCAL_IMAGES_EPS} ${INDEX_SGML} ${PRINT_INDEX}
 +	${JADE} -V tex-backend ${PRINTOPTS} \
 +		${JADEOPTS} -t tex -o ${.TARGET} ${MASTERDOC}
 +
 +${DOC}.tex-ps: ${DOC}.tex
 +	${LN} -f ${.ALLSRC} ${.TARGET}
  
  ${DOC}.tex-pdf: ${SRCS} ${IMAGES_PDF} ${INDEX_SGML} ${PRINT_INDEX}
 -	${CP} ${DOC_PREFIX}/share/web2c/pdftex.def ${.TARGET}
 -	${JADE} -V tex-backend ${PRINTOPTS} -ioutput.print.pdf ${JADEOPTS} \
 -		-d ${DSLPRINT} -t tex -o /dev/stdout ${MASTERDOC} >> ${.TARGET}
 +	${CP} -p ${PDFTEX_DEF} ${.TARGET}
 +	${JADE} -V tex-backend ${PRINTOPTS} -ioutput.print.pdf \
 +		${JADEOPTS} -t tex -o /dev/stdout ${MASTERDOC} >> ${.TARGET}
  
 -${DOC}.dvi: ${DOC}.tex-ps
 +${DOC}.dvi: ${DOC}.tex ${LOCAL_IMAGES_EPS}
  	@${ECHO} "==> TeX pass 1/3"
 -	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
 +	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}'
  	@${ECHO} "==> TeX pass 2/3"
 -	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
 +	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}'
  	@${ECHO} "==> TeX pass 3/3"
 -	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${.ALLSRC}}'
 +	-${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}'
  
 -${DOC}.pdf: ${DOC}.tex-pdf
 +${DOC}.pdf: ${DOC}.tex-pdf ${IMAGES_PDF}
  	@${ECHO} "==> PDFTeX pass 1/3"
 -	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
 +	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}'
  	@${ECHO} "==> PDFTeX pass 2/3"
 -	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
 +	-${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}'
  	@${ECHO} "==> PDFTeX pass 3/3"
 -	${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${.ALLSRC}}'
 +	${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}'
  
  ${DOC}.ps: ${DOC}.dvi
  	${DVIPS} -o ${.TARGET} ${.ALLSRC}
  
 -${DOC}.tar: ${SRCS}
 -	${TAR} cf ${.TARGET} -C ${.CURDIR} ${.ALLSRC:S|${.CURDIR}/||}
 +${DOC}.tar: ${SRCS} ${LOCAL_IMAGES} ${LOCAL_CSS_SHEET}
 +	${TAR} cf ${.TARGET} -C ${.CURDIR} ${SRCS} \
 +		-C ${.OBJDIR} ${IMAGES} ${CSS_SHEET:T}
 +
 +#
 +# Build targets for any formats we've missed that we don't handle.
 +#
 +.for _curformat in ${ALL_FORMATS}
 +.if !target(${DOC}.${_curformat})
 +${DOC}.${_curformat}:
 +	@${ECHO_CMD} \"${_curformat}\" is not a valid output format for this document.
 +.endif
 +.endfor
 +
  
  # ------------------------------------------------------------------------
  #
 @@ -443,6 +456,7 @@
  lint validate:
  	${NSGMLS} -s ${SGMLFLAGS} ${CATALOGS} ${MASTERDOC}
  
 +
  # ------------------------------------------------------------------------
  #
  # Index targets
 @@ -464,19 +478,18 @@
  .endif
  
  ${HTML_INDEX}:
 -	${JADE} -V html-index -V nochunks \
 -		-ioutput.html -ioutput.html.images ${JADEOPTS} \
 -		-d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
 +	${JADE} -V html-index -V nochunks ${HTMLOPTS} -ioutput.html.images \
 +		${JADEOPTS} -t sgml ${MASTERDOC} > /dev/null
  	${PERL} ${COLLATEINDEX} -g -o ${INDEX_SGML} ${.TARGET}
  
  ${HTML_SPLIT_INDEX}:
 -	${JADE} -V html-index \
 -		-ioutput.html -ioutput.html.images ${JADEOPTS} \
 -		-d ${DSLHTML} -t sgml ${MASTERDOC} > /dev/null
 +	${JADE} -V html-index ${HTMLOPTS} -ioutput.html.images \
 +		${JADEOPTS} -t sgml ${MASTERDOC} > /dev/null
  	${PERL} ${COLLATEINDEX} -g -o ${INDEX_SGML} ${.TARGET}
  
  ${PRINT_INDEX}: ${HTML_INDEX}
 -	${MV} ${HTML_INDEX} ${.TARGET}
 +	${CP} -p ${HTML_INDEX} ${.TARGET}
 +
  
  # ------------------------------------------------------------------------
  #
 @@ -499,10 +512,10 @@
  #
  
  _PROG_COMPRESS_gz: .USE
 -	${GZIP_CMD} ${.ALLSRC} > ${.TARGET}
 +	${GZIP_CMD} < ${.ALLSRC} > ${.TARGET}
  
  _PROG_COMPRESS_bz2: .USE
 -	${BZIP2_CMD} ${.ALLSRC} > ${.TARGET}
 +	${BZIP2_CMD} < ${.ALLSRC} > ${.TARGET}
  
  _PROG_COMPRESS_zip: .USE
  	${ZIP_CMD} ${.TARGET} ${.ALLSRC}
 @@ -524,6 +537,19 @@
  .endfor
  .endfor
  
 +#
 +# Build targets for any formats we've missed that we don't handle.
 +#
 +.for _curformat in ${ALL_FORMATS}
 +.for _curcompress in ${KNOWN_COMPRESS}
 +.if !target(${DOC}.${_curformat}.${_curcompress})
 +${DOC}.${_curformat}.${_curcompress}:
 +	@${ECHO_CMD} \"${_curformat}.${_curcompress}\" is not a valid output format for this document.
 +.endif
 +.endfor
 +.endfor
 +
 +
  # ------------------------------------------------------------------------
  #
  # Install targets
 @@ -559,16 +585,26 @@
  _cf=${_curformat}
  .if !target(install-${_cf})
  .if ${_cf} == "html-split"
 -install-${_cf}: index.html
 +install-${_curformat}: index.html
 +.else
 +install-${_curformat}: ${DOC}.${_curformat}
 +.endif
  	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 +.if ${_cf} == "html-split"
  	${INSTALL_DOCS} $$(${XARGS} < HTML.manifest) ${DESTDIR}
 -	${INSTALL_DOCS} docbook.css ${DESTDIR}
 +.else
 +	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 +.endif
 +.if (${_cf} == "html-split" || ${_cf} == "html") && !empty(LOCAL_CSS_SHEET)
 +	${INSTALL_DOCS} ${LOCAL_CSS_SHEET} ${DESTDIR}
 +.if ${_cf} == "html-split"
  	@if [ -f ln*.html ]; then \
  		${INSTALL_DOCS} ln*.html ${DESTDIR}; \
  	fi
  	@if [ -f ${.OBJDIR}/${DOC}.ln ]; then \
 -		(cd ${DESTDIR}; sh ${.OBJDIR}/${DOC}.ln); \
 +		cd ${DESTDIR}; sh ${.OBJDIR}/${DOC}.ln; \
  	fi
 +.endif
  .for _curimage in ${IMAGES_LIB}
  	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
  		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 @@ -586,47 +622,55 @@
  .for _curimage in ${IMAGES_PNG:N*/*}
  	${INSTALL_DOCS} ${_curimage} ${DESTDIR}
  .endfor
 -.for _compressext in ${KNOWN_COMPRESS}
 -install-${_cf}.tar.${_compressext}: ${DOC}.${_cf}.tar.${_compressext}
 -	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 -	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 -.endfor
 -.elif ${_cf} == "html"
 -install-${_cf}: ${DOC}.${_cf}
 -	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
 -	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 -	${INSTALL_DOCS} docbook.css ${DESTDIR}
 -.for _curimage in ${IMAGES_LIB}
 -	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
 -		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 -	${INSTALL_DOCS} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} \
 -			${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 -.endfor
 -# Install the images.  First, loop over all the image names that contain a
 -# directory seperator, make the subdirectories, and install.  Then loop over
 -# the ones that don't contain a directory separator, and install them in the
 -# top level.
 -.for _curimage in ${IMAGES_PNG:M*/*}
 +.elif ${_cf} == "tex" || ${_cf} == "dvi"
 +.for _curimage in ${IMAGES_EPS:M*/*}
  	${MKDIR} -p ${DESTDIR}/${_curimage:H}
  	${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H}
  .endfor
 -.for _curimage in ${IMAGES_PNG:N*/*}
 +.for _curimage in ${IMAGES_EPS:N*/*}
  	${INSTALL_DOCS} ${_curimage} ${DESTDIR}
  .endfor
 -.else
 -install-${_cf}: ${DOC}.${_cf}
 +.elif ${_cf} == "pdb"
 +	${LN} -f ${DESTDIR}/${.ALLSRC} ${DESTDIR}/${.CURDIR:T}.${_curformat}
 +.endif
 +
 +.if ${_cf} == "html-split"
 +.for _compressext in ${KNOWN_COMPRESS}
 +install-${_curformat}.tar.${_compressext}: ${DOC}.${_curformat}.tar.${_compressext}
  	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
  	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 -
 +.endfor
 +.else
  .for _compressext in ${KNOWN_COMPRESS}
 -install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext}
 +install-${_curformat}.${_compressext}: ${DOC}.${_curformat}.${_compressext}
  	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
  	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 +.if ${_cf} == "pdb"
 +	${LN} -f ${DESTDIR}/${.ALLSRC} \
 +		 ${DESTDIR}/${.CURDIR:T}.${_curformat}.${_compressext}
 +.endif
  .endfor
  .endif
  .endif
  .endfor
  
 +#
 +# Build install- targets for any formats we've missed that we don't handle.
 +#
 +
 +.for _curformat in ${ALL_FORMATS}
 +.if !target(install-${_curformat})
 +install-${_curformat}:
 +	@${ECHO_CMD} \"${_curformat}\" is not a valid output format for this document.
 +
 +.for _compressext in ${KNOWN_COMPRESS}
 +install-${_curformat}.${_compressext}:
 +	@${ECHO_CMD} \"${_curformat}.${_compressext}\" is not a valid output format for this document.
 +.endfor
 +.endif
 +.endfor
 +
 +
  # ------------------------------------------------------------------------
  #
  # Package building
 @@ -653,22 +697,29 @@
  .for _curformat in ${KNOWN_FORMATS}
  _cf=${_curformat}
  .if ${_cf} == "html-split"
 -package-${_curformat}: index.html
 -	@${CP} HTML.manifest PLIST
 -	@${ECHO_CMD} ${IMAGES_PNG} docbook.css | ${XARGS} -n1 >> PLIST
 -.elif ${_cf} == "html"
 -package-${curformat}: ${DOC}.html
 -	@${ECHO_CMD} ${DOC}.${_curformat} ${IMAGES_PNG} docbook.css | \
 -		${XARGS} -n1 > PLIST
 +PLIST.${_curformat}: index.html
 +	@${SORT} HTML.manifest > PLIST.${_curformat}
  .else
 -package-${_curformat}: ${DOC}.${_curformat}
 -	@${ECHO_CMD} ${DOC}.${_curformat} ${IMAGES_LIB} | ${XARGS} -n1 > PLIST
 +PLIST.${_curformat}: ${DOC}.${_curformat}
 +	@${ECHO_CMD} ${DOC}.${_curformat} > PLIST.${_curformat}
 +.endif
 +.if (${_cf} == "html-split" || ${_cf} == "html") && \
 +    (!empty(LOCAL_IMAGES_LIB) || !empty(IMAGES_PNG) || !empty(CSS_SHEET))
 +	@${ECHO_CMD} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${LOCAL_CSS_SHEET} | \
 +		${XARGS} -n1 >> PLIST.${_curformat}
 +.elif (${_cf} == "tex" || ${_cf} == "dvi") && !empty(IMAGES_EPS)
 +	@${ECHO_CMD} ${IMAGES_EPS} | ${XARGS} -n1 >> PLIST.${_curformat}
 +.elif ${_cf} == "pdb"
 +	@${ECHO_CMD} ${.CURDIR:T}.${_curformat} >> PLIST.${_curformat}
  .endif
 -	@${PKG_CREATE} -v -f PLIST -p ${DESTDIR} -s . \
 +
 +${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz: PLIST.${_cf}
 +	@${PKG_CREATE} -v -f ${.ALLSRC} -p ${DESTDIR} -s ${.OBJDIR} \
  		-c -"FDP ${.CURDIR:T} ${_curformat} package" \
 -		-d -"FDP ${.CURDIR:T} ${_curformat} package" \
 -		${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
 +		-d -"FDP ${.CURDIR:T} ${_curformat} package" ${.TARGET}
 +
 +package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
  .endfor
  
 -docbook.css: ${CSS_SHEET}
 -	${CP} ${CSS_SHEET} ${.TARGET}
 +${LOCAL_CSS_SHEET}: ${CSS_SHEET}
 +	${CP} -p ${.ALLSRC} ${.TARGET}
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.html.mk new/doc/share/mk/doc.html.mk
 --- old/doc/share/mk/doc.html.mk	Thu Oct 18 16:32:51 2001
 +++ new/doc/share/mk/doc.html.mk	Thu Oct 18 16:18:29 2001
 @@ -65,6 +65,7 @@
   
  PKG_CREATE?=	/usr/sbin/pkg_create
  TAR?=		/usr/bin/tar
 +XARGS?=		/usr/bin/xargs
  
  TIDY?=		${PREFIX}/bin/tidy
  TIDYFLAGS?=	-i -m -f /dev/null
 @@ -80,27 +81,30 @@
  ZIP?=	-9
  ZIP_CMD?=	${PREFIX}/bin/zip -j ${ZIP}
  
 +
  # ------------------------------------------------------------------------
  #
  
  .for _curformat in ${FORMATS}
  _cf=${_curformat}
 -.if ${_cf} == "html"
 -_docs+= ${DOC}.html
 -CLEANFILES+= ${DOC}.html
 -.elif ${_cf} == "txt"
 -_docs+= ${DOC}.txt
 -CLEANFILES+= ${DOC}.html ${DOC}.txt
 -.elif ${_cf} == "tar"
 -_docs+= ${DOC}.tar
 -.elif ${_cf} == "pdb"
 -_docs+= ${DOC}.pdb ${.CURDIR:T}.pdb
 -+CLEANFILES+= ${DOC}.pdb ${.CURDIR:T}.pdb
 -.else
 -# Create a 'bogus' doc for any other format we don't support.  This is so
 +
 +# Create a 'bogus' doc for any format we support or not.  This is so
  # that we can fake up a target for it later on, and this target can print
  # the warning message about the unsupported format. 
  _docs+= ${DOC}.${_curformat}
 +CLEANFILES+= ${DOC}.${_curformat}
 +CLEANFILES+= PLIST.${_curformat}
 +
 +.if ${_cf} == "txt"
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
 +
 +.elif ${_cf} == "txt"
 +CLEANFILES+= ${DOC}.html
 +
 +.elif ${_cf} == "pdb"
 +_docs+= ${.CURDIR:T}.pdb
 +CLEANFILES+= ${.CURDIR:T}.pdb
 +
  .endif
  .endfor
  
 @@ -115,24 +119,33 @@
  .for _curformat in ${FORMATS}
  _cf=${_curformat}
  .for _curcomp in ${INSTALL_COMPRESSED}
 +
  .if ${_cf} != "html-split"
  _curinst+= install-${_curformat}.${_curcomp}
  _docs+= ${DOC}.${_curformat}.${_curcomp}
  CLEANFILES+= ${DOC}.${_curformat}.${_curcomp}
 +
 +.if  ${_cf} == "pdb"
 +_docs+= ${.CURDIR:T}.${_curformat}.${_curcomp}
 +CLEANFILES+= ${.CURDIR:T}.${_curformat}.${_curcomp}
 +
 +.endif
  .endif
  .endfor
  .endfor
  .endif
  
 -.for _curimage in ${IMAGES_LIB} 
 -LOCAL_IMAGES_LIB += ${LOCAL_IMAGES_LIB_DIR}/${_curimage} 
 -.endfor 
 +.if ${.OBJDIR} != ${.CURDIR}
 +LOCAL_CSS_SHEET=	${.OBJDIR}/${CSS_SHEET:T}
 +.else
 +LOCAL_CSS_SHEET=	${CSS_SHEET:T}
 +.endif
  
  .MAIN: all
  
  all: ${_docs}
  
 -${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} 
 +${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} ${LOCAL_CSS_SHEET}
  	${SGMLNORM} -c ${HTMLCATALOG} ${SRCS:S|^|${.CURDIR}/|} > ${.TARGET}
  .if !defined(NO_TIDY)
  	-${TIDY} ${TIDYFLAGS} ${.TARGET}
 @@ -141,14 +154,22 @@
  ${DOC}.txt: ${DOC}.html
  	${HTML2TXT} ${HTML2TXTFLAGS} ${.ALLSRC} > ${.TARGET}
  
 -${DOC}.pdb: ${DOC}.html
 -	${HTML2PDB} ${HTML2PDBFLAGS} ${.ALLSRC} ${.TARGET}
 +${DOC}.pdb: ${DOC}.html ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG}
 +	${HTML2PDB} ${HTML2PDBFLAGS} ${DOC}.html ${.TARGET}
  
  ${.CURDIR:T}.pdb: ${DOC}.pdb
 -	${LN} -f ${DOC}.pdb ${.CURDIR:T}.pdb
 +	${LN} -f ${.ALLSRC} ${.TARGET}
  
 -${DOC}.tar: ${SRCS}
 -	${TAR} cf ${.TARGET} -C ${.CURDIR} ${.ALLSRC:S|${.CURDIR}/||}
 +.if defined(INSTALL_COMPRESSED) && !empty(INSTALL_COMPRESSED)
 +.for _curcomp in ${INSTALL_COMPRESSED}
 +${.CURDIR:T}.pdb.${_curcomp}: ${DOC}.pdb.${_curcomp}
 +	${LN} -f ${.ALLSRC} ${.TARGET}
 +.endfor
 +.endif
 +
 +${DOC}.tar: ${SRCS} ${LOCAL_IMAGES} ${LOCAL_CSS_SHEET}
 +	${TAR} cf ${.TARGET} -C ${.CURDIR} ${SRCS} \
 +		-C ${.OBJDIR} ${IMAGES} ${CSS_SHEET:T}
  
  #
  # Build targets for any formats we've missed that we don't handle.
 @@ -160,6 +181,7 @@
  .endif
  .endfor
  
 +
  # ------------------------------------------------------------------------
  #
  # Validation targets
 @@ -173,6 +195,7 @@
  lint validate:
  	${NSGMLS} -s -c ${HTMLCATALOG} ${MASTERDOC}
  
 +
  # ------------------------------------------------------------------------
  #
  # Compress targets
 @@ -250,10 +273,12 @@
  .for _curformat in ${KNOWN_FORMATS}
  _cf=${_curformat}
  .if !target(install-${_cf})
 -install-${_cf}: ${DOC}.${_cf}
 +install-${_curformat}: ${DOC}.${_curformat}
  	@[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR}
  	${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR}
 -	${INSTALL_DOCS} ${.CURDIR}/${CSS_SHEET} ${DESTDIR}
 +.if !empty(CSS_SHEET)
 +	${INSTALL_DOCS} ${CSS_SHEET} ${DESTDIR}
 +.endif
  .for _curimage in ${IMAGES_LIB}
  	@[ -d ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
  		${MKDIR} -p ${DESTDIR}/${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 @@ -271,6 +296,9 @@
  .for _curimage in ${IMAGES_PNG:N*/*}
  	${INSTALL_DOCS} ${.CURDIR}/${_curimage} ${DESTDIR}
  .endfor
 +.if ${_cf} == "pdb"
 +	${LN} -f ${DESTDIR}/${.ALLSRC} ${DESTDIR}/${.CURDIR:T}.${_curformat}
 +.endif
  
  .for _compressext in ${KNOWN_COMPRESS}
  install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext}
 @@ -296,6 +324,7 @@
  .endif
  .endfor
  
 +
  # ------------------------------------------------------------------------
  #
  # Package building
 @@ -321,10 +350,34 @@
  
  .for _curformat in ${KNOWN_FORMATS}
  _cf=${_curformat}
 -package-${_curformat}: install-${_curformat}
 -	@${ECHO_CMD} ${DOC}.${_curformat} > PLIST
 -	@${PKG_CREATE} -v -f PLIST -p ${DESTDIR} \
 +PLIST.${_curformat}: ${DOC}.${_curformat}
 +	@${ECHO_CMD} ${DOC}.${_curformat} > PLIST.${_curformat}
 +.if ${_cf} == "html" && \
 +    (!empty(LOCAL_IMAGES_LIB) || !empty(IMAGES_PNG) || !empty(CSS_SHEET))
 +	@${ECHO_CMD} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} ${CSS_SHEET} | \
 +		${XARGS} -n1 >> PLIST.${_curformat}
 +.elif ${_cf} == "pdb"
 +	@${ECHO_CMD} ${.CURDIR:T}.${_curformat} >> PLIST.${_curformat}
 +.endif
 +
 +${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz: PLIST.${_curformat}
 +	@${PKG_CREATE} -v -f PLIST.${_curformat} -p ${DESTDIR} -s ${.OBJDIR} \
  		-c -"FDP ${.CURDIR:T} ${_curformat} package" \
 -		-d -"FDP ${.CURDIR:T} ${_curformat} package" \
 -		${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
 +		-d -"FDP ${.CURDIR:T} ${_curformat} package" ${.TARGET}
 +
 +package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
  .endfor
 +
 +#
 +# Build install- targets for any formats we've missed that we don't handle.
 +#
 +
 +.for _curformat in ${ALL_FORMATS}
 +.if !target(package-${_curformat})
 +package-${_curformat}:
 +	@${ECHO_CMD} \"${_curformat}\" is not a valid output format for this document.
 +.endif
 +.endfor
 +
 +${LOCAL_CSS_SHEET}: ${CSS_SHEET}
 +	${CP} -p ${.ALLSRC} ${.TARGET}
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.images.mk new/doc/share/mk/doc.images.mk
 --- old/doc/share/mk/doc.images.mk	Thu Oct 18 16:32:51 2001
 +++ new/doc/share/mk/doc.images.mk	Thu Oct 18 16:18:29 2001
 @@ -47,14 +47,42 @@
  # to PDF, and hopefully get better quality.
  #
  
 -IMAGES_GEN_PNG=${IMAGES:M*.eps:S/.eps$/.png/}
 -IMAGES_GEN_EPS=${IMAGES:M*.png:S/.png$/.eps/}
 -IMAGES_GEN_PDF=${IMAGES:M*.eps:S/.eps$/.pdf/}
 +_IMAGES_PNG= ${IMAGES:M*.png}
 +_IMAGES_EPS= ${IMAGES:M*.eps}
 +_IMAGES_SCR= ${IMAGES:M*.scr}
 +
 +IMAGES_GEN_PNG= ${_IMAGES_EPS:S/.eps$/.png/}
 +IMAGES_GEN_EPS= ${_IMAGES_PNG:S/.png$/.eps/}
 +IMAGES_GEN_PDF= ${_IMAGES_EPS:S/.eps$/.pdf/}
 +IMAGES_SCR_PNG= ${_IMAGES_SCR:S/.scr$/.png/}
 +IMAGES_SCR_EPS= ${_IMAGES_SCR:S/.scr$/.eps/}
  
  CLEANFILES+= ${IMAGES_GEN_PNG} ${IMAGES_GEN_EPS} ${IMAGES_GEN_PDF}
 +CLEANFILES+= ${IMAGES_SCR_PNG} ${IMAGES_SCR_EPS}
  
 -IMAGES_PNG=${IMAGES:M*.png} ${IMAGES_GEN_PNG} ${IMAGES:M*.scr:S/.scr$/.png/}
 -IMAGES_EPS=${IMAGES:M*.eps} ${IMAGES_GEN_EPS} ${IMAGES:M*.scr:S/.scr$/.eps/}
 +IMAGES_PNG= ${_IMAGES_PNG} ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG}
 +IMAGES_EPS= ${_IMAGES_EPS} ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS}
 +
 +.if ${.OBJDIR} != ${.CURDIR}
 +LOCAL_IMAGES= ${IMAGES:S|^|${.OBJDIR}/|}
 +CLEANFILES+= ${LOCAL_IMAGES}
 +
 +.if !empty(_IMAGES_PNG)
 +LOCAL_IMAGES_PNG= ${_IMAGES_PNG:S|^|${.OBJDIR}/|}
 +.endif
 +
 +.if !empty(_IMAGES_EPS)
 +LOCAL_IMAGES_EPS= ${_IMAGES_EPS:S|^|${.OBJDIR}/|}
 +.endif
 +
 +.else
 +LOCAL_IMAGES= ${IMAGES}
 +LOCAL_IMAGES_PNG= ${_IMAGES_PNG}
 +LOCAL_IMAGES_EPS= ${_IMAGES_EPS}
 +.endif
 +
 +LOCAL_IMAGES_PNG+= ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG}
 +LOCAL_IMAGES_EPS+= ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS}
  
  # The default resolution eps2png (82) assumes a 640x480 monitor, and is too
  # low for the typical monitor in use today. The resolution of 100 looks
 @@ -101,8 +129,15 @@
  
  .for _curimage in ${IMAGES_GEN_PDF}
  ${_curimage}: ${_curimage:S/.pdf$/.eps/}
 -	${EPSTOPDF} --outfile=${.TARGET} ${_curimage:S/.pdf$/.eps/}
 +	${EPSTOPDF} --outfile=${.TARGET} ${.CURDIR}/${_curimage:S/.pdf$/.eps/}
 +.endfor
 +
 +.if ${.OBJDIR} != ${.CURDIR}
 +.for _curimage in ${IMAGES}
 +${.OBJDIR}/${_curimage}: ${_curimage}
 +	${CP} -p ${.ALLSRC} ${.TARGET}
  .endfor
 +.endif
  
  #
  # Using library images
 @@ -120,6 +155,9 @@
  # as necessary.
  #
  
 +IMAGES_LIB?=
 +LOCAL_IMAGES_LIB ?=
 +
  #
  # The name of the directory that contains all the library images for this
  # language and encoding
 @@ -140,10 +178,16 @@
  # ensures that each image required is copied from its location in 
  # ${IMAGES_LIB_DIR} to the same place in ${LOCAL_IMAGES_LIB_DIR}.
  #
 +
  .for _curimage in ${IMAGES_LIB}
 +LOCAL_IMAGES_LIB += ${LOCAL_IMAGES_LIB_DIR}/${_curimage}
  ${LOCAL_IMAGES_LIB_DIR}/${_curimage}: ${IMAGES_LIB_DIR}/${_curimage}
  	@[ -d ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \
 -		${MKDIR} -p ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 -	${INSTALL_DOCS}  ${IMAGES_LIB_DIR}/${_curimage} \
 -			 ${LOCAL_IMAGES_LIB_DIR}/${_curimage}
 +		${MKDIR} ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H}
 +	${CP} -p ${IMAGES_LIB_DIR}/${_curimage} \
 +		 ${LOCAL_IMAGES_LIB_DIR}/${_curimage}
  .endfor
 +
 +.if !empty(IMAGES_LIB)
 +CLEANFILES+= ${IMAGES_LIB:S|^|${LOCAL_IMAGES_LIB_DIR}/|}
 +.endif
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.install.mk new/doc/share/mk/doc.install.mk
 --- old/doc/share/mk/doc.install.mk	Thu Oct 18 16:32:47 2001
 +++ new/doc/share/mk/doc.install.mk	Thu Oct 18 16:18:29 2001
 @@ -80,7 +80,7 @@
  .if exists(${DOC_PREFIX}/packages)
  PACKAGES?=	${DOC_PREFIX}/packages
  .else
 -PACKAGES?=	${.CURDIR}
 +PACKAGES?=	${.OBJDIR}
  .endif
  
  # hack to set DOCOWN and DOCGRP to those of the user installing, if that
 @@ -105,3 +105,19 @@
  INSTALL_DOCS?= \
  	${INSTALL} ${COPY} ${INSTALL_FLAGS} -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE}
  
 +# ------------------------------------------------------------------------
 +#
 +# Work out the language and encoding used for this document.
 +#
 +# Liberal default of maximum of 5 directories below to find it.
 +#
 +
 +.if !defined(LANGCODE)
 +LANGCODE:=	${.CURDIR}
 +.for _ in 1 2 3 4 5 6 7 8 9 10
 +.if !(${LANGCODE:H:T} == "doc")
 +LANGCODE:=	${LANGCODE:H}
 +.endif
 +.endfor
 +LANGCODE:=	${LANGCODE:T}
 +.endif
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.project.mk new/doc/share/mk/doc.project.mk
 --- old/doc/share/mk/doc.project.mk	Thu Oct 18 16:32:47 2001
 +++ new/doc/share/mk/doc.project.mk	Thu Oct 18 16:18:29 2001
 @@ -70,7 +70,7 @@
  
  CP?=		/bin/cp
  LN?=		/bin/ln
 -MKDIR?=		/bin/mkdir
 +MKDIR?=		/bin/mkdir -p
  RM?=		/bin/rm
  MV?=		/bin/mv
  
 @@ -78,6 +78,9 @@
  # be listed first).
  .include "doc.images.mk"
  
 +# Ownership information.
 +.include "doc.install.mk"
 +
  # Format-specific configuration
  .if defined(DOC)
  .if ${DOCFORMAT} == "docbook"
 @@ -88,7 +91,5 @@
  .endif
  .endif
  
 -# Subdirectory glue and ownership information.
 +# Subdirectory glue.
  .include "doc.subdir.mk"
 -.include "doc.install.mk"
 -
 diff -ruN -x CVS -x work -x *~ -x *.orig -x *.rej -I $Id.*$ -I $FreeBSD.*$ old/doc/share/mk/doc.subdir.mk new/doc/share/mk/doc.subdir.mk
 --- old/doc/share/mk/doc.subdir.mk	Thu Oct 18 16:32:47 2001
 +++ new/doc/share/mk/doc.subdir.mk	Thu Oct 18 16:18:29 2001
 @@ -51,23 +51,6 @@
  .include "${.CURDIR}/../Makefile.inc"
  .endif
  
 -# ------------------------------------------------------------------------
 -#
 -# Work out the language and encoding used for this document.
 -#
 -# Liberal default of maximum of 5 directories below to find it.
 -#
 -
 -.if !defined(LANGCODE)
 -LANGCODE:=	${.CURDIR}
 -.for _ in 1 2 3 4 5 6 7 8 9 10
 -.if !(${LANGCODE:H:T} == "doc")
 -LANGCODE:=	${LANGCODE:H}
 -.endif
 -.endfor
 -LANGCODE:=	${LANGCODE:T}
 -.endif
 -
  .if !target(install)
  install: afterinstall symlinks 
  afterinstall: realinstall
 @@ -78,7 +61,8 @@
  realpackage: _SUBDIRUSE
  
  .if !defined(IGNORE_COMPAT_SYMLINK) && defined(COMPAT_SYMLINK)
 -SYMLINKS+= ${DOCDIR} ${.CURDIR:T:ja_JP.eucJP=ja} ${COMPAT_SYMLINK:ja=ja_JP.eucJP}
 +SYMLINKS+= ${DOCDIR} ${.CURDIR:T:ja_JP.eucJP=ja} \
 +	   ${COMPAT_SYMLINK:ja=ja_JP.eucJP}
  .endif
  
  .if defined(PRI_LANG) && defined(ROOT_SYMLINKS) && !empty(ROOT_SYMLINKS)
 
 Cyrille.
 -- 
 Cyrille Lefevre                 mailto:clefevre@citeweb.net

From: Cyrille Lefevre <clefevre@citeweb.net>
To: freebsd-gnats-submit@FreeBSD.org, murray.stokely@windriver.com
Cc:  
Subject: Re: docs/31131: build/install doc isn't /usr/obj prefix clean
Date: Thu, 25 Oct 2001 09:06:49 +0200 (CEST)

 last minute fix, apply it w/ patch -p1 starting at /usr.
 
 diff -ru old/doc/share/mk/doc.docbook.mk new/doc/share/mk/doc.docbook.mk
 --- old/doc/share/mk/doc.docbook.mk	Thu Oct 25 09:00:15 2001
 +++ new/doc/share/mk/doc.docbook.mk	Thu Oct 25 09:02:30 2001
 @@ -235,6 +235,12 @@
  # and INSTALL_COMPRESSED variables are wrong.
  #
  
 +.if ${.OBJDIR} != ${.CURDIR}
 +LOCAL_CSS_SHEET= ${.OBJDIR}/${CSS_SHEET:T}
 +.else
 +LOCAL_CSS_SHEET= ${CSS_SHEET:T}
 +.endif
 +
  .for _curformat in ${FORMATS}
  _cf=${_curformat}
  
 @@ -243,7 +249,6 @@
  CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
  		HTML.manifest ln*.html
  CLEANFILES+= PLIST.${_curformat}
 -CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .else
  _docs+= ${DOC}.${_curformat}
 @@ -253,18 +258,12 @@
  .if ${_cf} == "html-split.tar"
  CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \
  		HTML.manifest ln*.html
 -CLEANFILES+= ${LOCAL_CSS_SHEET}
 -
 -.elif ${_cf} == "html"
 -CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "html.tar"
  CLEANFILES+= ${DOC}.html
 -CLEANFILES+= ${LOCAL_CSS_SHEET}
  
  .elif ${_cf} == "txt"
 -CLEANFILES+= ${DOC}.html ${DOC}.html-text
 -CLEANFILES+= ${LOCAL_CSS_SHEET}
 +CLEANFILES+= ${DOC}.html-text
  
  .elif ${_cf} == "dvi"
  CLEANFILES+= ${DOC}.aux ${DOC}.log ${DOC}.tex
 @@ -284,6 +283,13 @@
  
  .endif
  .endif
 +
 +.if (${LOCAL_CSS_SHEET} != ${CSS_SHEET}) && \
 +    (${_cf} == "html-split" || ${_cf} == "html-split.tar" || \
 +     ${_cf} == "html" || ${_cf} == "html.tar" || ${_cf} == "txt")
 +CLEANFILES+= ${LOCAL_CSS_SHEET}
 +.endif
 +
  .endfor
  
  
 @@ -329,12 +335,6 @@
  CLEANFILES+= 		${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX}
  .endif
  
 -.if ${.OBJDIR} != ${.CURDIR}
 -LOCAL_CSS_SHEET= ${.OBJDIR}/${CSS_SHEET:T}
 -.else
 -LOCAL_CSS_SHEET= ${CSS_SHEET:T}
 -.endif
 -
  .MAIN: all
  
  all: ${_docs}
 @@ -723,5 +723,7 @@
  package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz
  .endfor
  
 +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET}
  ${LOCAL_CSS_SHEET}: ${CSS_SHEET}
  	${CP} -p ${.ALLSRC} ${.TARGET}
 +.endif
 diff -ru old/doc/share/mk/doc.html.mk new/doc/share/mk/doc.html.mk
 --- old/doc/share/mk/doc.html.mk	Thu Oct 25 09:00:16 2001
 +++ new/doc/share/mk/doc.html.mk	Thu Oct 25 09:02:32 2001
 @@ -85,6 +85,12 @@
  # ------------------------------------------------------------------------
  #
  
 +.if ${.OBJDIR} != ${.CURDIR}
 +LOCAL_CSS_SHEET=	${.OBJDIR}/${CSS_SHEET:T}
 +.else
 +LOCAL_CSS_SHEET=	${CSS_SHEET:T}
 +.endif
 +
  .for _curformat in ${FORMATS}
  _cf=${_curformat}
  
 @@ -96,7 +102,9 @@
  CLEANFILES+= PLIST.${_curformat}
  
  .if ${_cf} == "txt"
 +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET}
  CLEANFILES+= ${LOCAL_CSS_SHEET}
 +.endif
  
  .elif ${_cf} == "txt"
  CLEANFILES+= ${DOC}.html
 @@ -135,12 +143,6 @@
  .endfor
  .endif
  
 -.if ${.OBJDIR} != ${.CURDIR}
 -LOCAL_CSS_SHEET=	${.OBJDIR}/${CSS_SHEET:T}
 -.else
 -LOCAL_CSS_SHEET=	${CSS_SHEET:T}
 -.endif
 -
  .MAIN: all
  
  all: ${_docs}
 @@ -379,5 +381,7 @@
  .endif
  .endfor
  
 +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET}
  ${LOCAL_CSS_SHEET}: ${CSS_SHEET}
  	${CP} -p ${.ALLSRC} ${.TARGET}
 +.endif
 
 Cyrille.
 -- 
 Cyrille Lefevre                 mailto:clefevre@citeweb.net
State-Changed-From-To: open->closed 
State-Changed-By: murray 
State-Changed-When: Mon Oct 29 01:24:32 PST 2001 
State-Changed-Why:  
Your changes have been committed, thanks!  Please send in smaller PRs 
in the future.  Applying three large patches on top of one another is 
difficult to review. 


http://www.FreeBSD.org/cgi/query-pr.cgi?pr=31131 
>Unformatted:
