3 # This script runs one build with setup environment variables: BUILD_LIBPCAP,
4 # REMOTE, CC, CMAKE, CRYPTO and SMB
5 # (default: BUILD_LIBPCAP=no, REMOTE=no, CC=gcc, CMAKE=no, CRYPTO=no, SMB=no).
7 # BUILD_LIBPCAP: no or yes
8 BUILD_LIBPCAP
=${BUILD_LIBPCAP:-no}
13 # GCC and Clang recognize --version and print to stdout. Sun compilers
14 # recognize -V and print to stderr.
15 "$CC" --version 2>/dev
/null ||
"$CC" -V ||
:
22 # Install directory prefix
23 if [ -z "$PREFIX" ]; then
24 PREFIX
=$
(mktemp
-d -t tcpdump_build_XXXXXXXX
)
25 echo "PREFIX set to '$PREFIX'"
28 export TCPDUMP_BIN
="$PREFIX/bin/tcpdump"
30 # Run a command after displaying it
34 # shellcheck disable=SC2068
38 if [ "$CMAKE" = no
]; then
39 echo '$ ./configure [...]'
40 if [ "$BUILD_LIBPCAP" = yes ]; then
41 echo "Using PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
42 .
/configure
--with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
43 export LD_LIBRARY_PATH
="$PREFIX/lib"
45 .
/configure
--disable-local-libpcap --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
52 if [ "$BUILD_LIBPCAP" = yes ]; then
53 cmake
-DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_PREFIX_PATH="$PREFIX" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
54 export LD_LIBRARY_PATH
="$PREFIX/lib"
56 cmake
-DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
59 run_after_echo
"make -s clean"
60 run_after_echo
"make -s CFLAGS=-Werror"
63 run_after_echo
"$TCPDUMP_BIN --version"
64 run_after_echo
"$TCPDUMP_BIN -h"
65 run_after_echo
"$TCPDUMP_BIN -D"
68 Linux|FreeBSD|NetBSD|OpenBSD
)
69 run_after_echo
"ldd $TCPDUMP_BIN"
72 run_after_echo
"otool -L $TCPDUMP_BIN"
75 if [ "$CIRRUS_CI" = true
]; then
76 if [ -n "$LD_LIBRARY_PATH" ]; then
77 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -J"
78 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -L"
80 run_after_echo
"sudo $TCPDUMP_BIN -J"
81 run_after_echo
"sudo $TCPDUMP_BIN -L"
84 if [ "$BUILD_LIBPCAP" = yes ]; then
85 run_after_echo
"make check"
87 if [ "$CMAKE" = no
]; then
89 run_after_echo
"make releasetar"
91 if [ "$CIRRUS_CI" = true
]; then
92 if [ -n "$LD_LIBRARY_PATH" ]; then
93 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -#n -c 10"
95 run_after_echo
"sudo $TCPDUMP_BIN -#n -c 10"
98 # Beware that setting MATRIX_DEBUG will produce A LOT of additional output
99 # here and in any nested libpcap builds. Multiplied by the matrix size, the
100 # full output log size might exceed limits of some CI systems (as previously
101 # happened with Travis CI). Use with caution on a reduced matrix.
102 if [ "$MATRIX_DEBUG" = true
]; then
103 echo '$ cat Makefile [...]'
104 sed '/DO NOT DELETE THIS LINE -- mkdep uses it/q' < Makefile
105 echo '$ cat config.h'
107 if [ "$CMAKE" = no
]; then
108 echo '$ cat config.log'
112 if [ "$DELETE_PREFIX" = yes ]; then
115 # vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :