blob: 92457f164eb8a28d76ab8a47865d58114b95fab2 [file] [log] [blame]
Harald Welte4cd3d8a2010-03-23 00:30:19 +08001AC_INIT([libosmocore],
2 m4_esyscmd([./git-version-gen .tarball-version]),
Holger Hans Peter Freyther8db70202012-03-26 16:34:37 +02003 [openbsc@lists.osmocom.org])
Harald Welte3cae0392010-02-20 21:09:24 +01004
Neels Hofmeyrcbdfa652016-09-30 23:45:28 +02005dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
6AC_CONFIG_AUX_DIR([.])
7
Sylvain Munaut69b1b8b2015-08-19 11:15:14 +02008AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects])
Holger Hans Peter Freytherf9eda742011-11-13 01:02:54 +01009AC_CONFIG_TESTDIR(tests)
Harald Welte3cae0392010-02-20 21:09:24 +010010
11dnl kernel style compile messages
12m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
Maxff932bb2017-07-04 18:19:38 +020014dnl include release helper
15RELMAKE='-include osmo-release.mk'
16AC_SUBST([RELMAKE])
17
Harald Welte3cae0392010-02-20 21:09:24 +010018dnl checks for programs
19AC_PROG_MAKE_SET
Diego Elio Pettenòd471a212012-06-29 13:01:19 -070020AC_PROG_MKDIR_P
Harald Welte3cae0392010-02-20 21:09:24 +010021AC_PROG_CC
22AC_PROG_INSTALL
Jan Engelhardtc2ddc4f2015-09-16 14:32:31 +020023LT_INIT([pic-only disable-static])
Harald Welte3cae0392010-02-20 21:09:24 +010024
Harald Welte4cd3d8a2010-03-23 00:30:19 +080025AC_CONFIG_MACRO_DIR([m4])
26
Eric099c8342020-04-10 22:10:13 +020027dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang
28AS_CASE(["$LD"],[*clang*],
29 [AS_CASE(["${host_os}"],
30 [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])])
31
Neels Hofmeyrfef2fa22016-08-08 15:38:35 +020032dnl check for pkg-config
33dnl * If pkg-config is missing, we get a "syntax error" for PKG_CHECK_MODULES.
34dnl Instead, we want to say that pkg-config and pkg.m4 are missing.
35dnl * The proper way is PKG_PROG_PKG_CONFIG() but unfortunately that does not
36dnl produce an intelligible error message if pkg-config is missing entirely
37dnl ("syntax error near unexpected token `0.20'").
38dnl * To produce a hint that pkg-config is missing, check for the pkg-config
39dnl binary; but AC_PATH_PROG breaks if the distribution provides only
40dnl prefixed (<arch>-pkg-config) versions, so just print a warning.
41AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
42if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
43 AC_MSG_WARN([You need to install pkg-config])
44fi
45PKG_PROG_PKG_CONFIG([0.20])
46
Tobias Engel597460f2012-10-24 17:52:52 +020047dnl check os: some linker flags not available on osx
48case $host in
49*-darwin*)
50 ;;
51*)
52 LTLDFLAGS_OSMOGB='-Wl,--version-script=$(srcdir)/libosmogb.map'
53 LTLDFLAGS_OSMOGSM='-Wl,--version-script=$(srcdir)/libosmogsm.map'
Vadim Yanitskiy3262f822016-09-23 01:48:59 +070054 LTLDFLAGS_OSMOCODING='-Wl,--version-script=$(srcdir)/libosmocoding.map'
Harald Welteed605782018-05-26 17:07:39 +020055 LTLDFLAGS_OSMOCTRL='-Wl,--version-script=$(srcdir)/libosmoctrl.map'
Tobias Engel597460f2012-10-24 17:52:52 +020056 ;;
57esac
58AC_SUBST(LTLDFLAGS_OSMOGB)
59AC_SUBST(LTLDFLAGS_OSMOGSM)
Vadim Yanitskiy272bd4f2017-08-31 17:53:04 +070060AC_SUBST(LTLDFLAGS_OSMOCODING)
Harald Welteed605782018-05-26 17:07:39 +020061AC_SUBST(LTLDFLAGS_OSMOCTRL)
Tobias Engel597460f2012-10-24 17:52:52 +020062
Harald Welte3cae0392010-02-20 21:09:24 +010063dnl checks for header files
64AC_HEADER_STDC
Neels Hofmeyr0c7826e2019-02-25 02:45:06 +010065AC_CHECK_HEADERS(execinfo.h sys/select.h sys/socket.h sys/timerfd.h syslog.h ctype.h netinet/tcp.h netinet/in.h)
Holger Hans Peter Freyther47723482011-11-09 11:26:15 +010066# for src/conv.c
67AC_FUNC_ALLOCA
Pau Espin Pedrolcacaa4a2018-05-04 19:21:58 +020068AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DLOPEN="$LIBS";LIBS=""])
69AC_SUBST(LIBRARY_DLOPEN)
70AC_SEARCH_LIBS([dlsym], [dl dld], [LIBRARY_DLSYM="$LIBS";LIBS=""])
71AC_SUBST(LIBRARY_DLSYM)
Holger Hans Peter Freytherc2c042d2014-04-17 23:19:10 +020072# for src/backtrace.c
73AC_CHECK_LIB(execinfo, backtrace, BACKTRACE_LIB=-lexecinfo, BACKTRACE_LIB=)
74AC_SUBST(BACKTRACE_LIB)
Harald Welte3cae0392010-02-20 21:09:24 +010075
Pau Espin Pedrold12f6982019-09-17 18:38:58 +020076# check for pthread (PTHREAD_CFLAGS, PTHREAD_LIBS)
77AX_PTHREAD
78
Alexander Couzensa2f696f2018-04-24 16:15:23 +020079# check for old glibc < 2.17 to get clock_gettime
80AC_SEARCH_LIBS([clock_gettime], [rt posix4], [LIBRARY_RT="$LIBS";LIBS=""])
81AC_SUBST(LIBRARY_RT)
82
Pau Espin Pedrol639c4082017-07-06 10:45:22 +020083AC_ARG_ENABLE(doxygen,
84 [AS_HELP_STRING(
85 [--disable-doxygen],
86 [Disable generation of documentation using doxygen],
87 )],
88 [doxygen=$enableval], [doxygen="yes"])
Harald Welte21e73c22011-08-17 19:33:06 +020089AC_PATH_PROG(DOXYGEN,doxygen,false)
Pau Espin Pedrol639c4082017-07-06 10:45:22 +020090AM_CONDITIONAL(HAVE_DOXYGEN, test $DOXYGEN != false && test "x$doxygen" = "xyes")
Harald Welte21e73c22011-08-17 19:33:06 +020091
Max4b2b0cc2017-07-10 14:32:48 +020092# check for syscal fallback on glibc < 2.25 - can be removed once glibc version requirement is bumped
93AC_CHECK_DECLS([SYS_getrandom], [], [], [[#include <sys/syscall.h>]])
94
Harald Welte3cae0392010-02-20 21:09:24 +010095# The following test is taken from WebKit's webkit.m4
96saved_CFLAGS="$CFLAGS"
97CFLAGS="$CFLAGS -fvisibility=hidden "
98AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden])
Alexander Huemer3d79f532011-05-24 15:16:13 +020099AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])],
Harald Welte3cae0392010-02-20 21:09:24 +0100100 [ AC_MSG_RESULT([yes])
101 SYMBOL_VISIBILITY="-fvisibility=hidden"],
102 AC_MSG_RESULT([no]))
103CFLAGS="$saved_CFLAGS"
104AC_SUBST(SYMBOL_VISIBILITY)
105
Harald Welte14c4c492018-06-28 08:28:52 +0200106AC_CHECK_FUNCS(clock_gettime localtime_r)
107
Harald Welte7c8e2cc2012-08-29 16:47:30 +0200108AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [
109 AC_CACHE_CHECK(
110 [whether struct tm has tm_gmtoff member],
111 osmo_cv_tm_includes_tm_gmtoff,
112 [AC_LINK_IFELSE([
113 AC_LANG_PROGRAM([
114 #include <time.h>
115 ], [
116 time_t t = time(NULL);
117 struct tm* lt = localtime(&t);
118 int off = lt->tm_gmtoff;
119 ])
120 ],
121 osmo_cv_tm_includes_tm_gmtoff=yes,
122 osmo_cv_tm_includes_tm_gmtoff=no
123 )]
124 )
125 if test "x$osmo_cv_tm_includes_tm_gmtoff" = xyes; then
126 AC_DEFINE(HAVE_TM_GMTOFF_IN_TM, 1,
127 [Define if struct tm has tm_gmtoff member.])
128 fi
129])
130
131CHECK_TM_INCLUDES_TM_GMTOFF
132
Pau Espin Pedrole188b8c2019-08-05 13:46:33 +0200133dnl Check if We need to apply workaround for TLS bug on ARM platform for GCC < 7.3.0:
Pau Espin Pedrolafce89d2019-08-06 12:46:46 +0200134ARG_ENABLE_DETECT_TLS_GCC_ARM_BUG
Pau Espin Pedrole188b8c2019-08-05 13:46:33 +0200135
Harald Welte3cae0392010-02-20 21:09:24 +0100136dnl Generate the output
Christian Vogel854debc2013-01-05 20:30:41 +0100137AC_CONFIG_HEADER(config.h)
Harald Welte3cae0392010-02-20 21:09:24 +0100138
Harald Welte90e614f2015-12-05 23:38:18 +0100139PKG_CHECK_MODULES(TALLOC, [talloc >= 2.0.1])
140
Harald Welte495fe262012-09-10 16:28:17 +0200141AC_ARG_ENABLE([pcsc], [AS_HELP_STRING([--disable-pcsc], [Build without PC/SC support])],
142 [
Neels Hofmeyr96831042016-11-15 17:31:14 +0100143 ENABLE_PCSC=$enableval
Harald Welte495fe262012-09-10 16:28:17 +0200144 ],
145 [
Neels Hofmeyr96831042016-11-15 17:31:14 +0100146 ENABLE_PCSC="yes"
Harald Welte495fe262012-09-10 16:28:17 +0200147 ])
Neels Hofmeyr96831042016-11-15 17:31:14 +0100148AS_IF([test "x$ENABLE_PCSC" = "xyes"], [
Holger Hans Peter Freyther18bcc8a2014-11-14 15:06:09 +0100149 PKG_CHECK_MODULES(PCSC, libpcsclite)
Harald Welte3c44a642020-03-15 22:50:06 +0100150 AC_DEFINE([HAVE_PCSC],[1],[Build with PC/SC support])
Harald Welted086f212015-11-21 11:38:09 +0100151])
Neels Hofmeyr96831042016-11-15 17:31:14 +0100152AM_CONDITIONAL(ENABLE_PCSC, test "x$ENABLE_PCSC" = "xyes")
153AC_SUBST(ENABLE_PCSC)
Harald Welte495fe262012-09-10 16:28:17 +0200154
Harald Welteda432cd2019-12-15 19:13:26 +0100155AC_ARG_ENABLE([libusb], [AS_HELP_STRING([--disable-libusb], [Build without libusb support])],
156 [
157 ENABLE_LIBUSB=$enableval
158 ],
159 [
160 ENABLE_LIBUSB="yes"
161 ])
162AS_IF([test "x$ENABLE_LIBUSB" = "xyes"], [
163 PKG_CHECK_MODULES(LIBUSB, libusb-1.0)
164])
165AM_CONDITIONAL(ENABLE_LIBUSB, test "x$ENABLE_LIBUSB" = "xyes")
166AC_SUBST(ENABLE_LIBUSB)
167
Maxed029df2017-10-26 10:56:04 +0200168AC_ARG_ENABLE([gnutls], [AS_HELP_STRING([--disable-gnutls], [Do not use GnuTLS fallback for missing getrandom()])],
169 [ENABLE_GNUTLS=$enableval], [ENABLE_GNUTLS="yes"])
170AM_CONDITIONAL(ENABLE_GNUTLS, test x"$ENABLE_GNUTLS" = x"yes")
171AS_IF([test "x$ENABLE_GNUTLS" = "xyes"], [
172 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.0])
173])
174AC_SUBST(ENABLE_GNUTLS)
175if test x"$ENABLE_GNUTLS" = x"yes"
176then
177 AC_SUBST([LIBGNUTLS_CFLAGS])
178 AC_SUBST([LIBGNUTLS_LIBS])
179 AC_DEFINE([USE_GNUTLS], [1], [Use GnuTLS as a fallback for missing getrandom()])
180fi
181
Pau Espin Pedrolea2afb22019-10-24 15:41:32 +0200182AC_ARG_ENABLE([libsctp], [AS_HELP_STRING([--disable-libsctp], [Do not enable socket multiaddr APIs requiring libsctp])],
183 [ENABLE_LIBSCTP=$enableval], [ENABLE_LIBSCTP="yes"])
184AM_CONDITIONAL(ENABLE_LIBSCTP, test x"$ENABLE_LIBSCTP" = x"yes")
185AS_IF([test "x$ENABLE_LIBSCTP" = "xyes"], [
186 old_LIBS=$LIBS
187 AC_SEARCH_LIBS([sctp_bindx], [sctp], [
188 AC_DEFINE(HAVE_LIBSCTP, 1, [Define 1 to enable SCTP support])
189 AC_SUBST(HAVE_LIBSCTP, [1])
190 if test -n "$ac_lib"; then
191 AC_SUBST(LIBSCTP_LIBS, [-l$ac_lib])
192 fi
193 ], [
194 AC_MSG_ERROR([sctp_bindx not found in searched libs])])
195 LIBS=$old_LIBS
196])
197
Harald Welteb9ce51c2010-06-30 19:43:11 +0200198AC_ARG_ENABLE(plugin,
Sylvain Munautf23abab2010-07-25 16:16:42 +0200199 [AS_HELP_STRING(
200 [--disable-plugin],
201 [Disable support for dlopen plugins],
202 )],
job36b4a202011-08-21 17:18:23 +0200203 [enable_plugin=$enableval], [enable_plugin="yes"])
204AM_CONDITIONAL(ENABLE_PLUGIN, test x"$enable_plugin" = x"yes")
Harald Welteb9ce51c2010-06-30 19:43:11 +0200205
Harald Welte1067e8c2010-06-25 03:00:58 +0200206AC_ARG_ENABLE(vty,
Sylvain Munautf23abab2010-07-25 16:16:42 +0200207 [AS_HELP_STRING(
208 [--disable-vty],
209 [Disable building VTY telnet interface]
210 )],
job36b4a202011-08-21 17:18:23 +0200211 [enable_vty=$enableval], [enable_vty="yes"])
212AM_CONDITIONAL(ENABLE_VTY, test x"$enable_vty" = x"yes")
Harald Welte54403772010-05-29 11:49:51 +0200213
Sylvain Munautac3e61a2010-07-25 18:08:54 +0200214AC_ARG_ENABLE(panic_infloop,
215 [AS_HELP_STRING(
216 [--enable-panic-infloop],
217 [Trigger infinite loop on panic rather than fprintf/abort]
218 )],
job36b4a202011-08-21 17:18:23 +0200219 [panic_infloop=$enableval], [panic_infloop="no"])
220if test x"$panic_infloop" = x"yes"
Sylvain Munautac3e61a2010-07-25 18:08:54 +0200221then
222 AC_DEFINE([PANIC_INFLOOP],[1],[Use infinite loop on panic rather than fprintf/abort])
223fi
224
Holger Hans Peter Freyther43558312010-08-06 06:48:43 +0800225AC_ARG_ENABLE(bsc_fd_check,
226 [AS_HELP_STRING(
227 [--enable-bsc-fd-check],
228 [Instrument bsc_register_fd to check that the fd is registered]
229 )],
job36b4a202011-08-21 17:18:23 +0200230 [fd_check=$enableval], [fd_check="no"])
231if test x"$fd_check" = x"no"
Holger Hans Peter Freyther43558312010-08-06 06:48:43 +0800232then
233 AC_DEFINE([BSC_FD_CHECK],[1],[Instrument the bsc_register_fd])
234fi
235
Holger Hans Peter Freytherc87f2662010-10-07 00:00:15 +0800236AC_ARG_ENABLE(msgfile,
237 [AS_HELP_STRING(
238 [--disable-msgfile],
239 [Disable support for the msgfile],
240 )],
job36b4a202011-08-21 17:18:23 +0200241 [enable_msgfile=$enableval], [enable_msgfile="yes"])
242AM_CONDITIONAL(ENABLE_MSGFILE, test x"$enable_msgfile" = x"yes")
Holger Hans Peter Freytherc87f2662010-10-07 00:00:15 +0800243
Sylvain Munautfe28ded2011-09-02 22:18:24 +0200244AC_ARG_ENABLE(serial,
245 [AS_HELP_STRING(
246 [--disable-serial],
247 [Disable support for the serial helpers],
248 )],
249 [enable_serial=$enableval], [enable_serial="yes"])
250AM_CONDITIONAL(ENABLE_SERIAL, test x"$enable_serial" = x"yes")
251
job8e4deb62011-08-21 17:18:24 +0200252AC_ARG_ENABLE(utilities,
253 [AS_HELP_STRING(
254 [--disable-utilities],
255 [Disable building utility programs],
256 )],
257 [enable_utilities=$enableval], [enable_utilities="yes"])
258AM_CONDITIONAL(ENABLE_UTILITIES, test x"$enable_utilities" = x"yes")
259
Harald Weltee3a10b62012-09-08 22:18:43 +0200260AC_ARG_ENABLE(gb,
261 [AS_HELP_STRING(
262 [--disable-gb],
263 [Disable building Gb library],
264 )],
265 [enable_gb=$enableval], [enable_gb="yes"])
266AM_CONDITIONAL(ENABLE_GB, test x"$enable_gb" = x"yes")
267
Harald Welte1c67e752017-01-15 17:52:30 +0100268AC_ARG_ENABLE(ctrl,
269 [AS_HELP_STRING(
270 [--disable-ctrl],
271 [Disable building CTRL library],
272 )],
273 [enable_ctrl=$enableval], [enable_ctrl="yes"])
274AM_CONDITIONAL(ENABLE_CTRL, test x"$enable_ctrl" = x"yes")
275
Harald Welte898ffef2017-05-15 21:37:34 +0200276AC_ARG_ENABLE(pseudotalloc,
277 [AS_HELP_STRING(
278 [--enable-pseudotalloc],
279 [Enable building pseudotalloc library],
280 )],
281 [enable_pseudotalloc=$enableval], [enable_pseudotalloc="no"])
282AM_CONDITIONAL(ENABLE_PSEUDOTALLOC, test x"$enable_pseudotalloc" = x"yes")
283
job8e4deb62011-08-21 17:18:24 +0200284AC_ARG_ENABLE(embedded,
285 [AS_HELP_STRING(
286 [--enable-embedded],
287 [Enable building for embedded use and disable unsupported features]
288 )],
289 [embedded=$enableval], [embedded="no"])
Max89c8c402018-01-18 16:05:27 +0100290
Harald Weltec6a86972019-12-16 23:14:45 +0100291AM_CONDITIONAL(EMBEDDED, false)
Max3da79382018-01-18 16:50:51 +0100292AM_CONDITIONAL(ENABLE_SERCOM_STUB, false)
Max89c8c402018-01-18 16:05:27 +0100293
job8e4deb62011-08-21 17:18:24 +0200294if test x"$embedded" = x"yes"
295then
296 AC_DEFINE([EMBEDDED],[1],[Select building for embedded use])
job8e4deb62011-08-21 17:18:24 +0200297 AM_CONDITIONAL(ENABLE_PLUGIN, false)
298 AM_CONDITIONAL(ENABLE_MSGFILE, false)
Sylvain Munautfe28ded2011-09-02 22:18:24 +0200299 AM_CONDITIONAL(ENABLE_SERIAL, false)
Maxed029df2017-10-26 10:56:04 +0200300 AM_CONDITIONAL(ENABLE_GNUTLS, false)
job8e4deb62011-08-21 17:18:24 +0200301 AM_CONDITIONAL(ENABLE_VTY, false)
Harald Welte1c67e752017-01-15 17:52:30 +0100302 AM_CONDITIONAL(ENABLE_CTRL, false)
job8e4deb62011-08-21 17:18:24 +0200303 AM_CONDITIONAL(ENABLE_UTILITIES, false)
Harald Weltee3a10b62012-09-08 22:18:43 +0200304 AM_CONDITIONAL(ENABLE_GB, false)
Maxed029df2017-10-26 10:56:04 +0200305 AM_CONDITIONAL(ENABLE_GNUTLS, false)
Pau Espin Pedrolea2afb22019-10-24 15:41:32 +0200306 AM_CONDITIONAL(ENABLE_LIBSCTP, false)
Harald Welte1a7d64c2017-01-15 17:53:23 +0100307 AM_CONDITIONAL(ENABLE_PCSC, false)
Harald Welte898ffef2017-05-15 21:37:34 +0200308 AM_CONDITIONAL(ENABLE_PSEUDOTALLOC, true)
Max3da79382018-01-18 16:50:51 +0100309 AM_CONDITIONAL(ENABLE_SERCOM_STUB, true)
Harald Weltec6a86972019-12-16 23:14:45 +0100310 AM_CONDITIONAL(EMBEDDED, true)
Maxed029df2017-10-26 10:56:04 +0200311 AC_DEFINE([USE_GNUTLS], [0])
job8e4deb62011-08-21 17:18:24 +0200312 AC_DEFINE([PANIC_INFLOOP],[1],[Use infinite loop on panic rather than fprintf/abort])
313fi
Harald Welte54403772010-05-29 11:49:51 +0200314
Neels Hofmeyra2381762016-09-30 01:25:45 +0200315AC_ARG_ENABLE(sanitize,
316 [AS_HELP_STRING(
317 [--enable-sanitize],
318 [Compile with address sanitizer enabled],
319 )],
320 [sanitize=$enableval], [sanitize="no"])
321if test x"$sanitize" = x"yes"
322then
Pau Espin Pedrol13492492017-06-23 11:18:04 +0200323 CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
324 CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
Neels Hofmeyra2381762016-09-30 01:25:45 +0200325fi
326
Neels Hofmeyr09ecbb72018-03-05 20:40:05 +0100327AC_ARG_ENABLE(werror,
328 [AS_HELP_STRING(
329 [--enable-werror],
330 [Turn all compiler warnings into errors, with exceptions:
331 a) deprecation (allow upstream to mark deprecation without breaking builds);
332 b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
333 ]
334 )],
335 [werror=$enableval], [werror="no"])
336if test x"$werror" = x"yes"
337then
338 WERROR_FLAGS="-Werror"
339 WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
340 WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
341 CFLAGS="$CFLAGS $WERROR_FLAGS"
342 CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
343fi
344
Neels Hofmeyr3a9ff112018-09-10 17:18:28 +0200345AC_ARG_ENABLE([external_tests],
346 AC_HELP_STRING([--enable-external-tests],
347 [Include the VTY/CTRL tests in make check [default=no]]),
348 [enable_ext_tests="$enableval"],[enable_ext_tests="no"])
349if test "x$enable_ext_tests" = "xyes" ; then
350 AM_PATH_PYTHON
351 AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmo_verify_transcript_vty.py,yes)
352 if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then
353 AC_MSG_ERROR([Please install git://osmocom.org/python/osmo-python-tests to run the VTY/CTRL tests.])
354 fi
355fi
356AC_MSG_CHECKING([whether to enable VTY/CTRL tests])
357AC_MSG_RESULT([$enable_ext_tests])
358AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes")
359
Pau Espin Pedrol13492492017-06-23 11:18:04 +0200360CFLAGS="$CFLAGS -DBUILDING_LIBOSMOCORE -Wall"
361CPPFLAGS="$CPPFLAGS -DBUILDING_LIBOSMOCORE -Wall"
Pau Espin Pedrol69dfe5a2017-06-17 23:18:11 +0200362
Vadim Yanitskiy2c3066e2017-04-30 19:41:56 +0700363AC_ARG_ENABLE(simd,
364 [AS_HELP_STRING(
365 [--disable-simd],
366 [Disable SIMD support]
367 )],
368 [simd=$enableval], [simd="yes"])
369if test x"$simd" = x"yes"
370then
371 # Find and define supported SIMD extensions
372 AX_CHECK_SIMD
373else
374 AM_CONDITIONAL(HAVE_AVX2, false)
Harald Welteb93f60f2017-11-17 11:41:34 +0100375 AM_CONDITIONAL(HAVE_SSSE3, false)
Vadim Yanitskiy2c3066e2017-04-30 19:41:56 +0700376 AM_CONDITIONAL(HAVE_SSE4_1, false)
377fi
378
Vasil Velichkov499510b2019-04-03 02:32:37 +0300379OSMO_AC_CODE_COVERAGE
380
Vadim Yanitskiya8a58192017-05-08 00:07:21 +0700381dnl Check if the compiler supports specified GCC's built-in function
382AC_DEFUN([CHECK_BUILTIN_SUPPORT], [
383 AC_CACHE_CHECK(
384 [whether ${CC} has $1 built-in],
385 [osmo_cv_cc_has_builtin], [
386 AC_LINK_IFELSE([
387 AC_LANG_PROGRAM([], [
388 __builtin_cpu_supports("sse");
389 ])
390 ],
391 [AS_VAR_SET([osmo_cv_cc_has_builtin], [yes])],
392 [AS_VAR_SET([osmo_cv_cc_has_builtin], [no])])
393 ]
394 )
395
396 AS_IF([test yes = AS_VAR_GET([osmo_cv_cc_has_builtin])], [
397 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1,
398 [Define to 1 if compiler has the '$1' built-in function])
399 ], [
400 AC_MSG_WARN($2)
401 ])
402])
403
404dnl Check if the compiler supports runtime SIMD detection
405CHECK_BUILTIN_SUPPORT([__builtin_cpu_supports],
406 [Runtime SIMD detection will be disabled])
407
Neels Hofmeyr09ecbb72018-03-05 20:40:05 +0100408AC_MSG_RESULT([CFLAGS="$CFLAGS"])
409AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
410
Harald Welte3cae0392010-02-20 21:09:24 +0100411AC_OUTPUT(
412 libosmocore.pc
Sylvain Munautb99b9302010-10-24 18:23:10 +0200413 libosmocodec.pc
Vadim Yanitskiy3262f822016-09-23 01:48:59 +0700414 libosmocoding.pc
Harald Weltee352c522010-05-19 19:42:32 +0200415 libosmovty.pc
Pablo Neira Ayusofba495e2011-03-23 18:08:08 +0100416 libosmogsm.pc
Harald Welte641f7ce2012-06-17 23:05:26 +0800417 libosmogb.pc
Harald Welte3ff81b12014-08-20 19:58:40 +0200418 libosmoctrl.pc
Harald Welted54c2ee2012-01-17 18:25:50 +0100419 libosmosim.pc
Harald Welteda432cd2019-12-15 19:13:26 +0100420 libosmousb.pc
Harald Welte3cae0392010-02-20 21:09:24 +0100421 include/Makefile
422 src/Makefile
Harald Welte3fb0b6f2010-05-19 19:02:52 +0200423 src/vty/Makefile
Sylvain Munaut1a4ea5b2010-10-08 15:09:16 +0200424 src/codec/Makefile
Vadim Yanitskiy3262f822016-09-23 01:48:59 +0700425 src/coding/Makefile
Harald Welted54c2ee2012-01-17 18:25:50 +0100426 src/sim/Makefile
Harald Welteda432cd2019-12-15 19:13:26 +0100427 src/usb/Makefile
Pablo Neira Ayusofba495e2011-03-23 18:08:08 +0100428 src/gsm/Makefile
Harald Welte641f7ce2012-06-17 23:05:26 +0800429 src/gb/Makefile
Harald Welte3ff81b12014-08-20 19:58:40 +0200430 src/ctrl/Makefile
Harald Welte898ffef2017-05-15 21:37:34 +0200431 src/pseudotalloc/Makefile
Harald Welte3cae0392010-02-20 21:09:24 +0100432 tests/Makefile
Neels Hofmeyr96831042016-11-15 17:31:14 +0100433 tests/atlocal
Harald Welteeeb78dd2011-08-02 13:44:54 +0200434 utils/Makefile
Harald Weltec7859ed2011-08-20 12:54:17 +0200435 Doxyfile.core
Harald Welte49e10562011-08-17 19:21:07 +0200436 Doxyfile.gsm
437 Doxyfile.vty
438 Doxyfile.codec
Vadim Yanitskiy3262f822016-09-23 01:48:59 +0700439 Doxyfile.coding
Neels Hofmeyr249fb712017-06-20 02:52:38 +0200440 Doxyfile.gb
Harald Welteb4186822018-05-26 17:25:11 +0200441 Doxyfile.ctrl
Harald Welte3cae0392010-02-20 21:09:24 +0100442 Makefile)