jw-pkg/make/doxygen.mk

130 lines
3.9 KiB
Makefile
Raw Normal View History

include $(JWBDIR)/make/defs.mk
2009-05-28 16:53:35 +00:00
ifeq ($(DEVELOPMENT),true)
GENERATE_DOXYGEN ?= true
endif
ifneq ($(GENERATE_DOXYGEN),true)
include $(JWBDIR)/make/dummy.mk
2009-05-28 16:53:35 +00:00
else
UPLOAD_FILE_MODE ?= 644
UPLOAD_DIR_MODE ?= 755
include $(JWBDIR)/make/upload-defs.mk
UPLOAD_URL ?= $(UPLOAD_URL_DEVEL_DOC)/$(PROJECT)/doxygen/:$(UPLOAD_FILE_MODE):$(UPLOAD_DIR_MODE):$(UPLOAD_USER).$(UPLOAD_GROUP)
DX_INCLUDE ?= header.html footer.html styles.css
DX_LOGO ?= logo.png
DX_UNTEMPLATED = $(patsubst %.tmpl,%,$(wildcard *.tmpl))
DX_OUTPUT_DIR ?= html
DX_INSTALL_DIR ?= $(DOC_PREFIX)/devel
DX_DOC_FILES = $(DX_INCLUDE) $(DX_LOGO)
DX_DOXYGEN_CONF ?= doxygen.conf
DX_INCLUDE_TMPL_DIR ?= $(JWBDIR)/tmpl/doxygen
DX_FALLBACK_CONF_TMPL ?= $(DX_INCLUDE_TMPL_DIR)/doxygen.conf.tmpl
DX_BROWSER ?= $(BROWSER)
# replaced pattern defaults
DX_FILE_PATTERNS ?= *.h *.c *.cpp
DX_INPUT_DIRS ?= $(TOPDIR)/include
DX_SRC_IS_JAVA ?= NO
DX_EXCLUDE_FILES ?=
DX_INCLUDE_PATH ?=
DX_RECURSIVE ?= YES
DX_EXTRACT_STATIC ?= NO
DX_INLINE_SOURCES ?= NO
DX_SOURCE_BROWSER ?= NO
all: html
install: install.done
2009-05-28 16:53:35 +00:00
distclean: clean
clean: clean.doxygen
2009-05-28 16:53:35 +00:00
doc: all
upload: upload.done
html: doxygen.done cpfiles.done
view: doc.done
$(DX_BROWSER) $(DX_OUTPUT_DIR)/index.html
doxygen.done: $(DX_UNTEMPLATED) $(DX_DOC_FILES)
umask 0022 && doxygen $(DX_DOXYGEN_CONF)
2009-05-28 16:53:35 +00:00
touch $@
cpfiles.done: doxygen.done $(DX_DOC_FILES)
umask 0022 && cp $(DX_DOC_FILES) $(DX_OUTPUT_DIR)
2009-05-28 16:53:35 +00:00
touch $@
doc.done: doxygen.done cpfiles.done
touch $@
upload.done: doxygen.done cpfiles.done
upload.sh $(DX_OUTPUT_DIR)/ $(UPLOAD_URL)
2009-05-28 16:53:35 +00:00
clean.doxygen:
$(RM) -rf $(DX_OUTPUT_DIR) *.done $(DX_UNTEMPLATED) $(DX_INCLUDE) *.bak default-* doxygen.conf *.tmp
inst-dir.done:
$(INSTALL) -d -o $(DOCDIROWNER) -g $(DOCDIRGROUP) -m $(DOCDIRMODE) $(DX_INSTALL_DIR)
touch $@
install.done: doxygen.done inst-dir.done
make install.doxygen
touch $@
install.doxygen:
$(INSTALL) -p -o $(DOCOWNER) -g $(DOCGROUP) -m $(DOCMODE) \
$(wildcard $(DX_OUTPUT_DIR)/*.html) \
$(wildcard $(DX_OUTPUT_DIR)/*.gif) \
$(wildcard $(DX_OUTPUT_DIR)/*.png) \
$(wildcard $(DX_OUTPUT_DIR)/*.css) \
$(DX_INSTALL_DIR)
$(DX_DOXYGEN_CONF): $(firstword $(wildcard $(DX_DOXYGEN_CONF).tmpl $(DX_FALLBACK_CONF_TMPL)))
$(SED) " \
s/__VERSION__/$(DIST_VERSION)/g; \
s/__PROJECT__/$(PROJECT)/g; \
s/__PROJECT_CAPNAME__/$(PROJECT_CAPNAME)/g; \
s%__PROJECT_SUMMARY__%$(PROJECT_SUMMARY)%g; \
s/__OUTPUT_DIR__/$(DX_OUTPUT_DIR)/g; \
s%__PROJECT_TOPDIR__%$(TOPDIR)%g; \
s%__JWBDIR__%$(JWBDIR)%g; \
s%__FILE_PATTERNS__%$(DX_FILE_PATTERNS)%g; \
s%__INPUT_DIRS__%$(DX_INPUT_DIRS)%g; \
s%__SRC_IS_JAVA__%$(DX_SRC_IS_JAVA)%g; \
s%__EXCLUDE_FILES__%$(DX_EXCLUDE_FILES)%g; \
s%__INCLUDE_PATH__%$(DX_INCLUDE_PATH)%g; \
s%__RECURSIVE__%$(DX_RECURSIVE)%g; \
s%__EXTRACT_STATIC__%$(DX_EXTRACT_STATIC)%g; \
s%__INLINE_SOURCES__%$(DX_INLINE_SOURCES)%g; \
s%__SOURCE_BROWSER__%$(DX_SOURCE_BROWSER)%g; \
" $< > $@.tmp
mv $@.tmp $@
doxygen-default-includes.done: $(DX_DOXYGEN_CONF)
doxygen -w html $(addprefix default-,$(DX_INCLUDE)) $<
touch $@
header.html: $(DX_INCLUDE_TMPL_DIR)/header.html doxygen-default-includes.done
cat default-$@ | sed -ne "/<\/tr>/r $<" -e 1x -e '2,$${x;p}' -e '$${x;p}' > $@.tmp
mv $@.tmp $@
footer.html: $(DX_INCLUDE_TMPL_DIR)/footer.html doxygen-default-includes.done
cat $< default-$@ > $@.tmp
mv $@.tmp $@
styles.css: $(DX_INCLUDE_TMPL_DIR)/styles.css doxygen-default-includes.done
cat default-$@ $< > $@.tmp
mv $@.tmp $@
logo.png: $(DX_INCLUDE_TMPL_DIR)/logo.png doxygen-default-includes.done
cp $< $@.tmp
mv $@.tmp $@
doxygen.conf.tmpl: | $(DX_FALLBACK_CONF_TMPL)
cp $(DX_FALLBACK_CONF_TMPL) $@.tmp
mv $@.tmp $@
2009-05-28 16:53:35 +00:00
endif