]> The Tcpdump Group git mirrors - tcpdump/blob - build.sh
build.sh, build_matrix.sh: Use more the PREFIX variable
[tcpdump] / build.sh
1 #!/usr/bin/env bash
2
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).
6
7 set -e
8
9 # BUILD_LIBPCAP: no or yes
10 BUILD_LIBPCAP=${BUILD_LIBPCAP:-no}
11 # REMOTE: no or yes
12 REMOTE=${REMOTE:-no}
13 # CC: gcc or clang
14 CC=${CC:-gcc}
15 # CMAKE: no or yes
16 CMAKE=${CMAKE:-no}
17 # CRYPTO: no or yes
18 CRYPTO=${CRYPTO:-no}
19 # SMB: no or yes
20 SMB=${SMB:-no}
21 # Install directory prefix
22 PREFIX=/tmp/local
23 # For TESTrun
24 export TCPDUMP_BIN=$PREFIX/bin/tcpdump
25
26 travis_fold() {
27 local action="$1"
28 local name="$2"
29 if [ "$TRAVIS" != true ]; then return; fi
30 echo -ne "travis_fold:$action:$LABEL.script.$name\\r"
31 sleep 1
32 }
33
34 # Run a command after displaying it
35 run_after_echo() {
36 echo -n '$ '
37 echo "$@"
38 $@
39 }
40
41 # LABEL is needed to build the travis fold labels
42 LABEL="$BUILD_LIBPCAP.$REMOTE.$CC.$CMAKE.$CRYPTO.$SMB"
43 if [ "$CMAKE" = no ]; then
44 echo '$ ./configure [...]'
45 travis_fold start configure
46 if [ "$BUILD_LIBPCAP" = yes ]; then
47 echo "Using PKG_CONFIG_PATH=$PKG_CONFIG_PATH"
48 ./configure --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix=$PREFIX
49 export LD_LIBRARY_PATH=$PREFIX/lib
50 else
51 ./configure --disable-local-libpcap --with-crypto="$CRYPTO" --enable-smb="$SMB" --prefix=$PREFIX
52 fi
53 travis_fold end configure
54 else
55 rm -rf build
56 mkdir build
57 cd build
58 echo '$ cmake [...]'
59 travis_fold start cmake
60 if [ "$BUILD_LIBPCAP" = yes ]; then
61 cmake -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=$PREFIX ..
62 export LD_LIBRARY_PATH=$PREFIX/lib
63 else
64 cmake -DWITH_CRYPTO="$CRYPTO" -DENABLE_SMB="$SMB" -DCMAKE_INSTALL_PREFIX=$PREFIX ..
65 fi
66 travis_fold end cmake
67 fi
68 run_after_echo "make -s clean"
69 run_after_echo "make -s CFLAGS=-Werror"
70 echo '$ make install'
71 travis_fold start make_install
72 make install
73 travis_fold end make_install
74 run_after_echo "$TCPDUMP_BIN --version"
75 run_after_echo "$TCPDUMP_BIN -h"
76 run_after_echo "$TCPDUMP_BIN -D"
77 system=$(uname -s)
78 if [ "$system" = Linux ]; then
79 run_after_echo "ldd $TCPDUMP_BIN"
80 fi
81 if [ "$TRAVIS" = true ]; then
82 if [ -n "$LD_LIBRARY_PATH" ]; then
83 run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -J"
84 run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -L"
85 else
86 run_after_echo "sudo $TCPDUMP_BIN -J"
87 run_after_echo "sudo $TCPDUMP_BIN -L"
88 fi
89 fi
90 if [ "$BUILD_LIBPCAP" = yes ]; then
91 run_after_echo "make check"
92 fi
93 if [ "$CMAKE" = no ]; then
94 system=$(uname -s)
95 if [ "$system" = Darwin ] || [ "$system" = Linux ]; then
96 run_after_echo "make releasetar"
97 fi
98 fi
99 if [ "$TRAVIS" = true ]; then
100 if [ "$TRAVIS_OS_NAME" = linux ] && [ "$TRAVIS_CPU_ARCH" != ppc64le ] && [ "$TRAVIS_CPU_ARCH" != s390x ] && [ "$TRAVIS_CPU_ARCH" != arm64 ]; then
101 if [ -n "$LD_LIBRARY_PATH" ]; then
102 run_after_echo "sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH $TCPDUMP_BIN -#n -c 10"
103 else
104 run_after_echo "sudo $TCPDUMP_BIN -#n -c 10"
105 fi
106 fi
107 fi
108 # The DEBUG_BUILD variable is not set by default to avoid Travis error message:
109 # "The job exceeded the maximum log length, and has been terminated."
110 # Setting it needs to reduce the matrix cases.
111 if [ "$TRAVIS" = true ] && [ -n "$DEBUG_BUILD" ] ; then
112 echo '$ cat Makefile [...]'
113 travis_fold start cat_makefile
114 if [ "$CMAKE" = no ]; then
115 sed -n '1,/DO NOT DELETE THIS LINE -- mkdep uses it/p' < Makefile
116 else
117 cat Makefile
118 fi
119 travis_fold end cat_makefile
120 echo '$ cat config.h'
121 travis_fold start cat_config_h
122 cat config.h
123 travis_fold end cat_config_h
124 if [ "$CMAKE" = no ]; then
125 echo '$ cat config.log'
126 travis_fold start cat_config_log
127 cat config.log
128 travis_fold end cat_config_log
129 fi
130 fi
131 # vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :