1 # Note: Makefile is built automatically from Makefile.in
3 # $Id: GNUmakefile.in,v 1.4 2002/08/08 01:02:26 hal9 Exp $
5 # Location: doc/source/Makefile.in
6 # Purpose: Build documentation
8 # Written by and Copyright (C) 2002 the Privoxy
9 # team. http://www.privoxy.org/
11 # This program is free software; you can redistribute it
12 # and/or modify it under the terms of the GNU General
13 # Public License as published by the Free Software
14 # Foundation; either version 2 of the License, or (at
15 # your option) any later version.
17 # This program is distributed in the hope that it will
18 # be useful, but WITHOUT ANY WARRANTY; without even the
19 # implied warranty of MERCHANTABILITY or FITNESS FOR A
20 # PARTICULAR PURPOSE. See the GNU General Public
21 # License for more details.
23 # The GNU General Public License should be included with
24 # this file. If not, you can view it at
25 # http://www.gnu.org/copyleft/gpl.html
26 # or write to the Free Software Foundation, Inc., 59
27 # Temple Place - Suite 330, Boston, MA 02111-1307, USA.
30 #############################################################################
31 # Set make command correctly
32 #############################################################################
35 #############################################################################
36 # Version number (for RPM)
37 #############################################################################
39 VERSION_MAJOR = @VERSION_MAJOR@
40 VERSION_MINOR = @VERSION_MINOR@
41 VERSION_POINT = @VERSION_POINT@
42 CODE_STATUS = @CODE_STATUS@
43 VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_POINT)
44 # Whatever the most recent stable version is.
47 #############################################################################
49 #############################################################################
51 PROGRAM = privoxy@EXEEXT@
61 DOC_STATUS = @DOC_STATUS@
63 # Note: Please make sure that -d ldp.dsl\#html stays the last option to
64 # $(JADEBIN), because for some targets "-notoc" will be appended
65 # to it (--> "ldp.dsl\#html-notoc").
66 DB = $(JADEBIN) $(JADECAT) $(DOC_STATUS) -ihtml -t sgml -D.. -d ldp.dsl\#html
67 G2H_CMD = groff -mandoc -Thtml
71 DOC_TMP = $(DOC_DIR)/tmp
74 DOK_WEB_USEM=$(ROOT)/webserver/user-manual
76 DOC_FILES = AUTHORS LICENSE README ChangeLog \
77 `find ../text/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` \
78 `find ../webserver/ -name "*.html" | grep -v "\(webserver\|team\)\/index\.html"` \
79 `find ../webserver/ -name "*.css"` \
82 #############################################################################
84 #############################################################################
85 .PHONY: all dok webserver dok-webserver clean dok-clean clobber ensure-wdump \
86 ensure-jadebin ensure-dkprefix user dok-user devel dok-devel faq dok-faq \
87 readme dok-readme authors dok-authors index dok-index webserver dok-webserver \
88 man dok-man man2html manuals dok-release dok-pdf dok-shtml announce config-file
89 #############################################################################
93 # converts *.sgml into html, pdf, text and man pages
95 #############################################################################
97 # Build the Manuals, etc #########################################
98 # This does not build _all_ targets #########################################
99 all: dok-release dok-user dok-devel dok-faq dok-webserver dok-index dok-readme dok-authors dok-man dok-clean
100 @$(ECHO) Documentation created.
102 # Shortcuts. Use these targets.
104 index: dok-release dok-webserver dok-index dok-clean
105 user: dok-release dok-user dok-clean
106 devel: dok-release dok-devel dok-clean
107 faq: dok-release dok-faq dok-clean
108 manuals: dok-release dok-user dok-devel dok-faq dok-clean
109 readme: dok-release dok-readme dok-clean
110 webserver: dok-release dok-webserver dok-clean
111 man: dok-release dok-man dok-clean
112 authors: dok-release dok-authors dok-clean
113 pdf: dok-release dok-pdf
115 # 3 checks to make sure docs will be generated
119 @$(ECHO) "Cannot build docs; one of w3m, links, or lynx must be installed."
120 @$(ECHO) "You should install the appropriate package and rerun ./configure"
125 ifeq (@JADEBIN@,false)
127 @$(ECHO) "Cannot build docs; one of openjade or jade must be installed"
128 @$(ECHO) "You should install the appropriate package and rerun ./configure"
133 ifeq (@DKPREFIX@,false)
135 @$(ECHO) "Cannot build docs; cannot find docbook-dsssl stylesheets"
136 @$(ECHO) "You should install the appropriate package and rerun ./configure"
141 dok-user: ensure-dkprefix ensure-jadebin ensure-wdump
142 cd $(DOC_TMP) && $(RM) * && $(DB) -iuser-man ../user-manual.sgml && cd .. && \
143 $(RM) ../webserver/user-manual/*.html && cp $(DOC_TMP)/*.html ../webserver/user-manual/
144 $(DB) -iuser-man -V nochunks user-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/user-manual.txt
147 dok-devel: ensure-dkprefix ensure-jadebin ensure-wdump
148 cd $(DOC_TMP) && $(RM) * && $(DB) ../developer-manual.sgml && cd .. && \
149 $(RM) ../webserver/developer-manual/*.html && cp -f $(DOC_TMP)/*.html ../webserver/developer-manual/
150 $(DB) -V nochunks developer-manual.sgml > tmp.html && $(WDUMP) tmp.html > ../text/developer-manual.txt
153 dok-faq: ensure-dkprefix ensure-jadebin ensure-wdump
154 cd $(DOC_TMP) && $(RM) * && $(DB) ../faq.sgml && cd .. && \
155 $(RM) ../webserver/faq/*.html && cp $(DOC_TMP)/*.html ../webserver/faq/
156 $(DB) -V nochunks faq.sgml > tmp.html && $(WDUMP) tmp.html > ../text/faq.txt
159 dok-readme: ensure-dkprefix ensure-jadebin ensure-wdump
160 $(DB)-notoc -V nochunks readme.sgml > tmp.html &&\
161 $(WDUMP) tmp.html > $(ROOT)/README ;\
164 # index.sgml is used to create both the Home Page, and a local index
165 # for documentation (privoxy-index.html), etc.
167 # index.html for webserver:
168 dok-webserver: ensure-dkprefix ensure-jadebin ensure-wdump
169 cd webserver && $(DB)-notoc -ip-homepage -V nochunks index.sgml > index.html ;\
170 $(PERL) -pi.bak -e 's/..\/p_doc.css/p_doc.css/;\
171 s/<\/HEAD/\n<meta name=\"description\" content=\"Privoxy helps consumers reduce unwanted junk email and protect their privacy from direct marketing companies.\"><\/HEAD/;\
172 s/<\/HEAD/\n<meta name="MSSmartTagsPreventParsing" content="TRUE"><\/HEAD/;\
173 s/\.\d\. //' index.html ;\
174 $(MV) index.html ../../webserver ;\
177 # privoxy-index.html for bundling with locally installed documentation:
178 dok-index: ensure-dkprefix ensure-jadebin ensure-wdump
179 cd webserver && $(DB)-notoc -ip-index -V nochunks index.sgml > privoxy-index.html ;\
180 $(PERL) -pi.bak -e 's/..\/p_doc.css/p_doc.css/;\
181 s/<\/HEAD/\n<meta name=\"description\" content=\"Privoxy helps consumers reduce unwanted junk email and protect their privacy from direct marketing companies.\"><\/HEAD/;\
182 s/<\/HEAD/\n<meta name="MSSmartTagsPreventParsing" content="TRUE"><\/HEAD/;\
183 s/\.\d\. //' privoxy-index.html ;\
184 $(MV) privoxy-index.html ../../webserver ;\
188 dok-authors: ensure-dkprefix ensure-jadebin ensure-wdump
189 $(DB) -V nochunks authors.sgml > tmp.html && $(WDUMP) \
190 tmp.html > ../../AUTHORS
192 # Make a man page, and then HTML version. Uses docbook2man (short perl script)
194 dok-man: ensure-dkprefix ensure-jadebin dok-release
195 cd $(DOC_TMP) && $(RM) * &&\
196 nsgmls $(DOC_STATUS) ../privoxy-man-page.sgml | sgmlspl ../../../utils/docbook2man/docbook2man-spec.pl &&\
197 perl -pi.bak -e 's/ <URL:.*>//; s/\[ /\[/g' privoxy.1
198 # cd $(DOC_TMP) && $(DB) ../privoxy-man-page.sgml &&\
199 # $(MV) -f index.html privoxy-man-page.html
200 # This html is not used. See make man2html.
201 $(MV) -f $(DOC_TMP)/privoxy.1 $(ROOT)/privoxy.1
205 # For those with man2html ala RH7s.
206 man2html: ensure-dkprefix ensure-jadebin ensure-wdump
207 mkdir -p ../webserver/man-page
208 ifneq ($(MAN2HTML),false)
209 $(MAN2HTML) $(ROOT)/privoxy.1 |grep -v "^Content-type" > tmp.html
210 $(PERL) -pi.bak -e 's/<A .*Contents<\/A>//; s/<A .*man2html<\/A>/man2html/' tmp.html
211 $(PERL) -pi.bak -e 's/(<\/HEAD>)/<LINK REL=\"STYLESHEET\" TYPE=\"text\/css\" HREF=\"..\/p_doc.css\"><\/HEAD>/' tmp.html
212 # Twice because my version of man2html is pulling in commas and periods in URLs.
213 $(PERL) -pi.bak -e 's/(<A.*),(">)/$$1$$2/g' tmp.html
214 $(PERL) -pi.bak -e 's,\.">,">,g' tmp.html
215 # Get rid of spurious
\a from conversion. (How to do this with perl?)
216 $(SED) -e 's/
\a//g' tmp.html > ../webserver/man-page/privoxy-man-page.html && $(RM) tmp.*
221 # Otherwise we get plain groff conversion.
223 $(G2H_CMD) $(ROOT)/privoxy.1 | $(SED) -e 's@</head>@<link REL="STYLESHEET" TYPE="text/css" HREF="../p_doc.css"></head>@' >\
224 ../webserver/man-page/privoxy-man-page.html
226 # Write VERSION and CODE_STATUS to tmp files so they can be read into the doc
227 # processing. This needs to go before any doc building (doh).
229 @$(ECHO) Setting doc version and status to $(VERSION), $(CODE_STATUS)
232 $(ECHO) -n $(VERSION) > $(DOC_DIR)/doc_version.tmp
233 $(ECHO) -n $(CODE_STATUS) > $(DOC_DIR)/doc_status.tmp
234 $(ECHO) -n $(STABLE) > $(DOC_DIR)/doc_stable.tmp
236 # Make pdf docs from single page html. Requires htmldoc, see
237 # (http://www.easysw.com/htmldoc/). Note: 1.8.20 has a TOC bug.
238 # PDF docs are uploaded to webserver as zip archive.
240 @$(ECHO) -n "starting htmldoc version: "; htmldoc --version
241 cd $(UTILS)/ldp_print && $(RM) *html *bak *jpg *tmp *pdf *zip
242 cp -f $(DOC_TMP)/*html ../webserver/images/*jpg $(UTILS)/ldp_print
243 cd $(UTILS)/ldp_print ;\
244 $(PERL) -pi.bak -e 's/\.\.\/images\///; s/(<\/?)SUB/$$1small/i;\
245 s/\.\.\/user-manual\/index\.html/privoxy-user-manual.pdf/;\
246 s/\.\.\/developer-manual\/index\.html/privoxy-developer-manual.pdf/;\
247 s/\.\.\/faq\/index\.html/privoxy-faq.pdf/' *.html ;\
248 for i in developer-manual user-manual faq; do \
249 ./ldp_print privoxy-$$i.html ;\
250 $(ECHO) DONE: privoxy-$$i.pdf ;\
252 $(MV) *.pdf ../../doc/pdf ;\
253 $(RM) *html *bak *jpg *pdf *zip
257 # Generate single page html. Used only for creating pdf docs (ATM).
258 dok-shtml: dok-release ensure-dkprefix ensure-jadebin ensure-wdump
259 $(DB) -iuser-man -V nochunks user-manual.sgml > $(DOC_TMP)/privoxy-user-manual.html
260 $(DB) -V nochunks developer-manual.sgml > $(DOC_TMP)/privoxy-developer-manual.html
261 $(DB) -V nochunks faq.sgml > $(DOC_TMP)/privoxy-faq.html
263 # Create release announcement in text and html, with short and long versions.
264 # This is a standalone target, and must be invoked directly.
265 announce: dok-release ensure-wdump
266 cd $(DOC_TMP) && $(DB) -iannounce-big ../announce.sgml &&\
267 mv -f index.html announce.html && $(WDUMP) announce.html > announce.txt
268 cd $(DOC_TMP) && $(DB) ../announce.sgml &&\
269 mv -f index.html announce-mini.html && $(WDUMP) announce-mini.html > announce-mini.txt &&\
270 mv -f *html *txt $(ROOT)
272 @$(ECHO) Announce texts are done. Please check them. Some hand editing
273 @$(ECHO) may be required.
275 # The main Privoxy config file, generated from sgml sources.
276 # NOTE: This will require some hand editing. The new file is outputted
277 # as config.new so that problem sections can be compared to previous
278 # version. This is hardcored to w3m for html/text conversion. Also,
279 # requires the shell util 'fmt'.
280 config-file: ensure-dkprefix ensure-jadebin ensure-wdump dok-release
281 $(DB)-notoc -iconfig-file -V nochunks config.sgml > tmp.html &&\
282 w3m -dump tmp.html |fmt -w 70 > $(ROOT)/config.new && $(RM) tmp.*
283 $(PERL) -pi.bak -e 's/^1\. \@\@TITLE\@\@/ /i;\
284 /^\d\.\d\.\s+/ && tr/[a-z]/[A-Z]/;\
285 $$header_len=0 unless $$hit_header;\
288 for ($$i=1; $$i < $$header_len; $$i++) {print "=";}\
292 $$hit_header=1 if m/^(\d\.)(\d\.)(\d\.)?\s/ && s/^(\d\.)//;\
293 $$header_len = length($$_);\
294 s/^/# /; /^# #{12,}/ && s/^# #/####/;\
295 s/^.*$$// if $$hit_option;\
297 s/^\n//; s/^#\s*-{20,}//;\
298 $$hit_option=1 if s/^#\s+@@//;' $(ROOT)/config.new
299 $(RM) $(ROOT)/*.bak *.tmp tmp.* $(DOC_TMP)
300 @$(ECHO) "****************************************************"
301 @$(ECHO) "The output file is config.new."
302 @$(ECHO) "Now -- you need to hand edit the results!!!"
303 @$(ECHO) "In particular, check the Debug levels, and the"
304 @$(ECHO) "permit-access, forward & socks examples. They"
305 @$(ECHO) "probably got hammered."
306 @$(ECHO) "****************************************************"
308 # config file, alternate verison using lynx (perl stuff unfinished). Lynx
309 # does not do so good a job.
310 config-file-alt: dok-release ensure-wdump
311 $(ECHO) -e ".h2 JUSTIFY\\nJUSTIFY:FALSE" > tmp.lynx_cfg &&\
312 $(DB)-notoc -iconfig-file -V nochunks config.sgml > tmp.html &&\
313 lynx -cfg=tmp.lynx_cfg -width=78 -dump tmp.html > ../../config.new && $(RM) tmp.*
314 $(PERL) -pi -e 's/^( )//;\
315 s/:$\/:\n/' $(ROOT)/config.new
317 # This is mostly to catch cruft from build failures
319 $(RM) $(DOC_TMP) *.html `find $(ROOT) -name "tmp.*" -o -name "*.tmp" -o -name "*.bak" -o -name "*.fot"`
322 $(RM) `find . -name "*~"` `find . -name ".\#*"`
325 $(RM) GNUmakefile ldp.dsl
330 @perl -e 'print pack "C*", (31,139,8,8,153,63,226,60,2,3,99,111,102,102,101,101,0,109,143,205,13,192,32,8,133,\
331 239,78,241,110,234,1,28,160,171,152,208,53,26,117,247,22,165,73,137,125,9,1,62,126,2,128,169,5,243,143,\
332 13,139,49,164,65,100,149,152,102,73,141,88,73,178,116,205,100,69,253,36,102,81,49,83,236,19,225,171,131,\
333 214,172,163,73,4,168,123,115,71,126,247,122,94,128,178,227,95,154,12,86,215,122,197,249,146,187,54,220,125,\
334 193,51,228,11,1,0,0);'|zcat
336 #############################################################################
338 # $Log: GNUmakefile.in,v $
339 # Revision 1.4 2002/08/08 01:02:26 hal9
340 # Update pdf2 target to dok-shtml (for single page html)
342 # Revision 1.3 2002/06/07 00:27:04 hal9
343 # Fixing man2html quirk that pulls in punctuation, and breaks URLs.
345 # Revision 1.2 2002/06/05 04:17:19 hal9
346 # Add dok-man-test target as temp workaround for docbook2man ignoring -i command
349 # Revision 1.1 2002/06/05 00:28:28 hal9
350 # Moving all doc building to doc/source. Rewrite all targets (not well tested).
351 # Docs are now built without touching sgml source.