Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Oct 2001 13:05:01 +0200 (CEST)
From:      Cyrille Lefevre <clefevre@citeweb.net>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   docs/31131: build/install doc isn't /usr/obj prefix clean
Message-ID:  <200110081105.f98B51s58441@gits.dyndns.org>

next in thread | raw e-mail | index | archive | help

>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:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 08 04:20:06 PDT 2001
>Closed-Date:
>Last-Modified:
>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:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110081105.f98B51s58441>