aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-05-06 15:25:10 +0200
committerHarald Welte <laforge@gnumonks.org>2019-09-23 20:23:51 +0200
commite844bf7828ae3d05e5ad220664f684115a1c2760 (patch)
treea33743e54b5239cb1e2ec37e9111e9b8440ebb75 /src/Makefile.am
parent7095c7ed0cc803d06e11e0468c5f6d81e38b3a56 (diff)
sabp: Generate C/H files for SABP; create libosmo-sabp
This uses the (modified) Osmocom asn1c on the (modified) SABP ASN.1 syntax to generate C code + header files for SABP parsing/encoding. It also adds some helper code for message encoding and decoding as well as a new libosmo-sabp shared library which can be used by programs to implement SABP related functionality. Change-Id: Ib9580d1af96354398da4c9f97b28a0e23d56e275
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am36
1 files changed, 30 insertions, 6 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 928092f..b1f8153 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,10 +1,10 @@
-SUBDIRS = hnbap rua ranap tests
+SUBDIRS = hnbap rua ranap sabp tests
# Build {hnbap,rua,ranap}_{encoder,decoder}.c using asn1tostruct
ASN1_ROOT = $(top_srcdir)/asn1
ASN1TOSTRUCT = $(ASN1_ROOT)/utils/asn1tostruct.py
-BUILT_SOURCES = hnbap_decoder.c hnbap_encoder.c rua_decoder.c rua_encoder.c \
- gen_hnbap.stamp gen_rua.stamp gen_ranap.stamp
+BUILT_SOURCES = hnbap_decoder.c hnbap_encoder.c rua_decoder.c rua_encoder.c sabp_encoder.c sabp_decoder.c \
+ gen_hnbap.stamp gen_rua.stamp gen_ranap.stamp gen_sabp.stamp
gen_hnbap.stamp: $(ASN1_ROOT)/hnbap/HNBAP-PDU-Contents.asn $(ASN1TOSTRUCT)
$(ASN1TOSTRUCT) -f $<
@@ -42,20 +42,40 @@ gen_ranap.stamp: $(ASN1_ROOT)/ranap/RANAP-PDU-Contents.asn $(ASN1TOSTRUCT)
ranap_decoder.c ranap_encoder.c: gen_ranap.stamp
+gen_sabp.stamp: $(ASN1_ROOT)/sabp/SABP-PDU-Contents.asn $(ASN1TOSTRUCT)
+ $(ASN1TOSTRUCT) -p SABP_ -f $<
+# We also need to replace the include in the newly generated .c files:
+ sed -i 's,^#include "sabp_ies_defs.h",#include <osmocom/sabp/sabp_ies_defs.h>,' sabp_encoder.c sabp_decoder.c
+ sed -i 's,^#include "sabp_common.h",#include <osmocom/sabp/sabp_common.h>,' sabp_encoder.c sabp_decoder.c sabp_ies_defs.h
+ mv sabp_ies_defs.h $(top_builddir)/include/osmocom/sabp/
+# this is ugly ^. sabp_ies_defs.h is generated from asn1tostruct.py here, but
+# it should live in include/osmocom/sabp/.
+ touch $(top_builddir)/src/$@
+
+sabp_decoder.c sabp_encoder.c: gen_sabp.stamp
+
+
AM_CFLAGS = -Wall -I$(top_srcdir)/include -I$(top_builddir)/include \
$(OSMOCORE_CFLAGS) $(OSMOVTY_CFLAGS) $(OSMOCTRL_CFLAGS) $(OSMOGSM_CFLAGS) \
$(OSMONETIF_CFLAGS) $(ASN1C_CFLAGS) $(OSMOSIGTRAN_CFLAGS)
-# build the shared RANAP library
+# build the shared RANAP + SABP library
#
RANAP_LIBVERSION=2:2:0
-lib_LTLIBRARIES = libosmo-ranap.la
+SABP_LIBVERSION=0:0:0
+lib_LTLIBRARIES = libosmo-ranap.la libosmo-sabp.la
libosmo_ranap_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(RANAP_LIBVERSION)
libosmo_ranap_la_LIBADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOVTY_LIBS) $(OSMOSIGTRAN_LIBS) \
$(ASN1C_LIBS) ranap/libosmo-asn1-ranap.la
libosmo_ranap_la_SOURCES = ranap_common.c ranap_encoder.c ranap_decoder.c ranap_msg_factory.c iu_helpers.c \
ranap_common_cn.c iu_client.c iu_client_vty.c
+libosmo_sabp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(SABP_LIBVERSION)
+libosmo_sabp_la_LIBADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOVTY_LIBS) $(OSMOSIGTRAN_LIBS) \
+ $(ASN1C_LIBS) sabp/libosmo-asn1-sabp.la
+libosmo_sabp_la_SOURCES = sabp_common.c sabp_encoder.c sabp_decoder.c
+
+
# build the actual HomeNodeB gateway
#
bin_PROGRAMS = osmo-hnbgw
@@ -80,6 +100,7 @@ regenerate-from-asn1-source:
$(MAKE) -C hnbap regen
$(MAKE) -C ranap regen
$(MAKE) -C rua regen
+ $(MAKE) -C sabp regen
DISTCLEANFILES = \
hnbap_decoder.c \
@@ -88,6 +109,9 @@ DISTCLEANFILES = \
rua_encoder.c \
ranap_decoder.c \
ranap_encoder.c \
+ sabp_decoder.c \
+ sabp_encoder.c \
gen_hnbap.stamp \
gen_rua.stamp \
- gen_ranap.stamp
+ gen_ranap.stamp \
+ gen_sabp.stamp