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).
9 # BUILD_LIBPCAP: no or yes
10 BUILD_LIBPCAP
=${BUILD_LIBPCAP:-no}
15 # GCC and Clang recognize --version and print to stdout. Sun compilers
16 # recognize -V and print to stderr.
17 "$CC" --version 2>/dev
/null ||
"$CC" -V ||
:
24 # Install directory prefix
25 if [ -z "$PREFIX" ]; then
26 PREFIX
=$
(mktemp
-d -t tcpdump_build_XXXXXXXX
)
27 echo "PREFIX set to '$PREFIX'"
30 export TCPDUMP_BIN
="$PREFIX/bin/tcpdump"
35 if [ "$TRAVIS" != true
]; then return; fi
36 echo -ne "travis_fold:$action:$LABEL.script.$name\\r"
40 # Run a command after displaying it
44 # shellcheck disable=SC2068
48 # LABEL is needed to build the travis fold labels
49 LABEL
="$BUILD_LIBPCAP.$REMOTE.$CC.$CMAKE.$CRYPTO.$SMB"
50 if [ "$CMAKE" = no
]; then
51 echo '$ ./configure [...]'
52 travis_fold start configure
53 if [ "$BUILD_LIBPCAP" = yes ]; then
54 echo "Using PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
55 .
/configure
--with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
56 export LD_LIBRARY_PATH
="$PREFIX/lib"
58 .
/configure
--disable-local-libpcap --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix="$PREFIX"
60 travis_fold end configure
66 travis_fold start cmake
67 if [ "$BUILD_LIBPCAP" = yes ]; then
68 cmake
-DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_PREFIX_PATH="$PREFIX" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
69 export LD_LIBRARY_PATH
="$PREFIX/lib"
71 cmake
-DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_INSTALL_PREFIX="$PREFIX" ..
75 run_after_echo
"make -s clean"
76 run_after_echo
"make -s CFLAGS=-Werror"
78 travis_fold start make_install
80 travis_fold end make_install
81 run_after_echo
"$TCPDUMP_BIN --version"
82 run_after_echo
"$TCPDUMP_BIN -h"
83 run_after_echo
"$TCPDUMP_BIN -D"
85 if [ "$system" = Linux
]; then
86 run_after_echo
"ldd $TCPDUMP_BIN"
88 if [ "$TRAVIS" = true
]; then
89 if [ -n "$LD_LIBRARY_PATH" ]; then
90 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -J"
91 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -L"
93 run_after_echo
"sudo $TCPDUMP_BIN -J"
94 run_after_echo
"sudo $TCPDUMP_BIN -L"
97 if [ "$BUILD_LIBPCAP" = yes ]; then
98 run_after_echo
"make check"
100 if [ "$CMAKE" = no
]; then
102 if [ "$system" = Darwin
] ||
[ "$system" = Linux
]; then
103 run_after_echo
"make releasetar"
106 if [ "$TRAVIS" = true
]; then
107 if [ "$TRAVIS_OS_NAME" = linux
] && [ "$TRAVIS_CPU_ARCH" != ppc64le
] && [ "$TRAVIS_CPU_ARCH" != s390x
] && [ "$TRAVIS_CPU_ARCH" != arm64
]; then
108 if [ -n "$LD_LIBRARY_PATH" ]; then
109 run_after_echo
"sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -#n -c 10"
111 run_after_echo
"sudo $TCPDUMP_BIN -#n -c 10"
115 # The DEBUG_BUILD variable is not set by default to avoid Travis error message:
116 # "The job exceeded the maximum log length, and has been terminated."
117 # Setting it needs to reduce the matrix cases.
118 if [ "$TRAVIS" = true
] && [ -n "$DEBUG_BUILD" ] ; then
119 echo '$ cat Makefile [...]'
120 travis_fold start cat_makefile
121 sed '/DO NOT DELETE THIS LINE -- mkdep uses it/q' < Makefile
122 travis_fold end cat_makefile
123 echo '$ cat config.h'
124 travis_fold start cat_config_h
126 travis_fold end cat_config_h
127 if [ "$CMAKE" = no
]; then
128 echo '$ cat config.log'
129 travis_fold start cat_config_log
131 travis_fold end cat_config_log
134 if [ "$DELETE_PREFIX" = yes ]; then
137 # vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :