From: Duncan Roe <duncan.roe2@gmail.com>
To: netfilter-devel@vger.kernel.org
Cc: duncan_roe@optusnet.com.au
Subject: [PATCH libnetfilter_queue 1/1] build: doc: `make distcheck` passes with doxygen enabled
Date: Tue, 20 Apr 2021 14:23:58 +1000 [thread overview]
Message-ID: <20210420042358.2829-2-duncan_roe@optusnet.com.au> (raw)
In-Reply-To: <20210420042358.2829-1-duncan_roe@optusnet.com.au>
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>
---
Makefile.am | 1 -
configure.ac | 11 +++++--
doxygen/Makefile.am | 76 +++++++++++++++++++++++++++++++++++++++++++--
fixmanpages.sh | 66 ---------------------------------------
4 files changed, 82 insertions(+), 72 deletions(-)
delete mode 100755 fixmanpages.sh
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..3f4a082 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"])
+if test -z "$DOXYGEN"; then
+ dnl Only run doxygen Makefile if doxygen installed
+ AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
+fi
AC_OUTPUT
echo "
diff --git a/doxygen/Makefile.am b/doxygen/Makefile.am
index 0f99feb..1b217d3 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.
+ cd ..; [ $$(ls src | wc -l) -gt 8 ] ||\
+{ set -x; 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).
+ function 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;\
+};\
+function setgroup { mv $$1.3 $$2.3; BASE=$$2; };\
+function 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
--
2.17.5
next prev parent reply other threads:[~2021-04-20 4:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-20 4:23 Now have make distcheck passing with doxygen enabled Duncan Roe
2021-04-20 4:23 ` Duncan Roe [this message]
2021-04-20 9:54 ` [PATCH libnetfilter_queue 1/1] build: doc: `make distcheck` passes " Jan Engelhardt
2021-04-21 2:17 ` Duncan Roe
2021-04-21 7:21 ` Jan Engelhardt
2021-04-21 12:25 ` Duncan Roe
2021-04-21 16:25 ` Jan Engelhardt
2021-04-22 9:35 ` [PATCH libnetfilter_queue v2] " Duncan Roe
2021-04-28 23:59 ` Duncan Roe
2021-04-29 9:11 ` Jan Engelhardt
2021-05-02 21:45 ` Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210420042358.2829-2-duncan_roe@optusnet.com.au \
--to=duncan.roe2@gmail.com \
--cc=duncan_roe@optusnet.com.au \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.