# 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
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
# Pathname of directory to install the binary
-sbindir = @sbindir@
+bindir = @bindir@
# Pathname of directory to install the man page
mandir = @mandir@
# VPATH
srcdir = @srcdir@
+top_srcdir = @top_srcdir@
VPATH = @srcdir@
#
#
CC = @CC@
+AR = @AR@
MKDEP = @MKDEP@
PROG = tcpdump
CCOPT = @V_CCOPT@
@rm -f $@
$(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
-CSRC = setsignal.c tcpdump.c
-
-LIBNETDISSECT_SRC=addrtoname.c af.c checksum.c cpack.c gmpls.c oui.c gmt2local.c ipproto.c \
- nlpid.c l2vpn.c machdep.c parsenfsfh.c in_cksum.c \
- print-802_11.c print-802_15_4.c print-ap1394.c print-ah.c print-ahcp.c \
- print-arcnet.c print-aodv.c print-arp.c print-ascii.c print-atalk.c \
- print-atm.c print-beep.c print-bfd.c print-bgp.c \
- print-bootp.c print-bt.c print-calm-fast.c print-carp.c print-cdp.c print-cfm.c \
- print-chdlc.c print-cip.c print-cnfp.c print-dccp.c print-decnet.c \
- print-domain.c print-dtp.c print-dvmrp.c print-enc.c print-egp.c \
- print-eap.c print-eigrp.c\
- print-esp.c print-ether.c print-fddi.c print-forces.c print-fr.c \
- print-geonet.c print-gre.c print-hsrp.c print-icmp.c print-igmp.c \
- print-igrp.c print-ip.c print-ipcomp.c print-ipfc.c print-ipnet.c \
- print-ipx.c print-isakmp.c print-isoclns.c print-juniper.c print-krb.c \
- print-l2tp.c print-lane.c print-ldp.c print-lldp.c print-llc.c \
- print-lmp.c print-lspping.c print-lwapp.c \
- print-lwres.c print-mobile.c print-mpcp.c print-mpls.c print-mptcp.c print-msdp.c \
- print-msnlb.c print-nflog.c print-nfs.c print-ntp.c print-null.c \
- print-olsr.c print-openflow.c print-openflow-1.0.c print-ospf.c \
- print-pgm.c print-pim.c \
- print-ppi.c print-ppp.c print-pppoe.c print-pptp.c \
- print-radius.c print-raw.c print-rip.c print-rpki-rtr.c print-rrcp.c print-rsvp.c \
- print-rx.c print-sctp.c print-sflow.c print-sip.c print-sl.c print-sll.c \
- print-slow.c print-snmp.c print-stp.c print-sunatm.c print-sunrpc.c \
- print-symantec.c print-syslog.c print-tcp.c print-telnet.c print-tftp.c \
- print-timed.c print-tipc.c print-token.c print-udld.c print-udp.c \
- print-usb.c print-vjc.c print-vqp.c print-vrrp.c print-vtp.c \
- print-wb.c print-zephyr.c print-zeromq.c print-vxlan.c print-otv.c \
- signature.c util.c
+CSRC = fptype.c tcpdump.c
+
+LIBNETDISSECT_SRC=\
+ addrtoname.c \
+ addrtostr.c \
+ af.c \
+ ascii_strcasecmp.c \
+ checksum.c \
+ cpack.c \
+ gmpls.c \
+ in_cksum.c \
+ ipproto.c \
+ l2vpn.c \
+ machdep.c \
+ netdissect.c \
+ netdissect-alloc.c \
+ nlpid.c \
+ ntp.c \
+ oui.c \
+ parsenfsfh.c \
+ print.c \
+ print-802_11.c \
+ print-802_15_4.c \
+ print-ah.c \
+ print-ahcp.c \
+ print-aodv.c \
+ print-aoe.c \
+ print-ap1394.c \
+ print-arcnet.c \
+ print-arista.c \
+ print-arp.c \
+ print-ascii.c \
+ print-atalk.c \
+ print-atm.c \
+ print-babel.c \
+ print-bcm-li.c \
+ print-beep.c \
+ print-bfd.c \
+ print-bgp.c \
+ print-bootp.c \
+ print-brcmtag.c \
+ print-bt.c \
+ print-calm-fast.c \
+ print-carp.c \
+ print-cdp.c \
+ print-cfm.c \
+ print-chdlc.c \
+ print-cip.c \
+ print-cnfp.c \
+ print-dccp.c \
+ print-decnet.c \
+ print-dhcp6.c \
+ print-domain.c \
+ print-dsa.c \
+ print-dtp.c \
+ print-dvmrp.c \
+ print-eap.c \
+ print-egp.c \
+ print-eigrp.c \
+ print-enc.c \
+ print-esp.c \
+ print-ether.c \
+ print-fddi.c \
+ print-forces.c \
+ print-fr.c \
+ print-frag6.c \
+ print-ftp.c \
+ print-geneve.c \
+ print-geonet.c \
+ print-gre.c \
+ print-hncp.c \
+ print-hsrp.c \
+ print-http.c \
+ print-icmp.c \
+ print-icmp6.c \
+ print-igmp.c \
+ print-igrp.c \
+ print-ip-demux.c \
+ print-ip.c \
+ print-ip6.c \
+ print-ip6opts.c \
+ print-ipcomp.c \
+ print-ipfc.c \
+ print-ipnet.c \
+ print-ipoib.c \
+ print-ipx.c \
+ print-isakmp.c \
+ print-isoclns.c \
+ print-juniper.c \
+ print-krb.c \
+ print-l2tp.c \
+ print-lane.c \
+ print-ldp.c \
+ print-lisp.c \
+ print-llc.c \
+ print-lldp.c \
+ print-lmp.c \
+ print-loopback.c \
+ print-lspping.c \
+ print-lwapp.c \
+ print-lwres.c \
+ print-m3ua.c \
+ print-macsec.c \
+ print-mobile.c \
+ print-mobility.c \
+ print-mpcp.c \
+ print-mpls.c \
+ print-mptcp.c \
+ print-msdp.c \
+ print-msnlb.c \
+ print-nflog.c \
+ print-nfs.c \
+ print-nsh.c \
+ print-ntp.c \
+ print-null.c \
+ print-olsr.c \
+ print-openflow-1.0.c \
+ print-openflow-1.3.c \
+ print-openflow.c \
+ print-ospf.c \
+ print-ospf6.c \
+ print-otv.c \
+ print-pflog.c \
+ print-pgm.c \
+ print-pim.c \
+ print-pktap.c \
+ print-ppi.c \
+ print-ppp.c \
+ 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-rsvp.c \
+ print-rt6.c \
+ print-rtsp.c \
+ print-rx.c \
+ print-sctp.c \
+ print-sflow.c \
+ print-sip.c \
+ print-sl.c \
+ print-sll.c \
+ print-slow.c \
+ print-smtp.c \
+ print-snmp.c \
+ print-someip.c \
+ print-ssh.c \
+ print-stp.c \
+ print-sunatm.c \
+ print-sunrpc.c \
+ print-symantec.c \
+ print-syslog.c \
+ print-tcp.c \
+ print-telnet.c \
+ print-tftp.c \
+ print-timed.c \
+ print-tipc.c \
+ print-token.c \
+ print-udld.c \
+ print-udp.c \
+ print-unsupported.c \
+ print-usb.c \
+ print-vjc.c \
+ print-vqp.c \
+ print-vrrp.c \
+ print-vsock.c \
+ print-vtp.c \
+ print-vxlan-gpe.c \
+ print-vxlan.c \
+ print-wb.c \
+ print-whois.c \
+ print-zep.c \
+ print-zephyr.c \
+ print-zeromq.c \
+ signature.c \
+ strtoaddr.c \
+ util-print.c
LOCALSRC = @LOCALSRC@
-GENSRC = version.c
LIBOBJS = @LIBOBJS@
LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o) ${LOCALSRC:.c=.o} ${LIBOBJS}
LIBNETDISSECT=libnetdissect.a
-SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC)
+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) $(GENSRC:.c=.o) $(LIBNETDISSECT_OBJ)
+OBJ = $(CSRC:.c=.o)
HDR = \
addrtoname.h \
+ addrtostr.h \
af.h \
ah.h \
appletalk.h \
+ ascii_strcasecmp.h \
atm.h \
- atmuni31.h \
- bootp.h \
- bgp.h \
chdlc.h \
+ compiler-tests.h \
cpack.h \
- decnet.h \
- decode_prefix.h \
- ether.h \
+ diag-control.h \
ethertype.h \
extract.h \
+ fptype.h \
+ ftmacros.h \
+ funcattrs.h \
+ getservent.h \
gmpls.h \
- gmt2local.h \
- interface.h \
interface.h \
ip.h \
ip6.h \
mpls.h \
nameser.h \
netdissect.h \
+ netdissect-alloc.h \
+ netdissect-ctype.h \
+ netdissect-stdinc.h \
nfs.h \
nfsfh.h \
nlpid.h \
+ ntp.h \
openflow.h \
ospf.h \
oui.h \
pcap-missing.h \
+ pflog.h \
ppp.h \
+ print.h \
rpc_auth.h \
rpc_msg.h \
- setsignal.h \
signature.h \
slcompress.h \
smb.h \
+ status-exit-codes.h \
+ strtoaddr.h \
tcp.h \
- tcpdump-stdinc.h \
- udp.h
+ timeval-operations.h \
+ udp.h \
+ varattrs.h
TAGHDR = \
- /usr/include/arpa/tftp.h \
- /usr/include/net/if_arp.h \
- /usr/include/net/slip.h \
/usr/include/netinet/if_ether.h \
- /usr/include/netinet/in.h \
- /usr/include/netinet/ip_icmp.h \
- /usr/include/netinet/tcp.h \
- /usr/include/netinet/udp.h \
- /usr/include/protocols/routed.h
+ /usr/include/netinet/in.h
-TAGFILES = $(SRC) $(HDR) $(TAGHDR)
+TAGFILES = $(SRC) $(HDR) $(TAGHDR) $(LIBNETDISSECT_SRC) \
+ print-smb.c smbutil.c
-CLEANFILES = $(PROG) $(OBJ) $(GENSRC)
+CLEANFILES = $(PROG) $(OBJ) $(LIBNETDISSECT_OBJ)
EXTRA_DIST = \
CHANGES \
+ CMakeLists.txt \
+ CONTRIBUTING.md \
CREDITS \
- INSTALL.txt \
+ 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/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.in \
+ 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/addrinfo.h \
- missing/dlnames.c \
missing/datalinks.c \
- missing/getnameinfo.c \
- missing/inet_aton.c \
- missing/inet_ntop.c \
- missing/inet_pton.c \
- missing/snprintf.c \
- missing/sockstorage.h \
- missing/strdup.c \
+ missing/dlnames.c \
+ missing/getopt_long.c \
+ missing/getopt_long.h \
+ missing/getservent.c \
+ missing/pcap_dump_ftell.c \
missing/strlcat.c \
missing/strlcpy.c \
missing/strsep.c \
mkdep \
packetdat.awk \
- pcap_dump_ftell.c \
- print-babel.c \
- print-dhcp6.c \
- print-frag6.c \
- print-icmp6.c \
- print-ip6.c \
- print-ip6opts.c \
- print-mobility.c \
- print-netbios.c \
- print-ospf6.c \
- print-pflog.c \
- print-ripng.c \
- print-rt6.c \
print-smb.c \
send-ack.awk \
smbutil.c \
stime.awk \
- strcasecmp.c \
- tcpdump.1.in \
- vfprintf.c \
- win32/Include/bittypes.h \
- win32/Include/errno.h \
- win32/Include/getopt.h \
- win32/Include/w32_fzs.h \
- win32/Src/getopt.c \
- win32/prj/GNUmakefile \
- win32/prj/WinDump.dsp \
- win32/prj/WinDump.dsw
-
-TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print`
-
-all: $(PROG) $(LIBNETDISSECT)
-
-$(PROG): $(OBJ) @V_PCAPDEP@
+ tcpdump.1.in
+
+TEST_DIST= `git -C "$$DIR" ls-files tests | grep -v 'tests/\..*'`
+
+RELEASE_FILES = $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST)
+
+all: $(PROG)
+
+$(PROG): $(OBJ) @V_PCAPDEP@ $(LIBNETDISSECT)
@rm -f $@
- $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
+ $(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)
+ $(AR) cr $@ $(LIBNETDISSECT_OBJ)
$(RANLIB) $@
datalinks.o: $(srcdir)/missing/datalinks.c
$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c
dlnames.o: $(srcdir)/missing/dlnames.c
$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c
-getnameinfo.o: $(srcdir)/missing/getnameinfo.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getnameinfo.c
-getaddrinfo.o: $(srcdir)/missing/getaddrinfo.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getaddrinfo.c
-inet_pton.o: $(srcdir)/missing/inet_pton.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_pton.c
-inet_ntop.o: $(srcdir)/missing/inet_ntop.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_ntop.c
-inet_aton.o: $(srcdir)/missing/inet_aton.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_aton.c
-snprintf.o: $(srcdir)/missing/snprintf.c
- $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c
+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
strlcat.o: $(srcdir)/missing/strlcat.c
$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
strlcpy.o: $(srcdir)/missing/strlcpy.c
$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
strsep.o: $(srcdir)/missing/strsep.c
$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strsep.c
-
-version.o: version.c
- $(CC) $(FULL_CFLAGS) -c version.c
-
-version.c: $(srcdir)/VERSION
- @rm -f $@
- if grep GIT ${srcdir}/VERSION >/dev/null; then \
- read ver <${srcdir}/VERSION; \
- echo $$ver | tr -d '\012'; \
- date +_%Y_%m_%d; \
- else \
- cat ${srcdir}/VERSION; \
- fi | sed -e 's/.*/const char version[] = "&";/' > $@
+pcap_dump_ftell.o: $(srcdir)/missing/pcap_dump_ftell.c
+ $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/pcap_dump_ftell.c
install: all
- [ -d $(DESTDIR)$(sbindir) ] || \
- (mkdir -p $(DESTDIR)$(sbindir); chmod 755 $(DESTDIR)$(sbindir))
- $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
- $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG).`cat ${srcdir}/VERSION`
+ [ -d $(DESTDIR)$(bindir) ] || \
+ (mkdir -p $(DESTDIR)$(bindir); chmod 755 $(DESTDIR)$(bindir))
+ $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(bindir)/$(PROG)
+ $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(bindir)/$(PROG).`cat ${srcdir}/VERSION`
[ -d $(DESTDIR)$(mandir)/man1 ] || \
(mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1)
$(INSTALL_DATA) $(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
uninstall:
- rm -f $(DESTDIR)$(sbindir)/$(PROG)
+ rm -f $(DESTDIR)$(bindir)/$(PROG)
+ rm -f $(DESTDIR)$(bindir)/$(PROG).`cat ${srcdir}/VERSION`
rm -f $(DESTDIR)$(mandir)/man1/$(PROG).1
-lint: $(GENSRC)
- lint -hbxn $(SRC) | \
+lint:
+ lint -hbxn $(SRC) $(LIBNETDISSECT_SRC) | \
grep -v 'struct/union .* never defined' | \
grep -v 'possible pointer alignment problem'
clean:
- rm -f $(CLEANFILES) $(PROG)-`cat 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
- rm -rf autom4te.cache
+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
check: tcpdump
- (cd tests && ./TESTrun.sh)
+ $(srcdir)/tests/TESTrun
+
+extags: $(TAGFILES)
+ ctags $(TAGFILES)
tags: $(TAGFILES)
ctags -wtd $(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:
- @cwd=`pwd` ; dir=`basename $$cwd` ; 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
+ @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: $(GENSRC)
- $(MKDEP) -c $(CC) -m $(DEPENDENCY_CFLAG) $(DEFS) $(INCLS) $(SRC)
+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