doc-innerのMakefileを整理
[YACASL2.git] / doc_inner / Makefile
1 .PHONY: all clean 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 MAKE := make
11 MV := mv
12 RMR := rm -rf
13 SED := sed
14 WHICH := which
15
16 DOXYGEN_DIR := doxygen
17 DOXYSRCDIR := ..
18 GNU_GLOBAL_DIR := gnu_global
19 GNU_GLOBAL_SRCDIR := ..
20 CMETRICS_DIR := cmetrics
21 CMETRICS_SRCDIR := ../src
22
23 all: $(DOXYGEN_DIR) $(GNU_GLOBAL_DIR) $(CMETRICS_DIR)
24
25 # doxygenのHTMLドキュメント作成先は、
26 # ../Doxyfileで設定された以下のディレクトリーの下のhtmlディレクトリー
27 #   OUTPUT_DIRECTORY = doc_inner
28 $(DOXYGEN_DIR): $(DOXYSRCDIR)/Doxyfile
29         $(if $(strip $(shell $(WHICH) $(DOXYGEN))),$(CD) $(DOXYSRCDIR) && $(DOXYGEN) && $(MV) $(CURDIR)/html $(CURDIR)/$@,$(ECHO) '$(DOXYGEN): not found')
30
31 $(DOXYSRCDIR)/Doxyfile:
32         $(CP) -f Doxyfile $(DOXYSRCDIR)/
33
34 # htagsのHTMLドキュメント作成先は、
35 # 引数DIRで指定されたディレクトリーの下のHTMLディレクトリー
36 $(GNU_GLOBAL_DIR):
37         $(MAKE) -C $(GNU_GLOBAL_SRCDIR) gtags
38         $(if $(strip $(shell $(WHICH) $(HTAGS))),$(CD) $(GNU_GLOBAL_SRCDIR) && $(HTAGS) -anosx $(CURDIR) && $(MV) $(CURDIR)/HTML $(CURDIR)/$@,@$(ECHO) '$(HTAGS): not found')
39
40 $(CMETRICS_DIR):
41         $(INSTALL) -d $(CMETRICS_DIR)
42         $(CMETRICS) $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/\t/g' -e '2,$$s/  \{1,\}/\t/g' >$(CMETRICS_DIR)/files.tsv
43         $(CMETRICS) -f $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/\t/g' -e '2,$$s/  \{1,\}/\t/g' >$(CMETRICS_DIR)/functions.tsv
44
45 clean: doxygen-clean gnu_global-clean cmetrics-clean
46
47 doxygen-clean:
48         $(RMR) $(DOXYGEN_DIR)
49         $(RM) ../Doxyfile
50
51 gnu_global-clean:
52         $(RMR) $(GNU_GLOBAL_DIR)
53
54 cmetrics-clean:
55         $(RMR) $(CMETRICS_DIR)