Skip to content

Repository files navigation

osmoweb-bts

Experimental repository containing Osmocom projects as git submodules, together with out-of-tree patches and build integration required for Web/Emscripten-based BTS experimentation, including auxiliary support for static talloc builds.

Submodules

The Osmocom projects included as submodules are based on the official upstream repositories hosted at https://gitea.osmocom.org. The submodules in this repository point to personal forks used solely for development and patch iteration.

Upstreaming status

This project is intended to provide a reproducible Web/Emscripten build environment for selected Osmocom components, not to maintain a permanent downstream fork of Osmocom.

The required Osmocom changes have been submitted upstream, but the review and merge process is still ongoing. Until those patches are accepted, this repository uses temporary submodules pointing to maintained personal forks with the submitted changes applied.

As the corresponding patches are merged upstream, these forked submodules are expected to be replaced with the official Osmocom repositories. Publishing the project in this state makes it possible to share, test, and iterate on the web build today while keeping the long-term direction upstream-first.

Autoconf build

build_autoconf.sh builds the Osmocom submodules with their Autotools build systems and installs them into the local build-autoconf/ directory. It builds talloc first through Conan 2, then builds the Osmocom components in dependency order:

  1. libosmocore
  2. libosmo-netif
  3. libosmo-abis
  4. osmo-trx
  5. osmo-bts

The script can target a native-like automatic build, an embedded Arm cross-build, or the Emscripten/WebAssembly build path through BUILD_TARGET. For the Emscripten target it uses emconfigure and emmake for Osmocom projects, adds the required Emscripten atomic/bulk-memory flags, and configures the Osmocom components with WebSDR-related options where applicable.

Before running it, initialize the submodules. For BUILD_TARGET=emscripten, also make sure the Emscripten SDK environment is active:

git submodule update --init --recursive
source /path/to/emsdk/emsdk_env.sh
./build_autoconf.sh

The script expects the usual native build tools to be available, including autoconf, automake, libtool, make, pkg-config, Python, and pip. Conan 2 is checked automatically by scripts/install_conan2.sh; if Conan 2 is missing, the helper tries to install it, falling back to a project-local .venv/ when needed.

Build artifacts are written under build-autoconf/. The script also maintains .env.build, which stores the generated PKG_CONFIG_PATH entries so later runs can reuse already installed dependencies and skip packages whose pkg-config paths are already known.

Useful environment variables:

BUILD_TARGET=emscripten ./build_autoconf.sh
BUILD_TARGET=arm BUILD_HOST=arm-none-eabi ./build_autoconf.sh
MAKE_VERBOSE=1 ./build_autoconf.sh
FORCE_REBUILD=true ./build_autoconf.sh
REBUILD_PACKAGE=libosmocore ./build_autoconf.sh
REBUILD_PACKAGE=talloc ./build_autoconf.sh
DEBUG=true ./build_autoconf.sh
ENABLE_DOCS=true ./build_autoconf.sh

BUILD_TARGET selects the build target. Supported values are auto, arm, and emscripten; the default is auto. auto uses the current machine architecture, emscripten enables the WebAssembly build path, and arm enables the embedded Arm cross-build path. BUILD_HOST is used by the Arm target as the Autoconf --host value and defaults to arm-none-eabi.

MAKE_VERBOSE=1 enables verbose make output. FORCE_REBUILD=true reruns configure/build steps more aggressively. REBUILD_PACKAGE=<name> forces a single package to be rebuilt even if .env.build already contains its pkg-config path. DEBUG=true adds debug flags and asks the Conan talloc recipe to include debug symbols. Documentation generation is disabled by default; use ENABLE_DOCS=true to keep it enabled.

About

Experimental repository containing Osmocom projects as git submodules, together with out-of-tree patches and build integration required for Web/Emscripten-based BTS experimentation, including auxiliary support for static talloc builds.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages