2008-12-23 21:01:25 +00:00
|
|
|
dnl Process this file with autoconf to produce a configure script
|
2010-03-22 16:09:32 +00:00
|
|
|
AC_INIT([openbsc],
|
|
|
|
m4_esyscmd([./git-version-gen .tarball-version]),
|
2014-05-15 10:26:16 +00:00
|
|
|
[openbsc@lists.osmocom.org])
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2010-03-22 16:09:32 +00:00
|
|
|
AM_INIT_AUTOMAKE([dist-bzip2])
|
2012-01-06 14:16:12 +00:00
|
|
|
AC_CONFIG_TESTDIR(tests)
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2009-10-27 02:34:49 +00:00
|
|
|
dnl kernel style compile messages
|
|
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
dnl checks for programs
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_INSTALL
|
2009-02-20 18:33:00 +00:00
|
|
|
AC_PROG_RANLIB
|
2008-12-23 21:01:25 +00:00
|
|
|
|
|
|
|
dnl checks for libraries
|
2013-10-15 10:00:26 +00:00
|
|
|
AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""])
|
|
|
|
AC_SUBST(LIBRARY_DL)
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2013-10-15 11:29:06 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.6.4)
|
2012-12-20 22:49:24 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.3.0)
|
2014-08-21 13:56:00 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.7.0)
|
2014-03-31 11:42:11 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.2.0)
|
2013-10-15 11:29:06 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOGB, libosmogb >= 0.6.4)
|
mgcp: add voice muxer support
This patch adds the voice muxer. You can use this to batch RTP
traffic to reduce bandwidth comsuption. Basically, osmux transforms
RTP flows to a compact batch format, that is later on decompacted
to its original form. Port UDP/1984 is used for the muxer traffic
between osmo-bsc_nat and osmo-bsc_mgcp (in the BSC side). This
feature depends on libosmo-netif, which contains the osmux core
support.
Osmux is requested on-demand via the MGCP CRCX/MDCX messages (using
the vendor-specific extension X-Osmux: on) coming from the BSC-NAT,
so you can selectively enable osmux per BSC from one the bsc-nat.cfg
file, so we have a centralized point to enable/disable osmux.
First thing you need to do is to accept requests to use Osmux,
this can be done from VTY interface of osmo-bsc_nat and
osmo-bsc_mgcp by adding the following line:
mgcp
...
osmux on
osmux batch-factor 4
This just initializes the osmux engine. You still have to specify
what BSC uses osmux from osmo-bsc_nat configuration file:
...
bsc 1
osmux on
bsc 2
...
bsc 3
osmux on
In this case, bsc 1 and 3 should use osmux if possible, bsc 2 does
not have osmux enabled.
Thus, you can selectively enable osmux depending on the BSC, and
we have a centralized point for configuration from the bsc-nat to
enable osmux on demand, as suggested by Holger.
At this moment, this patch contains heavy debug logging for each
RTP packet that can be removed later to save cycles.
The RTP ssrc/seqnum/timestamp is randomly allocated for each MDCX that
is received to configure an endpoint.
2014-02-05 17:56:17 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.0.1)
|
2015-10-08 14:10:23 +00:00
|
|
|
PKG_CHECK_MODULES(LIBCRYPTO, libcrypto >= 0.9.5)
|
2010-07-29 18:53:14 +00:00
|
|
|
|
2012-12-20 22:49:24 +00:00
|
|
|
# Enabke/disable the NAT?
|
2010-07-29 18:53:14 +00:00
|
|
|
AC_ARG_ENABLE([nat], [AS_HELP_STRING([--enable-nat], [Build the BSC NAT. Requires SCCP])],
|
2012-12-20 22:49:24 +00:00
|
|
|
[osmo_ac_build_nat="$enableval"],[osmo_ac_build_nat="no"])
|
|
|
|
if test "$osmo_ac_build_nat" = "yes" ; then
|
2010-08-03 13:11:51 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOSCCP, libosmo-sccp >= 0.0.2)
|
2012-12-20 22:49:24 +00:00
|
|
|
fi
|
2010-07-29 18:53:14 +00:00
|
|
|
AM_CONDITIONAL(BUILD_NAT, test "x$osmo_ac_build_nat" = "xyes")
|
2012-01-09 21:53:04 +00:00
|
|
|
AC_SUBST(osmo_ac_build_nat)
|
2010-07-29 18:53:14 +00:00
|
|
|
|
2012-12-20 22:49:24 +00:00
|
|
|
# Enable/disable the BSC?
|
2010-08-03 13:11:51 +00:00
|
|
|
AC_ARG_ENABLE([osmo-bsc], [AS_HELP_STRING([--enable-osmo-bsc], [Build the Osmo BSC])],
|
2013-09-17 11:59:29 +00:00
|
|
|
[osmo_ac_build_bsc="$enableval"],[osmo_ac_build_bsc="no"])
|
2012-12-20 22:49:24 +00:00
|
|
|
if test "$osmo_ac_build_bsc" = "yes" ; then
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOSCCP, libosmo-sccp >= 0.0.6)
|
|
|
|
fi
|
2010-07-29 18:53:14 +00:00
|
|
|
AM_CONDITIONAL(BUILD_BSC, test "x$osmo_ac_build_bsc" = "xyes")
|
2013-09-17 11:59:29 +00:00
|
|
|
AC_SUBST(osmo_ac_build_bsc)
|
2010-07-29 18:53:14 +00:00
|
|
|
|
2012-12-20 22:49:24 +00:00
|
|
|
# Enable/disable smpp support in the nitb?
|
2012-11-16 21:15:22 +00:00
|
|
|
AC_ARG_ENABLE([smpp], [AS_HELP_STRING([--enable-smpp], [Build the SMPP interface])],
|
2013-07-13 15:09:56 +00:00
|
|
|
[osmo_ac_build_smpp="$enableval"],[osmo_ac_build_smpp="no"])
|
2012-12-20 22:49:24 +00:00
|
|
|
if test "$osmo_ac_build_smpp" = "yes" ; then
|
|
|
|
PKG_CHECK_MODULES(LIBSMPP34, libsmpp34 >= 1.10)
|
|
|
|
AC_DEFINE(BUILD_SMPP, 1, [Define if we want to build SMPP])
|
|
|
|
fi
|
2012-11-16 21:15:22 +00:00
|
|
|
AM_CONDITIONAL(BUILD_SMPP, test "x$osmo_ac_build_smpp" = "xyes")
|
2013-07-13 15:09:56 +00:00
|
|
|
AC_SUBST(osmo_ac_build_smpp)
|
2012-11-16 21:15:22 +00:00
|
|
|
|
2014-03-13 13:25:51 +00:00
|
|
|
# Enable/disable transcoding within osmo-bsc_mgcp?
|
|
|
|
AC_ARG_ENABLE([mgcp-transcoding], [AS_HELP_STRING([--enable-mgcp-transcoding], [Build the MGCP gateway with internal transcoding enabled.])],
|
|
|
|
[osmo_ac_mgcp_transcoding="$enableval"],[osmo_ac_mgcp_transcoding="no"])
|
|
|
|
AC_ARG_WITH([g729], [AS_HELP_STRING([--with-g729], [Enable G.729 encoding/decoding.])], [osmo_ac_with_g729="$withval"],[osmo_ac_with_g729="no"])
|
|
|
|
|
|
|
|
if test "$osmo_ac_mgcp_transcoding" = "yes" ; then
|
2016-06-15 12:43:20 +00:00
|
|
|
AC_SEARCH_LIBS([gsm_create], [gsm], [LIBRARY_GSM="$LIBS";LIBS=""], [AC_MSG_ERROR([--enable-mgcp-transcoding: cannot find usable libgsm])])
|
2015-07-02 07:51:31 +00:00
|
|
|
AC_SUBST(LIBRARY_GSM)
|
2014-03-13 13:25:51 +00:00
|
|
|
if test "$osmo_ac_with_g729" = "yes" ; then
|
|
|
|
PKG_CHECK_MODULES(LIBBCG729, libbcg729 >= 0.1, [AC_DEFINE([HAVE_BCG729], [1], [Use bgc729 decoder/encoder])])
|
|
|
|
fi
|
|
|
|
AC_DEFINE(BUILD_MGCP_TRANSCODING, 1, [Define if we want to build the MGCP gateway with transcoding support])
|
|
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_MGCP_TRANSCODING, test "x$osmo_ac_mgcp_transcoding" = "xyes")
|
|
|
|
AC_SUBST(osmo_ac_mgcp_transcoding)
|
|
|
|
|
2016-05-20 19:42:55 +00:00
|
|
|
# Enable/disable 3G aka IuPS + IuCS support?
|
|
|
|
AC_ARG_ENABLE([iu], [AS_HELP_STRING([--enable-iu], [Build 3G support, aka IuPS and IuCS interfaces])],
|
|
|
|
[osmo_ac_iu="$enableval"],[osmo_ac_iu="no"])
|
|
|
|
if test "x$osmo_ac_iu" = "xyes" ; then
|
|
|
|
PKG_CHECK_MODULES(LIBASN1C, libasn1c) # TODO version?
|
|
|
|
PKG_CHECK_MODULES(LIBOSMORANAP, libosmo-ranap) # TODO version?
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOSIGTRAN, libosmo-sigtran) # TODO version?
|
|
|
|
AC_DEFINE(BUILD_IU, 1, [Define if we want to build IuPS and IuCS interfaces support])
|
|
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_IU, test "x$osmo_ac_iu" = "xyes")
|
|
|
|
AC_SUBST(osmo_ac_iu)
|
|
|
|
|
2012-11-16 21:15:22 +00:00
|
|
|
|
2011-10-18 11:27:00 +00:00
|
|
|
found_libgtp=yes
|
2015-11-20 09:40:07 +00:00
|
|
|
PKG_CHECK_MODULES(LIBGTP, libgtp >= 0.92, , found_libgtp=no)
|
2011-10-18 11:27:00 +00:00
|
|
|
AM_CONDITIONAL(HAVE_LIBGTP, test "$found_libgtp" = yes)
|
2014-09-30 07:10:25 +00:00
|
|
|
AC_SUBST(found_libgtp)
|
2011-10-18 11:27:00 +00:00
|
|
|
|
2015-05-24 17:21:50 +00:00
|
|
|
found_libcares=yes
|
|
|
|
PKG_CHECK_MODULES([LIBCARES], [libcares], [], [found_libcares=no])
|
|
|
|
AM_CONDITIONAL(HAVE_LIBCARES, test "$found_libcares" = yes)
|
|
|
|
AC_SUBST(found_libcares)
|
|
|
|
|
2015-11-29 18:14:58 +00:00
|
|
|
found_libgtp_and_libcares=no
|
|
|
|
if test "$found_libgtp" = "yes" -a "$found_libcares" = "yes"; then
|
|
|
|
found_libgtp_and_libcares=yes
|
|
|
|
fi
|
|
|
|
AC_SUBST(found_libgtp_and_libcares)
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
dnl checks for header files
|
|
|
|
AC_HEADER_STDC
|
2011-03-08 12:38:49 +00:00
|
|
|
AC_CHECK_HEADERS(dbi/dbd.h,,AC_MSG_ERROR(DBI library is not installed))
|
2015-09-15 09:39:47 +00:00
|
|
|
AC_CHECK_HEADERS(pcap/pcap.h,,AC_MSG_ERROR(PCAP library is not installed))
|
2011-02-05 14:13:27 +00:00
|
|
|
|
2012-11-13 06:06:54 +00:00
|
|
|
found_cdk=yes
|
|
|
|
AC_CHECK_HEADERS(cdk/cdk.h,,found_cdk=no)
|
|
|
|
AM_CONDITIONAL(HAVE_LIBCDK, test "$found_cdk" = yes)
|
|
|
|
|
2015-01-10 08:51:31 +00:00
|
|
|
found_sqlite3=yes
|
|
|
|
PKG_CHECK_MODULES(SQLITE3, sqlite3, ,found_sqlite3=no)
|
|
|
|
AM_CONDITIONAL(HAVE_SQLITE3, test "$found_sqlite3" = yes)
|
|
|
|
AC_SUBST(found_sqlite3)
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
|
|
|
|
dnl Checks for typedefs, structures and compiler characteristics
|
|
|
|
|
2009-06-08 10:32:54 +00:00
|
|
|
# The following test is taken from WebKit's webkit.m4
|
|
|
|
saved_CFLAGS="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS -fvisibility=hidden "
|
|
|
|
AC_MSG_CHECKING([if ${CC} supports -fvisibility=hidden])
|
2011-05-24 13:16:54 +00:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])],
|
2009-06-08 10:32:54 +00:00
|
|
|
[ AC_MSG_RESULT([yes])
|
|
|
|
SYMBOL_VISIBILITY="-fvisibility=hidden"],
|
|
|
|
AC_MSG_RESULT([no]))
|
|
|
|
CFLAGS="$saved_CFLAGS"
|
|
|
|
AC_SUBST(SYMBOL_VISIBILITY)
|
|
|
|
|
2010-11-15 17:37:57 +00:00
|
|
|
# Coverage build taken from WebKit's configure.in
|
|
|
|
AC_MSG_CHECKING([whether to enable code coverage support])
|
|
|
|
AC_ARG_ENABLE(coverage,
|
|
|
|
AC_HELP_STRING([--enable-coverage],
|
|
|
|
[enable code coverage support [default=no]]),
|
|
|
|
[],[enable_coverage="no"])
|
|
|
|
AC_MSG_RESULT([$enable_coverage])
|
|
|
|
if test "$enable_coverage" = "yes"; then
|
|
|
|
COVERAGE_CFLAGS="-ftest-coverage -fprofile-arcs"
|
|
|
|
COVERAGE_LDFLAGS="-ftest-coverage -fprofile-arcs"
|
|
|
|
AC_SUBST([COVERAGE_CFLAGS])
|
|
|
|
AC_SUBST([COVERAGE_LDFLAGS])
|
|
|
|
fi
|
|
|
|
|
2012-04-08 14:59:24 +00:00
|
|
|
AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[whether struct tm has tm_gmtoff member],
|
|
|
|
osmo_cv_tm_includes_tm_gmtoff,
|
|
|
|
[AC_LINK_IFELSE([
|
|
|
|
AC_LANG_PROGRAM([
|
|
|
|
#include <time.h>
|
|
|
|
], [
|
|
|
|
time_t t = time(NULL);
|
|
|
|
struct tm* lt = localtime(&t);
|
|
|
|
int off = lt->tm_gmtoff;
|
|
|
|
])
|
|
|
|
],
|
|
|
|
osmo_cv_tm_includes_tm_gmtoff=yes,
|
|
|
|
osmo_cv_tm_includes_tm_gmtoff=no
|
|
|
|
)]
|
|
|
|
)
|
|
|
|
if test "x$osmo_cv_tm_includes_tm_gmtoff" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_TM_GMTOFF_IN_TM, 1,
|
|
|
|
[Define if struct tm has tm_gmtoff member.])
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
CHECK_TM_INCLUDES_TM_GMTOFF
|
2009-06-08 10:32:54 +00:00
|
|
|
|
2013-04-05 15:36:09 +00:00
|
|
|
AC_ARG_ENABLE([vty_tests],
|
|
|
|
AC_HELP_STRING([--enable-vty-tests],
|
2014-08-21 22:29:04 +00:00
|
|
|
[Include the VTY/CTRL tests in make check (deprecated)
|
|
|
|
[default=no]]),
|
|
|
|
[enable_ext_tests="$enableval"],[enable_ext_tests="no"])
|
2014-09-01 07:34:07 +00:00
|
|
|
AC_ARG_ENABLE([external_tests],
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_HELP_STRING([--enable-external-tests],
|
|
|
|
[Include the VTY/CTRL tests in make check [default=no]]),
|
|
|
|
[enable_ext_tests="$enableval"],[enable_ext_tests="no"])
|
|
|
|
if test "x$enable_ext_tests" = "xyes" ; then
|
2013-04-05 15:36:09 +00:00
|
|
|
AM_PATH_PYTHON
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmotestvty.py,yes)
|
|
|
|
if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then
|
|
|
|
AC_MSG_ERROR([Please install osmocom-python to run the VTY/CTRL tests.])
|
2013-04-05 15:36:09 +00:00
|
|
|
fi
|
|
|
|
fi
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_MSG_CHECKING([whether to enable VTY/CTRL tests])
|
|
|
|
AC_MSG_RESULT([$enable_ext_tests])
|
|
|
|
AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes")
|
2013-04-05 15:36:09 +00:00
|
|
|
|
2009-06-08 10:32:54 +00:00
|
|
|
dnl Generate the output
|
|
|
|
AM_CONFIG_HEADER(bscconfig.h)
|
|
|
|
|
2008-12-27 09:42:59 +00:00
|
|
|
AC_OUTPUT(
|
2009-06-08 10:32:39 +00:00
|
|
|
openbsc.pc
|
2008-12-27 09:42:59 +00:00
|
|
|
include/openbsc/Makefile
|
|
|
|
include/Makefile
|
|
|
|
src/Makefile
|
2011-03-04 12:18:30 +00:00
|
|
|
src/libtrau/Makefile
|
|
|
|
src/libbsc/Makefile
|
|
|
|
src/libmsc/Makefile
|
|
|
|
src/libmgcp/Makefile
|
|
|
|
src/libcommon/Makefile
|
2015-04-04 16:42:46 +00:00
|
|
|
src/libfilter/Makefile
|
2011-03-03 22:29:05 +00:00
|
|
|
src/osmo-nitb/Makefile
|
|
|
|
src/osmo-bsc/Makefile
|
2011-03-03 22:36:48 +00:00
|
|
|
src/osmo-bsc_nat/Makefile
|
|
|
|
src/osmo-bsc_mgcp/Makefile
|
2010-05-04 05:47:54 +00:00
|
|
|
src/ipaccess/Makefile
|
2011-03-03 22:29:05 +00:00
|
|
|
src/utils/Makefile
|
2010-05-04 05:41:59 +00:00
|
|
|
src/gprs/Makefile
|
2008-12-27 09:42:59 +00:00
|
|
|
tests/Makefile
|
2012-01-09 21:53:04 +00:00
|
|
|
tests/atlocal
|
2008-12-28 21:55:40 +00:00
|
|
|
tests/gsm0408/Makefile
|
2008-12-31 23:25:05 +00:00
|
|
|
tests/db/Makefile
|
2009-06-10 10:36:38 +00:00
|
|
|
tests/channel/Makefile
|
2013-09-17 11:59:29 +00:00
|
|
|
tests/bsc/Makefile
|
2010-06-15 12:21:44 +00:00
|
|
|
tests/bsc-nat/Makefile
|
2013-06-14 17:10:28 +00:00
|
|
|
tests/bsc-nat-trie/Makefile
|
2011-01-06 18:32:52 +00:00
|
|
|
tests/mgcp/Makefile
|
2011-06-23 21:53:27 +00:00
|
|
|
tests/gprs/Makefile
|
2013-10-15 10:00:26 +00:00
|
|
|
tests/gbproxy/Makefile
|
2012-11-22 13:59:46 +00:00
|
|
|
tests/abis/Makefile
|
2013-07-13 15:09:56 +00:00
|
|
|
tests/smpp/Makefile
|
2013-12-06 15:59:10 +00:00
|
|
|
tests/trau/Makefile
|
2014-09-30 07:10:25 +00:00
|
|
|
tests/sgsn/Makefile
|
2014-12-03 12:05:16 +00:00
|
|
|
tests/subscr/Makefile
|
2015-10-12 09:57:35 +00:00
|
|
|
tests/oap/Makefile
|
2015-09-24 15:32:30 +00:00
|
|
|
tests/gtphub/Makefile
|
2016-03-30 09:22:24 +00:00
|
|
|
tests/mm_auth/Makefile
|
2016-08-10 10:14:57 +00:00
|
|
|
tests/xid/Makefile
|
2011-05-11 20:11:28 +00:00
|
|
|
doc/Makefile
|
|
|
|
doc/examples/Makefile
|
2008-12-27 09:42:59 +00:00
|
|
|
Makefile)
|