Thread: [Indic-computing-cvs-logs] SF.net SVN: indic-computing: [299] doc/trunk/share/mk
Status: Alpha
Brought to you by:
jkoshy
From: <jk...@us...> - 2007-10-10 13:10:40
|
Revision: 299 http://indic-computing.svn.sourceforge.net/indic-computing/?rev=299&view=rev Author: jkoshy Date: 2007-10-10 06:10:45 -0700 (Wed, 10 Oct 2007) Log Message: ----------- Bring up over the current documentation build infrastructure from the FreeBSD Documentation Project. Modified Paths: -------------- doc/trunk/share/mk/doc.docbook.mk doc/trunk/share/mk/doc.html.mk doc/trunk/share/mk/doc.images.mk doc/trunk/share/mk/doc.install.mk doc/trunk/share/mk/doc.project.mk doc/trunk/share/mk/doc.subdir.mk Added Paths: ----------- doc/trunk/share/mk/doc.common.mk doc/trunk/share/mk/doc.slides.mk doc/trunk/share/mk/doc.xml.mk Added: doc/trunk/share/mk/doc.common.mk =================================================================== --- doc/trunk/share/mk/doc.common.mk (rev 0) +++ doc/trunk/share/mk/doc.common.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -0,0 +1,145 @@ +# +# $FreeBSD: doc/share/mk/doc.common.mk,v 1.18 2006/11/02 18:58:17 bmah Exp $ +# +# This include file <doc.common.mk> provides targets and variables for +# documents commonly used in doc/ and www/ tree. +# + +AWK?= /usr/bin/awk +GREP?= /usr/bin/grep +REALPATH?= /bin/realpath +SED?= /usr/bin/sed + +.if defined(DOC_PREFIX) && !empty(DOC_PREFIX) +WEB_PREFIX?= ${DOC_PREFIX}/../www +.elif defined(WEB_PREFIX) && !empty(WEB_PREFIX) +DOC_PREFIX?= ${WEB_PREFIX}/../doc +.else +.error "You must define either WEB_PREFIX or DOC_PREFIX!" +.endif + +# ------------------------------------------------------------------------ +# +# Work out the language and encoding used for this document. +# +# Liberal default of maximum of 10 directories below to find it. +# + +.if defined(DOC_PREFIX) && !empty(DOC_PREFIX) +DOC_PREFIX_NAME!= ${REALPATH} ${DOC_PREFIX} +DOC_PREFIX_NAME:= ${DOC_PREFIX_NAME:T} +.else +DOC_PREFIX_NAME?= doc +.endif + +.if defined(WEB_PREFIX) && !empty(WEB_PREFIX) +WWW_PREFIX_NAME!= ${REALPATH} ${WEB_PREFIX} +WWW_PREFIX_NAME:= ${WWW_PREFIX_NAME:T} +.else +WWW_PREFIX_NAME?= www +.endif + +.if (!defined(LANGCODE) || empty(LANGCODE)) && (!defined(WWW_LANGCODE) || empty(WWW_LANGCODE)) +# Calculate _LANGCODE. +_LANGCODE:= ${.CURDIR} +.for _ in 1 2 3 4 5 6 7 8 9 10 +.if !(${_LANGCODE:H:T} == ${DOC_PREFIX_NAME}) && !(${_LANGCODE:H:T} == ${WWW_PREFIX_NAME}) +_LANGCODE:= ${_LANGCODE:H} +.endif +.endfor +.if (${_LANGCODE:H:T} == ${DOC_PREFIX_NAME}) +# We are in doc/. +_LANGCODE:= ${_LANGCODE:T} +_WWW_LANGCODE:= . +.else +# We are in www/. +_WWW_LANGCODE:= ${_LANGCODE:T} +_LANGCODE:= . +.endif +.else +# when LANGCODE or WWW_LANGCODE is defined, use the value. +.if defined(LANGCODE) && !empty(LANGCODE) +_LANGCODE?= ${LANGCODE} +.else +_LANGCODE?= . +.endif +.if defined(WWW_LANGCODE) && !empty(WWW_LANGCODE) +_WWW_LANGCODE?= ${WWW_LANGCODE} +.else +_WWW_LANGCODE?= . +.endif +.endif + +# fixup _LANGCODE +.if (${_LANGCODE} == .) +# We have a short name such as `en' in ${_WWW_LANGCODE} now. +# Guess _LANGCODE using _WWW_LANGCODE. +_LANGCODE:= ${_WWW_LANGCODE} +.if (${_LANGCODE} != .) +_LANGCODE!= ${ECHO} ${DOC_PREFIX}/${_WWW_LANGCODE}* +.for _ in 1 2 3 4 5 6 7 8 9 10 +.if !(${_LANGCODE:H:T} == ${DOC_PREFIX_NAME}) +_LANGCODE:= ${_LANGCODE:H} +.endif +.endfor +_LANGCODE:= ${_LANGCODE:T} +.endif +.endif +LANGCODE?= ${_LANGCODE} + +# fixup _WWW_LANGCODE +.if (${_WWW_LANGCODE} == .) +# We have a long name such as `en_US.ISO8859-1' in ${LANGCODE} now. +# Guess _WWW_LANGCODE using _LANGCODE. +_WWW_LANGCODE!= ${ECHO} ${WEB_PREFIX}/* +_WWW2_LANGCODE!= ${ECHO} ${_WWW_LANGCODE:T} |\ + ${SED} -e 's,.*\(${LANGCODE:R:C,(..)_.*,\1,}[^. ]*\).*,\1,' +.if ${_WWW_LANGCODE:T} == "*" +_WWW_LANGCODE:= . +.elif ${_WWW_LANGCODE:T} == ${_WWW2_LANGCODE} +_WWW_LANGCODE:= . +.else +_WWW_LANGCODE:= ${_WWW2_LANGCODE} +.endif +.undef _WWW2_LANGCODE +.endif +WWW_LANGCODE?= ${_WWW_LANGCODE} + +# normalize DOC_PREFIX and WEB_PREFIX +DOC_PREFIX!= ${REALPATH} ${DOC_PREFIX} +WEB_PREFIX!= ${REALPATH} ${WEB_PREFIX} + +.if ${WWW_LANGCODE} == "en" +WEB_PREFIX_REL= ${.CURDIR:S,^${WEB_PREFIX},,:C,/[^/]+,/..,g:S,^/..,,:S,^/,,:S,^$,.,:S,^/..,,} +.else +WEB_PREFIX_REL= ${.CURDIR:S,^${WEB_PREFIX},,:C,/[^/]+,/..,g:S,^/..,,:S,^/,,:S,^$,.,} +.endif + +.if !defined(URL_RELPREFIX) +URLS_ABSOLUTE= YES +.elif !defined(URLS_ABSOLUTE) +_URL_RELPREFIX_LEVEL!= set -- ${URL_RELPREFIX:S,/$,,:S,/, ,g}; echo "$$\#" +URL_RELPREFIX_ENT= freebsd.urls.relprefix.${_URL_RELPREFIX_LEVEL} +.endif + +# +# when URLS_ABSOLUTE is specified, make +# %freebsd.urls.absolute; "INCLUDE". +# +.if defined(URLS_ABSOLUTE) +HTMLFLAGS+= -ifreebsd.urls.absolute +SGMLNORMFLAGS+= -ifreebsd.urls.absolute +NSGMLSFLAGS+= -ifreebsd.urls.absolute +.elif defined(URL_RELPREFIX_ENT) && !empty(URL_RELPREFIX_ENT) +HTMLFLAGS+= -i${URL_RELPREFIX_ENT} +SGMLNORMFLAGS+= -i${URL_RELPREFIX_ENT} +NSGMLSFLAGS+= -i${URL_RELPREFIX_ENT} +.endif + +# for ascii and printable format, always use URLS_ABSOLUTE. +PRINTFLAGS+= -ifreebsd.urls.absolute +HTMLTXTFLAGS+= -ifreebsd.urls.absolute +OTHERFLAGS+= -ifreebsd.urls.absolute + +# for packages, always use URLS_ABSOLUTE. +PKGMAKEFLAGS+= URLS_ABSOLUTE=yes Modified: doc/trunk/share/mk/doc.docbook.mk =================================================================== --- doc/trunk/share/mk/doc.docbook.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.docbook.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,6 +1,5 @@ -# $Id$ # -# $FreeBSD: doc/share/mk/doc.docbook.mk,v 1.68 2002/06/04 11:40:17 nik Exp $ +# $FreeBSD: doc/share/mk/doc.docbook.mk,v 1.128 2006/06/24 12:20:45 vanilla Exp $ # # This include file <doc.docbook.mk> handles building and installing of # DocBook documentation in the FreeBSD Documentation Project. @@ -14,7 +13,7 @@ # Document-specific variables # # DOC This should be set to the name of the DocBook -# marked-up file, without the .sgml or .docb suffix. +# marked-up file, without the .sgml suffix. # # It also determins the name of the output files - # ${DOC}.html. @@ -59,6 +58,12 @@ # CSS_SHEET Full path to a CSS stylesheet suitable for DocBook. # Default is ${DOC_PREFIX}/share/misc/docbook.css # +# +# SPELLCHECK Use the special spellcheck.dsl stylesheet to render +# HTML that is suitable for processing through a +# spellchecker. For example, PGP keys and filenames +# will be ommitted from this output. +# # Print-output options : # # NICE_HEADERS If defined, customized chapter headers will be created @@ -94,6 +99,17 @@ # RLE Use Run-Length Encoding for EPS files, this will # result in signficiantly smaller PostScript files, # but may take longer for a printer to process. +# +# GREYSCALE_IMAGES Convert the screenshots to greyscale before +# embedding them into the PostScript output. +# +# Package building options: +# +# BZIP2_PACKAGE Use bzip2(1) utility to compress package tarball +# instead of gzip(1). It results packages to have +# suffix .tbz instead of .tgz. Using bzip2(1) +# provides better compression, but requires longer +# time and utilizes more CPU resources than gzip(1). # # Documents should use the += format to access these. @@ -103,30 +119,35 @@ MASTERDOC?= ${.CURDIR}/${DOC}.${DOCBOOKSUFFIX} +# List of supported SP_ENCODINGs +SP_ENCODING_LIST?= ISO-8859-2 KOI8-R + # Which stylesheet type to use. 'dsssl' or 'xsl' STYLESHEET_TYPE?= dsssl -.if ${MACHINE_ARCH} == "alpha" -OPENJADE= yes +.if defined(SPELLCHECK) +DSLHTML?= ${DOC_PREFIX}/share/sgml/spellcheck.dsl .endif -.if !defined(OPENJADE) && exists(${PREFIX}/bin/openjade) -OPENJADE= yes -.endif - -.if defined(OPENJADE) +.if exists(${PREFIX}/bin/jade) && !defined(OPENJADE) +JADE?= ${PREFIX}/bin/jade +JADECATALOG?= ${PREFIX}/share/sgml/jade/catalog +NSGMLS?= ${PREFIX}/bin/nsgmls +NSGMLSWARNINGS= -wempty -wunclosed +SX?= ${PREFIX}/bin/sx +.else JADE?= ${PREFIX}/bin/openjade JADECATALOG?= ${PREFIX}/share/sgml/openjade/catalog NSGMLS?= ${PREFIX}/bin/onsgmls JADEFLAGS+= -V openjade SX?= ${PREFIX}/bin/osx -.else -JADE?= ${PREFIX}/bin/jade -JADECATALOG?= ${PREFIX}/share/sgml/jade/catalog -NSGMLS?= ${PREFIX}/bin/nsgmls -SX?= ${PREFIX}/bin/sx .endif +.if defined(SP_ENCODING) +JADE_ENV+= SP_ENCODING=${SP_ENCODING} +.endif +JADE_CMD= ${SETENV} ${JADE_ENV} ${JADE} + DSLHTML?= ${DOC_PREFIX}/share/sgml/default.dsl DSLPRINT?= ${DOC_PREFIX}/share/sgml/default.dsl DSLPGP?= ${DOC_PREFIX}/share/sgml/pgp.dsl @@ -142,22 +163,27 @@ DOCBOOKCATALOG= ${PREFIX}/share/xml/docbook/catalog .endif +CATALOG_PORTS_SGML= ${PREFIX}/share/sgml/catalog.ports + DSSSLCATALOG= ${PREFIX}/share/sgml/docbook/dsssl/modular/catalog COLLATEINDEX= ${PREFIX}/share/sgml/docbook/dsssl/modular/bin/collateindex.pl -XSLTPROC?= ${PREFIX}/bin/xsltproc +XSLTPROCFLAGS?= --nonet XSLHTML?= ${DOC_PREFIX}/share/xsl/freebsd-html.xsl XSLHTMLCHUNK?= ${DOC_PREFIX}/share/xsl/freebsd-html-chunk.xsl XSLFO?= ${DOC_PREFIX}/share/xsl/freebsd-fo.xsl +INDEXREPORTSCRIPT= ${DOC_PREFIX}/share/misc/indexreport.pl IMAGES_LIB?= -CATALOGS= -c ${LANGUAGECATALOG} -c ${FREEBSDCATALOG} \ - -c ${DSSSLCATALOG} -c ${ISO8879CATALOG} \ - -c ${DOCBOOKCATALOG} -c ${JADECATALOG} \ - ${EXTRA_CATALOGS:S/^/-c /g} -SGMLFLAGS+= -D ${CANONICALOBJDIR} +.for c in ${LANGUAGECATALOG} ${FREEBSDCATALOG} ${DSSSLCATALOG} ${ISO8879CATALOG} ${DOCBOOKCATALOG} ${JADECATALOG} ${EXTRA_CATALOGS} ${CATALOG_PORTS_SGML} +.if exists(${c}) +CATALOGS+= -c ${c} +.endif +.endfor +SGMLFLAGS+= -D ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T} -D ${CANONICALOBJDIR} JADEOPTS= ${JADEFLAGS} ${SGMLFLAGS} ${CATALOGS} +XSLTPROCOPTS= ${XSLTPROCFLAGS} KNOWN_FORMATS= html html.tar html-split html-split.tar \ txt rtf ps pdf tex dvi tar pdb @@ -167,6 +193,8 @@ HTMLOPTS?= -ioutput.html -d ${DSLHTML} ${HTMLFLAGS} +HTMLTXTOPTS?= -ioutput.html -d ${DSLHTML} ${HTMLTXTFLAGS} + PRINTOPTS?= -ioutput.print -d ${DSLPRINT} ${PRINTFLAGS} INDIC_EXTENSION_OPTS?= -d ${DSLINDIC} @@ -181,12 +209,12 @@ #GEN_INDEX=1 .endif .if defined(JUSTIFY) -TEXCMDS+= \RequirePackage{url} +TEX_CMDSEQ+= \RequirePackage{url} PRINTOPTS+= -ioutput.print.justify .endif .if defined(TWO_SIDE) PRINTOPTS+= -V %two-side% -ioutput.print.twoside -TEXCMDS+= \def\PageTwoSide{1} +TEX_CMDSEQ+= \def\PageTwoSide{1} .endif .if defined(NICE_HEADERS) PRINTOPTS+= -ioutput.print.niceheaders @@ -195,12 +223,33 @@ PRINTOPTS+= -V minimal-section-labels .endif .if defined(TRACE) -TEXCMDS+= \tracingstats=${TRACE} +TEX_CMDSEQ+= \tracingstats=${TRACE} .endif .if defined(RLE) PNMTOPSFLAGS+= -rle .endif +.if !defined(WITH_INLINE_LEGALNOTICE) || empty(WITH_INLINE_LEGALNOTICE) +HTMLFLAGS+= -V %generate-legalnotice-link% +.endif +.if defined(WITH_ARTICLE_TOC) && !empty(WITH_ARTICLE_TOC) +HTMLFLAGS+= -V %generate-article-toc% +PRINTFLAGS+= -V %generate-article-toc% +.endif +.if defined(WITH_BIBLIOXREF_TITLE) && !empty(WITH_BIBLIOXREF_TITLE) +HTMLFLAGS+= -V biblio-xref-title +PRINTFLAGS+= -V biblio-xref-title +.endif +.if defined(WITH_DOCFORMAT_NAVI_LINK) && !empty(WITH_DOCFORMAT_NAVI_LINK) +HTMLFLAGS+= -V %generate-docformat-navi-link% +.elif (${FORMATS:Mhtml} == "html") && (${FORMATS:Mhtml-split} == "html-split") +HTMLFLAGS+= -V %generate-docformat-navi-link% +.endif +.if defined(WITH_ALL_TRADEMARK_SYMBOLS) && !empty(WITH_ALL_TRADEMARK_SYMBOLS) +HTMLFLAGS+= -V %show-all-trademark-symbols% +PRINTFLAGS+= -V %show-all-trademark-symbols% +.endif + PERL?= /usr/bin/perl PKG_CREATE?= /usr/sbin/pkg_create SORT?= /usr/bin/sort @@ -208,21 +257,38 @@ TOUCH?= /usr/bin/touch XARGS?= /usr/bin/xargs -TEX?= ${PREFIX}/bin/tex -LATEX?= ${PREFIX}/bin/latex -PDFTEX?= ${PREFIX}/bin/pdftex GROFF?= groff -TIDY?= ${PREFIX}/bin/tidy -TIDYOPTS?= -i -m -raw -preserve -f /dev/null ${TIDYFLAGS} +TIDYOPTS?= -wrap 90 -m -raw -preserve -f /dev/null -asxml ${TIDYFLAGS} HTML2TXT?= ${PREFIX}/bin/links -HTML2TXTOPTS?= -dump ${HTML2TXTFLAGS} +HTML2TXTOPTS?= -dump -width 72 ${HTML2TXTFLAGS} HTML2PDB?= ${PREFIX}/bin/iSiloBSD HTML2PDBOPTS?= -y -d0 -Idef ${HTML2PDBFLAGS} DVIPS?= ${PREFIX}/bin/dvips .if defined(PAPERSIZE) -DVIPSOPTS?= -t ${PAPERSIZE:L} ${DVIPSFLAGS} +DVIPSOPTS?= -t ${PAPERSIZE:L} .endif +DVIPSOPTS+= ${DVIPSFLAGS} +# +# Currently, we have to use the FixRTF utility available as textproc/fixrtf +# to apply several RTF fixups: +# +# 1. Embed PNGs into RTF. (Option: -p) +# 2. Embed FreeBSD-specific information into RTF, such as organization name, +# building time. But unfortunately, so far only Microsoft Word can read +# them. In contrast, Microsoft Word Viewer and OpenOffice even cannot read +# this kind of information from RTF created by Microsoft Word and +# OpenOffice. (Option: -i) +# 3. Do some locale-specific fixing. (Option: -e <encoding>) +# +# This is a transitional solution before Jade/OpenJade provides these features. +# +FIXRTF?= ${PREFIX}/bin/fixrtf +FIXRTFOPTS?= -i -p +.if defined(SP_ENCODING) +FIXRTFOPTS+= -e ${SP_ENCODING} +.endif + GZIP?= -9 GZIP_CMD?= gzip -qf ${GZIP} BZIP2?= -9 @@ -235,6 +301,13 @@ _PIE_MAKE_HTML_IMAGES_OPTION= -H _PIE_MAKE_TEX_INPUT_OPTION= -T +# +# Instruction for bsd.subdir.mk to not to process SUBDIR directive. +# It is not neccessary since doc.docbook.mk do it too. +# +NO_SUBDIR= YES + + # ------------------------------------------------------------------------ # # Look at ${FORMATS} and work out which documents need to be generated. @@ -308,16 +381,29 @@ CLEANFILES+= ${DOC}.html-text .elif ${_cf} == "dvi" -CLEANFILES+= ${DOC}.aux ${DOC}.log ${DOC}.tex +CLEANFILES+= ${DOC}.aux ${DOC}.log ${DOC}.out ${DOC}.tex ${DOC}.tex-tmp +.elif ${_cf} == "rtf" +CLEANFILES+= ${DOC}.rtf-nopng + .elif ${_cf} == "tex" CLEANFILES+= ${DOC}.aux ${DOC}.log .elif ${_cf} == "ps" -CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.tex-ps +CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out ${DOC}.tex-ps ${DOC}.tex ${DOC}.tex-tmp +.for _curimage in ${LOCAL_IMAGES_EPS:M*share*} +CLEANFILES+= ${_curimage:T} ${_curimage:H:T}/${_curimage:T} +.endfor .elif ${_cf} == "pdf" -CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out ${DOC}.tex-pdf +CLEANFILES+= ${DOC}.aux ${DOC}.dvi ${DOC}.log ${DOC}.out ${DOC}.tex-pdf ${DOC}.tex-pdf-tmp \ + ${DOC}.tex +.for _curimage in ${IMAGES_PDF:M*share*} +CLEANFILES+= ${_curimage:T} ${_curimage:H:T}/${_curimage:T} +.endfor +.for _curimage in ${LOCAL_IMAGES_EPS:M*share*} +CLEANFILES+= ${_curimage:T} ${_curimage:H:T}/${_curimage:T} +.endfor .elif ${_cf} == "pdb" _docs+= ${.CURDIR:T}.pdb @@ -326,15 +412,25 @@ .endif .endif +.if (${STYLESHEET_TYPE} == "xsl") +CLEANFILES+= ${DOC}.xml .sxerr +.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 +.if !defined(WITH_INLINE_LEGALNOTICE) || empty(WITH_INLINE_LEGALNOTICE) && \ + (${_cf} == "html-split" || ${_cf} == "html-split.tar" || \ + ${_cf} == "html" || ${_cf} == "html.tar" || ${_cf} == "txt") +CLEANFILES+= LEGALNOTICE.html TRADEMARKS.html +.endif +.endfor # _curformat in ${FORMATS} # + # # Build a list of install-${format}.${compress_format} targets to be # by "make install". Also, add ${DOC}.${format}.${compress_format} to @@ -365,7 +461,6 @@ # # Index generation # -CLEANFILES+= ${INDEX_SGML} .if defined(GEN_INDEX) && defined(HAS_INDEX) JADEFLAGS+= -i chap.index @@ -374,19 +469,49 @@ PRINT_INDEX?= print.index INDEX_SGML?= index.sgml -CLEANFILES+= ${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX} +CLEANFILES+= ${INDEX_SGML} ${HTML_SPLIT_INDEX} ${HTML_INDEX} ${PRINT_INDEX} + +INIT_INDEX_SGML_CMD?= ${PERL} ${COLLATEINDEX} -i doc-index -N -o ${INDEX_SGML} +GEN_INDEX_SGML_CMD?= ${PERL} ${COLLATEINDEX} -i doc-index -g -o ${INDEX_SGML} ${.ALLSRC:M*.index} +.else +GEN_INDEX_SGML_CMD?= @${ECHO} "Index is disabled or no index to generate." .endif .MAIN: all all: ${_docs} +# put languages which have a problem on rendering printable formats +# by using TeX to NO_TEX_LANG. +NO_TEX_LANG?= ja_JP.eucJP ru_RU.KOI8-R + +# put languages which have a problem on rendering the plain text format +# by using links1 to NO_PLAINTEXT_LANG. +NO_PLAINTEXT_LANG?= ja_JP.eucJP + +# put languages which have a problem on rendering the rtf format +# by using jade to NO_RTF_LANG. +NO_RTF_LANG?= + +.for _L in ${LANGCODE} +.if ${NO_TEX_LANG:M${_L}} != "" +NO_TEX= yes +.endif +.if ${NO_PLAINTEXT_LANG:M${_L}} != "" +NO_PLAINTEXT= yes +.endif +.if ${NO_RTF_LANG:M${_L}} != "" +NO_RTF= yes +.endif +.endfor + ${INDIC_EXTENSION_DATAFILE}: ${SRCS} ${JADE} -V indic-extensions ${INDIC_EXTENSION_OPTS} \ - ${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || ${RM} -f ${.TARGET} - + ${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || \ + ${RM} -f ${.TARGET} .if make(clean) && exists(${INDIC_EXTENSION_DATAFILE}) -_INDIC_IMAGES!= ${PROCESS_INDIC_EXTENSIONS} ${_PIE_LIST_OPTION} ${INDIC_EXTENSION_DATAFILE} +_INDIC_IMAGES!= ${PROCESS_INDIC_EXTENSIONS} ${_PIE_LIST_OPTION} \ + ${INDIC_EXTENSION_DATAFILE} CLEANFILES+= ${INDIC_EXTENSION_DATAFILE} ${_INDIC_IMAGES} .endif @@ -399,7 +524,7 @@ # Better approaches to handling this would be most welcome ${DOC}.xml: ${SRCS} - echo '<!DOCTYPE book SYSTEM "/usr/local/share/xml/docbook/4.1.2/docbookx.dtd">' > ${DOC}.xml + echo '<!DOCTYPE book SYSTEM "/usr/local/share/xml/docbook/4.2/docbookx.dtd">' > ${DOC}.xml ${SX} -xlower -xndata ${MASTERDOC} 2> .sxerr | tail -n +2 >> ${DOC}.xml @-grep -v 'reference to internal SDATA entity' .sxerr @@ -407,17 +532,20 @@ .if ${STYLESHEET_TYPE} == "dsssl" index.html HTML.manifest: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \ - ${INDEX_SGML} ${HTML_SPLIT_INDEX} ${LOCAL_CSS_SHEET} \ - ${INDIC_EXTENSION_DATAFILE} - ${JADE} -V html-manifest ${HTMLOPTS} -ioutput.html.images \ + ${LOCAL_IMAGES_TXT} ${HTML_SPLIT_INDEX} \ + ${LOCAL_CSS_SHEET} ${INDIC_EXTENSION_DATAFILE} + ${GEN_INDEX_SGML_CMD} + ${JADE_CMD} -V html-manifest ${HTMLOPTS} -ioutput.html.images \ ${JADEOPTS} -t sgml ${MASTERDOC} .if exists(${INDIC_EXTENSION_DATAFILE}) - ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_HTML_IMAGES_OPTION} ${INDIC_EXTENSION_DATAFILE} + ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_HTML_IMAGES_OPTION} \ + ${INDIC_EXTENSION_DATAFILE} .endif .elif ${STYLESHEET_TYPE} == "xsl" index.html: ${DOC}.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \ - ${INDEX_SGML} ${HTML_SPLIT_INDEX} ${LOCAL_CSS_SHEET} - ${XSLTPROC} --param freebsd.output.html.images "'1'" ${XSLHTMLCHUNK} \ + ${HTML_SPLIT_INDEX} ${LOCAL_CSS_SHEET} + ${GEN_INDEX_SGML_CMD} + ${XSLTPROC} ${XSLTPROCOPTS} --param freebsd.output.html.images "'1'" ${XSLHTMLCHUNK} \ ${DOC}.xml .endif .if !defined(NO_TIDY) @@ -428,18 +556,21 @@ .if ${STYLESHEET_TYPE} == "dsssl" ${DOC}.html: ${SRCS} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \ - ${INDEX_SGML} ${HTML_INDEX} ${LOCAL_CSS_SHEET} \ - ${INDIC_EXTENSION_DATAFILE} - ${JADE} -V nochunks ${HTMLOPTS} -ioutput.html.images \ + ${LOCAL_IMAGES_TXT} ${HTML_INDEX} ${LOCAL_CSS_SHEET} \ + ${INDIC_EXTENSION_DATAFILE} + ${GEN_INDEX_SGML_CMD} + ${JADE_CMD} -V nochunks ${HTMLOPTS} -ioutput.html.images \ ${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || \ (${RM} -f ${.TARGET} && false) .if exists(${INDIC_EXTENSION_DATAFILE}) - ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_HTML_IMAGES_OPTION} ${INDIC_EXTENSION_DATAFILE} + ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_HTML_IMAGES_OPTION} \ + ${INDIC_EXTENSION_DATAFILE} .endif .elif ${STYLESHEET_TYPE} == "xsl" ${DOC}.html: ${DOC}.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \ - ${INDEX_SGML} ${LOCAL_CSS_SHEET} - ${XSLTPROC} --param freebsd.output.html.images "'1'" ${XSLHTML} \ + ${LOCAL_CSS_SHEET} + ${GEN_INDEX_SGML_CMD} + ${XSLTPROC} ${XSLTPROCOPTS} --param freebsd.output.html.images "'1'" ${XSLHTML} \ ${DOC}.xml > ${.TARGET} .endif .if !defined(NO_TIDY) @@ -450,30 +581,45 @@ # Special target to produce HTML with no images in it. .if ${STYLESHEET_TYPE} == "dsssl" -${DOC}.html-text: ${SRCS} ${INDEX_SGML} ${HTML_INDEX} - ${JADE} -V nochunks ${HTMLOPTS} \ +${DOC}.html-text: ${SRCS} ${HTML_INDEX} ${LOCAL_IMAGES_TXT} + ${GEN_INDEX_SGML_CMD} + ${JADE_CMD} -V nochunks ${HTMLTXTOPTS} \ ${JADEOPTS} -t sgml ${MASTERDOC} > ${.TARGET} || \ (${RM} -f ${.TARGET} && false) .elif ${STYLESHEET_TYPE} == "xsl" -${DOC}.html-text: ${DOC}.xml ${INDEX_SGML} ${HTML_INDEX} - ${XSLTPROC} --param freebsd.output.html.images "'0'" ${XSLHTML} \ +${DOC}.html-text: ${DOC}.xml ${HTML_INDEX} + ${GEN_INDEX_SGML_CMD} + ${XSLTPROC} ${XSLTPROCOPTS} --param freebsd.output.html.images "'0'" ${XSLHTML} \ ${DOC}.xml > ${.TARGET} .endif ${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} + ${LOCAL_IMAGES_LIB} ${IMAGES_PNG:N*share*} ${CSS_SHEET:T} +.for _curimage in ${IMAGES_PNG:M*share*} + ${TAR} rf ${.TARGET} -C ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T} ${_curimage:S|${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T}/||} +.endfor ${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} + ${LOCAL_IMAGES_LIB} ${IMAGES_PNG:N*share*} ${CSS_SHEET:T} +.for _curimage in ${IMAGES_PNG:M*share*} + ${TAR} rf ${.TARGET} -C ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T} ${_curimage:S|${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T}/||} +.endfor # TXT -------------------------------------------------------------------- +.if !target(${DOC}.txt) +.if !defined(NO_PLAINTEXT) ${DOC}.txt: ${DOC}.html-text ${HTML2TXT} ${HTML2TXTOPTS} ${.ALLSRC} > ${.TARGET} +.else +${DOC}.txt: + ${TOUCH} ${.TARGET} +.endif +.endif # PDB -------------------------------------------------------------------- @@ -492,10 +638,23 @@ # RTF -------------------------------------------------------------------- -${DOC}.rtf: ${SRCS} ${LOCAL_IMAGES_EPS} - ${JADE} -V rtf-backend ${PRINTOPTS} \ - ${JADEOPTS} -t rtf -o ${.TARGET} ${MASTERDOC} +.if !target(${DOC}.rtf) +.if !defined(NO_RTF) +${DOC}.rtf: ${SRCS} ${LOCAL_IMAGES_EPS} ${PRINT_INDEX} \ + ${LOCAL_IMAGES_TXT} ${LOCAL_IMAGES_PNG} + ${GEN_INDEX_SGML_CMD} + ${JADE_CMD} -V rtf-backend ${PRINTOPTS} -ioutput.rtf.images \ + ${JADEOPTS} -t rtf -o ${.TARGET}-nopng ${MASTERDOC} + ${FIXRTF} ${FIXRTFOPTS} < ${.TARGET}-nopng > ${.TARGET} +.else +${DOC}.rtf: + ${TOUCH} ${.TARGET} +.endif +.endif +# PS/PDF ----------------------------------------------------------------- + +.if !defined(NO_TEX) # # This sucks, but there's no way round it. The PS and PDF formats need # to use different image formats, which are chosen at the .tex stage. So, @@ -503,41 +662,81 @@ # format, which will then lead on to a different .dvi file as well. # -${DOC}.tex: ${SRCS} ${LOCAL_IMAGES_EPS} ${INDEX_SGML} ${PRINT_INDEX} \ - ${INDIC_EXTENSION_DATAFILE} - ${JADE} -V tex-backend ${PRINTOPTS} \ +${DOC}.tex: ${SRCS} ${LOCAL_IMAGES_EPS} ${PRINT_INDEX} \ + ${LOCAL_IMAGES_TXT} ${LOCAL_IMAGES_EN} \ + ${INDIC_EXTENSION_DATAFILE} + ${GEN_INDEX_SGML_CMD} + ${JADE_CMD} -V tex-backend ${PRINTOPTS} \ ${JADEOPTS} -t tex -o ${.TARGET} ${MASTERDOC} .if exists(${INDIC_EXTENSION_DATAFILE}) - ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_TEX_INPUT_OPTION} ${INDIC_EXTENSION_DATAFILE} + ${PROCESS_INDIC_EXTENSIONS} ${_PIE_MAKE_TEX_INPUT_OPTION} \ + ${INDIC_EXTENSION_DATAFILE} .endif ${DOC}.tex-ps: ${DOC}.tex ${LN} -f ${.ALLSRC} ${.TARGET} -${DOC}.tex-pdf: ${SRCS} ${IMAGES_PDF} ${INDEX_SGML} ${PRINT_INDEX} +.if !target(${DOC}.tex-pdf) +${DOC}.tex-pdf: ${SRCS} ${IMAGES_PDF} ${PRINT_INDEX} \ + ${LOCAL_IMAGES_TXT} + ${GEN_INDEX_SGML_CMD} ${RM} -f ${.TARGET} ${CAT} ${PDFTEX_DEF} > ${.TARGET} - ${JADE} -V tex-backend ${PRINTOPTS} -ioutput.print.pdf \ + ${JADE_CMD} -V tex-backend ${PRINTOPTS} -ioutput.print.pdf \ ${JADEOPTS} -t tex -o /dev/stdout ${MASTERDOC} >> ${.TARGET} +.endif +.if !target(${DOC}.dvi) ${DOC}.dvi: ${DOC}.tex ${LOCAL_IMAGES_EPS} +.for _curimage in ${LOCAL_IMAGES_EPS:M*share*} + ${CP} -p ${_curimage} ${.CURDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} +.endfor + ${JADETEX_PREPROCESS} < ${DOC}.tex > ${DOC}.tex-tmp @${ECHO} "==> TeX pass 1/3" - -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + -${JADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-tmp}' @${ECHO} "==> TeX pass 2/3" - -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + -${JADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-tmp}' @${ECHO} "==> TeX pass 3/3" - -${TEX} "&jadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex}' + -${JADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-tmp}' +.endif +.if !target(${DOC}.pdf) +.if !defined(USE_PS2PDF) ${DOC}.pdf: ${DOC}.tex-pdf ${IMAGES_PDF} +.else +${DOC}.pdf: ${DOC}.ps ${IMAGES_PDF} +.endif +.for _curimage in ${IMAGES_PDF:M*share*} + ${CP} -p ${_curimage} ${.CURDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} +.endfor +.if !defined(USE_PS2PDF) + ${PDFJADETEX_PREPROCESS} < ${DOC}.tex-pdf > ${DOC}.tex-pdf-tmp @${ECHO} "==> PDFTeX pass 1/3" - -${PDFTEX} "&pdfjadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex-pdf}' + -${PDFJADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-pdf-tmp}' @${ECHO} "==> PDFTeX pass 2/3" - -${PDFTEX} "&pdfjadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex-pdf}' + -${PDFJADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-pdf-tmp}' @${ECHO} "==> PDFTeX pass 3/3" - ${PDFTEX} "&pdfjadetex" '${TEXCMDS} \nonstopmode\input{${DOC}.tex-pdf}' + -${PDFJADETEX_CMD} '${TEX_CMDSEQ} \nonstopmode\input{${DOC}.tex-pdf-tmp}' +.else + ${PS2PDF} ${DOC}.ps ${.TARGET} +.endif +.endif ${DOC}.ps: ${DOC}.dvi ${DVIPS} ${DVIPSOPTS} -o ${.TARGET} ${.ALLSRC} +.else +# NO_TEX +${DOC}.tex ${DOC}.tex-ps ${DOC}.dvi ${DOC}.ps: + ${TOUCH} ${.TARGET} +.if !target(${DOC}.pdf) +${DOC}.pdf: + ${TOUCH} ${.TARGET} +.endif +.if !target(${DOC}.tex-pdf) +${DOC}.tex-pdf: + ${TOUCH} ${.TARGET} +.endif +.endif ${DOC}.tar: ${SRCS} ${LOCAL_IMAGES} ${LOCAL_CSS_SHEET} ${TAR} cf ${.TARGET} -C ${.CURDIR} ${SRCS} \ @@ -565,7 +764,7 @@ # lint validate: - ${NSGMLS} -s ${SGMLFLAGS} ${CATALOGS} ${MASTERDOC} + ${NSGMLS} ${NSGMLSWARNINGS} -s ${NSGMLSFLAGS} ${SGMLFLAGS} ${CATALOGS} ${MASTERDOC} # ------------------------------------------------------------------------ @@ -580,21 +779,21 @@ # an empty index.sgml file so that we can reference index.sgml in book.sgml # -${INDEX_SGML}: - ${PERL} ${COLLATEINDEX} -N -o ${.TARGET} -${HTML_INDEX}: - ${JADE} -V html-index -V nochunks ${HTMLOPTS} -ioutput.html.images \ +${HTML_INDEX}: ${SRCS} ${LOCAL_IMAGES_TXT} + ${INIT_INDEX_SGML_CMD} + ${JADE_CMD} -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 ${HTMLOPTS} -ioutput.html.images \ +${HTML_SPLIT_INDEX}: ${SRCS} ${LOCAL_IMAGES_TXT} + ${INIT_INDEX_SGML_CMD} + ${JADE_CMD} -V html-index ${HTMLOPTS} -ioutput.html.images \ ${JADEOPTS} -t sgml ${MASTERDOC} > /dev/null - ${PERL} ${COLLATEINDEX} -g -o ${INDEX_SGML} ${.TARGET} +.if !target(${PRINT_INDEX}) ${PRINT_INDEX}: ${HTML_INDEX} ${CP} -p ${HTML_INDEX} ${.TARGET} +.endif # ------------------------------------------------------------------------ @@ -676,6 +875,41 @@ # Redefine them to do things before and after the files are installed, # respectively. +populate_html_docs: +.if exists(HTML.manifest) +_html_docs!=${CAT} HTML.manifest +.endif + +spellcheck-html-split: populate_html_docs +.for _html_file in ${_html_docs} + @echo "Spellcheck ${_html_file}" + @${HTML2TXT} ${HTML2TXTOPTS} ${.CURDIR}/${_html_file} | ${ISPELL} ${ISPELLOPTS} +.endfor +spellcheck-html: +.for _entry in ${_docs} + @echo "Spellcheck ${_entry}" + @${HTML2TXT} ${HTML2TXTOPTS} ${.CURDIR}/${_entry} | ${ISPELL} ${ISPELLOPTS} +.endfor +spellcheck-txt: +.for _entry in ${_docs:M*.txt} + @echo "Spellcheck ${_entry}" + @ < ${.CURDIR}/${_entry} ${ISPELL} ${ISPELLOPTS} +.endfor +.for _curformat in ${FORMATS} +.if !target(spellcheck-${_curformat}) +spellcheck-${_curformat}: + @echo "Spellcheck is not currently supported for the ${_curformat} format." +.endif +.endfor + +spellcheck: ${FORMATS:C/^/spellcheck-/} + +indexreport: +.for _entry in ${SRCS:M*.sgml} + @echo "indexreport ${_entry}" + @${PERL} ${INDEXREPORTSCRIPT} ${.CURDIR}/${_entry} +.endfor + # # Build a list of install-format targets to be installed. These will be # dependencies for the "realinstall" target. @@ -685,7 +919,25 @@ _curinst+= ${FORMATS:S/^/install-/g} .endif +.if defined(NO_TEX) +_curinst_filter+=N*dvi* N*tex* N*ps* N*pdf* +.endif +.if defined(NO_RTF) +_curinst_filter+=N*rtf* +.endif +.if defined(NO_PLAINTEXT) +_curinst_filter+=N*txt* +.endif + +_cff!=${ECHO_CMD} "${_curinst_filter}" | ${SED} 's, ,:,g' + +.if !defined(_cff) || empty(_cff) realinstall: ${_curinst} +.else +.for i in ${_cff} +realinstall: ${_curinst:$i} +.endfor +.endif .for _curformat in ${KNOWN_FORMATS} _cf=${_curformat} @@ -707,6 +959,12 @@ @if [ -f ln*.html ]; then \ ${INSTALL_DOCS} ln*.html ${DESTDIR}; \ fi + @if [ -f LEGALNOTICE.html ]; then \ + ${INSTALL_DOCS} LEGALNOTICE.html ${DESTDIR}; \ + fi + @if [ -f TRADEMARKS.html ]; then \ + ${INSTALL_DOCS} TRADEMARKS.html ${DESTDIR}; \ + fi @if [ -f ${.OBJDIR}/${DOC}.ln ]; then \ cd ${DESTDIR}; sh ${.OBJDIR}/${DOC}.ln; \ fi @@ -718,20 +976,26 @@ ${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 +# directory separator, 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*/*} +# Install at first images from /usr/share/images then localized ones +# cause of a different origin path. +.for _curimage in ${IMAGES_PNG:M*/*:M*share*} + ${MKDIR} -p ${DESTDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} + ${INSTALL_DOCS} ${_curimage} ${DESTDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} +.endfor +.for _curimage in ${IMAGES_PNG:M*/*:N*share*} ${MKDIR} -p ${DESTDIR}/${_curimage:H} ${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H} .endfor .for _curimage in ${IMAGES_PNG:N*/*} - ${INSTALL_DOCS} ${_curimage} ${DESTDIR} + ${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage} .endfor .elif ${_cf} == "tex" || ${_cf} == "dvi" .for _curimage in ${IMAGES_EPS:M*/*} - ${MKDIR} -p ${DESTDIR}/${_curimage:H} - ${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H} + ${MKDIR} -p ${DESTDIR}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR:T}/||} + ${INSTALL_DOCS} ${_curimage} ${DESTDIR}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR:T}/||} .endfor .for _curimage in ${IMAGES_EPS:N*/*} ${INSTALL_DOCS} ${_curimage} ${DESTDIR} @@ -748,6 +1012,7 @@ .endfor .else .for _compressext in ${KNOWN_COMPRESS} +.if !target(install-${_curformat}.${_compressext}) install-${_curformat}.${_compressext}: ${DOC}.${_curformat}.${_compressext} @[ -d ${DESTDIR} ] || ${MKDIR} -p ${DESTDIR} ${INSTALL_DOCS} ${.ALLSRC} ${DESTDIR} @@ -755,6 +1020,7 @@ ${LN} -f ${DESTDIR}/${.ALLSRC} \ ${DESTDIR}/${.CURDIR:T}.${_curformat}.${_compressext} .endif +.endif .endfor .endif .endif @@ -800,33 +1066,47 @@ # target depends on the corresponding install target running. # -.for _curformat in ${KNOWN_FORMATS} -_cf=${_curformat} -.if ${_cf} == "html-split" -PLIST.${_curformat}: index.html - @${SORT} HTML.manifest > PLIST.${_curformat} +.if defined(BZIP2_PACKAGE) +PKG_SUFFIX= tbz .else -PLIST.${_curformat}: ${DOC}.${_curformat} - @${ECHO_CMD} ${DOC}.${_curformat} > PLIST.${_curformat} +PKG_SUFFIX= tgz .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} \ +PKGDOCPFX!= realpath ${DOC_PREFIX} + +.for _curformat in ${KNOWN_FORMATS} +__curformat=${_curformat} + +${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.${PKG_SUFFIX}: + ${MKDIR} -p ${.OBJDIR}/pkg; \ + (cd ${.CURDIR} && \ + ${MAKE} FORMATS=${_curformat} \ + DOCDIR=${.OBJDIR}/pkg \ + ${PKGMAKEFLAGS} \ + install); \ + PKGSRCDIR=${.OBJDIR}/pkg/${.CURDIR:S/${PKGDOCPFX}\///}; \ + /bin/ls -1 $$PKGSRCDIR > ${.OBJDIR}/PLIST.${_curformat}; \ + ${PKG_CREATE} -v -f ${.OBJDIR}/PLIST.${_curformat} \ + -p ${DESTDIR} -s $$PKGSRCDIR \ -c -"FDP ${.CURDIR:T} ${_curformat} package" \ - -d -"FDP ${.CURDIR:T} ${_curformat} package" ${.TARGET} + -d -"FDP ${.CURDIR:T} ${_curformat} package" ${.TARGET} || \ + (${RM} -fr ${.TARGET} PLIST.${_curformat} && false); \ + ${RM} -rf ${.OBJDIR}/pkg -package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.tgz +.if !defined(_cff) || empty(_cff) +package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.${PKG_SUFFIX} +.else +.for i in ${_cff} +.if !empty(__curformat:$i) +package-${_curformat}: ${PACKAGES}/${.CURDIR:T}.${LANGCODE}.${_curformat}.${PKG_SUFFIX} +.else +package-${_curformat}: +.endif .endfor +.endif +.endfor + .if ${LOCAL_CSS_SHEET} != ${CSS_SHEET} ${LOCAL_CSS_SHEET}: ${CSS_SHEET} ${RM} -f ${.TARGET} Modified: doc/trunk/share/mk/doc.html.mk =================================================================== --- doc/trunk/share/mk/doc.html.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.html.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,6 +1,5 @@ -# $Id$ # -# $FreeBSD: doc/share/mk/doc.html.mk,v 1.12 2002/07/07 05:05:46 murray Exp $ +# $FreeBSD: doc/share/mk/doc.html.mk,v 1.21 2006/02/25 23:19:40 hrs Exp $ # # This include file <doc.html.mk> handles building and installing of # HTML documentation in the FreeBSD Documentation Project. @@ -14,7 +13,7 @@ # Document-specific variables # # DOC This should be set to the name of the HTML -# marked-up file, without the .sgml or .docb suffix. +# marked-up file, without the .sgml suffix. # # It also determins the name of the output files - # ${DOC}.html. @@ -52,30 +51,19 @@ IMAGES_LIB?= -.if ${MACHINE_ARCH} == "alpha" -OPENJADE= yes -.endif - -.if !defined(OPENJADE) && exists(${PREFIX}/bin/openjade) -OPENJADE= yes -.endif - -.if defined(OPENJADE) -NSGMLS?= ${PREFIX}/bin/onsgmls -SGMLNORM?= ${PREFIX}/bin/osgmlnorm -.else +if exists(${PREFIX}/bin/sgmlnorm) && !defined(OPENJADE) NSGMLS?= ${PREFIX}/bin/nsgmls SGMLNORM?= ${PREFIX}/bin/sgmlnorm +.else +NSGMLS?= ${PREFIX}/bin/onsgmls +SGMLNORM?= ${PREFIX}/bin/osgmlnorm .endif PKG_CREATE?= /usr/sbin/pkg_create TAR?= /usr/bin/tar XARGS?= /usr/bin/xargs -TIDY?= ${PREFIX}/bin/tidy -TIDYOPTS?= -i -m -raw -preserve -f /dev/null ${TIDYFLAGS} -HTML2TXT?= ${PREFIX}/bin/links -HTML2TXTOPTS?= -dump ${HTML2TXTFLAGS} +TIDYOPTS?= -wrap 90 -m -raw -preserve -f /dev/null -asxml ${TIDYFLAGS} HTML2PDB?= ${PREFIX}/bin/iSiloBSD HTML2PDBOPTS?= -y -d0 -Idef ${HTML2PDBFLAGS} @@ -294,12 +282,12 @@ ${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 +# directory separator, 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} ${.CURDIR}/${_curimage} ${DESTDIR}/${_curimage:H} +.for _curimage in ${IMAGES_PNG:M*/*:M*share*} + ${MKDIR} -p ${DESTDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} + ${INSTALL_DOCS} ${_curimage} ${DESTDIR:H:H}/${_curimage:H:S|${IMAGES_EN_DIR}/||:S|${.CURDIR}||} .endfor .for _curimage in ${IMAGES_PNG:N*/*} ${INSTALL_DOCS} ${.CURDIR}/${_curimage} ${DESTDIR} Modified: doc/trunk/share/mk/doc.images.mk =================================================================== --- doc/trunk/share/mk/doc.images.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.images.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,6 +1,5 @@ -# $Id$ # -# $FreeBSD: doc/share/mk/doc.images.mk,v 1.16 2002/02/06 16:26:41 bmah Exp $ +# $FreeBSD: doc/share/mk/doc.images.mk,v 1.29 2004/07/23 18:58:56 hrs Exp $ # # This include file <doc.images.mk> handles image processing. # @@ -11,7 +10,7 @@ # # 2. Images that are document specific. # -# For library images this file ensures that they are copied in to the +# For library images this file ensures that they are copied in to the # documents directory so that they can be reference properly. # # For library images *and* document specific images, this file ensures @@ -48,34 +47,49 @@ # to PDF, and hopefully get better quality. # +IMAGES_EN?= +LOCAL_IMAGES_EN?= + +# +# The name of the directory that contains all the library images for this +# language and encoding +# +IMAGES_EN_DIR?= ${.CURDIR}/../../../share/images + +.for _curimage in ${IMAGES_EN} +LOCAL_IMAGES_EN += ${IMAGES_EN_DIR}/${DOC}s/${.CURDIR:T}/${_curimage} +.endfor + _IMAGES_PNG= ${IMAGES:M*.png} +_IMAGES_PNG+= ${LOCAL_IMAGES_EN:M*.png} _IMAGES_EPS= ${IMAGES:M*.eps} +_IMAGES_EPS+= ${LOCAL_IMAGES_EN:M*.eps} _IMAGES_SCR= ${IMAGES:M*.scr} +_IMAGES_SCR+= ${LOCAL_IMAGES_EN:M*.scr} +_IMAGES_TXT= ${IMAGES:M*.txt} +_IMAGES_TXT+= ${LOCAL_IMAGES_EN:M*.txt} _IMAGES_PIC= ${IMAGES:M*.pic} -_IMAGES_FIG= ${IMAGES:M*.fig} +_IMAGES_PIC+= ${LOCAL_IMAGES_EN:M*.pic} -IMAGES_FIG_EPS= ${_IMAGES_FIG:S/.fig$/.eps/} -IMAGES_FIG_PNG= ${_IMAGES_FIG:S/.fig$/.png/} 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/} IMAGES_SCR_PDF= ${_IMAGES_SCR:S/.scr$/.pdf/} +IMAGES_SCR_TXT= ${_IMAGES_SCR:S/.scr$/.txt/} IMAGES_PIC_PNG= ${_IMAGES_PIC:S/.pic$/.png/} IMAGES_PIC_EPS= ${_IMAGES_PIC:S/.pic$/.eps/} IMAGES_PIC_PDF= ${_IMAGES_PIC:S/.pic$/.pdf/} IMAGES_GEN_PDF+= ${IMAGES_PIC_PDF} ${IMAGES_SCR_PDF} CLEANFILES+= ${IMAGES_GEN_PNG} ${IMAGES_GEN_EPS} ${IMAGES_GEN_PDF} -CLEANFILES+= ${IMAGES_SCR_PNG} ${IMAGES_SCR_EPS} +CLEANFILES+= ${IMAGES_SCR_PNG} ${IMAGES_SCR_EPS} ${IMAGES_SCR_TXT} CLEANFILES+= ${IMAGES_PIC_PNG} ${IMAGES_PIC_EPS} ${_IMAGES_PIC:S/.pic$/.ps/} -CLEANFILES+= ${IMAGES_FIG_EPS} ${IMAGES_FIG_PNG} -IMAGES_PNG= ${_IMAGES_PNG} ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG} \ - ${IMAGES_PIC_PNG} ${IMAGES_FIG_PNG} -IMAGES_EPS= ${_IMAGES_EPS} ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS} \ - ${IMAGES_PIC_EPS} ${IMAGES_FIG_EPS} +IMAGES_PNG= ${_IMAGES_PNG} ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG} ${IMAGES_PIC_PNG} +IMAGES_EPS= ${_IMAGES_EPS} ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS} ${IMAGES_PIC_EPS} +IMAGES_TXT= ${_IMAGES_TXT} ${IMAGES_SCR_TXT} .if ${.OBJDIR} != ${.CURDIR} LOCAL_IMAGES= ${IMAGES:S|^|${.OBJDIR}/|} @@ -89,70 +103,122 @@ LOCAL_IMAGES_EPS= ${_IMAGES_EPS:S|^|${.OBJDIR}/|} .endif +.if !empty(_IMAGES_TXT) +LOCAL_IMAGES_TXT= ${_IMAGES_TXT:S|^|${.OBJDIR}/|} +.endif + .else LOCAL_IMAGES= ${IMAGES} LOCAL_IMAGES_PNG= ${_IMAGES_PNG} LOCAL_IMAGES_EPS= ${_IMAGES_EPS} +LOCAL_IMAGES_TXT= ${_IMAGES_TXT} .endif -LOCAL_IMAGES_PNG+= ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG} ${IMAGES_PIC_PNG} \ - ${IMAGES_FIG_PNG} -LOCAL_IMAGES_EPS+= ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS} ${IMAGES_PIC_EPS} \ - ${IMAGES_FIG_EPS} +LOCAL_IMAGES_PNG+= ${IMAGES_GEN_PNG} ${IMAGES_SCR_PNG} ${IMAGES_PIC_PNG} +LOCAL_IMAGES_EPS+= ${IMAGES_GEN_EPS} ${IMAGES_SCR_EPS} ${IMAGES_PIC_EPS} +LOCAL_IMAGES_TXT+= ${IMAGES_SCR_TXT} # 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 # much better on these monitors without making the image too large for # a 640x480 monitor. -EPS2PNG_RES?= 100 +EPS2PNM_RES?= 100 -# We only need to list ${IMAGES_GEN_PDF} here. If all the source files are -# EPS then they'll be in this variable; if any of the source files are PNG -# then we can use them directly, and don't need to list them. -IMAGES_PDF=${IMAGES_GEN_PDF} +# We need to list ${_IMAGES_PNG} here since the images might be in a +# shared image directory. +IMAGES_PDF= ${IMAGES_GEN_PDF} ${_IMAGES_PNG} SCR2PNG?= ${PREFIX}/bin/scr2png SCR2PNGOPTS?= ${SCR2PNGFLAGS} -EPS2PNG?= ${PREFIX}/bin/peps -EPS2PNGOPTS?= -p -r ${EPS2PNG_RES} ${EPS2PNGFLAGS} +SCR2TXT?= ${PREFIX}/bin/scr2txt +SCR2TXTOPTS?= -l ${SCR2TXTFLAGS} +SED?= /usr/bin/sed +EPS2PNM?= ${PREFIX}/bin/gs +EPS2PNMOPTS?= -q -dBATCH -dGraphicsAlphaBits=4 -dTextAlphaBits=4 \ + -dEPSCrop -r${EPS2PNM_RES}x${EPS2PNM_RES} \ + -dNOPAUSE -dSAFER -sDEVICE=pnm -sOutputFile=- +# +# epsgeom is a perl script for 1) extracting geometry information +# from a .eps file and 2) arrange it for ghostscript's pnm driver. +# +EPSGEOM?= ${PERL} ${DOC_PREFIX}/share/misc/epsgeom +EPSGEOMOPTS?= ${EPS2PNM_RES} ${EPS2PNM_RES} +PNMTOPNG?= ${PREFIX}/bin/pnmtopng +PNMTOPNGOPTS?= ${PNGTOPNGFLAGS} PNGTOPNM?= ${PREFIX}/bin/pngtopnm PNGTOPNMOPTS?= ${PNGTOPNMFLAGS} +PPMTOPGM?= ${PREFIX}/bin/ppmtopgm +PPMTOPGMOPTS?= ${PPMTOPGMFLAGS} PNMTOPS?= ${PREFIX}/bin/pnmtops PNMTOPSOPTS?= -noturn ${PNMTOPSFLAGS} EPSTOPDF?= ${PREFIX}/bin/epstopdf EPSTOPDFOPTS?= ${EPSTOPDFFLAGS} -PS2EPS?= ${PREFIX}/bin/ps2epsi -PIC2PS?= ${GROFF} -p -S -Wall -mtty-char -man -FIG2EPS?= ${X11BASE}/bin/fig2dev -L eps -FIG2PNG?= ${X11BASE}/bin/fig2dev -L png +# +PIC2PS?= ${GROFF} -p -S -Wall -mtty-char -man +# +PS2EPS?= ${PREFIX}/bin/gs +PS2EPSOPTS?= -q -dNOPAUSE -dSAFER -dDELAYSAFER \ + -sPAPERSIZE=letter -r72 -sDEVICE=bit \ + -sOutputFile=/dev/null ${PS2EPSFLAGS} ps2epsi.ps +# +# Use suffix rules to convert .scr files to other formats +.SUFFIXES: .scr .pic .png .ps .eps .txt -# Ghostscript fontpath -_GSFP!= realpath ${DOC_PREFIX}/share/fonts -GS_FONTPATH?= ${_GSFP} - -# Use suffix rules to convert .scr files to .png files -.SUFFIXES: .scr .pic .png .eps .fig - .scr.png: ${SCR2PNG} ${SCR2PNGOPTS} < ${.IMPSRC} > ${.TARGET} + +## If we want grayscale, convert with ppmtopgm before running through pnmtops +.if defined(GREYSCALE_IMAGES) .scr.eps: ${SCR2PNG} ${SCR2PNGOPTS} < ${.ALLSRC} | \ ${PNGTOPNM} ${PNGTOPNMOPTS} | \ + ${PPMTOPGM} ${PPMTOPGMOPTS} | \ ${PNMTOPS} ${PNMTOPSOPTS} > ${.TARGET} +.else +.scr.eps: + ${SCR2PNG} ${SCR2PNGOPTS} < ${.ALLSRC} | \ + ${PNGTOPNM} ${PNGTOPNMOPTS} | \ + ${PNMTOPS} ${PNMTOPSOPTS} > ${.TARGET} +.endif +# The .txt files need to have any trailing spaces trimmed from +# each line, which is why the output from ${SCR2TXT} is run +# through ${SED} +.scr.txt: + ${SCR2TXT} ${SCR2TXTOPTS} < ${.IMPSRC} | ${SED} -E -e 's/ +$$//' > ${.TARGET} + .pic.png: ${.TARGET:S/.png$/.eps/} - GS_FONTPATH=${GS_FONTPATH} ${EPS2PNG} ${EPS2PNGOPTS} -o ${.TARGET} ${.ALLSRC} + ${EPSGEOM} -offset ${EPSGEOMOPTS} ${.TARGET:S/.png$/.eps/} \ + | ${EPS2PNM} ${EPS2PNMOPTS} \ + -g`${EPSGEOM} -geom ${EPSGEOMOPTS} ${.TARGET:S/.png$/.eps/}` - \ + | ${PNMTOPNG} > ${.TARGET} -.pic.eps: - ${PIC2PS} ${.ALLSRC} > ${.TARGET:S/.eps$/.ps/} - GS_FONTPATH=${GS_FONTPATH} ${PS2EPS} ${.OBJDIR}/${.TARGET:S/.eps$/.ps/} ${.OBJDIR}/${.TARGET} +.pic.ps: + ${PIC2PS} ${.ALLSRC} > ${.TARGET} -.fig.eps: - ${FIG2EPS} ${.IMPSRC} ${.TARGET} +# When ghostscript built with A4=yes is used, ps2epsi's paper size also +# becomes the A4 size. However, the ps2epsi fails to convert grops(1) +# outputs, which is the letter size, and we cannot change ps2epsi's paper size +# from the command line. So ps->eps suffix rule is defined. In the rule, +# gs(1) is used to generate the bitmap preview and the size of the +# bounding box. +.ps.eps: + ${SETENV} outfile=${.TARGET} ${PS2EPS} ${PS2EPSOPTS} < ${.ALLSRC} 1>&2 + (echo "save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def";\ + echo "%%EndProlog";\ + echo "%%Page: 1 1";\ + echo "%%BeginDocument: ${.ALLSRC}";\ + ) >> ${.TARGET} + ${SED} -e '/^%%BeginPreview:/,/^%%EndPreview[^!-~]*$$/d' \ + -e '/^%!PS-Adobe/d' \ + -e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$$/d'\ + -e '/^%%[A-Za-z][A-Za-z]*: /d' < ${.ALLSRC} >> ${.TARGET} + (echo "%%EndDocument";\ + echo "%%Trailer";\ + echo "cleartomark countdictstack exch sub { end } repeat restore";\ + echo "%%EOF";\ + ) >> ${.TARGET} -.fig.png: ${.TARGET:S/.png/.eps/} - GS_FONTPATH=${GS_FONTPATH} ${EPS2PNG} ${EPS2PNGOPTS} -o ${.TARGET} ${.ALLSRC} - # 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 # vice versa, leading to a loop in the dependency graph. Instead, build @@ -160,7 +226,10 @@ .for _curimage in ${IMAGES_GEN_PNG} ${_curimage}: ${_curimage:S/.png$/.eps/} - GS_FONTPATH=${GS_FONTPATH} ${EPS2PNG} ${EPS2PNGOPTS} -o ${.TARGET} ${.ALLSRC} + ${EPSGEOM} -offset ${EPSGEOMOPTS} ${.ALLSRC} \ + | ${EPS2PNM} ${EPS2PNMOPTS} \ + -g`${EPSGEOM} -geom ${EPSGEOMOPTS} ${.ALLSRC}` - \ + | ${PNMTOPNG} > ${.TARGET} .endfor .for _curimage in ${IMAGES_GEN_EPS} @@ -171,13 +240,13 @@ .for _curimage in ${IMAGES_GEN_PDF} ${_curimage}: ${_curimage:S/.pdf$/.eps/} - GS_FONTPATH=${GS_FONTPATH} ${EPSTOPDF} ${EPSTOPDFOPTS} --outfile=${.TARGET} ${.ALLSRC} + ${EPSTOPDF} ${EPSTOPDFOPTS} --outfile=${.TARGET} ${.ALLSRC} .endfor .if ${.OBJDIR} != ${.CURDIR} .for _curimage in ${IMAGES} ${.OBJDIR}/${_curimage}: ${_curimage} - ${CP} -p ${.ALLSRC} ${.TARGET} + @${CP} -p ${.ALLSRC} ${.TARGET} .endfor .endif @@ -186,7 +255,7 @@ # -------------------- # # Each document that wants to use one or more library images has to -# list them in the IMAGES_LIB variable. For example, a document that wants +# list them in the IMAGES_LIB variable. For example, a document that wants # to use callouts 1 thru 4 has to list # # IMAGES_LIB= callouts/1.png callouts/2.png callouts/3.png callouts/4.png @@ -209,15 +278,16 @@ # # The name of the directory *in* the document directory where files and # directory hierarchies should be copied to. "images" is too generic, and -# might clash with local document images, so use "imagelib" by default +# might clash with local document images, so use "imagelib" by default # instead. If you redefine this then you must also update the # %callout-graphics-path% variable in the .dsl file. # LOCAL_IMAGES_LIB_DIR?= imagelib +CLEANDIRS+= ${LOCAL_IMAGES_LIB_DIR} # # Create a target for each image used from the library. This target just -# ensures that each image required is copied from its location in +# ensures that each image required is copied from its location in # ${IMAGES_LIB_DIR} to the same place in ${LOCAL_IMAGES_LIB_DIR}. # @@ -225,7 +295,7 @@ 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} ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} + ${MKDIR} -p ${LOCAL_IMAGES_LIB_DIR}/${_curimage:H} ${CP} -p ${IMAGES_LIB_DIR}/${_curimage} \ ${LOCAL_IMAGES_LIB_DIR}/${_curimage} .endfor Modified: doc/trunk/share/mk/doc.install.mk =================================================================== --- doc/trunk/share/mk/doc.install.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.install.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,6 +1,5 @@ -# $Id$ # -# $FreeBSD: doc/share/mk/doc.install.mk,v 1.7 2002/02/10 22:05:13 dd Exp $ +# $FreeBSD: doc/share/mk/doc.install.mk,v 1.8 2003/11/24 18:26:35 hrs Exp $ # # # This include file <doc.install.mk> provides variables defining the default @@ -105,22 +104,3 @@ # installation "script" 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 10 directories below to find it. -# - -DOC_PREFIX_NAME?= doc - -.if !defined(LANGCODE) -LANGCODE:= ${.CURDIR} -.for _ in 1 2 3 4 5 6 7 8 9 10 -.if !(${LANGCODE:H:T} == ${DOC_PREFIX_NAME}) -LANGCODE:= ${LANGCODE:H} -.endif -.endfor -LANGCODE:= ${LANGCODE:T} -.endif Modified: doc/trunk/share/mk/doc.project.mk =================================================================== --- doc/trunk/share/mk/doc.project.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.project.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,8 +1,7 @@ -# $Id$ # -# $FreeBSD: doc/share/mk/doc.project.mk,v 1.12 2002/02/25 14:24:51 murray Exp $ +# $FreeBSD: doc/share/mk/doc.project.mk,v 1.30 2006/08/19 21:18:54 hrs Exp $ # -# This include file <doc.project.mk> is the FreeBSD Documentation Project +# This include file <doc.project.mk> is the FreeBSD Documentation Project # co-ordination make file. # # This file includes the other makefiles, which contain enough @@ -49,6 +48,9 @@ # doc.subdir.mk Subdirectory related configuration, including # handling "obj" builds. # +# doc.common.mk targets and variables commonly used in doc/ and +# www/ tree. +# # DOCFORMAT-specific make files, like: # # doc.docbook.mk Building and installing docbook documentation. @@ -59,7 +61,7 @@ DOCFORMAT?= docbook MAINTAINER?= do...@Fr... -# Master list of known target formats. The doc.<format>.mk files implement +# Master list of known target formats. The doc.<format>.mk files implement # the code to convert from their source format to one or more of these target # formats ALL_FORMATS= html html.tar html-split html-split.tar txt rtf ps pdf tex dvi tar pdb @@ -73,22 +75,76 @@ CAT?= /bin/cat ECHO_CMD?= echo LN?= /bin/ln -MKDIR?= /bin/mkdir -p +MKDIR?= /bin/mkdir RM?= /bin/rm MV?= /bin/mv +HTML2TXT?= ${PREFIX}/bin/links +HTML2TXTOPTS?= -dump -width 72 ${HTML2TXTFLAGS} +ISPELL?= ispell +ISPELLOPTS?= -l -p /usr/share/dict/freebsd ${ISPELLFLAGS} +.if exists(/usr/bin/perl) +PERL?= /usr/bin/perl +.elif exists(/usr/local/bin/perl) +PERL?= /usr/local/bin/perl +.else +PERL?= perl +.endif +REALPATH?= /bin/realpath +SETENV?= /usr/bin/env +XSLTPROC?= ${PREFIX}/bin/xsltproc +TIDY?= ${PREFIX}/bin/tidy +XMLLINT?= ${PREFIX}/bin/xmllint +# +# In teTeX 3.0 and later, pdfetex(1) is used as the default TeX +# engine for JadeTeX and tex(1) cannot be used as ${TEX_CMD} anymore +# due to incompatibility of the format file. Since the teTeX 3.0 +# distribution has "${PREFIX}/share/texmf-dist/LICENSE.texmf," +# it is checked here to determine which TeX engine should be used. +.if exists(${PREFIX}/share/texmf-dist/LICENSE.texmf) +TEX_CMD?= ${PREFIX}/bin/etex +PDFTEX_CMD?= ${PREFIX}/bin/pdfetex +.else +TEX_CMD?= ${PREFIX}/bin/tex +PDFTEX_CMD?= ${PREFIX}/bin/pdftex +.endif +LATEX_CMD?= ${PREFIX}/bin/latex +JADETEX_CMD?= ${TEX_CMD} "&jadetex" +JADETEX_PREPROCESS?= /bin/cat +PDFJADETEX_CMD?=${PDFTEX_CMD} "&pdfjadetex" +PDFJADETEX_PREPROCESS?= /bin/cat +PS2PDF?= ${PREFIX}/bin/ps2pdf +FOP_CMD?= ${PREFIX}/share/fop/fop.sh +XEP_CMD?= sh ${HOME}/XEP/xep.sh +JAVA_CMD?= ${PREFIX}/bin/javavm +SAXON_CMD?= ${JAVA_CMD} -jar ${PREFIX}/share/java/classes/saxon.jar # Image processing (contains code used by the doc.<format>.mk files, so must # be listed first). .include "doc.images.mk" +# targets and variables commonly used in doc/ and www/ tree. +.include "doc.common.mk" + +DOC_LOCAL_MK= ${DOC_PREFIX}/${LANGCODE}/share/mk/doc.local.mk + +.if exists(${DOC_LOCAL_MK}) +.include "${DOC_LOCAL_MK}" +.endif + # Ownership information. .include "doc.install.mk" +# XML specific configuration +.include "doc.xml.mk" + # Format-specific configuration .if defined(DOC) .if ${DOCFORMAT} == "docbook" .include "doc.docbook.mk" .endif +.if ${DOCFORMAT} == "slides" +.include "doc.slides.mk" +.endif .if ${DOCFORMAT} == "html" .include "doc.html.mk" .endif Added: doc/trunk/share/mk/doc.slides.mk =================================================================== --- doc/trunk/share/mk/doc.slides.mk (rev 0) +++ doc/trunk/share/mk/doc.slides.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -0,0 +1,92 @@ +# +# $FreeBSD: doc/share/mk/doc.slides.mk,v 1.8 2005/08/29 03:18:58 murray Exp $ +# +# This include file <doc.slides.mk> handles building and installing of +# DocBook Slides in the FreeBSD Documentation Project. +# +# Documentation using DOCFORMAT=slides is expected to be marked up +# according to the DocBook slides DTD. +# +# PDF and HTML output formats are currently supported. +# + +# ------------------------------------------------------------------------ +# +# Document-specific variables +# +# DOC This should be set to the name of the SLIDES +# marked-up file, without the .xml suffix. +# +# It also determins the name of the output files +# for print output : ${DOC}.pdf +# +# DOCBOOKSUFFIX The suffix of your document, defaulting to .xml +# + +DOCBOOKSUFFIX?= xml +MASTERDOC?= ${.CURDIR}/${DOC}.${DOCBOOKSUFFIX} + +KNOWN_FORMATS= html pdf sxi + +CSS_SHEET?= + +SLIDES_XSLDIR= /usr/local/share/xsl/slides/xsl/ +SLIDES_XSLHTML= ${SLIDES_XSLDIR}xhtml/default.xsl +SLIDES_XSLPRINT?= ${SLIDES_XSLDIR}fo/plain.xsl + +# Default OpenOffice.Org Template +TEMPLATE?= BSDi + +# Loop through formats we should build. +.for _curformat in ${FORMATS} +_cf=${_curformat} + +# 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} + +.if ${_cf} == "pdf" +CLEANFILES+= ${DOC}.fo ${DOC}.pdf +.if ! defined (USE_FOP) && ! defined (USE_XEP) +CLEANFILES+= ${DOC}.aux ${DOC}.log ${DOC}.out texput.log +.endif +.endif + +.if ${_cf} == "sxi" +CLEANDIRS+= sxi +.endif + +.endfor + +XSLTPROCFLAGS?= --nonet --stringparam draft.mode no +XSLTPROCOPTS= ${XSLTPROCFLAGS} + +.MAIN: all + +all: ${_docs} + +${DOC}.html: ${SRCS} + ${XSLTPROC} ${XSLTPROCOPTS} ${SLIDES_XSLHTML} ${.CURDIR}/${DOC}.xml + +${DOC}.sxi: ${SRCS} + ${XSLTPROC} ${XSLTPROCOPTS} ${DOC_PREFIX}/share/openoffice/${TEMPLATE}.xsl ${.CURDIR}/slides.xml > ${.OBJDIR}/content.xml + (cd ${DOC_PREFIX}/share/openoffice/${TEMPLATE}; zip -r ${.OBJDIR}/${DOC}.sxi . -x \*/CVS/\* -x CVS/\*) + (cd ${.OBJDIR}; zip -g ${DOC}.sxi content.xml) + +${DOC}.fo: ${SRCS} +.if defined(USE_SAXON) + ${SAXON_CMD} ${DOC}.xml ${SLIDES_XSLPRINT} > ${.TARGET:S/.pdf$/.fo/} +.else + ${XSLTPROC} ${XSLTPROCOPTS} ${SLIDES_XSLPRINT} ${.CURDIR}/${DOC}.xml > ${.OBJDIR}/${.TARGET:S/.pdf$/.fo/} +.endif + +${DOC}.pdf: ${DOC}.fo +.if defined(USE_FOP) + ${FOP_CMD} ${.OBJDIR}/${.TARGET:S/.pdf$/.fo/} ${.OBJDIR}/${.TARGET} +.elif defined(USE_XEP) + ${XEP_CMD} ${.OBJDIR}/${.TARGET:S/.pdf$/.fo/} ${.OBJDIR}/${.TARGET} +.else + ${PDFTEX_CMD} --interaction nonstopmode "&pdfxmltex" ${.OBJDIR}/${.TARGET:S/.pdf$/.fo/} +.endif Modified: doc/trunk/share/mk/doc.subdir.mk =================================================================== --- doc/trunk/share/mk/doc.subdir.mk 2007-10-10 13:00:53 UTC (rev 298) +++ doc/trunk/share/mk/doc.subdir.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -1,8 +1,7 @@ -# $Id$ # 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.9 2001/12/13 23:51:26 phantom Exp $ +# $FreeBSD: doc/share/mk/doc.subdir.mk,v 1.12 2006/11/09 04:23:14 bmah Exp $ # # This include file <doc.subdir.mk> contains the default targets # for building subdirectories in the FreeBSD Documentation Project. @@ -63,21 +62,20 @@ .if !target(install) install: afterinstall symlinks afterinstall: realinstall -realinstall: beforeinstall _SUBDIRUSE +realinstall: beforeinstall .endif 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} ${COMPAT_SYMLINK} .endif .if defined(PRI_LANG) && defined(ROOT_SYMLINKS) && !empty(ROOT_SYMLINKS) .if ${PRI_LANG} == ${LANGCODE} .for _tmp in ${ROOT_SYMLINKS} -SYMLINKS+= ${DOCDIR} ${LANGCODE:ja_JP.eucJP=ja}/${.CURDIR:T}/${_tmp} ${_tmp} +SYMLINKS+= ${DOCDIR} ${LANGCODE}/${.CURDIR:T}/${_tmp} ${_tmp} .endfor .endif .endif @@ -122,7 +120,6 @@ .if !defined(NOINCLUDEMK) .include <bsd.obj.mk> -.include <bsd.subdir.mk> .else Added: doc/trunk/share/mk/doc.xml.mk =================================================================== --- doc/trunk/share/mk/doc.xml.mk (rev 0) +++ doc/trunk/share/mk/doc.xml.mk 2007-10-10 13:10:45 UTC (rev 299) @@ -0,0 +1,384 @@ +# doc.xml.mk +# $FreeBSD: doc/share/mk/doc.xml.mk,v 1.11 2006/09/22 21:05:03 hrs Exp $ + +XML_CATALOG_FILES= file://${.OBJDIR}/catalog-cwd.xml \ + file://${DOC_PREFIX}/${LANGCODE}/share/sgml/catalog.xml \ + file://${DOC_PREFIX}/${LANGCODE}/share/sgml/catalog.xml \ + file://${DOC_PREFIX}/share/sgml/catalog.xml \ + file://${DOC_PREFIX}/share/sgml/catalog-common.xml \ + file://${WEB_PREFIX}/${WWW_LANGCODE}/share/sgml/catalog.xml \ + file://${WEB_PREFIX}/share/sgml/catalog.xml \ + file://${WEB_PREFIX}/share/sgml/catalog-common.xml \ + file://${LOCALBASE}/share/xml/catalog + +.if exists(${WEB_PREFIX}/share/sgml/catalog-cwd.xml) +XML_CATALOG_CWD= ${WEB_PREFIX}/share/sgml/catalog-cwd.xml +.elif exists(${DOC_PREFIX}/share/sgml/catalog-cwd.xml) +XML_CATALOG_CWD= ${DOC_PREFIX}/share/sgml/catalog-cwd.xml +.endif + +# Variables used in DEPENDSET + +_DEPENDSET.all= wwwstd transtable mirrors usergroups commercial \ + news press events advisories notices + +# DEPENDSET: wwwstd ......................................................... +_DEPENDSET.wwwstd= ${XML_INCLUDES} +_XML_INCLIST= libcommon.l10n.xsl \ + libcommon.xsl \ + navibar.l10n.ent \ + navibar.ent \ + common.ent \ + header.ent \ + header.l10n.ent \ + iso8879.ent \ + l10n.ent \ + release.ent +.for F in ${_INCLIST} +.if exists(${WEB_PREFIX}/${WWW_LANGCODE}/share/sgml/${F}) +XML_INCLUDES+= ${F} +.endif +.if exists(${WEB_PREFIX}/share/sgml/${F}) +XML_INCLUDES+= ${F} +.endif +.endfor + +.if defined(XML_CATALOG_CWD) +XML_INCLUDES+= ${.OBJDIR}/catalog-cwd.xml +CLEANFILES+= ${.OBJDIR}/catalog-cwd.xml +${.OBJDIR}/catalog-cwd.xml: ${XML_CATALOG_CWD} + ${INSTALL} ${.ALLSRC} ${.TARGET} +.endif + +XML_INCLUDES+= ${.OBJDIR}/autogen.ent +CLEANFILES+= ${.OBJDIR}/autogen.ent +${.OBJDIR}/autogen.ent: + ${ECHO_CMD} '<!ENTITY base "${WEB_PREFIX_REL}">' > ${.TARGET} + +DEPENDSET.DEFAULT+= wwwstd + +# DEPENDSET: transtable ...................................................... +_DEPENDSET.transtable= ${XML_TRANSTABLE} ${XSL_TRANSTABLE} \ + ${XSL_TRANSTABLE_MASTER} ${XSL_TRANSTABLE_COMMON} +_PARAMS.transtable= --param transtable.xml "'${XML_TRANSTABLE}'" +XSL_TRANSTABLE_MASTER= ${DOC_PREFIX}/share/sgml/transtable-master.xsl +XSL_TRANSTABLE_COMMON= ${DOC_PREFIX}/share/sgml/transtable-common.xsl + +.if exists(${DOC_PREFIX}/${LANGCODE}/share/sgml/transtable-local.xsl) +XSL_TRANSTABLE= ${DOC_PREFIX}/${LANGCODE}/share/sgml/transtable-local.xsl +.else +XSL_TRANSTABLE= ${DOC_PREFIX}/share/sgml/transtable-local.xsl +.endif + +.if exists(${DOC_PREFIX}/${LANGCODE}/share/sgml/transtable.xml) +XML_TRANSTABLE= ${DOC_PREFIX}/${LANGCODE}/share/sgml/transtable.xml +.else +XML_TRANSTABLE= ${DOC_PREFIX}/share/sgml/transtable.xml +.endif + +# DEPENDSET: mirrors ..................................................... +_DEPENDSET.mirrors= ${XSL_MIRRORS} ${XML_MIRRORS} +_PARAMS.mirrors= --param mirrors.xml "'${XML_MIRRORS}'" +XML_MIRRORS_MASTER= ${DOC_PREFIX}/share/sgml/mirrors.xml +XML_MIRRORS= ${DOC_PREFIX}/${LANGCODE}/share/sgml/mirrors.xml +XSL_MIRRORS_MASTER= ${DOC_PREFIX}/share/sgml/mirrors-master.xsl +.if exists(${DOC_PREFIX}/${LANGCODE}/share/sgml/mirrors-local.xsl) +XSL_MIRRORS= ${DOC_PREFIX}/${LANGCODE}/share/sgml/mirrors-local.xsl +.else +XSL_MIRRORS= ${DOC_PREFIX}/share/sgml/mirrors-local.xsl +.endif +${XSL_MIRRORS}: ${XSL_MIRRORS_MASTER} ... [truncated message content] |