X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=doc_inner%2FMakefile;h=e57591f6e4c5b45207806723ba87aa3d26a9eb88;hp=289b214ab2d62d5d129097b00eba0ca02150a16c;hb=2f0b91ab1a54973a084e1609b46a1432c8b8e334;hpb=92b849ad9e1e22208ecd33db01728c85c8f9be88 diff --git a/doc_inner/Makefile b/doc_inner/Makefile index 289b214..e57591f 100644 --- a/doc_inner/Makefile +++ b/doc_inner/Makefile @@ -1,46 +1,63 @@ -.PHONY: all clean doxygen-clean gnu_global-clean +.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 -RMRF := rm -rf +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 -all: $(DOXYGEN_DIR) $(GNU_GLOBAL_DIR) $(CMETRICS_DIR) +# chk_file_ext: 指定されたコマンドが実在する場合にターゲットを指定。 +# 用例: $(call chk_cmd_ext,cmd,target) +define chk_cmd_ext + $(if $(strip $(shell $(WHICH) $1)),$2) +endef + +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 - $(if $(strip $(shell $(WHICH) $(DOXYGEN))),$(CD) .. && $(DOXYGEN) && $(MV) $(CURDIR)/html $(CURDIR)/$@,$(ECHO) '$(DOXYGEN): not found') +$(DOXYGEN_DIR): $(DOXYSRCDIR)/Doxyfile ../src ../include + $(INSTALL) -d $(DOXYGEN_DIR) + $(CD) $(DOXYSRCDIR) && $(DOXYGEN) + +$(DOXYSRCDIR)/Doxyfile: Doxyfile + @$(CP) -vf Doxyfile $(DOXYSRCDIR)/ # htagsのHTMLドキュメント作成先は、 # 引数DIRで指定されたディレクトリーの下のHTMLディレクトリー -$(GNU_GLOBAL_DIR): - $(MAKE) -C .. gtags - $(if $(strip $(shell $(WHICH) $(HTAGS))),$(CD) .. && $(HTAGS) -anosx $(CURDIR) && $(MV) $(CURDIR)/HTML $(CURDIR)/$@,@$(ECHO) '$(HTAGS): not found') +$(GNU_GLOBAL_DIR): ../src ../include + $(MAKE) -C $(GNU_GLOBAL_SRCDIR) gtags + $(CD) $(GNU_GLOBAL_SRCDIR) && $(HTAGS) -anos $(CURDIR) && $(RMR) $(CURDIR)/$@ && $(MV) $(CURDIR)/HTML $(CURDIR)/$@ $(CMETRICS_DIR): $(INSTALL) -d $(CMETRICS_DIR) - $(CMETRICS) ../src | sed -e 's/ */\t/g' >$(CMETRICS_DIR)/files.tsv - $(CMETRICS) -f ../src | sed -e 's/ */\t/g' >$(CMETRICS_DIR)/functions.tsv + $(CMETRICS) $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/ /g' -e '2,$$s/ \{1,\}/ /g' >$(CMETRICS_DIR)/files.tsv + $(CMETRICS) -f $(CMETRICS_SRCDIR) | $(SED) -e '1s/ \{2,\}/ /g' -e '2,$$s/ \{1,\}/ /g' >$(CMETRICS_DIR)/functions.tsv + +clean: doxygen-clean gnu_global-clean cmetrics-clean -clean: doxygen-clean gnu_global-clean +distclean: clean doxygen-clean: - @$(RMRF) $(DOXYGEN_DIR) + $(RMR) $(DOXYGEN_DIR) + $(RM) ../Doxyfile gnu_global-clean: - @$(RMRF) $(GNU_GLOBAL_DIR) + $(RMR) $(GNU_GLOBAL_DIR) cmetrics-clean: - @$(RMRF) $(CMETRICS_DIR) + $(RMR) $(CMETRICS_DIR)