blob: 9a318bb2894daa74d9a542ea1e1c6273023afc2e [file] [log] [blame]
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +02001AC_PREREQ([2.65])
Harald Welte0790f032015-11-05 21:25:32 +01002AC_INIT([gapk],
Vadim Yanitskiy6831ebd2017-09-08 10:55:05 +03003 m4_esyscmd([./git-version-gen .tarball-version]),
4 [openbsc@lists.osmocom.org])
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +02005
Sylvain Munautea1c6c62015-12-30 10:53:16 +01006AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects])
Sylvain Munautac967d22015-12-30 10:53:53 +01007LT_INIT([disable-static])
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +02008
Oliver Smith20cbe332021-01-27 17:30:19 +01009CFLAGS="$CFLAGS -std=gnu11"
10
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020011# kernel style compile messages
12m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
Vadim Yanitskiyf8d91a02017-09-07 00:04:01 +030014AC_CONFIG_SRCDIR([src/app_osmo_gapk.c])
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020015AC_CONFIG_HEADERS([config.h])
16AC_CONFIG_MACRO_DIR([m4])
Vadim Yanitskiyf069eb32017-09-12 15:26:31 +030017AC_CONFIG_TESTDIR(tests)
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020018
Ericed469d82023-05-15 17:02:04 +020019dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang
20AS_CASE(["$LD"],[*clang*],
21 [AS_CASE(["${host_os}"],
22 [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])])
23
24
Sylvain Munaut0d2a82c2010-11-12 17:10:44 +010025# Options
26AC_ARG_ENABLE(gsmhr,
27 [AS_HELP_STRING(
Vadim Yanitskiy27bc25c2018-06-30 21:31:01 +070028 [--enable-gsmhr],
29 [Enable support for GSM HR codec using GSM 06.06 reference code]
Sylvain Munaut0d2a82c2010-11-12 17:10:44 +010030 )],
Vadim Yanitskiy27bc25c2018-06-30 21:31:01 +070031 [enable_gsmhr="yes"], [enable_gsmhr=$enableval])
Vadim Yanitskiy35c45f22018-02-11 20:59:16 +070032AM_CONDITIONAL(ENABLE_GSMHR, test "x$enable_gsmhr" = "xyes")
33if test "x$enable_gsmhr" = "xyes"; then
Sylvain Munautaa55d302010-11-12 19:36:21 +010034 AM_PATH_PYTHON([2.4])
Sylvain Munaut0d2a82c2010-11-12 17:10:44 +010035 AC_DEFINE(HAVE_LIBGSMHR, 1, [Define to 1 if libgsmhr is available])
36fi
37
38# Check for -fvisibility support
39# (The following test is taken from WebKit's webkit.m4)
40saved_CFLAGS="$CFLAGS"
41CFLAGS="$CFLAGS -fvisibility=hidden "
42AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden])
Sylvain Munaut19428ca2011-09-30 12:15:12 +020043AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])],
Sylvain Munaut0d2a82c2010-11-12 17:10:44 +010044 [ AC_MSG_RESULT([yes])
45 SYMBOL_VISIBILITY="-fvisibility=hidden"],
46 AC_MSG_RESULT([no]))
47CFLAGS="$saved_CFLAGS"
48AC_SUBST(SYMBOL_VISIBILITY)
49
Vadim Yanitskiy4f0a47d2017-08-31 17:49:36 +070050dnl check os: some linker flags not available on osx
51case $host in
52*-darwin*)
53 ;;
54*)
55 LTLDFLAGS_OSMOGAPK='-Wl,--version-script=$(srcdir)/libosmogapk.map'
56 ;;
57esac
58AC_SUBST(LTLDFLAGS_OSMOGAPK)
59
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020060# Checks for programs.
61AC_PROG_CC
62
Max725e0032018-02-12 13:04:32 +010063AC_ARG_ENABLE(sanitize,
64 [AS_HELP_STRING([--enable-sanitize], [Compile with address sanitizer enabled], )],
65 [sanitize=$enableval], [sanitize="no"])
66if test x"$sanitize" = x"yes"
67then
68 CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
69 CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
70fi
71
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020072# Checks for libraries.
Sylvain Munautdc5b38b2010-11-11 13:51:31 +010073 # libosmocore (codec module)
Harald Weltece94d972013-02-11 11:34:58 +010074PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.3.2)
Sylvain Munaut553b3b62010-10-24 18:33:20 +020075PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 0.1.25)
Harald Welte2ae47af2017-05-27 23:35:23 +020076PKG_CHECK_MODULES(LIBALSA, alsa, [AC_DEFINE([HAVE_ALSA], [1], [We have ALSA])])
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +020077
Sylvain Munaut8552b9d2010-11-11 13:57:41 +010078 # opencore-amrnb for AMR and EFR decoding
79found_opencore_amrnb=yes
Sylvain Munaut3c9c2fb2010-11-13 00:19:09 +010080PKG_CHECK_MODULES(OPENCORE_AMRNB, opencore-amrnb >= 0.1.0, , found_opencore_amrnb=no)
Sylvain Munaut8552b9d2010-11-11 13:57:41 +010081if test "$found_opencore_amrnb" = yes; then
82 AC_DEFINE(HAVE_OPENCORE_AMRNB, 1, [Define to 1 if OpenCore AMR-NB library is available])
83fi
84
Sylvain Munautdc5b38b2010-11-11 13:51:31 +010085 # libgsm for FR decoding
86found_libgsm=yes
87AC_CHECK_HEADERS(gsm/gsm.h, ,
88 [AC_CHECK_HEADERS(gsm.h, ,found_libgsm=no)])
89 AC_CHECK_LIB(gsm, gsm_create, LIBGSM_LIBS="-lgsm", found_libgsm=no)
90if test "$found_libgsm" = yes; then
91 AC_DEFINE(HAVE_LIBGSM, 1, [Define to 1 if libgsm is available])
92fi
93AC_SUBST(LIBGSM_LIBS)
94
Vadim Yanitskiy35c45f22018-02-11 20:59:16 +070095# Conditional codec tests
96AC_SUBST(ENABLE_AMR_EFR_TESTS, [$found_opencore_amrnb])
97AC_SUBST(ENABLE_HR_TESTS, [$enable_gsmhr])
98AC_SUBST(ENABLE_FR_TESTS, [$found_libgsm])
99
Sylvain Munaut96b1c3b2010-10-24 10:22:06 +0200100# Checks for header files.
101AC_CHECK_HEADERS([stdint.h stdlib.h string.h unistd.h])
102
103# Checks for typedefs, structures, and compiler characteristics.
104AC_C_INLINE
105AC_TYPE_INT16_T
106AC_TYPE_INT32_T
107AC_TYPE_UINT16_T
108AC_TYPE_UINT32_T
109AC_TYPE_UINT64_T
110AC_TYPE_UINT8_T
111
112# Checks for library functions.
113AC_FUNC_MALLOC
114AC_CHECK_FUNCS([memset])
115
Vadim Yanitskiy1a15bb62022-08-04 20:07:23 +0700116AC_CONFIG_FILES([contrib/gapk.spec
117 Makefile
118 src/Makefile
119 libgsmhr/Makefile
120 include/Makefile
121 include/gsmhr/Makefile
122 libosmogapk.pc
123 tests/atlocal
124 tests/Makefile])
125AC_OUTPUT