fixeria submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Verified laforge: Looks good to me, but someone else must approve Hoernchen: Looks good to me, approved
configure.ac: allow building without cloning submodules

The MS TRX was intentionally added [1] as an optional feature, which
requires a git submodule to be present in order to build libtrxcon.
This feature can be enabled by passing --with-mstrx to the configure.

But autoconf/automake is a mess. Despite in the root Makefile.am we
are adding full submodule path to the SUBDIRS *conditionally*, the
configure script would still fail if the submodule is not fetched:

Makefile.am:32: error: required directory
./osmocom-bb/src/host/trxcon
does not exist

It would not even enter that directory if it's present, but somehow
it's still required to exist. For the end user this means that
cloning the submodule becomes a *necessary* step in order to build
osmo-trx from source, even when the MS TRX is not really needed.

The fact that we're unconditionally requiring the submodule, which
is meant to be used by an optional feature feels wrong to me. It's
also unusual for osmocom projects to require submodules, so it may
(and already did) cause build failures when cloning as usual.

Let's work this problem around by defining LIBTRXCON_DIR variable
in configure.ac and using it in the root Makefile.am. If the MS
TRX is not enabled explicitly, make autoconf/automake happy by
assigning LIBTRXCON_DIR the submodule's root directory, which is
always present but empty if the submodule is not fetched.

Change-Id: I02ae2b37c82ae2f55e7d9bd92e226f2b8b023968
Related: [1] b7253c6fdc88a3e2e0c8b441dc3c34dfb1c15d24
Related: OS#5599, OS#5846
---
M Makefile.am
M configure.ac
2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 580544b..7b2198c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,7 +29,7 @@
SUBDIRS =

if ENABLE_MS_TRX
-SUBDIRS += osmocom-bb/src/host/trxcon
+SUBDIRS += $(LIBTRXCON_DIR)
endif

# Order must be preserved
diff --git a/configure.ac b/configure.ac
index ff1ae8b..eab0e22 100644
--- a/configure.ac
+++ b/configure.ac
@@ -337,6 +337,13 @@
if test "x$with_mstrx" = "xyes"; then
AC_MSG_NOTICE(["Enabling ms-trx..."])
AC_CONFIG_SUBDIRS([osmocom-bb/src/host/trxcon])
+ AC_SUBST(LIBTRXCON_DIR, "osmocom-bb/src/host/trxcon")
+else
+ # Despite LIBTRXCON_DIR is added to SUBDIRS conditionally,
+ # autoconf/automake still requires the directory to be present
+ # and thus the submodule to be fetched (even if MS TRX is not needed).
+ # Work this around by pointing it to an empty dir.
+ AC_SUBST(LIBTRXCON_DIR, "osmocom-bb")
fi



To view, visit change 30792. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: I02ae2b37c82ae2f55e7d9bd92e226f2b8b023968
Gerrit-Change-Number: 30792
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-MessageType: merged