 # Copyright (c) 2000 Gregory Trubetskoy.  All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
 #
 # 1. Redistributions of source code must retain the above copyright
 #    notice, this list of conditions and the following disclaimer. 
 #
 # 2. Redistributions in binary form must reproduce the above copyright
 #    notice, this list of conditions and the following disclaimer in
 #    the documentation and/or other materials provided with the
 #    distribution.
 #
 # 3. The end-user documentation included with the redistribution, if
 #    any, must include the following acknowledgment: "This product 
 #    includes software developed by Gregory Trubetskoy."
 #    Alternately, this acknowledgment may appear in the software itself, 
 #    if and wherever such third-party acknowledgments normally appear.
 #
 # 4. The names "mod_python", "modpython" or "Gregory Trubetskoy" must not 
 #    be used to endorse or promote products derived from this software 
 #    without prior written permission. For written permission, please 
 #    contact grisha@modpython.org.
 #
 # 5. Products derived from this software may not be called "mod_python"
 #    or "modpython", nor may "mod_python" or "modpython" appear in their 
 #    names without prior written permission of Gregory Trubetskoy.
 #
 # THIS SOFTWARE IS PROVIDED BY GREGORY TRUBETSKOY ``AS IS'' AND ANY
 # EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL GREGORY TRUBETSKOY OR
 # HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 # OF THE POSSIBILITY OF SUCH DAMAGE.
 # ====================================================================
 #
 # Makefile for mod_python documentation
 # ---------------------------------
 #
 # See also the README file.
 #

PYTHON_SRC=	@PYTHON_SRC@

# This is the *documentation* release, and is used to construct the file
# names of the downloadable tarballs.
RELEASE=	2.7

MKHOWTO=	$(PYTHON_SRC)/Doc/tools/mkhowto

# These must be declared phony since there
# are directories with matching names:
.PHONY: html

# This can be changed to a4
PAPER=		letter

MPFILES=	modpython.tex \
		copyright.tex \
		modpython1.tex \
		modpython2.tex \
		modpython3.tex \
		modpython5.tex \
		modpython6.tex \
		appendixa.tex \
		appendixb.tex

# Main target
all:	pdf

dvi:	$(MPFILES)
	$(MKHOWTO) --dvi modpython.tex

pdf:	$(MPFILES)
	$(MKHOWTO) --pdf --$(PAPER) modpython.tex

ps:	$(MPFILES)
	$(MKHOWTO) --ps --$(PAPER) modpython.tex

html:	$(MPFILES)
	$(MKHOWTO) --html modpython.tex
	mkdir -p modpython/icons
	cp $(PYTHON_SRC)/Doc/html/icons/* modpython/icons/
	rm modpython/modpython.how
# the iconserver option of mkhowto is broken since it writes
# it to the end if the init_file where they aren't useful anymore,
# so we work around it:
	for f in `find modpython`; do \
	  cat $$f | sed s/\.\.\\/icons/icons/g > $${f}2; \
	  mv $${f}2 $$f; \
	done

world:	ps pdf html tarballs

# Release packaging targets:

pdf-$(PAPER)-$(RELEASE).tgz: pdf
	tar cf - *.pdf | gzip -9 >$@

pdf-$(PAPER)-$(RELEASE).tar.bz2: pdf
	tar cf - *.pdf | bzip2 -9 >$@

pdf-$(PAPER)-$(RELEASE).zip: pdf
	rm -f $@
	zip -q -9 $@ *.pdf

postscript-$(PAPER)-$(RELEASE).tar.bz2: ps
	tar cf - *.ps | bzip2 -9 >$@

postscript-$(PAPER)-$(RELEASE).tgz: ps
	tar cf - *.ps | gzip -9 >$@

postscript-$(PAPER)-$(RELEASE).zip: ps
	rm -f $@
	zip -q -9 $@ *.ps

html-$(RELEASE).tgz:	html
	tar cf - modpython | gzip -9 >$@

html-$(RELEASE).tar.bz2:	html
	tar cf - modpython | bzip2 -9 >$@

html-$(RELEASE).zip:	html
	rm -f $@
	zip -q -9 $@ modpython

# convenience targets:

tarhtml:	html-$(RELEASE).tgz
tarps:		postscript-$(PAPER)-$(RELEASE).tgz
tarpdf:		pdf-$(PAPER)-$(RELEASE).tgz

tarballs:	tarpdf tarps tarhtml

ziphtml:	html-$(RELEASE).zip
zipps:		postscript-$(PAPER)-$(RELEASE).zip
zippdf:		pdf-$(PAPER)-$(RELEASE).zip

zips:		zippdf zipps ziphtml

bziphtml:	html-$(RELEASE).tar.bz2
bzipps:		postscript-$(PAPER)-$(RELEASE).tar.bz2
bzippdf:	pdf-$(PAPER)-$(RELEASE).tar.bz2

bzips:		bzippdf bzipps bziphtml


# Housekeeping targets

# Remove temporary files; all except the following:
# - sources: .tex, .bib, .sty, *.cls
# - useful results: .dvi, .pdf, .ps, .texi, .info
clean:
	rm -f *~ *.aux *.idx *.ilg *.ind *.log *.toc *.bkm *.syn *.pla api.tex

# Remove temporaries as well as final products
clobber:	clean
	rm -rf modpython
	rm -f html-$(RELEASE).tgz
	rm -f pdf-$(RELEASE).tgz postscript-$(RELEASE).tgz
	rm -f html-$(RELEASE).zip
	rm -f pdf-$(RELEASE).zip postscript-$(RELEASE).zip

realclean:  clobber
distclean:  clobber

# HTML in the doc directory
dist: version html
	rm -rf ../doc-html
	mv modpython ../doc-html

# Version substitution
version: ../src/include/mpversion.h
	DATE="`date +'%B %d, %Y'`"; \
	VERSION="`awk '/MPV_STRING/ {print $$3}' ../src/include/mpversion.h`"; \
	VERSION="`echo $$VERSION | sed s/\\"//g`"; \
	cat modpython.tex | sed s/\\release.*/\\release\{$$VERSION\}/ >modpython.tex2; \
	cat modpython.tex2 | sed s/\\date.*/\\date\{"$$DATE"\}/ >modpython.tex



