X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=doc_inner%2FMakefile;h=68af59b4af0f544843bbeb4e4276c0c150b36707;hp=ff9e405b76e1593230771482b2cdb0e77fc78b16;hb=5940ac99b4a269bc3ac8e486b92a603de02a46ff;hpb=f40343ba257b3ef619228d6cbae6d57c99bf85c0 diff --git a/doc_inner/Makefile b/doc_inner/Makefile index ff9e405..68af59b 100644 --- a/doc_inner/Makefile +++ b/doc_inner/Makefile @@ -1,34 +1,62 @@ -.PHONY: all clean clean_doxygen clean_gnu_global -CD ?= cd -MV ?= mv -MAKE ?= make -DOXYGEN ?= doxygen -HTAGS ?= htags -RMRF ?= rm -rf -PWD ?= pwd -WHICH ?= which +.PHONY: all clean doxygen-clean gnu_global-clean cmetrics-clean + +CD := cd +CMETRICS := cmetrics +CP := cp +DOXYGEN := doxygen +ECHO := echo +HTAGS := htags +INSTALL := install +MAKE := make +MV := mv +RMR := rm -rf +SED := sed +WHICH := which DOXYGEN_DIR := doxygen +DOXYSRCDIR := .. GNU_GLOBAL_DIR := gnu_global +GNU_GLOBAL_SRCDIR := .. +CMETRICS_DIR := cmetrics +CMETRICS_SRCDIR := ../src + +# chk_file_ext: 指定されたファイルが実在する場合、エラー +# 用例: $(call chk_cmd_ext,cmd,target) +define chk_cmd_ext + $(if $(strip $(shell $(WHICH) $1)),$2,,@$(ECHO) '$1: not found') +endef -all: $(DOXYGEN_DIR) $(GNU_GLOBAL_DIR) +all: $(call chk_cmd_ext,$(DOXYGEN),$(DOXYGEN_DIR)) $(call chk_cmd_ext,$(HTAGS),$(GNU_GLOBAL_DIR)) $(call chk_cmd_ext $(CMETRICS),$(CMETRICS_DIR)) # doxygenのHTMLドキュメント作成先は、 # ../Doxyfileで設定された以下のディレクトリーの下のhtmlディレクトリー # OUTPUT_DIRECTORY = doc_inner -$(DOXYGEN_DIR): ../Doxyfile - @($(WHICH) $(DOXYGEN) && $(CD) .. && $(DOXYGEN) && $(CD) - && $(MV) html $@) >/dev/null +$(DOXYGEN_DIR): $(DOXYSRCDIR)/Doxyfile ../src ../include + $(INSTALL) -d $(DOXYGEN_DIR) + $(CD) $(DOXYSRCDIR) && $(DOXYGEN) + +$(DOXYSRCDIR)/Doxyfile: + $(CP) -f Doxyfile $(DOXYSRCDIR)/ # htagsのHTMLドキュメント作成先は、 # 引数DIRで指定されたディレクトリーの下のHTMLディレクトリー -$(GNU_GLOBAL_DIR): - @$(MAKE) -sC .. gtags - @($(WHICH) $(HTAGS) && $(CD) .. && $(HTAGS) -anosx doc_inner && $(CD) - && $(MV) HTML $@) >/dev/null +$(GNU_GLOBAL_DIR): ../src ../include + $(MAKE) -C $(GNU_GLOBAL_SRCDIR) gtags + $(CD) $(GNU_GLOBAL_SRCDIR) && $(HTAGS) -anosx $(CURDIR) && $(RMR) $(CURDIR)/$@ && $(MV) $(CURDIR)/HTML $(CURDIR)/$@ + +$(CMETRICS_DIR): + $(INSTALL) -d $(CMETRICS_DIR) + $(CMETRICS) $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/\t/g' -e '2,$$s/ \{1,\}/\t/g' >$(CMETRICS_DIR)/files.tsv + $(CMETRICS) -f $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/\t/g' -e '2,$$s/ \{1,\}/\t/g' >$(CMETRICS_DIR)/functions.tsv + +clean: doxygen-clean gnu_global-clean cmetrics-clean -clean: clean_doxygen clean_gnu_global +doxygen-clean: + $(RMR) $(DOXYGEN_DIR) + $(RM) ../Doxyfile -clean_doxygen: - @$(RMRF) $(DOXYGEN_DIR) +gnu_global-clean: + $(RMR) $(GNU_GLOBAL_DIR) -clean_gnu_global: - @$(RMRF) $(GNU_GLOBAL_DIR) +cmetrics-clean: + $(RMR) $(CMETRICS_DIR)