READMEのCASL II仕様書へのリンクを修正
[YACASL2.git] / doc_inner / Makefile
1 .PHONY: all clean doxyfile-update doxygen-clean gnu_global-clean cmetrics-clean
2
3 CD := cd
4 CMETRICS := cmetrics
5 CP := cp
6 DOXYGEN := doxygen
7 ECHO := echo
8 HTAGS := htags
9 INSTALL := install
10 MV := mv
11 RMR := rm -rf
12 SED := sed
13 WHICH := which
14
15 DOXYGEN_DIR := doxygen
16 DOXYSRCDIR := ..
17 GNU_GLOBAL_DIR := gnu_global
18 GNU_GLOBAL_SRCDIR := ..
19 CMETRICS_DIR := cmetrics
20 CMETRICS_SRCDIR := ../src
21
22 # chk_file_ext: 指定されたコマンドが実在する場合にターゲットを指定。
23 # 用例: $(call chk_cmd_ext,cmd,target)
24 define chk_cmd_ext
25     $(if $(strip $(shell $(WHICH) $1)),$2)
26 endef
27
28 all: $(call chk_cmd_ext,$(DOXYGEN),$(DOXYGEN_DIR)) $(call chk_cmd_ext,$(HTAGS),$(GNU_GLOBAL_DIR)) $(call chk_cmd_ext $(CMETRICS),$(CMETRICS_DIR))
29
30 # doxygenのHTMLドキュメント作成先は、
31 # ../Doxyfileで設定された以下のディレクトリーの下のhtmlディレクトリー
32 #   OUTPUT_DIRECTORY = doc_inner
33 $(DOXYGEN_DIR): $(DOXYSRCDIR)/Doxyfile ../src ../include
34         $(INSTALL) -d $(DOXYGEN_DIR)
35         $(CD) $(DOXYSRCDIR) && $(DOXYGEN)
36
37 doxyfile-update: Doxyfile
38         $(DOXYGEN) -u $<
39
40 $(DOXYSRCDIR)/Doxyfile: doxyfile-update
41         @$(CP) -vf Doxyfile $(DOXYSRCDIR)/
42
43 # htagsのHTMLドキュメント作成先は、
44 # 引数DIRで指定されたディレクトリーの下のHTMLディレクトリー
45 $(GNU_GLOBAL_DIR): ../src ../include
46         $(MAKE) -C $(GNU_GLOBAL_SRCDIR) gtags
47         $(CD) $(GNU_GLOBAL_SRCDIR) && $(HTAGS) -anos $(CURDIR) && $(RMR) $(CURDIR)/$@ && $(MV) $(CURDIR)/HTML $(CURDIR)/$@
48
49 $(CMETRICS_DIR):
50         $(INSTALL) -d $(CMETRICS_DIR)
51         $(CMETRICS) $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/ /g' -e '2,$$s/  \{1,\}/ /g' >$(CMETRICS_DIR)/files.tsv
52         $(CMETRICS) -f $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/      /g' -e '2,$$s/  \{1,\}/ /g' >$(CMETRICS_DIR)/functions.tsv
53
54 clean: doxygen-clean gnu_global-clean cmetrics-clean
55
56 distclean: clean
57
58 doxygen-clean:
59         $(RMR) $(DOXYGEN_DIR)
60         $(RM) ../Doxyfile
61
62 gnu_global-clean:
63         $(RMR) $(GNU_GLOBAL_DIR)
64
65 cmetrics-clean:
66         $(RMR) $(CMETRICS_DIR)