blob: 37ac91a486af15b61d25935ee97ef1d124b44698 [file] [log] [blame]
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +02001AC_INIT([libosmo-abis],
2 m4_esyscmd([./git-version-gen .tarball-version]),
Holger Hans Peter Freyther584672e2012-03-26 16:36:21 +02003 [openbsc@lists.osmocom.org])
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +02004
Neels Hofmeyrf5d28602016-10-01 00:33:39 +02005dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
6AC_CONFIG_AUX_DIR([.])
7
Harald Welteb37c5d42015-08-15 10:50:53 +02008AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects])
Holger Hans Peter Freyther5c65e792012-10-11 08:05:14 +02009AC_CONFIG_TESTDIR(tests)
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020010
Oliver Smith0f404b62021-01-27 17:32:20 +010011CFLAGS="$CFLAGS -std=gnu11"
12
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020013dnl kernel style compile messages
14m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
15
Maxe3260722017-07-05 15:08:39 +020016dnl include release helper
17RELMAKE='-include osmo-release.mk'
18AC_SUBST([RELMAKE])
19
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020020dnl checks for programs
21AC_PROG_MAKE_SET
22AC_PROG_CC
23AC_PROG_INSTALL
Diego Elio Pettenò62f0e062012-06-30 15:22:56 -070024LT_INIT([pic-only])
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020025
Pau Espin Pedrolde169192021-02-23 16:21:49 +010026dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang
Eric73a73c02020-04-11 01:15:40 +020027AS_CASE(["$LD"],[*clang*],
28 [AS_CASE(["${host_os}"],
29 [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])])
30
Neels Hofmeyr24796f22016-10-01 00:48:43 +020031dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
32AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
33if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
34 AC_MSG_WARN([You need to install pkg-config])
35fi
36PKG_PROG_PKG_CONFIG([0.20])
37
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020038AC_CONFIG_MACRO_DIR([m4])
39
Pau Espin Pedrol65529bc2017-07-05 22:02:53 +020040CFLAGS="$CFLAGS -Wall"
41CPPFLAGS="$CPPFLAGS -Wall"
Pau Espin Pedrol62eddcd2017-06-21 07:43:14 +020042
Neels Hofmeyr2e05f882017-11-17 01:43:36 +010043AC_ARG_ENABLE(sanitize,
44 [AS_HELP_STRING(
45 [--enable-sanitize],
46 [Compile with address sanitizer enabled],
47 )],
48 [sanitize=$enableval], [sanitize="no"])
49if test x"$sanitize" = x"yes"
50then
51 CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
52 CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
53fi
54
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020055# The following test is taken from WebKit's webkit.m4
56saved_CFLAGS="$CFLAGS"
57CFLAGS="$CFLAGS -fvisibility=hidden "
58AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden])
59AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])],
60 [ AC_MSG_RESULT([yes])
61 SYMBOL_VISIBILITY="-fvisibility=hidden"],
62 AC_MSG_RESULT([no]))
63CFLAGS="$saved_CFLAGS"
64AC_SUBST(SYMBOL_VISIBILITY)
65
66dnl Generate the output
67AM_CONFIG_HEADER(config.h)
68
Pau Espin Pedrole394d9d2023-09-12 13:39:05 +020069PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.9.0)
70PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.9.0)
71PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.9.0)
72PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 1.9.0)
Max15d9b792016-04-28 12:05:27 +020073PKG_CHECK_MODULES(ORTP, ortp >= 0.22.0)
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +020074
Harald Welted4be6962019-11-11 17:00:12 +010075AC_ARG_ENABLE([dahdi],
76 AC_HELP_STRING([--disable-dahdi],
77 [disable support for DAHID ISDN (E1/T1) cards [default=yes]]),
78 [enable_dahdi="$enableval"], [enable_dahdi="yes"])
79AM_CONDITIONAL(ENABLE_DAHDI, test "x$enable_dahdi" = "xyes")
80if test "x$enable_dahdi" = "xyes"; then
81 AC_CHECK_HEADERS([dahdi/user.h],[],[AC_MSG_ERROR([DAHDI input driver enabled but DAHDI not found])])
82else
83 AC_MSG_WARN([DAHDI input driver will not be built])
84fi
Pablo Neira Ayuso0b9ed9a2011-07-02 17:25:19 +020085
Sylvain Munautb559a532019-05-09 11:14:26 +020086AC_ARG_ENABLE([e1d],
87 [AS_HELP_STRING(
88 [--enable-e1d],
89 [Enable osmo-e1d driver support]
90 )],
91 [
92 ENABLE_E1D=$enableval
93 ],
94 [
95 ENABLE_E1D="no"
96 ])
97AS_IF([test "x$ENABLE_E1D" = "xyes"], [
Pau Espin Pedrol656f1352023-02-07 13:15:21 +010098 PKG_CHECK_MODULES(LIBOSMOE1D, libosmo-e1d >= 0.5.0)
Sylvain Munautb559a532019-05-09 11:14:26 +020099])
100AM_CONDITIONAL(ENABLE_E1D, test "x$ENABLE_E1D" = "xyes")
101AC_SUBST(ENABLE_E1D)
102if test x"$ENABLE_E1D" = x"yes"
103then
104 AC_DEFINE([HAVE_E1D], [1], [Enable osmo-e1d driver support])
105fi
106
Max8a3be282017-02-20 18:24:03 +0100107AC_ARG_ENABLE(sanitize,
108 [AS_HELP_STRING(
109 [--enable-sanitize],
110 [Compile with address sanitizer enabled],
111 )],
112 [sanitize=$enableval], [sanitize="no"])
113if test x"$sanitize" = x"yes"
114then
Pau Espin Pedrol65529bc2017-07-05 22:02:53 +0200115 CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
116 CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
Max8a3be282017-02-20 18:24:03 +0100117fi
118
Neels Hofmeyrbb83e6f2018-03-05 20:37:13 +0100119AC_ARG_ENABLE(werror,
120 [AS_HELP_STRING(
121 [--enable-werror],
122 [Turn all compiler warnings into errors, with exceptions:
123 a) deprecation (allow upstream to mark deprecation without breaking builds);
124 b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
125 ]
126 )],
127 [werror=$enableval], [werror="no"])
128if test x"$werror" = x"yes"
129then
130 WERROR_FLAGS="-Werror"
131 WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
132 WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
133 CFLAGS="$CFLAGS $WERROR_FLAGS"
134 CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
135fi
136
Harald Weltebf7976c2017-04-04 12:10:54 +0000137_cflags_save=$CFLAGS
138CFLAGS="$CFLAGS $ORTP_CFLAGS"
Pau Espin Pedrolc42bf192017-03-24 17:26:49 +0100139AC_COMPILE_IFELSE(
140 [AC_LANG_PROGRAM(
141 [[#include <ortp/ortp.h>]],
142 [[ortp_set_log_level_mask(NULL, 0xffff);]]
143 )],
144 [AC_DEFINE([HAVE_ORTP_LOG_DOMAIN], [1],
145 [ortp_set_log_level_mask requires domain parameter])],
146 [AC_DEFINE([HAVE_ORTP_LOG_DOMAIN], [0],
147 [ortp_set_log_level_mask has no domain parameter])])
Harald Weltebf7976c2017-04-04 12:10:54 +0000148CFLAGS=$_cflags_save
Pau Espin Pedrolc42bf192017-03-24 17:26:49 +0100149
Pau Espin Pedrol05df2d62017-06-21 07:37:45 +0200150_cflags_save=$CFLAGS
Pau Espin Pedrol43b5b692018-04-10 18:15:48 +0200151CFLAGS="$CFLAGS $ORTP_CFLAGS -Werror"
Pau Espin Pedrol05df2d62017-06-21 07:37:45 +0200152AC_COMPILE_IFELSE(
153 [AC_LANG_PROGRAM(
Pau Espin Pedrol1307b7a2017-07-13 22:14:37 +0200154 [[#include <ortp/ortp.h>
155 void fake_cb(struct _RtpSession *r, void *arg1, void *arg2, void *arg3) { return; }]],
156 [[rtp_session_signal_connect(NULL, "", fake_cb, (void*) fake_cb);]]
Pau Espin Pedrol05df2d62017-06-21 07:37:45 +0200157 )],
158 [AC_DEFINE([RTP_SIGNAL_PTR_CAST(arg)], [(void*)(arg)],
159 [rtp_session_signal_connect requires pointer parameter])],
160 [AC_DEFINE([RTP_SIGNAL_PTR_CAST(arg)], [(unsigned long)(arg)],
161 [rtp_session_signal_connect requires ulong parameter])])
162CFLAGS=$_cflags_save
163
Neels Hofmeyrbb83e6f2018-03-05 20:37:13 +0100164AC_MSG_RESULT([CFLAGS="$CFLAGS"])
165AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
Pau Espin Pedrol05df2d62017-06-21 07:37:45 +0200166
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +0200167AC_OUTPUT(
168 libosmoabis.pc
Harald Welte41d0d842011-09-03 15:33:24 +0200169 libosmotrau.pc
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +0200170 include/Makefile
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +0200171 src/Makefile
Pablo Neira Ayuso0ba77d52011-06-05 18:32:44 +0200172 tests/Makefile
Oliver Smith85887b22020-05-14 11:30:01 +0200173 Makefile
174 contrib/libosmo-abis.spec)