From f47f3f65ba528acaad1000bb3b3ec3ce92fcd186 Mon Sep 17 00:00:00 2001 From: frtabu Date: Wed, 15 May 2019 18:20:16 +0200 Subject: [PATCH] More build_oai cleanup, add a generic option "--build-lib" to build optional shared libraries (telnet server for example) --- cmake_targets/build_oai | 65 ++++++++++++++++------------------------- doc/BUILD.md | 10 +++---- 2 files changed, 29 insertions(+), 46 deletions(-) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index cafe8d5f6d..a7ceb48758 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -67,7 +67,7 @@ UE_DEBUG_TRACE="False" UE_TIMING_TRACE="False" USRP_REC_PLAY="False" BUILD_ECLIPSE=0 - +OPTIONAL_LIBRARIES="telnetsrv enbscope uescope msc" trap handle_ctrl_c INT function print_help() { @@ -119,8 +119,6 @@ Options runs only specified test cases specified here. This flag is only valid with -s -V | --vcd Adds a debgging facility to the binary files: GUI with major internal synchronization events --x | --xforms - Adds a software oscilloscope feature to the produced binaries. --install-system-files Install OpenArInterface required files in Linux system (will ask root password) @@ -148,10 +146,8 @@ Options Enable traces for timing --build-eclipse Build eclipse project files. Paths are auto corrected by fixprj.sh ---build-telnet - Build telnet server, specify --telnetsrv on command line to start it (eNB only) ---build-msc - Build MSC tracing utility, specify --msc on command line to start it (eNB and UE) +--build-lib + Build optional shared library, can be one or several of $OPTIONAL_LIBRARIES --usrp-recplay Build for I/Q record-playback modes @@ -322,14 +318,20 @@ function main() { CMAKE_CMD="$CMAKE_CMD"' -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -G"Eclipse CDT4 - Unix Makefiles"' echo_info "Enabling build eclipse project support" shift 1;; - --build-telnetsrv) - BUILD_TELNETSRV=1 - echo_info "Build embedded telnet server" - shift ;; - --build-msc) - MSC_GEN=1 - echo_info "Build MSC tracing utility" - shift ;; + --build-lib) + BUILD_OPTLIB="" + for alib in $2 ; do + for oklib in $OPTIONAL_LIBRARIES ; do + if [ "$alib" = "$oklib" ] ; then + BUILD_OPTLIB="$BUILD_OPTLIB $alib" + echo_info "Enabling build of lib${alib}.so" + fi + done + done + if [ "${BUILD_OPTLIB## }" != "$2" ] ; then + echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES" + fi + shift 2;; --usrp-recplay) USRP_REC_PLAY="True" echo_info "Enabling USRP record playback mode" @@ -642,34 +644,17 @@ function main() { fi cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin fi - - # Telnet server compilation + # optional libraries ##################### - if [ "$BUILD_TELNETSRV" = "1" ] ; then - compilations \ - $lte_build_dir telnetsrv \ - libtelnetsrv.so $dbin/libtelnetsrv.so + if [ ! -z "$BUILD_OPTLIB" ] ; then + for oklib in $BUILD_OPTLIB ; do + compilations \ + $lte_build_dir $oklib \ + lib${oklib}.so $dbin/lib${oklib}.so + done fi - # msc library compilation - ##################### - if [ "$MSC_GEN" = "1" ] ; then - compilations \ - $lte_build_dir msc \ - libmsc.so $dbin/libmsc.so - - fi - # softsope compilations - ##################### - if [ "$XFORMS" = "1" ] ; then - compilations \ - $lte_build_dir enbscope \ - libenbscope.so $dbin/libenbscope.so - compilations \ - $lte_build_dir uescope \ - libuescope.so $dbin/libuescope.so - - fi + # build RF device and transport protocol libraries ##################################### if [ "$eNB" = "1" -o "$UE" = "1" ] ; then diff --git a/doc/BUILD.md b/doc/BUILD.md index 3e312a2eab..094900daac 100644 --- a/doc/BUILD.md +++ b/doc/BUILD.md @@ -70,13 +70,13 @@ After completing the build, the binaries are available in the `cmake_targets/lte ## Telnet Server -The telnet server can be built with the --build-telnet option, after building the softmodem or while building it. +The telnet server can be built with the `--build-lib telnetsrv` option, after building the softmodem or while building it. -`./build_oai -I -w USRP --eNB --UE --build-telnetsrv` +`./build_oai -I -w USRP --eNB --UE --build-lib telnetsrv` or -`./build_oai --build-telnetsrv` +`./build_oai --build-lib telnetsrv` ## USRP record player @@ -105,13 +105,11 @@ The USRP record player today needs a specific build. Work to make it available a | --eNB | maintained and tested in CI | build `lte-softmodem` the LTE eNodeB | | --UE | maintained and tested in CI | build `lte-uesoftmodem` the LTE UE | | --usrp-recplay | maintained | build with support for the record player. Implementation will be soon reviewed to switch to a run-time option. | -| --build-telnet | maintained | build the telnet server shared library, which can then be loaded at run time via the --telnetsrv command line option. | -| --build-msc | unknown | build the msc shared library, which can then be loaded at run time via the --msc command line option. msc is a tracing utility which status is unknown. | +| --build-lib | maintained | build optional shared library(ies), which can then be loaded at run time via command line option. Use the --help option to get the list of supported optional libraries. | | --UE-conf-nvram | | | | --UE-gen-nvram | | | | -r | unknown, to be removed | specifies which 3GPP release to build for. Only the default (today rel14) is tested in CI and it is likely that future oai release will remove this option | | -V | deprecated | Used to build with support for synchronization diagram utility. This is now available via the T-Tracer and is included if T-Tracer is not disabled. | -| -x | deprecated | Used to build with support for embedded signal analyzer. This is now available via the T-Tracer and is included if T-Tracer is not disabled. | | --build-doxygen | unknown | build doxygen documentation, many oai source files do not include doxygen comments | | --disable-deadline --enable-deadline --disable-cpu-affinity | deprecated | These options were used to activate or de-activate specific code depending on the choice of a specific linux scheduling mode. This has not been tested for a while and should be implemented as configuration options | | --disable-T-Tracer | maintained, to be tested | Remove T_Tracer and console LOG messages except error messages. |