diff options
author | Murray Stokely <murray@FreeBSD.org> | 2001-10-29 09:21:53 +0000 |
---|---|---|
committer | Murray Stokely <murray@FreeBSD.org> | 2001-10-29 09:21:53 +0000 |
commit | f92319a1b119b8b575f3ef1ad167217c3ced4b8b (patch) | |
tree | e2d3071409e12641266ba163c6ca00c33b946497 /share | |
parent | 4957cc2b7f463d9aa62d3cf0f07146cdf1a638ef (diff) | |
download | doc-f92319a1b119b8b575f3ef1ad167217c3ced4b8b.tar.gz doc-f92319a1b119b8b575f3ef1ad167217c3ced4b8b.zip |
Make build/install /usr/obj prefix clean.
Also fix several minor bugs here, such as leftover files not being
deleted after 'make clean'.
PR: docs/31131
Submitted by: Cyrille Lefevre <clefevre@citeweb.net>
Notes
Notes:
svn path=/head/; revision=11066
Diffstat (limited to 'share')
-rw-r--r-- | share/mk/doc.docbook.mk | 429 | ||||
-rw-r--r-- | share/mk/doc.html.mk | 181 | ||||
-rw-r--r-- | share/mk/doc.images.mk | 84 | ||||
-rw-r--r-- | share/mk/doc.install.mk | 24 | ||||
-rw-r--r-- | share/mk/doc.project.mk | 15 | ||||
-rw-r--r-- | share/mk/doc.subdir.mk | 96 |
6 files changed, 552 insertions, 277 deletions
diff --git a/share/mk/doc.docbook.mk b/share/mk/doc.docbook.mk index 74ca3d1f4a..12df910451 100644 --- a/share/mk/doc.docbook.mk +++ b/share/mk/doc.docbook.mk @@ -1,5 +1,5 @@ # -# $FreeBSD: doc/share/mk/doc.docbook.mk,v 1.50 2001/09/17 09:45:01 murray Exp $ +# $FreeBSD$ # # This include file <doc.docbook.mk> handles building and installing of # DocBook documentation in the FreeBSD Documentation Project. @@ -118,16 +118,25 @@ LANGUAGECATALOG=${DOC_PREFIX}/${LANGCODE}/share/sgml/catalog 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 +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 @@ -155,6 +164,33 @@ PRINTOPTS+= -V minimal-section-labels TEXCMDS+= \tracingstats=${TRACE} .endif +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 + +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. @@ -197,60 +233,61 @@ TEXCMDS+= \tracingstats=${TRACE} # 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} .if ${_cf} == "html-split" _docs+= index.html HTML.manifest ln*.html -CLEANFILES+= `[ -f HTML.manifest ] && xargs < HTML.manifest` HTML.manifest ln*.html -CLEANFILES+= docbook.css +CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \ + HTML.manifest ln*.html +CLEANFILES+= PLIST.${_curformat} -.elif ${_cf} == "html-split.tar" -_docs+= ${DOC}.html-split.tar -CLEANFILES+= `[ -f HTML.manifest ] && xargs < HTML.manifest` HTML.manifest ln*.html -CLEANFILES+= ${DOC}.html-split.tar -CLEANFILES+= docbook.css +.else +_docs+= ${DOC}.${_curformat} +CLEANFILES+= ${DOC}.${_curformat} +CLEANFILES+= PLIST.${_curformat} -.elif ${_cf} == "html" -_docs+= ${DOC}.html -CLEANFILES+= ${DOC}.html -CLEANFILES+= docbook.css +.if ${_cf} == "html-split.tar" +CLEANFILES+= $$([ -f HTML.manifest ] && ${XARGS} < HTML.manifest) \ + HTML.manifest ln*.html .elif ${_cf} == "html.tar" -_docs+= ${DOC}.html.tar -CLEANFILES+= ${DOC}.html ${DOC}.html.tar -CLEANFILES+= docbook.css +CLEANFILES+= ${DOC}.html .elif ${_cf} == "txt" -_docs+= ${DOC}.txt -CLEANFILES+= ${DOC}.html ${DOC}.txt ${DOC}.html-text -CLEANFILES+= docbook.css +CLEANFILES+= ${DOC}.html-text .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 +.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 @@ -265,10 +302,17 @@ CLEANFILES+= ${DOC}.pdb ${.CURDIR:T}.pdb .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 @@ -289,53 +333,62 @@ PRINT_INDEX?= print.index CLEANFILES+= ${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX} .endif -.for _curimage in ${IMAGES_LIB} -LOCAL_IMAGES_LIB += ${LOCAL_IMAGES_LIB_DIR}/${_curimage} -.endfor - .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 -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} ${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 -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 ${HTMLOPTS} \ + ${JADEOPTS} -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 +${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 - tar cf ${.TARGET} ${DOC}.html - tar uf ${.TARGET} ${LOCAL_IMAGES_LIB} - tar uf ${.TARGET} ${IMAGES_PNG} - tar uf ${.TARGET} docbook.css +${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 - links -dump ${.ALLSRC} > ${.TARGET} + ${HTML2TXT} ${HTML2TXTFLAGS} ${.ALLSRC} > ${.TARGET} -${DOC}.pdb: ${DOC}.html - iSiloBSD -y -d0 -Idef ${DOC}.html ${DOC}.pdb +${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}.pdb + ${LN} -f ${.ALLSRC} ${.TARGET} -${DOC}.rtf: ${SRCS} - ${JADE} -Vrtf-backend ${PRINTOPTS} ${JADEOPTS} -d ${DSLPRINT} -t rtf -o ${.TARGET} ${MASTERDOC} +.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} ${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 @@ -344,34 +397,51 @@ ${DOC}.rtf: ${SRCS} # format, which will then lead on to a different .dvi file as well. # -${DOC}.tex-ps: ${SRCS} ${IMAGES_EPS} ${INDEX_SGML} ${PRINT_INDEX} - ${JADE} -Vtex-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} -Vtex-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}}' - -${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}}' + ${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 ${LOCAL_IMAGES_EPS} + @${ECHO} "==> TeX pass 1/3" + -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + @${ECHO} "==> TeX pass 2/3" + -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + @${ECHO} "==> TeX pass 3/3" + -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + +${DOC}.pdf: ${DOC}.tex-pdf ${IMAGES_PDF} + @${ECHO} "==> PDFTeX pass 1/3" + -${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}' + @${ECHO} "==> PDFTeX pass 2/3" + -${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}' + @${ECHO} "==> PDFTeX pass 3/3" + ${PDFTEX} "&pdfjadetex" '\nonstopmode\input{${DOC}.dvi}' ${DOC}.ps: ${DOC}.dvi - dvips -o ${.TARGET} ${.ALLSRC} + ${DVIPS} -o ${.TARGET} ${.ALLSRC} + +${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 -${DOC}.tar: ${SRCS} - tar cf ${.TARGET} ${.ALLSRC} # ------------------------------------------------------------------------ # @@ -384,7 +454,8 @@ ${DOC}.tar: ${SRCS} # 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} + # ------------------------------------------------------------------------ # @@ -400,22 +471,25 @@ lint validate: .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 ${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 - perl ${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl -g -o ${INDEX_SGML} ${.TARGET} + ${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} + # ------------------------------------------------------------------------ # @@ -438,13 +512,13 @@ KNOWN_COMPRESS= gz bz2 zip # _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. @@ -455,13 +529,27 @@ _PROG_COMPRESS_zip: .USE _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 .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 @@ -497,70 +585,92 @@ realinstall: ${_curinst} _cf=${_curformat} .if !target(install-${_cf}) .if ${_cf} == "html-split" -install-${_cf}: index.html - @[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR} - ${INSTALL_DOCS} `xargs < HTML.manifest` ${DESTDIR} - ${INSTALL_DOCS} docbook.css ${DESTDIR} +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} +.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} - ${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*/*} ${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*/*} - mkdir -p ${DESTDIR}/${_curimage:H} +.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} - @[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR} - ${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR} +.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} - @[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR} +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 @@ -577,7 +687,7 @@ install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext} 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,30 +697,31 @@ packagelist: .for _curformat in ${KNOWN_FORMATS} _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 -.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 +PLIST.${_curformat}: index.html + @${SORT} HTML.manifest > PLIST.${_curformat} .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 +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 + +${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" ${.TARGET} + +package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz .endfor -docbook.css: ${CSS_SHEET} - cp ${CSS_SHEET} ${.CURDIR}/docbook.css +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET} +${LOCAL_CSS_SHEET}: ${CSS_SHEET} + ${CP} -p ${.ALLSRC} ${.TARGET} +.endif diff --git a/share/mk/doc.html.mk b/share/mk/doc.html.mk index fbe78ab21d..b89d7e1ab4 100644 --- a/share/mk/doc.html.mk +++ b/share/mk/doc.html.mk @@ -1,5 +1,5 @@ # -# $FreeBSD: doc/share/mk/doc.html.mk,v 1.7 2001/03/22 22:49:01 obrien Exp $ +# $FreeBSD$ # # This include file <doc.html.mk> handles building and installing of # HTML documentation in the FreeBSD Documentation Project. @@ -56,34 +56,63 @@ OPENJADE= yes .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 +XARGS?= /usr/bin/xargs + +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} + # ------------------------------------------------------------------------ # +.if ${.OBJDIR} != ${.CURDIR} +LOCAL_CSS_SHEET= ${.OBJDIR}/${CSS_SHEET:T} +.else +LOCAL_CSS_SHEET= ${CSS_SHEET:T} +.endif + .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" +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET} +CLEANFILES+= ${LOCAL_CSS_SHEET} +.endif + +.elif ${_cf} == "txt" +CLEANFILES+= ${DOC}.html + +.elif ${_cf} == "pdb" +_docs+= ${.CURDIR:T}.pdb +CLEANFILES+= ${.CURDIR:T}.pdb + .endif .endfor @@ -98,40 +127,51 @@ _docs+= ${DOC}.${_curformat} .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 - .MAIN: all all: ${_docs} -${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${IMAGES_PNG} - ${SGMLNORM} -c ${HTMLCATALOG} ${SRCS} > ${.TARGET} +${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} ${LOCAL_CSS_SHEET} + ${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 +${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}.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}.tar: ${SRCS} - tar cf ${.TARGET} ${.ALLSRC} +${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. @@ -139,10 +179,11 @@ ${DOC}.tar: ${SRCS} .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 + # ------------------------------------------------------------------------ # # Validation targets @@ -156,6 +197,7 @@ ${DOC}.${_curformat}: lint validate: ${NSGMLS} -s -c ${HTMLCATALOG} ${MASTERDOC} + # ------------------------------------------------------------------------ # # Compress targets @@ -177,13 +219,13 @@ KNOWN_COMPRESS= gz bz2 zip # _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 +245,7 @@ ${DOC}.${_cf}.${_curcompress}: ${DOC}.${_cf} _PROG_COMPRESS_${_curcompress} .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 @@ -233,29 +275,36 @@ realinstall: ${_curinst} .for _curformat in ${KNOWN_FORMATS} _cf=${_curformat} .if !target(install-${_cf}) -install-${_cf}: ${DOC}.${_cf} - @[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR} +install-${_curformat}: ${DOC}.${_curformat} + @[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR} ${INSTALL_DOCS} ${.ALLSRC} ${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} - ${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 +.if ${_cf} == "pdb" + ${LN} -f ${DESTDIR}/${.ALLSRC} ${DESTDIR}/${.CURDIR:T}.${_curformat} +.endif .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,15 +317,16 @@ install-${_cf}.${_compressext}: ${DOC}.${_cf}.${_compressext} .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 + # ------------------------------------------------------------------------ # # Package building @@ -293,7 +343,7 @@ install-${_curformat}.${_compressext}: 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 @@ -302,9 +352,36 @@ packagelist: .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 +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" ${.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 + +.if ${LOCAL_CSS_SHEET} != ${CSS_SHEET} +${LOCAL_CSS_SHEET}: ${CSS_SHEET} + ${CP} -p ${.ALLSRC} ${.TARGET} +.endif diff --git a/share/mk/doc.images.mk b/share/mk/doc.images.mk index 7f1ed38fc2..bad8674776 100644 --- a/share/mk/doc.images.mk +++ b/share/mk/doc.images.mk @@ -1,5 +1,5 @@ # -# $FreeBSD: doc/share/mk/doc.images.mk,v 1.10 2001/07/13 12:09:59 nik Exp $ +# $FreeBSD$ # # This include file <doc.images.mk> handles image processing. # @@ -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_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 -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/} +.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 @@ -67,13 +95,22 @@ EPS2PNG_RES?= 100 # 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 +EPSTOPDF?= ${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,19 +119,26 @@ IMAGES_PDF=${IMAGES_GEN_PDF} .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} ${.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 # -------------------- @@ -111,6 +155,9 @@ ${_curimage}: ${_curimage:S/.pdf$/.eps/} # as necessary. # +IMAGES_LIB?= +LOCAL_IMAGES_LIB ?= + # # The name of the directory that contains all the library images for this # language and encoding @@ -126,16 +173,21 @@ IMAGES_LIB_DIR?= ${.CURDIR}/../../share/images # 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 # ${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} -C -c ${IMAGES_LIB_DIR}/${_curimage} ${LOCAL_IMAGES_LIB_DIR}/${_curimage} + @[ -d ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ] || \ + ${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 --git a/share/mk/doc.install.mk b/share/mk/doc.install.mk index 14d61a66e8..d55ff596c2 100644 --- a/share/mk/doc.install.mk +++ b/share/mk/doc.install.mk @@ -1,5 +1,5 @@ # -# $FreeBSD: doc/share/mk/doc.install.mk,v 1.3 1999/09/09 17:11:28 wosch Exp $ +# $FreeBSD$ # # # This include file <doc.install.mk> provides variables defining the default @@ -80,7 +80,7 @@ DOCDIR?= /usr/share/doc .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 @@ -99,7 +99,25 @@ DOCGRP:= ${GROUPNAME} .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} + +# ------------------------------------------------------------------------ +# +# 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 --git a/share/mk/doc.project.mk b/share/mk/doc.project.mk index 9d253d44fd..1b2a3027c3 100644 --- a/share/mk/doc.project.mk +++ b/share/mk/doc.project.mk @@ -1,5 +1,5 @@ # -# $FreeBSD: doc/share/mk/doc.project.mk,v 1.8 2001/03/13 09:54:34 nik Exp $ +# $FreeBSD$ # # This include file <doc.project.mk> is the FreeBSD Documentation Project # co-ordination make file. @@ -68,10 +68,19 @@ LOCALBASE?= /usr/local PREFIX?= ${LOCALBASE} PRI_LANG?= en_US.ISO8859-1 +CP?= /bin/cp +LN?= /bin/ln +MKDIR?= /bin/mkdir -p +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" +# Ownership information. +.include "doc.install.mk" + # Format-specific configuration .if defined(DOC) .if ${DOCFORMAT} == "docbook" @@ -82,7 +91,5 @@ PRI_LANG?= en_US.ISO8859-1 .endif .endif -# Subdirectory glue and ownership information. +# Subdirectory glue. .include "doc.subdir.mk" -.include "doc.install.mk" - diff --git a/share/mk/doc.subdir.mk b/share/mk/doc.subdir.mk index 8550bfd5d0..0f291fe3af 100644 --- a/share/mk/doc.subdir.mk +++ b/share/mk/doc.subdir.mk @@ -1,7 +1,7 @@ # Taken from: # Id: bsd.subdir.mk,v 1.27 1999/03/21 06:43:40 bde # -# $FreeBSD: doc/share/mk/doc.subdir.mk,v 1.5 2000/10/29 02:39:10 nik Exp $ +# $FreeBSD$ # # This include file <doc.subdir.mk> contains the default targets # for building subdirectories in the FreeBSD Documentation Project. @@ -51,24 +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 @@ -79,7 +61,8 @@ package: realpackage symlinks 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) @@ -93,11 +76,11 @@ SYMLINKS+= ${DOCDIR} ${LANGCODE:ja_JP.eucJP=ja}/${.CURDIR:T}/${_tmp} ${_tmp} .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 +89,8 @@ symlinks: ${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 +104,10 @@ ${__target}: _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 +120,7 @@ _SUBDIRUSE: .USE .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 +130,10 @@ ${__target}: _SUBDIRUSE .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 +142,67 @@ obj: _SUBDIRUSE .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 |