- configure --help lists non-default documentation options. Looking around the web, this seemed to me to be what most projects do. Listed options are --enable-html-doc & --disable-man-pages. - --with-doxygen is removed: --disable-man-pages also disables doxygen unless --enable-html-doc is asserted. If html is requested, `make install` installs it in htmldir. Signed-off-by: Duncan Roe <duncan_roe@xxxxxxxxxxxxxxx> --- configure.ac | 28 ++++++++++++++++++++++------ doxygen/Makefile.am | 11 ++++++++++- doxygen/doxygen.cfg.in | 3 ++- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 4721eeb..77737b2 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,22 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_ARG_ENABLE([html-doc], + AS_HELP_STRING([--enable-html-doc], [Enable html documentation]), + [], [enable_html_doc=no]) +AM_CONDITIONAL([BUILD_HTML], [test "$enable_html_doc" = yes]) +AS_IF([test "$enable_html_doc" = yes], + [AC_SUBST(GEN_HTML, YES)], + [AC_SUBST(GEN_HTML, NO)]) + +AC_ARG_ENABLE([man-pages], + AS_HELP_STRING([--disable-man-pages], [Disable man page documentation]), + [], [enable_man_pages=yes]) +AM_CONDITIONAL([BUILD_MAN], [test "$enable_man_pages" = yes]) +AS_IF([test "$enable_man_pages" = yes], + [AC_SUBST(GEN_MAN, YES)], + [AC_SUBST(GEN_MAN, NO)]) + AC_PROG_CC AM_PROG_CC_C_O AC_DISABLE_STATIC @@ -36,9 +52,7 @@ AC_CONFIG_FILES([Makefile src/Makefile utils/Makefile examples/Makefile doxygen/Makefile doxygen/doxygen.cfg include/linux/Makefile include/linux/netfilter/Makefile]) -AC_ARG_WITH([doxygen], [AS_HELP_STRING([--with-doxygen], - [create doxygen documentation])], - [with_doxygen="$withval"], [with_doxygen=yes]) +AS_IF([test "$enable_man_pages" = no -a "$enable_html_doc" = no], [with_doxygen=no]) AS_IF([test "x$with_doxygen" != xno], [ AC_CHECK_PROGS([DOXYGEN], [doxygen]) @@ -52,12 +66,14 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) AS_IF([test "x$DOXYGEN" = x], [ AS_IF([test "x$with_doxygen" != xno], [ dnl Only run doxygen Makefile if doxygen installed - AC_MSG_WARN([Doxygen not found - continuing without Doxygen support]) - with_doxygen=no + AC_MSG_WARN([Doxygen not found - no documentation will be built]) + enable_html_doc=no + enable_man_pages=no ]) ]) AC_OUTPUT echo " libnetfilter_queue configuration: - doxygen: ${with_doxygen}" +man pages: ${enable_man_pages} +html docs: ${enable_html_doc}" diff --git a/doxygen/Makefile.am b/doxygen/Makefile.am index 5a7fdd5..c6eeed7 100644 --- a/doxygen/Makefile.am +++ b/doxygen/Makefile.am @@ -14,7 +14,9 @@ doxyfile.stamp: $(doc_srcs) Makefile rm -rf html man doxygen doxygen.cfg >/dev/null +if BUILD_MAN $(abs_top_srcdir)/doxygen/build_man.sh +endif touch doxyfile.stamp @@ -24,13 +26,20 @@ all-local: doxyfile.stamp clean-local: rm -rf man html install-data-local: +if BUILD_MAN mkdir -p $(DESTDIR)$(mandir)/man3 cp --no-dereference --preserve=links,mode,timestamps man/man3/*.3\ $(DESTDIR)$(mandir)/man3/ +endif +if BUILD_HTML + mkdir -p $(DESTDIR)$(htmldir) + cp --no-dereference --preserve=links,mode,timestamps html/*\ + $(DESTDIR)$(htmldir) +endif # make distcheck needs uninstall-local uninstall-local: - rm -r $(DESTDIR)$(mandir) man html doxyfile.stamp + rm -rf $(DESTDIR)$(mandir) man html doxyfile.stamp $(DESTDIR)$(htmldir) endif EXTRA_DIST = build_man.sh diff --git a/doxygen/doxygen.cfg.in b/doxygen/doxygen.cfg.in index 99b5c90..14bd0cf 100644 --- a/doxygen/doxygen.cfg.in +++ b/doxygen/doxygen.cfg.in @@ -21,7 +21,8 @@ ALPHABETICAL_INDEX = NO SEARCHENGINE = NO GENERATE_LATEX = NO LATEX_CMD_NAME = latex -GENERATE_MAN = YES +GENERATE_MAN = @GEN_MAN@ +GENERATE_HTML = @GEN_HTML@ MAN_LINKS = YES HAVE_DOT = @HAVE_DOT@ DOT_TRANSPARENT = YES -- 2.17.5