]> The Tcpdump Group git mirrors - tcpdump/blobdiff - Makefile.in
Detect OS IPv6 support using AF_INET6 only.
[tcpdump] / Makefile.in
index f7589dd8a4057056d49551b7f3f10faf83c33ce6..9d03c21b91fa929a50d07b30b45302eb631f27d0 100644 (file)
@@ -1,5 +1,5 @@
 #  Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
-#      The Regents of the University of California.  All rights reserved.
+#      The Regents of the University of California.  All rights reserved.
 #
 #  Redistribution and use in source and binary forms, with or without
 #  modification, are permitted provided that: (1) source code distributions
@@ -193,6 +193,7 @@ LIBNETDISSECT_SRC=\
        print-ospf.c \
        print-ospf6.c \
        print-otv.c \
+       print-pflog.c \
        print-pgm.c \
        print-pim.c \
        print-pktap.c \
@@ -201,13 +202,14 @@ LIBNETDISSECT_SRC=\
        print-pppoe.c \
        print-pptp.c \
        print-ptp.c \
+       print-quic.c \
        print-radius.c \
        print-raw.c \
+       print-realtek.c \
        print-resp.c \
        print-rip.c \
        print-ripng.c \
        print-rpki-rtr.c \
-       print-rrcp.c \
        print-rsvp.c \
        print-rt6.c \
        print-rtsp.c \
@@ -245,6 +247,7 @@ LIBNETDISSECT_SRC=\
        print-vxlan-gpe.c \
        print-vxlan.c \
        print-wb.c \
+       print-whois.c \
        print-zep.c \
        print-zephyr.c \
        print-zeromq.c \
@@ -261,8 +264,6 @@ LIBNETDISSECT=libnetdissect.a
 
 SRC =  $(CSRC) $(LOCALSRC)
 
-# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
-# hack the extra indirection
 OBJ =  $(CSRC:.c=.o)
 HDR = \
        addrtoname.h \
@@ -275,6 +276,7 @@ HDR = \
        chdlc.h \
        compiler-tests.h \
        cpack.h \
+       diag-control.h \
        ethertype.h \
        extract.h \
        fptype.h \
@@ -304,6 +306,7 @@ HDR = \
        ospf.h \
        oui.h \
        pcap-missing.h \
+       pflog.h \
        ppp.h \
        print.h \
        rpc_auth.h \
@@ -323,65 +326,61 @@ TAGHDR = \
        /usr/include/netinet/in.h
 
 TAGFILES = $(SRC) $(HDR) $(TAGHDR) $(LIBNETDISSECT_SRC) \
-       print-pflog.c print-smb.c smbutil.c
+       print-smb.c smbutil.c
 
 CLEANFILES = $(PROG) $(OBJ) $(LIBNETDISSECT_OBJ)
 
 EXTRA_DIST = \
        CHANGES \
-       CONTRIBUTING \
-       CREDITS \
        CMakeLists.txt \
-       INSTALL.txt \
+       CONTRIBUTING.md \
+       CREDITS \
+       INSTALL.md \
        LICENSE \
-       Makefile.in \
        Makefile-devel-adds \
+       Makefile.in \
        README.md \
-       Readme.Win32 \
        VERSION \
        aclocal.m4 \
+       autogen.sh \
        atime.awk \
        bpf_dump.c \
-       cmake_uninstall.cmake.in \
-       cmakeconfig.h.in \
        cmake/Modules/FindCRYPTO.cmake \
        cmake/Modules/FindPCAP.cmake \
        cmake/Modules/FindSMI.cmake \
+       cmake_uninstall.cmake.in \
+       cmakeconfig.h.in \
        config.guess \
-       config.h.in \
        config.sub \
-       configure \
        configure.ac \
+       doc/README.aix.md \
+       doc/README.haiku.md \
+       doc/README.NetBSD.md \
+       doc/README.solaris.md \
        doc/README.Win32.md \
        install-sh \
-       lbl/os-osf4.h \
-       lbl/os-solaris2.h \
-       lbl/os-sunos4.h \
-       lbl/os-ultrix4.h \
+       instrument-functions.c \
        makemib \
-       missing/dlnames.c \
        missing/datalinks.c \
-       missing/getopt_long.h \
+       missing/dlnames.c \
        missing/getopt_long.c \
+       missing/getopt_long.h \
        missing/getservent.c \
        missing/pcap_dump_ftell.c \
-       missing/snprintf.c \
-       missing/strdup.c \
        missing/strlcat.c \
        missing/strlcpy.c \
        missing/strsep.c \
