separate libosmo-mgcp-client from mgcp server code

When osmo-mgw is built --with-mgcp-transcoding, linking the mgcp library
also requires linking libgsm, even though e.g. osmo-msc never use it.
Separate the MGCP client code from the MGCP server code to avoid this dep.

The mgcp client code does use some definitions from mgcp.h and mgcp_common.c.
For simplicity, link mgcp_common.c in both libosmo-legacy-mgcp as well as
libosmo-mgcp-client. That means it is not possible to link both
libosmo-legacy-mgcp and libosmo-mgcp-client in the same binary because of
duplicate symbols, but currently that is sufficient. (An alternative would be
code dup or yet another libosmo-mgcp-common library.)

Add libosmo-mgcp-client to debian packaging.

Related: OS#2488
Change-Id: I8e0b2d2a399b77086a36606f5e427271c6242df1
This commit is contained in:
Neels Hofmeyr 2017-09-03 23:52:51 +02:00 committed by Neels Hofmeyr
parent d049a66b79
commit 97df691307
23 changed files with 133 additions and 31 deletions

View File

@ -17,7 +17,10 @@ SUBDIRS = \
$(NULL)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libosmo-legacy-mgcp.pc
pkgconfig_DATA = \
libosmo-legacy-mgcp.pc \
libosmo-mgcp-client.pc \
$(NULL)
BUILT_SOURCES = $(top_srcdir)/.version
EXTRA_DIST = git-version-gen osmoappdesc.py .version

View File

@ -118,15 +118,19 @@ AM_CONFIG_HEADER(bscconfig.h)
AC_OUTPUT(
libosmo-legacy-mgcp.pc
libosmo-mgcp-client.pc
include/Makefile
include/osmocom/Makefile
include/osmocom/legacy_mgcp/Makefile
include/osmocom/mgcp_client/Makefile
src/Makefile
src/libosmo-legacy-mgcp/Makefile
src/libosmo-mgcp-client/Makefile
src/osmo-bsc_mgcp/Makefile
tests/Makefile
tests/atlocal
tests/legacy_mgcp/Makefile
tests/mgcp_client/Makefile
doc/Makefile
doc/examples/Makefile
contrib/Makefile

22
debian/control vendored
View File

@ -47,3 +47,25 @@ Architecture: any
Multi-Arch: same
Depends: libosmo-legacy-mgcp0 (= ${binary:Version}), ${misc:Depends}
Description: libosmo-legacy-mgcp: Osmocom's Media Gateway server library
Package: libosmo-mgcp-client0
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities
Package: libosmo-mgcp-client-dbg
Section: debug
Architecture: any
Multi-Arch: same
Depends: libosmo-mgcp-client0 (= ${binary:Version}), ${misc:Depends}
Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities
Package: libosmo-mgcp-client-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: libosmo-mgcp-client0 (= ${binary:Version}), ${misc:Depends}
Description: libosmo-mgcp-client: Osmocom's Media Gateway Control Protocol client utilities

1
debian/rules vendored
View File

@ -32,3 +32,4 @@ override_dh_autoreconf:
override_dh_strip:
dh_strip --dbg-package=osmo-mgw-dbg
dh_strip --dbg-package=libosmo-legacy-mgcp-dbg
dh_strip --dbg-package=libosmo-mgcp-client-dbg

View File

@ -5,6 +5,6 @@ SUBDIRS = \
nobase_include_HEADERS = \
osmocom/legacy_mgcp/mgcp.h \
osmocom/legacy_mgcp/mgcp_internal.h \
osmocom/legacy_mgcp/mgcpgw_client.h \
osmocom/legacy_mgcp/osmux.h \
osmocom/mgcp_client/mgcpgw_client.h \
$(NULL)

View File

@ -1,3 +1,4 @@
SUBDIRS = \
legacy_mgcp \
mgcp_client \
$(NULL)

View File

@ -1,5 +1,4 @@
noinst_HEADERS = \
mgcpgw_client_internal.h \
mgcp_transcode.h \
vty.h \
$(NULL)

View File

@ -0,0 +1,3 @@
noinst_HEADERS = \
mgcpgw_client_internal.h \
$(NULL)

10
libosmo-mgcp-client.pc.in Normal file
View File

@ -0,0 +1,10 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: Osmocom Media Gateway Control Protocol Client library
Description: C Utility Library
Version: @VERSION@
Libs: -L${libdir} -losmo-mgcp-client
Cflags: -I${includedir}/

View File

@ -22,6 +22,7 @@ AM_LDFLAGS = \
# Libraries
SUBDIRS = \
libosmo-legacy-mgcp \
libosmo-mgcp-client \
$(NULL)
# Programs

View File

@ -41,8 +41,6 @@ libosmo_legacy_mgcp_la_SOURCES = \
mgcp_vty.c \
mgcp_osmux.c \
mgcp_sdp.c \
mgcpgw_client.c \
mgcpgw_client_vty.c \
$(NULL)
if BUILD_MGCP_TRANSCODING
libosmo_legacy_mgcp_la_SOURCES += \

View File

@ -0,0 +1,37 @@
AM_CPPFLAGS = \
$(all_includes) \
-I$(top_srcdir)/include \
-I$(top_builddir) \
$(NULL)
AM_CFLAGS = \
-Wall \
$(LIBOSMOCORE_CFLAGS) \
$(LIBOSMOVTY_CFLAGS) \
$(LIBOSMONETIF_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
AM_LDFLAGS = \
$(LIBOSMOCORE_LIBS) \
$(LIBOSMOGSM_LIBS) \
$(LIBOSMONETIF_LIBS) \
$(COVERAGE_LDFLAGS) \
$(NULL)
# This is _NOT_ the library release version, it's an API version.
# Please read Chapter 6 "Library interface versions" of the libtool
# documentation before making any modification
MGCP_CLIENT_LIBVERSION=1:0:0
lib_LTLIBRARIES = \
libosmo-mgcp-client.la \
$(NULL)
libosmo_mgcp_client_la_SOURCES = \
mgcpgw_client.c \
mgcpgw_client_vty.c \
../libosmo-legacy-mgcp/mgcp_common.c \
$(NULL)
libosmo_mgcp_client_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(MGCP_CLIENT_LIBVERSION)

View File

@ -24,10 +24,10 @@
#include <osmocom/core/msgb.h>
#include <osmocom/core/logging.h>
#include <osmocom/legacy_mgcp/mgcpgw_client.h>
#include <osmocom/legacy_mgcp/mgcp.h>
#include <osmocom/legacy_mgcp/mgcp_internal.h>
#include <osmocom/legacy_mgcp/mgcpgw_client_internal.h>
#include <osmocom/mgcp_client/mgcpgw_client.h>
#include <osmocom/mgcp_client/mgcpgw_client_internal.h>
#include <netinet/in.h>
#include <arpa/inet.h>

View File

@ -28,7 +28,7 @@
#include <osmocom/core/utils.h>
#include <osmocom/legacy_mgcp/vty.h>
#include <osmocom/legacy_mgcp/mgcpgw_client.h>
#include <osmocom/mgcp_client/mgcpgw_client.h>
#define MGCPGW_STR "MGCP gateway configuration for RTP streams\n"

View File

@ -1,5 +1,6 @@
SUBDIRS = \
legacy_mgcp \
mgcp_client \
$(NULL)
# The `:;' works around a Bash 3.2 bug when the output is not writeable.

View File

@ -20,13 +20,10 @@ AM_LDFLAGS = \
EXTRA_DIST = \
mgcp_test.ok \
mgcp_transcoding_test.ok \
mgcpgw_client_test.ok \
mgcpgw_client_test.err \
$(NULL)
noinst_PROGRAMS = \
mgcp_test \
mgcpgw_client_test \
$(NULL)
if BUILD_MGCP_TRANSCODING
noinst_PROGRAMS += \
@ -62,16 +59,3 @@ mgcp_transcoding_test_LDADD = \
$(LIBRARY_GSM) \
-lm \
$(NULL)
mgcpgw_client_test_SOURCES = \
mgcpgw_client_test.c \
$(NULL)
mgcpgw_client_test_LDADD = \
$(top_builddir)/src/libosmo-legacy-mgcp/libosmo-legacy-mgcp.la \
$(LIBOSMOCORE_LIBS) \
$(LIBOSMOVTY_LIBS) \
$(LIBRARY_DL) \
$(LIBOSMONETIF_LIBS) \
$(LIBRARY_GSM) \
$(NULL)

View File

@ -0,0 +1,38 @@
AM_CPPFLAGS = \
$(all_includes) \
-I$(top_srcdir)/include \
-I$(top_srcdir) \
$(NULL)
AM_CFLAGS = \
-Wall \
-ggdb3 \
$(LIBOSMOCORE_CFLAGS) \
$(LIBOSMONETIF_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
AM_LDFLAGS = \
$(COVERAGE_LDFLAGS) \
$(NULL)
EXTRA_DIST = \
mgcpgw_client_test.ok \
mgcpgw_client_test.err \
$(NULL)
noinst_PROGRAMS = \
mgcpgw_client_test \
$(NULL)
mgcpgw_client_test_SOURCES = \
mgcpgw_client_test.c \
$(NULL)
mgcpgw_client_test_LDADD = \
$(top_builddir)/src/libosmo-mgcp-client/libosmo-mgcp-client.la \
$(LIBOSMOCORE_LIBS) \
$(LIBOSMOVTY_LIBS) \
$(LIBRARY_DL) \
$(LIBOSMONETIF_LIBS) \
$(NULL)

View File

@ -23,8 +23,8 @@
#include <osmocom/core/msgb.h>
#include <osmocom/core/application.h>
#include <osmocom/legacy_mgcp/mgcp.h>
#include <osmocom/legacy_mgcp/mgcpgw_client.h>
#include <osmocom/legacy_mgcp/mgcpgw_client_internal.h>
#include <osmocom/mgcp_client/mgcpgw_client.h>
#include <osmocom/mgcp_client/mgcpgw_client_internal.h>
void *ctx;

View File

@ -14,9 +14,9 @@ cat $abs_srcdir/legacy_mgcp/mgcp_transcoding_test.ok > expout
AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcp_transcoding_test], [], [expout], [ignore])
AT_CLEANUP
AT_SETUP([legacy_mgcpgw_client])
AT_KEYWORDS([legacy_mgcpgw_client])
cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.ok > expout
cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.err > experr
AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcpgw_client_test], [], [expout], [experr])
AT_SETUP([mgcpgw_client])
AT_KEYWORDS([mgcpgw_client])
cat $abs_srcdir/mgcp_client/mgcpgw_client_test.ok > expout
cat $abs_srcdir/mgcp_client/mgcpgw_client_test.err > experr
AT_CHECK([$abs_top_builddir/tests/mgcp_client/mgcpgw_client_test], [], [expout], [experr])
AT_CLEANUP