mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
doc: build and install doxygen api docs
In order to support out of tree builds and avoid hardcoding version number, generate `doc/config.dox` from configure.
This commit is contained in:
parent
0e50854a7f
commit
1022433551
3 changed files with 39 additions and 5 deletions
12
configure
vendored
12
configure
vendored
|
@ -417,6 +417,15 @@ else
|
||||||
have_emacs=0
|
have_emacs=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "Checking if doxygen is available... "
|
||||||
|
if command -v doxygen > /dev/null 2>&1; then
|
||||||
|
printf "Yes.\n"
|
||||||
|
have_doxygen=1
|
||||||
|
else
|
||||||
|
printf "No (so will not install api docs)\n"
|
||||||
|
have_doxygen=0
|
||||||
|
fi
|
||||||
|
|
||||||
printf "Checking if sphinx is available and supports nroff output... "
|
printf "Checking if sphinx is available and supports nroff output... "
|
||||||
if hash sphinx-build > /dev/null 2>&1 && python -m sphinx.writers.manpage > /dev/null 2>&1 ; then
|
if hash sphinx-build > /dev/null 2>&1 && python -m sphinx.writers.manpage > /dev/null 2>&1 ; then
|
||||||
printf "Yes.\n"
|
printf "Yes.\n"
|
||||||
|
@ -829,6 +838,9 @@ HAVE_SPHINX=${have_sphinx}
|
||||||
# Whether there's a rst2man binary available for building documentation
|
# Whether there's a rst2man binary available for building documentation
|
||||||
HAVE_RST2MAN=${have_rst2man}
|
HAVE_RST2MAN=${have_rst2man}
|
||||||
|
|
||||||
|
# Whether there's a doxygen binary available for building api documentation
|
||||||
|
HAVE_DOXYGEN=${have_doxygen}
|
||||||
|
|
||||||
# The directory to which desktop files should be installed
|
# The directory to which desktop files should be installed
|
||||||
desktop_dir = \$(prefix)/share/applications
|
desktop_dir = \$(prefix)/share/applications
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,12 @@ mkdocdeps := python $(srcdir)/$(dir)/mkdocdeps.py
|
||||||
|
|
||||||
# Internal variables.
|
# Internal variables.
|
||||||
ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
|
ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
|
||||||
|
APIMAN := $(DOCBUILDDIR)/man/man3/notmuch.3
|
||||||
|
DOXYFILE := $(srcdir)/$(dir)/doxygen.cfg
|
||||||
|
|
||||||
.PHONY: sphinx-html sphinx-texinfo sphinx-info
|
.PHONY: sphinx-html sphinx-texinfo sphinx-info
|
||||||
|
|
||||||
.PHONY: install-man build-man
|
.PHONY: install-man build-man apidocs install-apidocs
|
||||||
|
|
||||||
%.gz: %
|
%.gz: %
|
||||||
rm -f $@ && gzip --stdout $^ > $@
|
rm -f $@ && gzip --stdout $^ > $@
|
||||||
|
@ -56,6 +58,23 @@ else
|
||||||
endif
|
endif
|
||||||
touch ${MAN_ROFF_FILES} $@
|
touch ${MAN_ROFF_FILES} $@
|
||||||
|
|
||||||
|
install-man: install-apidocs
|
||||||
|
|
||||||
|
ifeq ($(HAVE_DOXYGEN),1)
|
||||||
|
MAN_GZIP_FILES += ${APIMAN}.gz
|
||||||
|
apidocs: $(APIMAN)
|
||||||
|
install-apidocs: apidocs
|
||||||
|
mkdir -p "$(DESTDIR)$(mandir)/man3"
|
||||||
|
install -m0644 $(DOCBUILDDIR)/man/man3/*.3.gz $(DESTDIR)/$(mandir)/man3
|
||||||
|
|
||||||
|
$(APIMAN): $(dir)/config.dox $(srcdir)/$(dir)/doxygen.cfg $(srcdir)/lib/notmuch.h
|
||||||
|
mkdir -p $(DOCBUILDDIR)/man/man3
|
||||||
|
doxygen $(DOXYFILE)
|
||||||
|
else
|
||||||
|
apidocs:
|
||||||
|
install-apidocs:
|
||||||
|
endif
|
||||||
|
|
||||||
# Do not try to build or install man pages if a man page converter is
|
# Do not try to build or install man pages if a man page converter is
|
||||||
# not available.
|
# not available.
|
||||||
ifeq ($(HAVE_SPHINX)$(HAVE_RST2MAN),00)
|
ifeq ($(HAVE_SPHINX)$(HAVE_RST2MAN),00)
|
||||||
|
@ -74,8 +93,12 @@ install-man: ${MAN_GZIP_FILES}
|
||||||
cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
|
cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(dir)/config.dox: version.stamp
|
||||||
|
echo "PROJECT_NAME = \"Notmuch $(VERSION)\"" > $@
|
||||||
|
echo "INPUT=${srcdir}/lib/notmuch.h" >> $@
|
||||||
|
|
||||||
$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
|
$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
|
||||||
$(mkdocdeps) $(srcdir)/doc $(DOCBUILDDIR) $@
|
$(mkdocdeps) $(srcdir)/doc $(DOCBUILDDIR) $@
|
||||||
|
|
||||||
CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(DOCBUILDDIR)/.roff.stamp
|
CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(DOCBUILDDIR)/.roff.stamp
|
||||||
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES) $(dir)/conf.pyc
|
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES) $(dir)/conf.pyc $(dir)/config.dox
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
DOXYFILE_ENCODING = UTF-8
|
DOXYFILE_ENCODING = UTF-8
|
||||||
PROJECT_NAME = "Notmuch 0.18"
|
@INCLUDE = "doc/config.dox"
|
||||||
PROJECT_NUMBER =
|
PROJECT_NUMBER =
|
||||||
PROJECT_BRIEF =
|
PROJECT_BRIEF =
|
||||||
PROJECT_LOGO =
|
PROJECT_LOGO =
|
||||||
OUTPUT_DIRECTORY =
|
OUTPUT_DIRECTORY = doc/_build
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
|
@ -96,7 +96,6 @@ WARN_LOGFILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = lib/notmuch.h
|
|
||||||
INPUT_ENCODING = UTF-8
|
INPUT_ENCODING = UTF-8
|
||||||
FILE_PATTERNS =
|
FILE_PATTERNS =
|
||||||
RECURSIVE = NO
|
RECURSIVE = NO
|
||||||
|
|
Loading…
Reference in a new issue