-       missing/win_ether_ntohost.c \
-       missing/win_ether_ntohost.h \
        mkdep \
        packetdat.awk \
-       print-pflog.c \
        print-smb.c \
        send-ack.awk \
        smbutil.c \
        stime.awk \
        tcpdump.1.in
 
-TEST_DIST= `git ls-files tests | grep -v 'tests/\..*'`
+TEST_DIST= `git -C "$$DIR" ls-files tests | grep -v 'tests/\..*'`
+
+RELEASE_FILES = $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST)
 
 all: $(PROG)
 
@@ -389,6 +388,18 @@ $(PROG): $(OBJ) @V_PCAPDEP@ $(LIBNETDISSECT)
        @rm -f $@
        $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBNETDISSECT) $(LIBS)
 
+instrument_all: $(PROG)
+       @rm -f instrument_functions_global.devel
+       @rm -f instrument_functions_off.devel
+
+instrument_global: $(PROG)
+       @touch instrument_functions_global.devel
+       @rm -f instrument_functions_off.devel
+
+instrument_off: $(PROG)
+       @touch instrument_functions_off.devel
+       @rm -f instrument_functions_global.devel
+
 $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ)
        @rm -f $@
        $(AR) cr $@ $(LIBNETDISSECT_OBJ)
@@ -402,10 +413,6 @@ getservent.o: $(srcdir)/missing/getservent.c
        $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getservent.c
 getopt_long.o: $(srcdir)/missing/getopt_long.c
        $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getopt_long.c
-snprintf.o: $(srcdir)/missing/snprintf.c
-       $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c
-strdup.o: $(srcdir)/missing/strdup.c
-       $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strdup.c
 strlcat.o: $(srcdir)/missing/strlcat.c
        $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
 strlcpy.o: $(srcdir)/missing/strlcpy.c
@@ -435,11 +442,12 @@ lint:
            grep -v 'possible pointer alignment problem'
 
 clean:
-       rm -f $(CLEANFILES) $(PROG)-`cat ${srcdir}/VERSION`.tar.gz
+       rm -f $(CLEANFILES) $(PROG)-`cat ${srcdir}/VERSION`.tar.gz \
+       config.h.in~ configure~ configure.ac~
 
-distclean:
-       rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
-           config.h gnuc.h os-proto.h stamp-h stamp-h.in $(PROG).1 \
+distclean: clean
+       rm -f Makefile config.cache config.log config.status \
+           config.h os-proto.h stamp-h stamp-h.in $(PROG).1 \
            libnetdissect.a tests/.failed tests/.passed \
            tests/failure-outputs.txt
        rm -rf autom4te.cache tests/DIFF tests/NEW
@@ -456,22 +464,114 @@ tags: $(TAGFILES)
 TAGS: $(TAGFILES)
        etags $(TAGFILES)
 
+#
+# Use git archive piped to tar to construct a subdirectory whose name
+# is tcpdump-{release}, containing all the checked-in source files,
+# and then run autoreconf in that directory to generate the configure
+# script and other files from that source. Then remove autom4te.cache,
+# construct the release tarball from that subdirectory, and remove
+# the subdirectory.
+#
+# The --format=tar is to force git archive to write a non-compressed
+# archive, in case the platform's tar command doesn't have built-in
+# decompression.
+#
+# The ^{tree} is there to force git archive not to write out the
+# "helpful" global extended pax header with a commit ID, as not all
+# versions of tar can handle that (Solaris tar can't, for example).
+# (It turns HEAD, or a tag, both of which are apparently "tree-ish"es,
+# into a tree; apparently, unlike HEAD, or a tag, which have a commit
+# ID associated with them, the tree associated with them doesn't have
+# a commit ID, so no commit ID is available to write, and thus
+# git archive doesn't write one.)
+#
 releasetar:
