summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Roe <duncan.roe2@gmail.com>2021-04-22 19:35:44 +1000
committerPablo Neira Ayuso <pablo@netfilter.org>2021-05-02 23:43:17 +0200
commitdc3971e3f5e284dd38e0a434725e7f451baef55c (patch)
tree6fcda465c75217482ea2e769a373afd74cd76199
parente6779d6b504b1b976c503699ae9cc8ec469c37ca (diff)
build: doc: `make distcheck` passes with doxygen enabled
The main fix is to move fixmanpages.sh to inside doxygen/Makefile.am. This means that in future, developers need to update doxygen/Makefile.am when they add new functions and source files, since fixmanpages.sh is deleted. Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au> Acked-by: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac11
-rw-r--r--doxygen/Makefile.am76
-rwxr-xr-xfixmanpages.sh66
4 files changed, 82 insertions, 72 deletions
diff --git a/Makefile.am b/Makefile.am
index 796f0d0..a5b347b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,4 +10,3 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libnetfilter_queue.pc
EXTRA_DIST += Make_global.am
-EXTRA_DIST += fixmanpages.sh
diff --git a/configure.ac b/configure.ac
index 32e4990..bdbee98 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,9 +37,10 @@ AC_CONFIG_FILES([Makefile src/Makefile utils/Makefile examples/Makefile
include/linux/Makefile include/linux/netfilter/Makefile])
AC_ARG_WITH([doxygen], [AS_HELP_STRING([--with-doxygen],
- [create doxygen documentation [default=no]])],
- [], [with_doxygen=no])
-AS_IF([test "x$with_doxygen" = xyes], [
+ [create doxygen documentation])],
+ [with_doxygen="$withval"], [with_doxygen=yes])
+
+AS_IF([test "x$with_doxygen" != xno], [
AC_CHECK_PROGS([DOXYGEN], [doxygen])
AC_CHECK_PROGS([DOT], [dot], [""])
AS_IF([test "x$DOT" != "x"],
@@ -48,6 +49,10 @@ AS_IF([test "x$with_doxygen" = xyes], [
])
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
+AS_IF([test "x$DOXYGEN" = x], [
+ dnl Only run doxygen Makefile if doxygen installed
+ AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
+])
AC_OUTPUT
echo "
diff --git a/doxygen/Makefile.am b/doxygen/Makefile.am
index 0f99feb..b4268a5 100644
--- a/doxygen/Makefile.am
+++ b/doxygen/Makefile.am
@@ -1,4 +1,6 @@
if HAVE_DOXYGEN
+
+# Be sure to add new source files to this table
doc_srcs = $(top_srcdir)/src/libnetfilter_queue.c \
$(top_srcdir)/src/nlmsg.c \
$(top_srcdir)/src/extra/checksum.c \
@@ -9,8 +11,74 @@ doc_srcs = $(top_srcdir)/src/libnetfilter_queue.c \
$(top_srcdir)/src/extra/icmp.c \
$(top_srcdir)/src/extra/pktbuff.c
-doxyfile.stamp: $(doc_srcs) $(top_srcdir)/fixmanpages.sh
- rm -rf html man && cd .. && doxygen doxygen.cfg >/dev/null && ./fixmanpages.sh
+doxyfile.stamp: $(doc_srcs) Makefile.am
+ rm -rf html man
+
+# Test for running under make distcheck.
+# If so, sibling src directory will be empty:
+# move it out of the way and symlink the real one while we run doxygen.
+ [ -f ../src/Makefile.in ] || \
+{ set -x; cd ..; mv src src.distcheck; ln -s $(top_srcdir)/src; }
+
+ cd ..; doxygen doxygen.cfg >/dev/null
+
+ [ ! -d ../src.distcheck ] || \
+{ set -x; cd ..; rm src; mv src.distcheck src; }
+
+# Keep this command up to date after adding new functions and source files.
+# The command has to be a single line so the functions work
+# (hence ";\" at the end of every line but the last).
+ main() { set -e; cd man/man3; rm -f _*;\
+setgroup LibrarySetup nfq_open;\
+ add2group nfq_close nfq_bind_pf nfq_unbind_pf;\
+setgroup Parsing nfq_get_msg_packet_hdr;\
+ add2group nfq_get_nfmark nfq_get_timestamp nfq_get_indev nfq_get_physindev;\
+ add2group nfq_get_outdev nfq_get_physoutdev nfq_get_indev_name;\
+ add2group nfq_get_physindev_name nfq_get_outdev_name;\
+ add2group nfq_get_physoutdev_name nfq_get_packet_hw;\
+ add2group nfq_get_skbinfo;\
+ add2group nfq_get_uid nfq_get_gid;\
+ add2group nfq_get_secctx nfq_get_payload;\
+setgroup Queue nfq_fd;\
+ add2group nfq_create_queue nfq_destroy_queue nfq_handle_packet nfq_set_mode;\
+ add2group nfq_set_queue_flags nfq_set_queue_maxlen nfq_set_verdict;\
+ add2group nfq_set_verdict2 nfq_set_verdict_batch;\
+ add2group nfq_set_verdict_batch2 nfq_set_verdict_mark;\
+setgroup ipv4 nfq_ip_get_hdr;\
+ add2group nfq_ip_set_transport_header nfq_ip_mangle nfq_ip_snprintf;\
+ setgroup ip_internals nfq_ip_set_checksum;\
+setgroup ipv6 nfq_ip6_get_hdr;\
+ add2group nfq_ip6_set_transport_header nfq_ip6_mangle nfq_ip6_snprintf;\
+setgroup nfq_cfg nfq_nlmsg_cfg_put_cmd;\
+ add2group nfq_nlmsg_cfg_put_params nfq_nlmsg_cfg_put_qmaxlen;\
+setgroup nfq_verd nfq_nlmsg_verdict_put;\
+ add2group nfq_nlmsg_verdict_put_mark nfq_nlmsg_verdict_put_pkt;\
+setgroup nlmsg nfq_nlmsg_parse;\
+ add2group nfq_nlmsg_put;\
+setgroup pktbuff pktb_alloc;\
+ add2group pktb_data pktb_len pktb_mangle pktb_mangled;\
+ add2group pktb_free;\
+ setgroup otherfns pktb_tailroom;\
+ add2group pktb_mac_header pktb_network_header pktb_transport_header;\
+ setgroup uselessfns pktb_push;\
+ add2group pktb_pull pktb_put pktb_trim;\
+setgroup tcp nfq_tcp_get_hdr;\
+ add2group nfq_tcp_get_payload nfq_tcp_get_payload_len;\
+ add2group nfq_tcp_snprintf nfq_tcp_mangle_ipv4 nfq_tcp_mangle_ipv6;\
+ setgroup tcp_internals nfq_tcp_compute_checksum_ipv4;\
+ add2group nfq_tcp_compute_checksum_ipv6;\
+setgroup udp nfq_udp_get_hdr;\
+ add2group nfq_udp_get_payload nfq_udp_get_payload_len;\
+ add2group nfq_udp_mangle_ipv4 nfq_udp_mangle_ipv6 nfq_udp_snprintf;\
+ setgroup udp_internals nfq_udp_compute_checksum_ipv4;\
+ add2group nfq_udp_compute_checksum_ipv6;\
+setgroup Printing nfq_snprintf_xml;\
+setgroup icmp nfq_icmp_get_hdr;\
+};\
+setgroup() { mv $$1.3 $$2.3; BASE=$$2; };\
+add2group() { for i in $$@; do ln -sf $$BASE.3 $$i.3; done; };\
+main
+
touch doxyfile.stamp
CLEANFILES = doxyfile.stamp
@@ -21,4 +89,8 @@ clean-local:
install-data-local:
mkdir -p $(DESTDIR)$(mandir)/man3
cp --no-dereference --preserve=links,mode,timestamps man/man3/*.3 $(DESTDIR)$(mandir)/man3/
+
+# make distcheck needs uninstall-local
+uninstall-local:
+ rm -r $(DESTDIR)$(mandir) man html doxyfile.stamp
endif
diff --git a/fixmanpages.sh b/fixmanpages.sh
deleted file mode 100755
index 02064ab..0000000
--- a/fixmanpages.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash -p
-#set -x
-function main
-{
- set -e
- cd doxygen/man/man3
- rm -f _*
- setgroup LibrarySetup nfq_open
- add2group nfq_close nfq_bind_pf nfq_unbind_pf
- setgroup Parsing nfq_get_msg_packet_hdr
- add2group nfq_get_nfmark nfq_get_timestamp nfq_get_indev nfq_get_physindev
- add2group nfq_get_outdev nfq_get_physoutdev nfq_get_indev_name
- add2group nfq_get_physindev_name nfq_get_outdev_name
- add2group nfq_get_physoutdev_name nfq_get_packet_hw
- add2group nfq_get_skbinfo
- add2group nfq_get_uid nfq_get_gid
- add2group nfq_get_secctx nfq_get_payload
- setgroup Queue nfq_fd
- add2group nfq_create_queue nfq_destroy_queue nfq_handle_packet nfq_set_mode
- add2group nfq_set_queue_flags nfq_set_queue_maxlen nfq_set_verdict
- add2group nfq_set_verdict2 nfq_set_verdict_batch
- add2group nfq_set_verdict_batch2 nfq_set_verdict_mark
- setgroup ipv4 nfq_ip_get_hdr
- add2group nfq_ip_set_transport_header nfq_ip_mangle nfq_ip_snprintf
- setgroup ip_internals nfq_ip_set_checksum
- setgroup ipv6 nfq_ip6_get_hdr
- add2group nfq_ip6_set_transport_header nfq_ip6_mangle nfq_ip6_snprintf
- setgroup nfq_cfg nfq_nlmsg_cfg_put_cmd
- add2group nfq_nlmsg_cfg_put_params nfq_nlmsg_cfg_put_qmaxlen
- setgroup nfq_verd nfq_nlmsg_verdict_put
- add2group nfq_nlmsg_verdict_put_mark nfq_nlmsg_verdict_put_pkt
- setgroup nlmsg nfq_nlmsg_parse
- add2group nfq_nlmsg_put
- setgroup pktbuff pktb_alloc
- add2group pktb_data pktb_len pktb_mangle pktb_mangled
- add2group pktb_free
- setgroup otherfns pktb_tailroom
- add2group pktb_mac_header pktb_network_header pktb_transport_header
- setgroup uselessfns pktb_push
- add2group pktb_pull pktb_put pktb_trim
- setgroup tcp nfq_tcp_get_hdr
- add2group nfq_tcp_get_payload nfq_tcp_get_payload_len
- add2group nfq_tcp_snprintf nfq_tcp_mangle_ipv4 nfq_tcp_mangle_ipv6
- setgroup tcp_internals nfq_tcp_compute_checksum_ipv4
- add2group nfq_tcp_compute_checksum_ipv6
- setgroup udp nfq_udp_get_hdr
- add2group nfq_udp_get_payload nfq_udp_get_payload_len
- add2group nfq_udp_mangle_ipv4 nfq_udp_mangle_ipv6 nfq_udp_snprintf
- setgroup udp_internals nfq_udp_compute_checksum_ipv4
- add2group nfq_udp_compute_checksum_ipv6
- setgroup Printing nfq_snprintf_xml
- setgroup icmp nfq_icmp_get_hdr
-}
-function setgroup
-{
- mv $1.3 $2.3
- BASE=$2
-}
-function add2group
-{
- for i in $@
- do
- ln -sf $BASE.3 $i.3
- done
-}
-main