Update copyright year.
[m17n/m17n-docs.git] / Makefile.am
1 # Makefile.am -- Makefile for the m17n library documentation.
2 # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
3 #   National Institute of Advanced Industrial Science and Technology (AIST)
4 #   Registration Number H15PRO112
5
6 # This file is part of the m17n library documentation, a sub-part of
7 # the m17n library.
8
9 # The m17n library is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU General Public License as
11 # published by the Free Software Foundation; either version 2, or (at
12 # your option) any later version.
13
14 # The m17n library is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18
19 # You should have received a copy of the GNU General Public License
20 # along with the m17n library; see the file COPYING.  If not, write to
21 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 # Boston, MA 02111-1307, USA.
23
24 ## Process this file with Automake to create Makefile.in
25
26 SUBDIRS = utils
27
28 pkgdata_DATA = \
29         usr/html/index.html \
30         usr/latex/m17n-lib.pdf \
31         man/man1/m17n-config.1 \
32         man/man3/m17nIntro.3m17n \
33         man/man5/mdbGeneral.5
34
35 pkgdatadir = $(datadir)/m17n/docs
36
37 EXTRA_DIST = usr/html ja/html \
38         usr/latex ja/latex \
39         man/man1 man/man3 man/man5
40
41 install-pkgdataDATA: $(pkgdata_DATA)
42         $(mkinstalldirs) $(pkgdatadir)/html
43         $(mkinstalldirs) $(mandir)/man1 $(mandir)/man3 $(mandir)/man5
44         $(INSTALL_DATA) usr/latex/m17n-lib.pdf $(pkgdatadir)/m17n-lib.pdf
45         cd usr/html; \
46           for f in *.html *.png; do \
47             $(INSTALL_DATA) $$f $(pkgdatadir)/html/$$f; \
48           done
49         cd man/man1; \
50           for f in *.1; do $(INSTALL_DATA) $$f $(mandir)/man1/$$f; done
51         cd man/man3; \
52           for f in *.3m17n; do $(INSTALL_DATA) $$f $(mandir)/man3/$$f; done
53         cd man/man5; \
54           for f in *.5; do $(INSTALL_DATA) $$f $(mandir)/man5/$$f; done
55
56 #
57 # The followings are for maintainers only.
58 #
59 if MAINTAINER_MODE
60
61 PROJECT_NAME_EN = "The m17n Library"
62 PROJECT_NAME_JA = "m17n ライブラリ"
63 PROJECT_VERSION = @PACKAGE_VERSION@
64
65 DOXYGEN = doxygen
66
67 EXAMPLE_PROGS = \
68         @M17NLIB@/example/mconv.c \
69         @M17NLIB@/example/mview.c \
70         @M17NLIB@/example/mdate.c \
71         @M17NLIB@/example/mdump.c \
72         @M17NLIB@/example/medit.c \
73         @M17NLIB@/example/mimx-anthy.c \
74         @M17NLIB@/example/mimx-ispell.c
75
76 DBFORMAT = \
77         @M17NDB@/FORMATS
78
79 MAN1 =  data/m17n-config.txt data/m17n-db.txt ${EXAMPLE_PROGS} data/exprog.txt
80
81 MAN3 =  @M17NLIB@/src/m17n-core.h \
82         @M17NLIB@/src/m17n.h \
83         @M17NLIB@/src/m17n-flt.h \
84         @M17NLIB@/src/m17n-gui.h \
85         @M17NLIB@/src/m17n-X.h \
86         @M17NLIB@/src/m17n-misc.h \
87         @M17NLIB@/src
88
89 MAN5 = ${DBFORMAT}
90
91 SRCALL = \
92         mainpage.txt \
93         ${MAN3} \
94         data/m17n-config.txt data/m17n-db.txt data/exprog.txt \
95         data/dbformat.txt data/dbdata.txt data/dbtutorial.txt fdl.txt
96
97 DBDATA = $(shell ls @M17NDB@/*.{dir,fst,tbl} @M17NDB@/MIM/*.mim @M17NDB@/FLT/*.flt @M17NDB@/LANGDATA/LANGUAGE.tbl)
98 DBIMAGE = $(shell ls images/*.png images/*.eps)
99
100 HTML_USR_TARGET = usr/html/index.html usr/html/parrot.png
101 HTML_JA_TARGET = ja/html/index.html ja/html/parrot.png
102 HTML_DEV_TARGET = dev/html/index.html dev/html/parrot.png
103 HTML_TARGET = ${HTML_USR_TARGET} ${HTML_JA_TARGET} ${HTML_DEV_TARGET}
104
105 usr-html html-usr: ${HTML_USR_TARGET}
106 ja-html html-ja: ${HTML_JA_TARGET}
107 dev-html html-dev: ${HTML_DEV_TARGET}
108
109 LATEX_USR_TARGET = usr/latex/m17n-lib.dvi usr/latex/m17n-lib.pdf
110 LATEX_JA_TARGET = ja/latex/m17n-lib.dvi ja/latex/m17n-lib.pdf
111 LATEX_DEV_TARGET = dev/latex/m17n-lib.dvi dev/latex/m17n-lib.pdf
112 LATEX_TARGET = ${LATEX_USR_TARGET} ${LATEX_JA_TARGET} ${LATEX_DEV_TARGET}
113
114 usr-latex latex-usr: ${LATEX_USR_TARGET}
115 ja-latex latex-ja: ${LATEX_JA_TARGET}
116 dev-latex latex-dev: ${LATEX_DEV_TARGET}
117
118 MAN_TARGET = \
119         man/man1/m17n-config.1 \
120         man/man1/m17n-db.1 \
121         man/man3/m17nIntro.3m17n \
122         man/man5/mdbGeneral.5
123
124 usr-man man-usr: ${MAN_TARGET}
125
126 TARGET = ${HTML_TARGET} ${LATEX_TARGET} ${MAN_TARGET}
127
128 all: usr ja
129
130 usr: usr-html usr-latex usr-man
131 ja: ja-html ja-latex
132 dev: dev-html dev-latex
133
134 html: usr-html ja-html dev-html
135 latex: usr-latex ja-latex dev-latex
136 man: usr-man
137
138 doxyfile: Makefile
139         ${DOXYGEN} -g - | \
140           sed -e '/^PROJECT_NAME / s/=.*/= %PROJECT_NAME%/' \
141               -e '/^PROJECT_NUMBER / s/=.*/= %PROJECT_NUMBER%/' \
142               -e '/^OUTPUT_DIRECTORY / s/=.*/= %USR_JA_DEV%/' \
143               -e '/^OUTPUT_LANGUAGE / s/=.*/= %OUTPUT_LANGUAGE%/' \
144               -e '/^FULL_PATH_NAMES / s/=.*/= NO/' \
145               -e '/^OPTIMIZE_OUTPUT_FOR_C / s/=.*/= YES/' \
146               -e '/^EXTRACT_ALL / s/=.*/= YES/' \
147               -e '/^SHOW_INCLUDE_FILES / s/=.*/= NO/' \
148               -e '/^SHOW_MEMBER_DOCS / s/=.*/= NO/' \
149               -e '/^ENABLED_SECTIONS / s/=.*/= %ENABLED_SECTIONS%/' \
150               -e '/^SHOW_USED_FILES / s/=.*/= NO/' \
151               -e '/^INPUT / s/=.*/= %INPUT%/' \
152               -e '/^FILE_PATTERNS / s/=.*/= *.c *.txt/' \
153               -e '/^EXCLUDE_PATTERNS / s/=.*/= link*.c font-ft.c/' \
154               -e '/^IMAGE_PATH / s/=.*/= images/' \
155               -e '/^INPUT_FILTER / s/=.*/= utils\/%USR_JA_DEV%_filter.sh/' \
156               -e '/^VERBATIM_HEADERS / s/=.*/= NO/' \
157               -e '/^ALPHABETICAL_INDEX / s/=.*/= YES/' \
158               -e '/^IGNORE_PREFIX / s/=.*/= m M/' \
159               -e '/^GENERATE_HTML / s/=.*/= %GENERATE_HTML%/' \
160               -e '/^HTML_FOOTER / s/=.*/= footer.%USR_JA_DEV%.html/' \
161               -e '/^DISABLE_INDEX / s/=.*/= NO/' \
162               -e '/^ENUM_VALUES_PER_LINE / s/=.*/= 1/' \
163               -e '/^GENERATE_LATEX / s/=.*/= %GENERATE_LATEX%/' \
164               -e '/^EXTRA_PACKAGES / s/=.*/= m17n-lib times/' \
165               -e '/^PDF_HYPERLINKS / s/=.*/= NO/' \
166               -e '/^USE_PDFLATEX / s/=.*/= NO/' \
167               -e '/^LATEX_HIDE_INDICES / s/=.*/= YES/' \
168               -e '/^GENERATE_MAN / s/=.*/= %GENERATE_MAN%/' \
169               -e '/^MAN_EXTENSION / s/=.*/= %MAN_EXTENSION%/' \
170               -e '/^PREDEFINED / s/=.*/= FOR_DOXYGEN/' \
171               -e '/^GENERATE_TAGFILE / s/=.*/= m17n.tag/' \
172               -e '/^TYPEDEF_HIDES_STRUCT / s/=.*/= YES/' \
173               -e '/^DOT_FONTNAME / s/=.*/=/' \
174               -e '/^SORT_MEMBER_DOCS / s/=.*/= NO/' \
175               > $@
176
177 doxyfile-html: doxyfile ${SRCALL}
178         sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
179             -e 's|%INPUT%|${SRCALL}|' \
180             -e 's|%GENERATE_HTML%|YES|' \
181             -e 's|%GENERATE_LATEX%|NO|' \
182             -e 's|%GENERATE_MAN%|NO|' \
183             -e 's|%ENABLED_SECTIONS%|FOR_HTML|' \
184           < $< >$@
185
186 doxyfile-html.usr: doxyfile-html
187         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_EN}|' \
188             -e 's/%USR_JA_DEV%/usr/g' \
189             -e 's/%OUTPUT_LANGUAGE%/English/' \
190           < $< >$@
191
192 doxyfile-html.dev: doxyfile-html
193         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_EN}|' \
194             -e 's/%USR_JA_DEV%/dev/g' \
195             -e 's/%OUTPUT_LANGUAGE%/English/' \
196           < $< >$@
197
198 doxyfile-html.ja: doxyfile-html
199         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_JA}|' \
200             -e 's/%USR_JA_DEV%/ja/g' \
201             -e 's/%OUTPUT_LANGUAGE%/Japanese/' \
202           < $< >$@
203
204 doxyfile-latex: doxyfile ${SRCALL}
205         sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
206             -e 's|%INPUT%|${SRCALL}|' \
207             -e 's|%GENERATE_HTML%|NO|' \
208             -e 's|%GENERATE_LATEX%|YES|' \
209             -e 's|%GENERATE_MAN%|NO|' \
210             -e 's|%ENABLED_SECTIONS%|FOR_LATEX|' \
211           < $< >$@
212
213 doxyfile-latex.usr: doxyfile-latex
214         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_EN}|' \
215             -e 's/%USR_JA_DEV%/usr/g' \
216             -e 's/%OUTPUT_LANGUAGE%/English/' \
217           < $< >$@
218
219 doxyfile-latex.dev: doxyfile-latex
220         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_EN}|' \
221             -e 's/%USR_JA_DEV%/dev/g' \
222             -e 's/%OUTPUT_LANGUAGE%/English/' \
223           < $< >$@
224
225 doxyfile-latex.ja: doxyfile-latex
226         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_JA}|' \
227             -e 's/%USR_JA_DEV%/ja/g' \
228             -e 's/%OUTPUT_LANGUAGE%/Japanese/' \
229           < $< >$@
230
231 doxyfile-man1: doxyfile ${SRCALL}
232         sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
233             -e 's|%INPUT%|${MAN1}|' \
234             -e 's|%GENERATE_HTML%|NO|' \
235             -e 's|%GENERATE_LATEX%|NO|' \
236             -e 's|%GENERATE_MAN%|YES|' \
237             -e 's|%MAN_EXTENSION%|.1|' \
238             -e 's|%ENABLED_SECTIONS%|FOR_MAN|' \
239           < $< >$@
240
241 doxyfile-man3: doxyfile ${SRCALL}
242         sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
243             -e 's|%INPUT%|${MAN3}|' \
244             -e 's|%GENERATE_HTML%|NO|' \
245             -e 's|%GENERATE_LATEX%|NO|' \
246             -e 's|%GENERATE_MAN%|YES|' \
247             -e 's|%MAN_EXTENSION%|.3m17n|' \
248             -e 's|%ENABLED_SECTIONS%|FOR_MAN|' \
249           < $< >$@
250
251 doxyfile-man5: doxyfile ${SRCALL}
252         sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
253             -e 's|%INPUT%|${MAN5}|' \
254             -e 's|%GENERATE_HTML%|NO|' \
255             -e 's|%GENERATE_LATEX%|NO|' \
256             -e 's|%GENERATE_MAN%|YES|' \
257             -e 's|%MAN_EXTENSION%|.5|' \
258             -e 's|%ENABLED_SECTIONS%|FOR_MAN|' \
259           < $< >$@
260
261 doxyfile-man%.usr: doxyfile-man%
262         sed -e 's|%PROJECT_NAME%|${PROJECT_NAME_EN}|' \
263             -e 's/%USR_JA_DEV%/usr/g' \
264             -e 's/%OUTPUT_LANGUAGE%/English/' \
265           < $< >$@
266
267 data/exprog.txt: ${EXAMPLE_PROGS} utils/exprog.sh
268         utils/exprog.sh ${EXAMPLE_PROGS} > $@
269
270 data/dbdata.txt: ${DBDATA} ${DBIMAGE} @M17NDB@/mdb.dir utils/dbdata.awk utils/dbdata.sh utils/imdoc.c
271         (cd utils; make)
272         @AWK@ -f utils/dbdata.awk @M17NDB@/mdb.dir > $@
273
274 data/dbformat.txt: ${DBFORMAT} utils/dbformat.sh
275         utils/dbformat.sh ${DBFORMAT} > $@
276
277 data/dbtutorial.txt: ${DBFORMAT} utils/dbtutorial.sh
278         utils/dbtutorial.sh ${DBFORMAT} > $@
279
280 data/m17n-config.txt: @M17NLIB@/m17n-config.in
281         sed -n -e '/\/\*\*\*/,/\*\// p' < $< > $@
282
283 data/m17n-db.txt: @M17NDB@/m17n-db.in
284         sed -n -e '/\/\*\*\*/,/\*\// p' < $< > $@
285
286 %/html/index.html: doxyfile-html.% header.%.html footer.%.html ${SRCALL} \
287                         utils/%_filter.rb m17n-lib.css
288         rm -f `dirname $@`/*.html
289         ${DOXYGEN} $<
290         cp images/icon-*.png `dirname $@`
291         echo 'code { font-weight: bold }' >> `dirname $@`/doxygen.css
292
293 %/html/parrot.png: parrot.png
294         cp $< $@
295
296 %/latex/refman.tex: doxyfile-latex.% ${SRCALL} utils/%_filter.rb
297         rm -rf `dirname $@`
298         ${DOXYGEN} $<
299
300 %/latex/m17n-lib.dvi: %/latex/refman.tex styles/m17n-lib.sty utils/latex.sh
301         -utils/latex.sh `dirname $@`
302
303 %/latex/m17n-lib.ps: %/latex/m17n-lib.dvi utils/dvips.sh
304         utils/dvips.sh `dirname $@` dvips
305 #       emacs -batch -q -l utils/mokuji.el -f write-mokuji $@
306
307 %/latex/m17n-lib.pdf: %/latex/m17n-lib.dvi
308         cd `dirname $<`; dvipdfmx `basename $<`
309
310 %/man/man1/m17n-config.1: doxyfile-man1.% ${MAN1} utils/%_filter.rb
311         rm -rf `dirname $@`
312         cp doxyfile-man1.usr temp
313         ${DOXYGEN} $<
314         cd `dirname $@`; rm -f _*.1 *.c.1 *.txt.1
315
316 %/man/man3/m17nIntro.3m17n: doxyfile-man3.% ${MAN3} utils/%_filter.rb
317         rm -rf `dirname $@`
318         ${DOXYGEN} $<
319
320 %/man/man5/mdbGeneral.5: doxyfile-man5.% ${MAN5} utils/%_filter.rb
321         rm -rf `dirname $@`
322         ${DOXYGEN} $<
323
324 sample/man3/SampleGroup.3: sample.c
325         [ -d sample ] || mkdir sample
326         [ -d sample/man3 ] || mkdir sample/man3
327         -${DOXYGEN} -g doxytemp
328         echo "INPUT = sample.c" >> doxytemp
329         echo "GENERATE_LATEX = NO" >> doxytemp
330         echo "GENERATE_HTML = NO" >> doxytemp
331         echo "GENERATE_MAN = YES" >> doxytemp
332         echo "MAN_OUTPUT = sample" >> doxytemp
333         echo "OPTIMIZE_OUTPUT_FOR_C  = yes" >> doxytemp
334         ${DOXYGEN} doxytemp
335         rm -rf doxytemp
336
337 man/man1/%: usr/man/man1/% sample/man3/SampleGroup.3 utils/mkman.rb \
338                 utils/reform-man.sh
339         $(mkinstalldirs) man/man1
340         rm -rf doxywork man/man1/*
341         ruby utils/mkman.rb 1 usr/man/man1 man/man1
342         utils/reform-man.sh man/man1/*.1
343
344 man/man3/%: usr/man/man3/% sample/man3/SampleGroup.3 utils/mkman.rb \
345                 utils/reform-man.sh
346         $(mkinstalldirs) man/man3
347         rm -rf doxywork man/man3/*
348         ruby utils/mkman.rb 3m17n usr/man/man3m17n man/man3
349         utils/reform-man.sh man/man3/*.3m17n
350
351 man/man5/%: usr/man/man5/% sample/man3/SampleGroup.3 utils/mkman.rb \
352                 utils/reform-man.sh
353         $(mkinstalldirs) man/man5
354         rm -rf doxywork man/man5/*
355         ruby utils/mkman.rb 5 usr/man/man5 man/man5
356         utils/reform-man.sh man/man5/*.5
357
358 man/ja/man1/%: ja/man/man1/% sample/man3/SampleGroup.3 utils/mkman.rb 
359         $(mkinstalldirs) man/ja/man1
360         rm -rf doxywork man/ja/man1/*
361         ruby utils/mkman.rb 1 ja/man/man1 man/ja/man1
362
363 man/ja/man3/%: ja/man/man3/% sample/man3/SampleGroup.3 utils/mkman.rb
364         $(mkinstalldirs) man/ja/man3
365         rm -rf doxywork man/ja/man3/*
366         ruby utils/mkman.rb 3m17n ja/man/man3 man/ja/man3
367
368 man/ja/man5/%: ja/man/man5/% sample/man3/SampleGroup.3 utils/mkman.rb 
369         $(mkinstalldirs) man/ja/man5
370         rm -rf doxywork man/ja/man5/*
371         ruby utils/mkman.rb 5 ja/man/man5 man/ja/man5
372
373 CLEANFILES=doxyfile* ${TARGET} data/*.txt *.tar.gz warning *~
374
375 clean-local:
376         rm -rf usr dev ja man doxywork
377
378 dist-tgz: distdir
379         for d in usr ja; do \
380           (cd $(distdir)/"$$d"/latex/; \
381            rm -f *8[ch]* *8txt* *.aux *.ttf *.ind *.dvi *.idx *.ilg *.log); \
382         done
383         tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
384         $(am__remove_distdir)
385
386 WEBDIR = /project/web/extra/m17n-lib
387
388 release: dist-tgz
389         [ -d ${WEBDIR}/m17n-docs ] || mkdir ${WEBDIR}/m17n-docs
390         [ -d ${WEBDIR}/download ] || mkdir ${WEBDIR}/download
391         cd usr/html; cp * ${WEBDIR}/m17n-docs
392         [ -d ${WEBDIR}-ja2/m17n-docs ] || mkdir ${WEBDIR}-ja2/m17n-docs
393         cd ja/html; cp * ${WEBDIR}-ja2/m17n-docs
394         cp ${distdir}.tar.gz ${WEBDIR}/download
395
396
397 .PRECIOUS: %/latex/refman.tex %/man/man3/m17nIntro.3m ${SRCALL}
398
399 endif
400
401 # Local Variables:
402 # coding: utf-8
403 # End: