blob: 4fd01320e2d7ce28e17c77b38d9fdac36e04ebf5 [file] [log] [blame]
jjako52c62342003-01-28 21:58:05 +00001# Process this file with autoconf to produce a configure script.
Harald Welte632e8432017-09-05 18:12:14 +02002AC_INIT(osmo-ggsn, m4_esyscmd([./git-version-gen .tarball-version]), osmocom-net-gprs@lists.osmocom.org)
jjako52c62342003-01-28 21:58:05 +00003AC_CONFIG_SRCDIR([gtp/gtp.c])
4AM_CONFIG_HEADER([config.h])
5#AC_CONFIG_HEADER([config.h])
jjako52c24142002-12-16 13:33:51 +00006
Neels Hofmeyree9d34a2016-10-01 00:51:13 +02007dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
8AC_CONFIG_AUX_DIR([.])
9
Harald Welte1d8ffc62017-10-12 19:30:49 +080010AC_CONFIG_TESTDIR(tests)
jjako77edc822004-09-10 17:19:31 +000011AC_CANONICAL_SYSTEM
12
Harald Weltebdca4b72011-11-02 13:11:56 +010013dnl kernel style compile messages
14m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
15
jjako52c62342003-01-28 21:58:05 +000016# Checks for programs.
jjako52c24142002-12-16 13:33:51 +000017AC_PROG_CC
18AC_PROG_INSTALL
jjako52c62342003-01-28 21:58:05 +000019AC_PROG_AWK
20AC_PROG_CPP
21AC_PROG_CXX
Holger Hans Peter Freythere071e302012-11-02 10:00:10 +010022LT_INIT
jjako52c24142002-12-16 13:33:51 +000023
Neels Hofmeyr38929c92016-10-01 00:51:26 +020024dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
25AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
26if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
27 AC_MSG_WARN([You need to install pkg-config])
28fi
29PKG_PROG_PKG_CONFIG([0.20])
30
Emmanuel Bretelle2a103682010-09-07 17:01:20 +020031AC_CONFIG_MACRO_DIR([m4])
32AC_CONFIG_LIBOBJ_DIR([lib])
jjako52c62342003-01-28 21:58:05 +000033
jjakoc13c9df2003-07-07 15:15:38 +000034AC_ARG_ENABLE(static-exec,
35 [ --enable-static-exec Enable static linking of executables],
36 [ EXEC_LDFLAGS="-all-static"])
37
38AC_SUBST(EXEC_LDFLAGS)
jjako52c24142002-12-16 13:33:51 +000039
jjakoe31b2402004-12-30 23:07:42 +000040
jjako77edc822004-09-10 17:19:31 +000041case "${host}" in
jjakoe31b2402004-12-30 23:07:42 +000042 i*86-*-linux-gnu*)
Holger Hans Peter Freyther0aa17872012-11-06 14:10:17 +010043 EXEC_LDADD="" ;;
jjako77edc822004-09-10 17:19:31 +000044 *solaris*)
jjakoe31b2402004-12-30 23:07:42 +000045 EXEC_LDADD="-lresolv -lsocket -lnsl" ;;
jjako77edc822004-09-10 17:19:31 +000046esac
47
jjakoe31b2402004-12-30 23:07:42 +000048AC_SUBST(EXEC_LDADD)
jjako77edc822004-09-10 17:19:31 +000049
jjako77edc822004-09-10 17:19:31 +000050
jjako52c62342003-01-28 21:58:05 +000051# Checks for libraries.
52# FIXME: Replace `main' with a function in `-le':
jjakoc13c9df2003-07-07 15:15:38 +000053#AC_CHECK_LIB([e], [main])
jjako52c62342003-01-28 21:58:05 +000054# FIXME: Replace `main' with a function in `-lgtp':
jjakoc13c9df2003-07-07 15:15:38 +000055#AC_CHECK_LIB([gtp], [main])
jjako52c62342003-01-28 21:58:05 +000056# FIXME: Replace `main' with a function in `-links':
jjakoc13c9df2003-07-07 15:15:38 +000057#AC_CHECK_LIB([inks], [main])
jjako52c62342003-01-28 21:58:05 +000058
Maxbdc504e2017-08-28 12:15:03 +020059dnl include release helper
60RELMAKE='-include osmo-release.mk'
61AC_SUBST([RELMAKE])
62
Pablo Neira Ayuso466da992016-05-10 19:08:29 +020063dnl GTP Linux kernel dependencies
64AC_ARG_ENABLE([gtp-linux],
65 AS_HELP_STRING([--enable-gtp-linux], [Build GTP tunneling Linux kernel]),
66 [enable_gtp_linux="$enableval"], [enable_gtp_linux="no"])
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010067
Pablo Neira Ayuso466da992016-05-10 19:08:29 +020068AS_IF([test "x$enable_gtp_linux" = "xyes"], [
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010069 PKG_CHECK_MODULES([LIBGTPNL], [libgtpnl >= 1.0.0])
Andreas Schultzc80680a2015-11-17 12:22:44 +010070])
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010071
Pablo Neira Ayuso466da992016-05-10 19:08:29 +020072AM_CONDITIONAL([ENABLE_GTP_KERNEL], [test "$enable_gtp_linux" = "yes"])
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +010073
jjako52c62342003-01-28 21:58:05 +000074# Checks for header files.
jjako52c24142002-12-16 13:33:51 +000075AC_HEADER_STDC
76AC_HEADER_SYS_WAIT
Holger Hans Peter Freyther9c7fd8e2014-12-04 16:32:37 +010077AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdint.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h])
jjako52c24142002-12-16 13:33:51 +000078
jjako77edc822004-09-10 17:19:31 +000079# Check for if header
80AC_CHECK_HEADERS([linux/if.h net/if.h])
81
82# Check for tun header
83AC_CHECK_HEADERS([linux/if_tun.h net/if_tun.h])
84
85# Check for netlink and rtnetlink headers
86AC_CHECK_HEADERS([linux/netlink.h linux/rtnetlink.h])
87
88
jjako52c62342003-01-28 21:58:05 +000089# Checks for typedefs, structures, and compiler characteristics.
jjako52c24142002-12-16 13:33:51 +000090AC_C_CONST
jjako52c62342003-01-28 21:58:05 +000091AC_TYPE_MODE_T
jjako52c24142002-12-16 13:33:51 +000092AC_TYPE_SIZE_T
93AC_HEADER_TIME
94
jjako77edc822004-09-10 17:19:31 +000095# check for ifaliasreq
96AC_MSG_CHECKING(whether struct ifaliasreq exist)
97AH_TEMPLATE(HAVE_IFALIASREQ)
98AC_EGREP_HEADER(ifaliasreq, net/if.h,
99[AC_MSG_RESULT(yes)
100 AC_DEFINE([HAVE_IFALIASREQ])],
101 AC_MSG_RESULT(no))
102
103# check for ifreq.ifru_netmask
104AC_MSG_CHECKING(whether struct ifreq.ifru_netmask exist)
105AH_TEMPLATE(HAVE_IFREQ_IFRU_NETMASK)
106AC_EGREP_HEADER(ifru_netmask, linux/if.h,
107[AC_MSG_RESULT(yes)
108 AC_DEFINE([HAVE_IFREQ_IFRU_NETMASK])],
109 AC_MSG_RESULT(no))
110
111
112# check for rt_msghdr
113AC_MSG_CHECKING(whether struct rt_msghdr exist)
114AH_TEMPLATE(HAVE_RT_MSGHDR)
115AC_EGREP_HEADER(rt_msghdr, net/route.h,
116[AC_MSG_RESULT(yes)
117 AC_DEFINE([HAVE_RT_MSGHDR])],
118 AC_MSG_RESULT(no))
119
Harald Welte63ebccd2017-08-02 21:10:09 +0200120AC_MSG_CHECKING(whether struct iphdr exists)
121AH_TEMPLATE(HAVE_IPHDR)
122AC_EGREP_HEADER(struct iphdr, netinet/ip.h,
123[AC_MSG_RESULT(yes)
124 AC_DEFINE([HAVE_IPHDR])],
125 AC_MSG_RESULT(no))
jjako77edc822004-09-10 17:19:31 +0000126
jjako52c62342003-01-28 21:58:05 +0000127# Checks for library functions.
jjako52c24142002-12-16 13:33:51 +0000128AC_PROG_GCC_TRADITIONAL
jjakoacba8e62005-03-14 21:53:10 +0000129# AC_FUNC_MALLOC
jjako1d3db972004-01-16 09:56:56 +0000130# AC_FUNC_MEMCMP
jjako52c62342003-01-28 21:58:05 +0000131AC_CHECK_FUNCS([gethostbyname inet_ntoa memset select socket strdup strerror strtol])
jjako1d3db972004-01-16 09:56:56 +0000132AC_CHECK_FUNCS(inet_aton inet_addr, break)
133
134# check for getopt in standard library
135adl_FUNC_GETOPT_LONG
jjako52c24142002-12-16 13:33:51 +0000136
Harald Weltea8921772017-02-23 21:55:33 +0100137AM_INIT_AUTOMAKE([foreign])
jjako52c24142002-12-16 13:33:51 +0000138
Holger Hans Peter Freytherca524ef2014-12-03 19:59:15 +0100139PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.6.4)
140PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.3.0)
Max727417d2016-08-02 17:10:38 +0200141PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl)
Holger Hans Peter Freytherca524ef2014-12-03 19:59:15 +0100142
Neels Hofmeyr878ece72017-11-17 01:43:36 +0100143AC_ARG_ENABLE(sanitize,
144 [AS_HELP_STRING(
145 [--enable-sanitize],
146 [Compile with address sanitizer enabled],
147 )],
148 [sanitize=$enableval], [sanitize="no"])
149if test x"$sanitize" = x"yes"
150then
151 CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
152 CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
153fi
154
jjako52c62342003-01-28 21:58:05 +0000155AC_CONFIG_FILES([Makefile
156 doc/Makefile
Harald Weltece316f42017-09-05 22:24:45 +0200157 doc/examples/Makefile
jjako52c62342003-01-28 21:58:05 +0000158 ggsn/Makefile
159 gtp/Makefile
Harald Welte6fc42402011-05-10 17:44:39 +0200160 lib/Makefile
jjako52c62342003-01-28 21:58:05 +0000161 intl/Makefile
162 po/Makefile
163 sgsnemu/Makefile
jjakoc13c9df2003-07-07 15:15:38 +0000164 tests/Makefile
Harald Welte1d8ffc62017-10-12 19:30:49 +0800165 tests/lib/Makefile
Harald Welte5943cbb2017-10-13 15:57:01 +0200166 tests/gtp/Makefile
Sylvain Munautca36f292011-10-18 13:15:29 +0200167 libgtp.pc
Harald Welte632e8432017-09-05 18:12:14 +0200168 osmo-ggsn.spec])
jjako52c62342003-01-28 21:58:05 +0000169AC_OUTPUT
Pablo Neira Ayuso4b075b62015-11-17 12:22:42 +0100170
171echo "
Harald Welte632e8432017-09-05 18:12:14 +0200172osmo-ggsn Configuration:
Pablo Neira Ayuso466da992016-05-10 19:08:29 +0200173 GTP Linux kernel support: ${enable_gtp_linux}"