Doc: New build directory for project web.
[shapes.git] / doc / build / proj-web / Makefile.am
blob8b9cfbd3f65a2d98c1ab45ceec8ed6156b1658e8
1 # This file is part of Shapes.
3 # Shapes is free software: you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation, either version 3 of the License, or
6 # any later version.
8 # Shapes is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with Shapes.  If not, see <http://www.gnu.org/licenses/>.
16 # Copyright 2008 Gustaf Hendeby
18 docdir=../..
19 partsdir=${docdir}/parts
20 extensionsdir=${partsdir}/extensions
21 formatsdir=${partsdir}/formats
22 stylesdir=${docdir}/styles
23 toolsdir=${docdir}/tools
25 POSTPROC_HTML=${top_builddir}/doc/tools/postproc/postproc-html
27 SAXON = @SAXON@
29 SHAPES = $(top_builddir)/source/shapes
30 SHAPESFLAGS = --resources=no \
31               --fontmetricspath ${top_srcdir}/resources/fontmetrics \
32               --needpath ${top_srcdir}/resources/extensions \
33               --tp=no \
34               --tmpdir /tmp
37 include ${top_builddir}/source/SHAPES-VERSION-FILE
39 DATE_PATTERN='[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}'
40 SSI=${top_builddir}/doc/tools/ssi/ssipp
41 # Setting BUILDDIR=^ means that paths will be relative to the current working
42 # directory.
43 SSIFLAGS=-dEXAMPLES=example/ -dBASE=doc/ -dBUILDDIR=^/ $(MORE_SSIFLAGS)
44 MORE_SSIFLAGS=-dMODIFICATION_DATE=$(shell ${ECHO} $(VERSION_DATE) | \
45                      ${SED} -e 's!.*\('${DATE_PATTERN}'\).*!\1!' | \
46                grep -e ${DATE_PATTERN} 2> /dev/null || ${ECHO} --- ) \
47                -dHTML_DOC_DIR=$(htmldir) -I${srcdir}
49 SHEXT_LIST=
50 SHEXT_FILES=$(addprefix example/, $(SHEXT_LIST))
52 html_FILES = index.html
54 nobase_dist_html_DATA = ${html_FILES} logo.jpg
56 nobase_dist_noinst_DATA = ${extensionsdir}/formats/html.xsl \
57                    $(addprefix ${formatsdir}/, \
58                       examplecode-html.xsl html.xsl language-elements-html.xsl \
59                       man.xsl plain-book-html.xsl) \
60                    $(addprefix ${partsdir}/, \
61                       $(addsuffix /formats/html.xsl, \
62                          proj-web)) $(SHEXT_FILES)
64 index.xml : ${partsdir}/proj-web/index.sxml ${formatsdir}/html.xsl ${DEPDIR}/proj-web.ssidep
65         if ${SSI} --in $< ${SSIFLAGS} > index.Txml; \
66         then \
67                 mv index.Txml $@; \
68         else \
69                 ${RM} index.Txml; \
70                 exit 1; \
71         fi
73 ${DEPDIR}/%.ssidep : ${partsdir}/%/index.sxml Makefile
74         test -d  $(@D) || ${mkdir_p} ${@D}
75         if $(SSI) --in $< $(SSIFLAGS) --head $*.xml --deps > \
76           ${DEPDIR}/$*.Tssidep; \
77         then \
78                 ${SED} -e 's!^.*:!nobase_dist_noinst_DATA += $< !' \
79                   ${DEPDIR}/$*.Tssidep > ${DEPDIR}/$*.dist ; \
80           ${SED} -e 's!^!$@ !' ${DEPDIR}/$*.Tssidep > $@ ; \
81                 mv ${DEPDIR}/$*.Tssidep $@; \
82         else \
83                 ${RM} ${DEPDIR}/$*.Tssidep; \
84                 exit 1; \
85         fi
87 %.css : ${stylesdir}/html/%.css
88         test -d  $(@D) || ${mkdir_p} $(@D)
89         ${INSTALL_DATA} $< $@
91 %.jpg : ${partsdir}/proj-web/%.jpg
92         test -d  $(@D) || ${mkdir_p} $(@D)
93         ${INSTALL_DATA} $< $@
95 %.pdf %.stdout: %.shape $(SHEXT_FILES)
96         test -d  $(@D) || ${mkdir_p} $(@D)
97         $(SHAPES) $(SHAPESFLAGS) --in $< --out $*.pdf > $*.stdout
99 %_3.pdf %.stdout: %.shape $(SHEXT_FILES)
100         test -d  $(@D) || ${mkdir_p} $(@D)
101         $(SHAPES) $(SHAPESFLAGS) -vs1.3 --in $< --out $*_3.pdf > $*.stdout
103 # Some stupid versions of convert exit with a non-zero value even though the conversion was a success...
104 %_70%.jpg: %.pdf
105         -convert -density 100 -resize $(shell ${ECHO} $@ | ${SED} -e 's!.*_\([^._]*\).jpg!\1!') $< $@
107 %_y_big.jpg: %.pdf
108         -convert -density 150 -resize x150 $< $@
110 %_y_small.jpg: %.pdf
111         -convert -density 50 -resize x50 $< $@
113 %_x_big.jpg: %.pdf
114         -convert -density 150 -resize 150x $< $@
116 %_x_small.jpg: %.pdf
117         -convert -density 50 -resize 50x $< $@
119 %.html : %.xml ${partsdir}/proj-web/formats/html.xsl ${formatsdir}/html.xsl
120         test -d  ${@D} || ${mkdir_p} ${@D} ; \
121         ( $(SAXON) $< $$( test -f ${partsdir}/proj-web/formats/html.xsl || \
122           ${ECHO} '${srcdir}'/ )${partsdir}/proj-web/formats/html.xsl || exit 1 ) | \
123           ${POSTPROC_HTML} > $@
124         if $(SAXON) $@ $$( test -f ${toolsdir}/xhtml-deps/filter.xsl || \
125           ${ECHO} '${srcdir}'/)${toolsdir}/xhtml-deps/filter.xsl  > \
126           ${DEPDIR}/proj-web.Thtmldep ; \
127         then \
128                 ${ECHO} "nobase_dist_html_DATA += $$( tr ' ' '\n' < ${DEPDIR}/proj-web.Thtmldep | sort -u | tr '\n' ' ' )" > ${DEPDIR}/proj-web.htmldep ; \
129                 ${RM} ${DEPDIR}/proj-web.Thtmldep ; \
130         else \
131                 ${RM} ${DEPDIR}/proj-web.Thtmldep ; \
132                 exit 1; \
133         fi
135 %.htmldep : %.ssidep
136         @touch $@
138 .PRECIOUS : $(addprefix ${DEPDIR}/, $(html_FILES:.html=.ssidep) \
139                                     $(html_FILES:.html=.htmldep) \
140                                     $(html_FILES:.html=.dist)) \
141             $(html_FILES:.html=.xml)
143 clean-local :
144         find . \( -name "*~" -o -name "*.html" -o -name "*.xml" \) -exec ${RM} {} \;
145         find ${DEPDIR} -type f -exec ${RM} {} \;
147 distclean-local :
148         -find . -type f -exec ${RM} {} \;
150 include $(addprefix ${DEPDIR}/, $(html_FILES:.html=.ssidep))
151 -include $(addprefix ${DEPDIR}/, $(html_FILES:.html=.htmldep))
152 -include $(addprefix ${DEPDIR}/, $(html_FILES:.html=.dist))
154 html-local : ${nobase_dist_html_DATA} ${nobase_dist_noinst_DATA} FORCE
155 dist-hook :
156 all-local : html-local
157         ${MAKE} html-local
159 FORCE :