From 9e147cdf530480c2b0282c93fa5d995054561673 Mon Sep 17 00:00:00 2001 From: hal9 Date: Mon, 16 Sep 2002 06:04:34 +0000 Subject: [PATCH] Improved $(VERSION) handling, and related cleanups, with minor changes to most targets. Renamed all dok-* targets to doc-*, and added some backward compatibility targets. --- doc/source/GNUmakefile.in | 146 ++++++++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 47 deletions(-) diff --git a/doc/source/GNUmakefile.in b/doc/source/GNUmakefile.in index 62161cad..b09d0934 100644 --- a/doc/source/GNUmakefile.in +++ b/doc/source/GNUmakefile.in @@ -1,6 +1,6 @@ # Note: Makefile is built automatically from Makefile.in # -# $Id: GNUmakefile.in,v 1.5 2002/09/05 23:12:04 hal9 Exp $ +# $Id: GNUmakefile.in,v 1.6 2002/09/06 01:58:28 hal9 Exp $ # # Location: doc/source/Makefile.in # Purpose: Build documentation @@ -60,6 +60,7 @@ JADECAT = @JADECAT@ JADEBIN = @JADEBIN@ DOC_STATUS = @DOC_STATUS@ MAN2HTML = @MAN2HTML@ +DKPREFIX = @DKPREFIX@ # Note: Please make sure that -d ldp.dsl\#html stays the last option to # $(JADEBIN), because for some targets "-notoc" will be appended # to it (--> "ldp.dsl\#html-notoc"). @@ -73,7 +74,7 @@ ROOT = ../.. UTILS = $(ROOT)/utils DOK_WEB_USEM=$(ROOT)/webserver/user-manual -DOC_FILES = AUTHORS LICENSE README ChangeLog \ +DOC_FILES = $(ROOT)/AUTHORS $(ROOT)/LICENSE $(ROOT)/README $(ROOT)/INSTALL $(ROOT)/ChangeLog \ `find ../text/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` \ `find ../webserver/ -name "*.html" | grep -v "\(webserver\|team\)\/index\.html"` \ `find ../webserver/ -name "*.css"` \ @@ -82,10 +83,10 @@ DOC_FILES = AUTHORS LICENSE README ChangeLog \ ############################################################################# # Phony targets ############################################################################# -.PHONY: all dok webserver dok-webserver clean dok-clean clobber ensure-wdump \ -ensure-jadebin ensure-dkprefix user dok-user devel dok-devel faq dok-faq \ -readme dok-readme authors dok-authors index dok-index webserver dok-webserver \ -man dok-man man2html manuals dok-release dok-pdf dok-shtml announce config-file +.PHONY: all dok webserver doc-webserver clean doc-clean clobber ensure-wdump \ +ensure-jadebin ensure-dkprefix user doc-user devel doc-devel faq doc-faq \ +readme doc-readme authors doc-authors index doc-index webserver doc-webserver \ +man doc-man man2html manuals doc-release doc-pdf doc-shtml announce config-file ############################################################################# # # Documentation @@ -93,24 +94,57 @@ man dok-man man2html manuals dok-release dok-pdf dok-shtml announce config-file # converts *.sgml into html, pdf, text and man pages # ############################################################################# -# + +############################################################################# # Build the Manuals, etc ######################################### # This does not build _all_ targets ######################################### -all: dok-release dok-user dok-devel dok-faq dok-webserver dok-index dok-readme dok-authors dok-man dok-clean +all: $(DOC_DIR)/doc_version.tmp doc-user doc-devel doc-faq doc-webserver doc-index doc-readme doc-authors doc-man doc-clean @$(ECHO) Documentation created. -# Shortcuts. Use these targets. -clean: dok-clean -index: dok-release dok-webserver dok-index dok-clean -user: dok-release dok-user dok-clean -devel: dok-release dok-devel dok-clean -faq: dok-release dok-faq dok-clean -manuals: dok-release dok-user dok-devel dok-faq dok-clean -readme: dok-release dok-readme dok-clean -webserver: dok-release dok-webserver dok-clean -man: dok-release dok-man dok-clean -authors: dok-release dok-authors dok-clean -pdf: dok-release dok-pdf +############################################################################# +# Shortcuts. Use these targets if building docs selectively (ie not 'all'). +# +# Both index pages (index.html and privoxy-index.html) +index: $(DOC_DIR)/doc_version.tmp doc-webserver doc-index doc-clean + +# Just index.html +webserver: $(DOC_DIR)/doc_version.tmp doc-webserver doc-clean + +# User Manual html and text +user: $(DOC_DIR)/doc_version.tmp doc-user doc-clean + +# Developer Manual html and text +devel: $(DOC_DIR)/doc_version.tmp doc-devel doc-clean + +# FAQ html and text +faq: $(DOC_DIR)/doc_version.tmp doc-faq doc-clean + +# All formal manuals (html and text). +manuals: $(DOC_DIR)/doc_version.tmp doc-user doc-devel doc-faq doc-clean + +# README and INSTALL +readme: $(DOC_DIR)/doc_version.tmp doc-readme doc-clean + +# man page and html man page +man: $(DOC_DIR)/doc_version.tmp doc-man doc-clean + +# AUTHORS file only. +authors: $(DOC_DIR)/doc_version.tmp doc-authors doc-clean + +# PDF version of manuals. +pdf: $(DOC_DIR)/doc_version.tmp doc-pdf + +# doh. +clean: doc-clean + +# backward compatibility targets +dok-user: user +dok-faq: faq +dok-devel: devel +dok-index: index +dok-man: man +dok-readme: readme +dok: all # 3 checks to make sure docs will be generated ensure-wdump: @@ -137,26 +171,44 @@ ifeq (@DKPREFIX@,false) @exit 1 endif +# Update release info, so it can be read by Docbook/jade, and run other +# checks. +$(DOC_DIR)/doc_version.tmp: ensure-dkprefix ensure-jadebin ensure-wdump doc-release + +# Write VERSION and CODE_STATUS to tmp files so they can be read into the doc +# processing. This needs to go before any doc building (doh). +doc-release: + @$(ECHO) Setting doc version and status to $(VERSION), $(CODE_STATUS) + $(MAKE) doc-clean + mkdir -p $(DOC_TMP) + $(ECHO) -n $(VERSION) > $(DOC_DIR)/doc_version.tmp + $(ECHO) -n $(CODE_STATUS) > $(DOC_DIR)/doc_status.tmp + $(ECHO) -n $(STABLE) > $(DOC_DIR)/doc_stable.tmp + # user manual -dok-user: ensure-dkprefix ensure-jadebin ensure-wdump +doc-user: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd $(DOC_TMP) && $(RM) * && $(DB) -iuser-man ../user-manual.sgml && cd .. && \ $(RM) ../webserver/user-manual/*.html && cp $(DOC_TMP)/*.html ../webserver/user-manual/ $(DB) -iuser-man -V nochunks user-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/user-manual.txt # developer manual -dok-devel: ensure-dkprefix ensure-jadebin ensure-wdump +doc-devel: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd $(DOC_TMP) && $(RM) * && $(DB) ../developer-manual.sgml && cd .. && \ $(RM) ../webserver/developer-manual/*.html && cp -f $(DOC_TMP)/*.html ../webserver/developer-manual/ $(DB) -V nochunks developer-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/developer-manual.txt # faq -dok-faq: ensure-dkprefix ensure-jadebin ensure-wdump +doc-faq: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd $(DOC_TMP) && $(RM) * && $(DB) ../faq.sgml && cd .. && \ $(RM) ../webserver/faq/*.html && cp $(DOC_TMP)/*.html ../webserver/faq/ $(DB) -V nochunks faq.sgml > tmp.html && $(WDUMP) tmp.html > ../text/faq.txt # Build README and INSTALL files. -dok-readme: dok-release ensure-dkprefix ensure-jadebin ensure-wdump +doc-readme: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 $(DB)-notoc -V nochunks readme.sgml > tmp.html &&\ $(WDUMP) tmp.html > $(ROOT)/README ;\ $(DB)-notoc -V nochunks install.sgml > tmp.html &&\ @@ -167,7 +219,8 @@ dok-readme: dok-release ensure-dkprefix ensure-jadebin ensure-wdump # for documentation (privoxy-index.html), etc. # # index.html for webserver: -dok-webserver: ensure-dkprefix ensure-jadebin ensure-wdump +doc-webserver: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd webserver && $(DB)-notoc -ip-homepage -V nochunks index.sgml > index.html ;\ $(PERL) -pi.bak -e 's/..\/p_doc.css/p_doc.css/;\ s/<\/HEAD/\n<\/HEAD/;\ @@ -177,7 +230,8 @@ dok-webserver: ensure-dkprefix ensure-jadebin ensure-wdump $(RM) *.html *.bak # privoxy-index.html for bundling with locally installed documentation: -dok-index: ensure-dkprefix ensure-jadebin ensure-wdump +doc-index: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd webserver && $(DB)-notoc -ip-index -V nochunks index.sgml > privoxy-index.html ;\ $(PERL) -pi.bak -e 's/..\/p_doc.css/p_doc.css/;\ s/<\/HEAD/\n<\/HEAD/;\ @@ -187,13 +241,15 @@ dok-index: ensure-dkprefix ensure-jadebin ensure-wdump $(RM) *.html *.bak ## Make AUTHORS file -dok-authors: ensure-dkprefix ensure-jadebin ensure-wdump +doc-authors: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 $(DB) -V nochunks authors.sgml > tmp.html && $(WDUMP) \ tmp.html > ../../AUTHORS # Make a man page, and then HTML version. Uses docbook2man (short perl script) # in utils dir. -dok-man: ensure-dkprefix ensure-jadebin dok-release +doc-man: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 cd $(DOC_TMP) && $(RM) * &&\ nsgmls $(DOC_STATUS) ../privoxy-man-page.sgml | sgmlspl ../../../utils/docbook2man/docbook2man-spec.pl &&\ perl -pi.bak -e 's/ //; s/\[ /\[/g' privoxy.1 @@ -205,7 +261,8 @@ dok-man: ensure-dkprefix ensure-jadebin dok-release $(MAKE) clean # For those with man2html ala RH7s. -man2html: ensure-dkprefix ensure-jadebin ensure-wdump +man2html: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 mkdir -p ../webserver/man-page ifneq ($(MAN2HTML),false) $(MAN2HTML) $(ROOT)/privoxy.1 |grep -v "^Content-type" > tmp.html @@ -225,20 +282,10 @@ groff2html: $(G2H_CMD) $(ROOT)/privoxy.1 | $(SED) -e 's@@@' >\ ../webserver/man-page/privoxy-man-page.html -# Write VERSION and CODE_STATUS to tmp files so they can be read into the doc -# processing. This needs to go before any doc building (doh). -dok-release: - @$(ECHO) Setting doc version and status to $(VERSION), $(CODE_STATUS) - $(MAKE) dok-clean - mkdir -p $(DOC_TMP) - $(ECHO) -n $(VERSION) > $(DOC_DIR)/doc_version.tmp - $(ECHO) -n $(CODE_STATUS) > $(DOC_DIR)/doc_status.tmp - $(ECHO) -n $(STABLE) > $(DOC_DIR)/doc_stable.tmp - # Make pdf docs from single page html. Requires htmldoc, see # (http://www.easysw.com/htmldoc/). Note: 1.8.20 has a TOC bug. # PDF docs are uploaded to webserver as zip archive. -dok-pdf: dok-shtml +doc-pdf: doc-shtml @$(ECHO) -n "starting htmldoc version: "; htmldoc --version cd $(UTILS)/ldp_print && $(RM) *html *bak *jpg *tmp *pdf *zip cp -f $(DOC_TMP)/*html ../webserver/images/*jpg $(UTILS)/ldp_print @@ -257,20 +304,21 @@ dok-pdf: dok-shtml # Generate single page html. Used only for creating pdf docs (ATM). -dok-shtml: dok-release ensure-dkprefix ensure-jadebin ensure-wdump +doc-shtml: + test -f $(DOC_DIR)/doc_version.tmp || exit 1 $(DB) -iuser-man -V nochunks user-manual.sgml > $(DOC_TMP)/privoxy-user-manual.html $(DB) -V nochunks developer-manual.sgml > $(DOC_TMP)/privoxy-developer-manual.html $(DB) -V nochunks faq.sgml > $(DOC_TMP)/privoxy-faq.html # Create release announcement in text and html, with short and long versions. # This is a standalone target, and must be invoked directly. -announce: dok-release ensure-wdump +announce: $(DOC_DIR)/doc_version.tmp cd $(DOC_TMP) && $(DB) -iannounce-big ../announce.sgml &&\ mv -f index.html announce.html && $(WDUMP) announce.html > announce.txt cd $(DOC_TMP) && $(DB) ../announce.sgml &&\ mv -f index.html announce-mini.html && $(WDUMP) announce-mini.html > announce-mini.txt &&\ mv -f *html *txt $(ROOT) - $(MAKE) dok-clean + $(MAKE) doc-clean @$(ECHO) Announce texts are done. Please check them. Some hand editing @$(ECHO) may be required. @@ -279,7 +327,7 @@ announce: dok-release ensure-wdump # as config.new so that problem sections can be compared to previous # version. This is hardcored to w3m for html/text conversion. Also, # requires the shell util 'fmt'. -config-file: ensure-dkprefix ensure-jadebin ensure-wdump dok-release +config-file: $(DOC_DIR)/doc_version.tmp $(DB)-notoc -iconfig-file -V nochunks config.sgml > tmp.html &&\ w3m -dump tmp.html |fmt -w 70 > $(ROOT)/config.new && $(RM) tmp.* $(PERL) -pi.bak -e 's/^1\. \@\@TITLE\@\@/ /i;\ @@ -309,7 +357,7 @@ config-file: ensure-dkprefix ensure-jadebin ensure-wdump dok-release # config file, alternate verison using lynx (perl stuff unfinished). Lynx # does not do so good a job. -config-file-alt: dok-release ensure-wdump +config-file-alt: doc-release ensure-wdump $(ECHO) -e ".h2 JUSTIFY\\nJUSTIFY:FALSE" > tmp.lynx_cfg &&\ $(DB)-notoc -iconfig-file -V nochunks config.sgml > tmp.html &&\ lynx -cfg=tmp.lynx_cfg -width=78 -dump tmp.html > ../../config.new && $(RM) tmp.* @@ -317,11 +365,11 @@ config-file-alt: dok-release ensure-wdump s/:$\/:\n/' $(ROOT)/config.new # This is mostly to catch cruft from build failures -dok-clean: +doc-clean: $(RM) $(DOC_TMP) *.html `find $(ROOT) -name "tmp.*" -o -name "*.tmp" -o -name "*.bak" -o -name "*.fot"` tidy: - $(RM) `find . -name "*~"` `find . -name ".\#*"` + $(RM) doc_* `find . -name "*~"` `find . -name ".\#*"` clobber: tidy clean $(RM) GNUmakefile ldp.dsl @@ -338,6 +386,10 @@ coffee: ############################################################################# # $Log: GNUmakefile.in,v $ +# Revision 1.6 2002/09/06 01:58:28 hal9 +# Create a separate INSTALL file, and remove install instructions from README. +# INSTALL is built from dok-readme target. +# # Revision 1.5 2002/09/05 23:12:04 hal9 # Updated Makefile with 3.0 changes (pdf and man targets, etc). Revise comments # in privoxy-man-page.sgml to remove out of date comments. -- 2.39.2