build: fix ranap gen, use same for gen hnbap and rua gen

fix extraneous rebuild for each make invocation: touch the ranap.stamp file in
src/ as the make target suggests.

fix for 'make distcheck': ranap gen: move generated sources to builddir, not
srcdir. Thus we also -I the builddir include to pick up those headers.

hnbap and rua have the same situation as ranap (they generate numerous files
from a single make rule). Use the same makefile semantics for those two
(commit for ranap gen omitted the same changes for hnbap and rua).

The generated headers are thus moved to include/osmocom/*/, so adjust #include
statements accordingly (*_common.h, *_ies_defs.h).

Also move hnbap_common.h to include/osmocom/hnbap and rua_common.h to
include/osmocom/rua, since the *_ies_defs.h want to include them; and since
*_ies_defs.h are now in include/osmocom/*, we want a '<foo>' include now.

Also adjust gitignore.

Change-Id: I32213666fcdfc144008fa7d46497c0938d093e86
This commit is contained in:
Neels Hofmeyr 2016-08-26 23:56:44 +02:00 committed by Harald Welte
parent c636cab20f
commit 8345792281
16 changed files with 51 additions and 27 deletions

4
.gitignore vendored
View File

@ -35,5 +35,9 @@ src/osmo-hnbgw
tags
libosmo-ranap.pc
m4
gen_hnbap.stamp
gen_rua.stamp
gen_ranap.stamp
include/osmocom/hnbap/hnbap_ies_defs.h
include/osmocom/rua/rua_ies_defs.h
include/osmocom/ranap/ranap_ies_defs.h

View File

@ -1,4 +1,5 @@
noinst_HEADERS = \
hnbap_common.h hnbap_ies_defs.h \
AccessResult.h \
Access-stratum-release-indicator.h \
AdditionalNeighbourInfoList.h \

View File

@ -3,8 +3,8 @@
# the build process wants this header file, it should first build
# src/ranap_encoder.c and src/ranap_decoder.c.
# This rule sucks:
ranap_ies_defs.h: $(top_builddir)/src/ranap_encoder.c
make -C $(top_builddir)/src/ ranap_encoder.c
ranap_ies_defs.h:
$(MAKE) -C $(top_builddir)/src/ gen_ranap.stamp
ranap_HEADERS = \
ranap_ies_defs.h \

View File

@ -1,4 +1,5 @@
noinst_HEADERS = \
rua_common.h rua_ies_defs.h \
RUA_Ansi-41-IDNNS.h \
RUA_Cause.h \
RUA_CauseMisc.h \

3
src/.gitignore vendored
View File

@ -1,13 +1,10 @@
hnbap_decoder.c
hnbap_encoder.c
hnbap_ies_defs.h
rua_decoder.c
rua_encoder.c
rua_ies_defs.h
ranap_decoder.c
ranap_encoder.c
ranap_ies_defs.h
hnbgw

View File

@ -3,25 +3,48 @@ SUBDIRS = hnbap rua ranap tests
# Build {hnbap,rua,ranap}_{encoder,decoder}.c using asn1tostruct
ASN1_ROOT = $(top_builddir)/asn1/
ASN1TOSTRUCT = $(ASN1_ROOT)/utils/asn1tostruct.py
BUILT_SOURCES = hnbap_decoder.c hnbap_encoder.c rua_decoder.c rua_encoder.c gen_ranap.stamp
BUILT_SOURCES = hnbap_decoder.c hnbap_encoder.c rua_decoder.c rua_encoder.c \
gen_hnbap.stamp gen_rua.stamp gen_ranap.stamp
hnbap_encoder.c hnbap_decoder.c hnbap_ies_defs.h: $(ASN1_ROOT)/hnbap/HNBAP-PDU-Contents.asn $(ASN1TOSTRUCT)
gen_hnbap.stamp: $(ASN1_ROOT)/hnbap/HNBAP-PDU-Contents.asn $(ASN1TOSTRUCT)
$(ASN1TOSTRUCT) -f $<
# We also need to replace the include in the newly generated .c files:
sed -i 's,^#include "hnbap_ies_defs.h",#include <osmocom/hnbap/hnbap_ies_defs.h>,' hnbap_encoder.c hnbap_decoder.c
sed -i 's,^#include "hnbap_common.h",#include <osmocom/hnbap/hnbap_common.h>,' hnbap_encoder.c hnbap_decoder.c hnbap_ies_defs.h
mv hnbap_ies_defs.h $(top_builddir)/include/osmocom/hnbap/
# this is ugly ^. hnbap_ies_defs.h is generated from asn1tostruct.py here, but
# it should live in include/osmocom/hnbap/.
touch $(top_builddir)/src/$@
rua_encoder.c rua_decoder.c rua_ies_defs.h: $(ASN1_ROOT)/rua/RUA-PDU-Contents.asn $(ASN1TOSTRUCT)
hnbap_decoder.c hnbap_encoder.c: gen_hnbap.stamp
gen_rua.stamp: $(ASN1_ROOT)/rua/RUA-PDU-Contents.asn $(ASN1TOSTRUCT)
$(ASN1TOSTRUCT) -p RUA_ -f $<
# We also need to replace the include in the newly generated .c files:
sed -i 's,^#include "rua_ies_defs.h",#include <osmocom/rua/rua_ies_defs.h>,' rua_encoder.c rua_decoder.c
sed -i 's,^#include "rua_common.h",#include <osmocom/rua/rua_common.h>,' rua_encoder.c rua_decoder.c rua_ies_defs.h
mv rua_ies_defs.h $(top_builddir)/include/osmocom/rua/
# this is ugly ^. rua_ies_defs.h is generated from asn1tostruct.py here, but
# it should live in include/osmocom/rua/.
touch $(top_builddir)/src/$@
rua_decoder.c rua_encoder.c: gen_rua.stamp
gen_ranap.stamp: $(ASN1_ROOT)/ranap/RANAP-PDU-Contents.asn $(ASN1TOSTRUCT)
$(ASN1TOSTRUCT) -p RANAP_ -f $<
# We also need to replace the include in the newly generated .c files:
sed -i 's,^#include "ranap_ies_defs.h",#include <osmocom/ranap/ranap_ies_defs.h>,' ranap_encoder.c ranap_decoder.c
sed -i 's,^#include "ranap_common.h",#include <osmocom/ranap/ranap_common.h>,' ranap_encoder.c ranap_decoder.c ranap_ies_defs.h
mv ranap_ies_defs.h $(top_srcdir)/include/osmocom/ranap/
mv ranap_ies_defs.h $(top_builddir)/include/osmocom/ranap/
# this is ugly ^. ranap_ies_defs.h is generated from asn1tostruct.py here, but
# it should live in include/osmocom/ranap/.
touch $(top_builddir)/$@
touch $(top_builddir)/src/$@
AM_CFLAGS = -I$(top_srcdir)/include $(OSMOCORE_CFLAGS) $(OSMOVTY_CFLAGS) $(OSMOGSM_CFLAGS) $(OSMONETIF_CFLAGS) $(ASN1C_CFLAGS) $(OSMOSIGTRAN_CFLAGS)
ranap_decoder.c ranap_encoder.c: gen_ranap.stamp
AM_CFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include \
$(OSMOCORE_CFLAGS) $(OSMOVTY_CFLAGS) $(OSMOGSM_CFLAGS) \
$(OSMONETIF_CFLAGS) $(ASN1C_CFLAGS) $(OSMOSIGTRAN_CFLAGS)
COMMON_LDADD = -lsctp
# build the shared RANAP library
@ -37,9 +60,7 @@ libosmo_ranap_la_SOURCES = ranap_common.c ranap_encoder.c ranap_decoder.c ranap_
#
bin_PROGRAMS = osmo-hnbgw
noinst_HEADERS = hnbap_common.h hnbap_ies_defs.h \
rua_common.h rua_ies_defs.h \
context_map.h hnbgw.h hnbgw_cn.h \
noinst_HEADERS = context_map.h hnbgw.h hnbgw_cn.h \
hnbgw_hnbap.h hnbgw_rua.h hnbgw_ranap.h
osmo_hnbgw_SOURCES = hnbap_encoder.c hnbap_decoder.c hnbap_common.c \

View File

@ -24,7 +24,7 @@
#include <osmocom/core/msgb.h>
#include <osmocom/hnbap/HNBAP-PDU.h>
#include "hnbap_common.h"
#include <osmocom/hnbap/hnbap_common.h>
#include "hnbgw.h"
static const struct value_string hnbap_cause_radio_vals[] = {

View File

@ -28,11 +28,11 @@
#include <string.h>
#include "asn1helpers.h"
#include <osmocom/hnbap/hnbap_common.h>
#include <osmocom/ranap/iu_helpers.h>
#include "hnbgw.h"
#include "hnbap_common.h"
#include "hnbap_ies_defs.h"
#include <osmocom/hnbap/hnbap_ies_defs.h>
#define IU_MSG_NUM_IES 32
#define IU_MSG_NUM_EXT_IES 32

View File

@ -34,8 +34,8 @@
#include "hnbgw.h"
#include "hnbgw_ranap.h"
#include "rua_common.h"
#include "rua_ies_defs.h"
#include <osmocom/rua/rua_common.h>
#include <osmocom/rua/rua_ies_defs.h>
#include "context_map.h"
static int hnbgw_rua_tx(struct hnb_context *ctx, struct msgb *msg)

View File

@ -23,7 +23,7 @@
#include <osmocom/core/msgb.h>
#include "rua_common.h"
#include <osmocom/rua/rua_common.h>
#include "hnbgw.h"
extern int asn1_xer_print;

View File

@ -1,8 +1,8 @@
#include <stdint.h>
#include <osmocom/netif/stream.h>
#include "rua_common.h"
#include "rua_ies_defs.h"
#include <osmocom/rua/rua_common.h>
#include <osmocom/rua/rua_ies_defs.h>
#include "rua_msg_factory.h"
#include "asn1helpers.h"
#include "hnbgw.h"

View File

@ -1,6 +1,6 @@
#include <asn1c/ANY.h>
#include "../rua_ies_defs.h"
#include <osmocom/rua/rua_ies_defs.h>
#include "hnb-test-layers.h"

View File

@ -52,8 +52,8 @@
#include "hnb-test.h"
#include "hnb-test-layers.h"
#include "hnbap_common.h"
#include "hnbap_ies_defs.h"
#include <osmocom/hnbap/hnbap_common.h>
#include <osmocom/hnbap/hnbap_ies_defs.h>
#include "rua_msg_factory.h"
#include "asn1helpers.h"
#include <osmocom/ranap/iu_helpers.h>

View File

@ -22,8 +22,8 @@
#include <osmocom/ranap/iu_helpers.h>
#include "asn1helpers.h"
#include "hnbap_common.h"
#include "hnbap_ies_defs.h"
#include <osmocom/hnbap/hnbap_common.h>
#include <osmocom/hnbap/hnbap_ies_defs.h>
#include "test_common.h"
#include <assert.h>