-       @autoreconf -f; \
-       name=$(PROG)-`cat VERSION` ; \
-          mkdir $$name; \
-          tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST) | (cd $$name; tar xf -); \
-          tar -c -z -f $$name.tar.gz $$name; \
-          rm -rf $$name
-
-rc1 rc2 rc3 rc4 rc5:
-       @VER=`cat $(srcdir)/VERSION`; \
-       sed -i "s/$$VER/$${VER}$@/" VERSION ; \
-       make releasetar; \
-       git checkout VERSION configure
+       @TAG=$(PROG)-`cat VERSION` && \
+       if [ ! -d .git ]; then echo 'Not in a git clone, stop.'; exit 1; fi && \
+       TMPTESTFILE=`mktemp -t tmptestfile_XXXXXXXX` && \
+       rm -f "$$TMPTESTFILE" && \
+       AUTORECONF_DIR=`dirname "$$TMPTESTFILE"`/"$(PROG)"_build_autoreconf_$$$$ && \
+       DIR=`pwd` && \
+       rm -rf "$$AUTORECONF_DIR" && \
+       mkdir "$$AUTORECONF_DIR" && \
+       cd "$$AUTORECONF_DIR" && \
+       if git -C "$$DIR" show-ref --tags --quiet --verify -- "refs/tags/$$TAG"; then \
+           (git -C "$$DIR" archive --format=tar --prefix="$$TAG"/ "$$TAG^{tree}" $(RELEASE_FILES) | \
+            tar xf -) && \
+           echo "Archive build from tag $$TAG."; \
+       else \
+           (git -C "$$DIR" archive --format=tar --prefix="$$TAG"/ "HEAD^{tree}" $(RELEASE_FILES) | \
+            tar xf -) && \
+           echo "No $$TAG tag. Archive build from HEAD."; \
+       fi && \
+       (cd "$$TAG" && "$${AUTORECONF:-autoreconf}" && rm -rf autom4te.cache) && \
+       tar cf "$$DIR/$$TAG".tar "$$TAG" && \
+       rm -f "$$DIR/$$TAG".tar.gz && \
+       gzip --best "$$DIR/$$TAG".tar && \
+       cd "$$DIR" && \
+       rm -rf "$$AUTORECONF_DIR"
+
+releasecheck: releasetar
+       @TAG=$(PROG)-`cat VERSION` && \
+       INSTALL_DIR=/tmp/install_"$$TAG"_$$$$ && \
+       DIR=`pwd` && \
+       cd /tmp && \
+       rm -rf "$$TAG" && \
+       rm -rf "$$INSTALL_DIR" && \
+       tar xf "$$DIR"/"$$TAG".tar.gz && \
+       cd "$$TAG" && \
+       echo "[$@] $$ ./configure --enable-smb --quiet --prefix=$$INSTALL_DIR" && \
+       ./configure --enable-smb --quiet --prefix="$$INSTALL_DIR" && \
+       echo '[$@] $$ make -s all check' && \
+       make -s all check >/dev/null && \
+       echo '[$@] $$ make -s install' && \
+       make -s install && \
+       cd .. && \
+       rm -rf "$$TAG" && \
+       rm -rf "$$INSTALL_DIR" && \
+       tar xf "$$DIR"/"$$TAG".tar.gz && \
+       cd "$$TAG" && \
+       mkdir build && \
+       cd build && \
+       echo '[$@] $$ cmake -DENABLE_SMB=yes [...] ..' && \
+       cmake -DENABLE_SMB=yes \
+           -DCMAKE_INSTALL_PREFIX="$$INSTALL_DIR" \
+           -DCMAKE_MESSAGE_LOG_LEVEL=NOTICE \
+           -DCMAKE_RULE_MESSAGES=OFF \
+           -DCMAKE_INSTALL_MESSAGE=NEVER \
+           .. && \
+       echo '[$@] $$ make -s all check' && \
+       make -s all check >/dev/null && \
+       echo '[$@] $$ make -s install' && \
+       make -s install && \
+       cd ../.. && \
+       rm -rf "$$TAG" && \
+       rm -rf "$$INSTALL_DIR" && \
+       echo '[$@] Done.'
+
+whitespacecheck:
+       @# trailing space(s)?
+       @if git grep -I -n ' $$' $$(git ls-files|grep -v '^tests/'); then \
+           echo 'Error: Trailing space(s).'; \
+           exit 1; \
+       fi
+       @# trailing tab(s)?
+       @# install-sh has a tab at the end of one line
+       @if git grep -I -n '    $$' $$(git ls-files|grep -vE '^(tests/|install-sh$$)'); then \
+           echo 'Error: Trailing tabs(s).'; \
+           exit 1; \
+       fi
+       @# space(s) before tab(s)?
+       @if git grep -I -n '[ ][        ]' $$(git ls-files|grep -v '^tests/'); then \
+           echo 'Error: space(s) before tab(s).'; \
+           exit 1; \
+       fi
 
 testlist:
        echo $(TEST_DIST)
 
 depend:
        $(MKDEP) -c "$(CC)" -m "$(DEPENDENCY_CFLAG)" -s "$(srcdir)" $(DEFS) $(INCLS) $(SRC) $(LIBNETDISSECT_SRC)
+
+shellcheck:
+       shellcheck -f gcc -e SC2006 build.sh build_matrix.sh build_common.sh