configure: Call a function from libgeoip in check_libgeoip()
[netsniff-ng.git] / configure
blob2c9142dc74c29f053b2f4f8794ea906292077e6a
1 #!/bin/bash
2 # This isn't a configure generated by autoconf!
4 MISSING_PKG_CONFIG=0
5 MISSING_DEFS=0
6 MISSING_NACL=0
8 [ -z $CC ] && CC=cc
10 TMPDIR=$(mktemp -d config.XXXXXX)
11 trap 'status=$?; rm -rf $TMPDIR; exit $status' EXIT HUP INT QUIT TERM
13 check_pkg_config()
15 echo -n "[*] Checking pkg-config ... "
17 if [ "x$(which pkg-config)" == "x" ] ; then
18 echo "[NO]"
19 MISSING_PKG_CONFIG=1
20 else
21 echo "[YES]"
25 check_ccache()
27 echo -n "[*] Checking ccache ... "
29 if [ "x$(which ccache)" == "x" ] ; then
30 echo "[NO]"
31 echo "CONFIG_CCACHE=" >> Config
32 else
33 echo "[YES]"
34 echo "CONFIG_CCACHE=ccache" >> Config
38 check_nacl()
40 echo -n "[*] Checking nacl ... "
42 cat > $TMPDIR/nacltest.c << EOF
43 #include "crypto_hash_sha512.h"
44 #include "crypto_verify_32.h"
45 #include "crypto_hash_sha512.h"
46 #include "crypto_box_curve25519xsalsa20poly1305.h"
47 #include "crypto_scalarmult_curve25519.h"
48 #include "crypto_auth_hmacsha512256.h"
50 int main(void) { }
51 EOF
53 if [ -z $NACL_INC_DIR ] ; then
54 NACL_INC_DIR="/usr/include/nacl"
57 if [ -z $NACL_LIB_DIR ] ; then
58 NACL_LIB_DIR="/usr/lib"
61 LDFLAGS="-L $NACL_LIB_DIR"
62 CFLAGS="-I $NACL_INC_DIR"
64 $CC $CFLAGS $LDFLAGS -o $TMPDIR/nacltest $TMPDIR/nacltest.c >> $TMPDIR/config.log 2>&1
65 if [ ! -x $TMPDIR/nacltest ] ; then
66 echo "[NO]"
67 MISSING_NACL=1
68 else
69 echo "[YES]"
70 echo "CONFIG_NACL_INC_DIR:=$NACL_INC_DIR" >> Config
71 echo "CONFIG_NACL_LIB_DIR:=$NACL_LIB_DIR" >> Config
75 check_libnl()
77 echo -n "[*] Checking libnl ... "
79 cat > $TMPDIR/libnltest.c << EOF
80 #include <libnl3/netlink/genl/genl.h>
81 #include <libnl3/netlink/genl/family.h>
82 #include <libnl3/netlink/genl/ctrl.h>
83 #include <libnl3/netlink/msg.h>
84 #include <libnl3/netlink/attr.h>
85 #include <libnl3/netlink/version.h>
87 #if LIBNL_VER_NUM < LIBNL_VER(3,0)
88 # error incompatible libnl version
89 #endif
91 void main(void)
93 struct nl_sock *sock = nl_socket_alloc();
94 struct nl_cache *nl_cache;
95 int ret = genl_connect(sock);
97 ret = genl_ctrl_alloc_cache(sock, &nl_cache);
99 EOF
101 $CC \
102 $(pkg-config --cflags libnl-3.0) \
103 $(pkg-config --cflags libnl-genl-3.0) \
104 -o $TMPDIR/libnltest \
105 $TMPDIR/libnltest.c \
106 $(pkg-config --libs libnl-3.0) \
107 $(pkg-config --libs libnl-genl-3.0) \
108 >> $TMPDIR/config.log 2>&1
109 if [ ! -x $TMPDIR/libnltest ] ; then
110 echo "[NO]"
111 MISSING_DEFS=1
112 else
113 echo "[YES]"
117 check_tpacket()
119 echo -n "[*] Checking tpacket ... "
121 cat > $TMPDIR/tpackettest.c << EOF
122 #include <stdio.h>
123 #include <linux/if_packet.h>
125 struct tpacket3_hdr *hdr;
127 void main(void)
129 printf("%d\n", hdr->tp_status);
133 $CC -o $TMPDIR/tpackettest $TMPDIR/tpackettest.c >> $TMPDIR/config.log 2>&1
134 if [ ! -x $TMPDIR/tpackettest ] ; then
135 echo "[NO]"
136 MISSING_DEFS=1
137 else
138 echo "[YES]"
142 check_ncurses()
144 echo -n "[*] Checking ncurses ... "
146 cat > $TMPDIR/ncursestest.c << EOF
147 #include <curses.h>
149 void main(void)
151 WINDOW *screen = initscr();
155 $CC \
156 $(pkg-config --cflags ncurses) \
157 -o $TMPDIR/ncursestest $TMPDIR/ncursestest.c \
158 $(pkg-config --libs ncurses) \
159 >> $TMPDIR/config.log 2>&1
160 if [ ! -x $TMPDIR/ncursestest ] ; then
161 echo "[NO]"
162 MISSING_DEFS=1
163 else
164 echo "[YES]"
168 check_libgeoip()
170 echo -n "[*] Checking libGeoIP ... "
172 cat > $TMPDIR/geoiptest.c << EOF
173 #include <GeoIP.h>
174 #include <GeoIPCity.h>
176 void main(void)
178 GeoIP *geoip;
179 int dbs[] = {
180 GEOIP_CITY_EDITION_REV1,
181 GEOIP_CITY_EDITION_REV1_V6,
182 GEOIP_COUNTRY_EDITION,
183 GEOIP_COUNTRY_EDITION_V6,
184 GEOIP_ASNUM_EDITION,
185 GEOIP_ASNUM_EDITION_V6,
188 geoip = GeoIP_new(0);
192 $CC -o $TMPDIR/geoiptest $TMPDIR/geoiptest.c -lGeoIP >> $TMPDIR/config.log 2>&1
193 if [ ! -x $TMPDIR/geoiptest ] ; then
194 echo "[NO]"
195 MISSING_DEFS=1
196 else
197 echo "[YES]"
201 check_libnf_ct()
203 echo -n "[*] Checking libnetfilter-conntrack ... "
205 cat > $TMPDIR/nfcttest.c << EOF
206 #include <libnetfilter_conntrack/libnetfilter_conntrack.h>
207 #include <libnetfilter_conntrack/libnetfilter_conntrack_tcp.h>
208 #include <libnetfilter_conntrack/libnetfilter_conntrack_dccp.h>
209 #include <libnetfilter_conntrack/libnetfilter_conntrack_sctp.h>
211 void main(void)
213 struct nf_conntrack *ct;
215 const uint32_t id = nfct_get_attr_u32(ct, ATTR_ID);
219 $CC -o $TMPDIR/nfcttest $TMPDIR/nfcttest.c -lnetfilter_conntrack >> $TMPDIR/config.log 2>&1
220 if [ ! -x $TMPDIR/nfcttest ] ; then
221 echo "[NO]"
222 MISSING_DEFS=1
223 else
224 echo "[YES]"
228 check_zlib()
230 echo -n "[*] Checking libz ... "
232 cat > $TMPDIR/ztest.c << EOF
233 #include "zlib.h"
235 void main(void)
237 gzFile fp;
239 fp = gzopen("foo.gz", "rb");
243 $CC -o $TMPDIR/ztest $TMPDIR/ztest.c -lz >> $TMPDIR/config.log 2>&1
244 if [ ! -x $TMPDIR/ztest ] ; then
245 echo "[NO]"
246 MISSING_DEFS=1
247 else
248 echo "[YES]"
252 check_urcu()
254 echo -n "[*] Checking liburcu ... "
256 cat > $TMPDIR/urcutest.c << EOF
257 #include <urcu.h>
259 void main(void)
261 rcu_init();
262 synchronize_rcu();
266 $CC -o $TMPDIR/urcutest $TMPDIR/urcutest.c -lurcu >> $TMPDIR/config.log 2>&1
267 if [ ! -x $TMPDIR/urcutest ] ; then
268 echo "[NO]"
269 MISSING_DEFS=1
270 else
271 echo "[YES]"
275 echo "# This file is autogenerated by the configure script" > Config
276 check_pkg_config
278 if [ "$MISSING_PKG_CONFIG" == "1" ] ; then
279 echo "[!] pkg-config is not installed on your system or not in the PATH"
280 exit 1
283 check_ccache
284 check_nacl
285 check_libnl
286 check_tpacket
287 check_libnf_ct
288 check_ncurses
289 check_libgeoip
290 check_zlib
291 check_urcu
293 if [ "$MISSING_DEFS" == "1" ] ; then
294 echo "[!] Some libraries or header definitions are missing or too old."
295 echo " Please refer to the INSTALL file for the libraries needed to"
296 echo " build netsniff-ng."
297 exit 1
300 if [ "$MISSING_NACL" == "1" ] ; then
301 echo "[!] The NaCl crypto library is currently not present on your"
302 echo " system or could not be found. Either install it from your"
303 echo " distro or build it manually using 'make nacl' and make sure"
304 echo " that the NACL_INC_DIR and NACL_LIB_DIR variables are set"
305 echo " appropriately."
306 exit 1
309 echo "CONFIG_OK=1" >> Config
311 exit 0