r8174: fix os detection
[clsql.git] / doc / Makefile
1 ##############################################################################
2 # FILE IDENTIFICATION
3
4 #  Name:         Makefile
5 #  Purpose:      Makefile for the clsql documentation
6 #  Programer:    Kevin M. Rosenberg
7 #  Date Started: Mar 2002
8 #
9 #  CVS Id:   $Id$
10 #
11 # This file, part of CLSQL, is Copyright (c) 2002-2003 by Kevin M. Rosenberg
12 #
13 # CLSQL users are granted the rights to distribute and use this software
14 # as governed by the terms of the Lisp Lesser GNU Public License
15 # (http://opensource.franz.com/preamble.html), also known as the LLGPL.
16 ##############################################################################
17
18 DOCFILE_BASE_DEFAULT:=clsql
19 DOCFILE_EXT_DEFAULT:=xml
20
21
22 # Standard docfile processing
23
24 DEBIAN=$(shell expr "`cat /etc/issue`" : '.*Debian.*')
25 SUSE=$(shell expr "`cat /etc/issue`" : '.*SuSE.*')
26 REDHAT=$(shell expr "`cat /etc/issue`" : '.*RedHat.*')
27
28 ifneq (${DEBIAN},0)
29 OS:=debian
30 else
31   ifneq (${SUSE},0)
32     OS=suse
33   else   
34     ifneq (${REDHAT},0)
35       OS=redhat
36     endif
37   endif
38 endif
39
40
41 ifndef DOCFILE_BASE
42 DOCFILE_BASE=${DOCFILE_BASE_DEFAULT}
43 endif
44
45 ifndef DOCFILE_EXT
46 DOCFILE_EXT=${DOCFILE_EXT_DEFAULT}
47 endif
48
49 DOCFILE:=${DOCFILE_BASE}.${DOCFILE_EXT}
50 FOFILE:=${DOCFILE_BASE}.fo
51 PDFFILE:=${DOCFILE_BASE}.pdf
52 PSFILE:=${DOCFILE_BASE}.ps
53 DVIFILE:=${DOCFILE_BASE}.dvi
54 TXTFILE:=${DOCFILE_BASE}.txt
55 HTMLFILE:=${DOCFILE_BASE}.html
56 TMPFILES:=${DOCFILE_BASE}.aux ${DOCFILE_BASE}.out ${DOCFILE_BASE}.log
57 DOCFILES:=$(shell echo *.xml *.xsl)
58
59 CATALOG:=`pwd`/catalog-${OS}.xml
60 CHECK:=XML_CATALOG_FILES="$(CATALOG)" xmllint --noout --xinclude --postvalid $(DOCFILE) || exit 1
61
62 .PHONY: all
63 all: html pdf 
64
65 .PHONY: dist
66 dist: html pdf
67
68 .PHONY: doc
69 doc: html pdf
70
71 .PHONY: check
72 check:
73         @$(CHECK)
74
75 .PHONY: html
76 html: html.tar.gz
77
78 html.tar.gz: $(DOCFILES) Makefile 
79         @rm -rf html
80         @mkdir html
81         @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output html/ html_chunk.xsl $(DOCFILE)
82         @GZIP='-9' tar czf html.tar.gz html 
83
84 .PHONY: fo
85 fo: ${FOFILE}
86
87 ${FOFILE}: $(DOCFILES) Makefile 
88         @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output $(FOFILE) fo.xsl $(DOCFILE)
89
90 .PHONY: pdf
91 pdf: ${PDFFILE}
92
93 ${PDFFILE}: ${DOCFILES} Makefile
94         @$(MAKE) fo
95         @fop $(FOFILE) -pdf $(PDFFILE) > /dev/null
96
97 .PHONY: dvi
98 dvi: ${DVIFILE}
99
100 .PHONY: ps
101 ps: ${PSFILE}
102
103 ${PSFILE}: ${DOCFILES} Makefile
104         @$(MAKE) fo
105         @fop $(FOFILE) -ps $(PSFILE) > /dev/null
106
107
108 .PHONY: txt
109 txt: ${TXTFILE}
110
111 ${TXTFILE}: ${FOFILE}
112         @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output ${HTMLFILE} html.xsl $(DOCFILE)
113         lynx -dump ${HTMLFILE} > ${TXTFILE}
114
115 .PHONY: clean
116 clean: 
117         @rm -f *~ *.bak *.orig \#*\# .\#* texput.log
118         @rm -rf html ${PSFILE} ${HTMLFILE}
119         @rm -f ${TMPFILES} ${FOFILE}
120         @rm -f  ${DVIFILE} ${TXTFILE}
121
122 .PHONY: distclean
123 distclean: clean