summaryrefslogtreecommitdiff
path: root/doxygen
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 /doxygen
parente6779d6b504b1b976c503699ae9cc8ec469c37ca (diff)
downloadlibnetfilter_queue-dc3971e3f5e284dd38e0a434725e7f451baef55c.tar.gz
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>
Diffstat (limited to 'doxygen')
-rw-r--r--doxygen/Makefile.am76
1 files changed, 74 insertions, 2 deletions
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