@@ -13,6 +13,35 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
dnl kernel style compile messages
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+dnl Must check for --without-doxygen before checking --enable-*
+AC_ARG_WITH([doxygen], [AS_HELP_STRING([--without-doxygen],
+ [Don't run doxygen (to create documentation)])],
+ [with_doxygen="$withval"], [with_doxygen=yes])
+
+AC_ARG_ENABLE([html-doc],
+ AS_HELP_STRING([--enable-html-doc], [Enable html documentation]),
+ [], [enable_html_doc=no])
+AS_IF([test "$with_doxygen" = no -a "$enable_html_doc" = yes], [
+ AC_MSG_WARN([Doxygen disabled - html documentation will not be built])
+ 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])
+AS_IF([test "$with_doxygen" = no -a "$enable_man_pages" = yes], [
+ AC_MSG_WARN([Doxygen disabled - man pages will not be built])
+ enable_man_pages=no
+])
+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 +65,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 +79,16 @@ 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])
+ AC_MSG_WARN([Doxygen not found - no documentation will be built])
with_doxygen=no
+ enable_html_doc=no
+ enable_man_pages=no
])
])
AC_OUTPUT
echo "
libnetfilter_queue configuration:
- doxygen: ${with_doxygen}"
+ doxygen: ${with_doxygen}
+man pages: ${enable_man_pages}
+html docs: ${enable_html_doc}"
@@ -6,7 +6,9 @@ doxyfile.stamp: $(doc_srcs) Makefile.am
rm -rf html man
doxygen doxygen.cfg >/dev/null
+if BUILD_MAN
$(abs_top_srcdir)/doxygen/build_man.sh
+endif
touch doxyfile.stamp
@@ -16,13 +18,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
@@ -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
- configure --help lists non-default documentation options. Looking around the web, this seemed to me to be what most projects do. Listed options are --without-doxygen, --enable-html-doc & --disable-man-pages. - configure warns on inconsistent options e.g. --without-doxygen by itself warns man pages will not be built. - configure.ac re-ordered so --without-doxygen overrides --enable-any-doc. If html is requested, `make install` installs it in htmldir. Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au> --- configure.ac | 41 ++++++++++++++++++++++++++++++++++++----- doxygen/Makefile.am | 11 ++++++++++- doxygen/doxygen.cfg.in | 3 ++- 3 files changed, 48 insertions(+), 7 deletions(-)