From 07539642df5725561b4601fc81e972bf4a5b8f23 Mon Sep 17 00:00:00 2001 From: thomasl <thomasl@eurecom.fr> Date: Tue, 31 Mar 2015 13:26:00 +0000 Subject: [PATCH] generate Makefiles with cmake only when it is useful git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6958 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- cmake_targets/build_oai.bash | 200 ++++++++++++++++++----------------- 1 file changed, 102 insertions(+), 98 deletions(-) diff --git a/cmake_targets/build_oai.bash b/cmake_targets/build_oai.bash index 37eb665320..c16c7ca92b 100755 --- a/cmake_targets/build_oai.bash +++ b/cmake_targets/build_oai.bash @@ -161,76 +161,25 @@ echo_info "3. building the compilation directives ..." DIR=$OPENAIR_HOME/cmake_targets -# Create and configure the building directories -#####################################" - -# For eNB, UE, ... -############ -mkdir -p $DIR/lte_build_oai/build -cmake_file=$DIR/lte_build_oai/CMakeLists.txt -echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file -echo "set(XFORMS $XFORMS )" >> $cmake_file -echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file -echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file -echo "set(RF_BOARD \"${HW}\")" >> $cmake_file -echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file -echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file -cd $DIR/lte_build_oai/build -cmake .. - -# For EPC -############ -cmake_file=$DIR/epc_build_oai/CMakeLists.txt -cp $DIR/epc_build_oai/CMakeLists.template $cmake_file -echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file -echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file -mkdir -p $DIR/epc_build_oai/build -cd $DIR/epc_build_oai/build -cmake .. - -# For oaisim -############ -cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt -cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file -echo "set(XFORMS $XFORMS )" >> $cmake_file -echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file -echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file -echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file -mkdir -p $DIR/oaisim_build_oai/build -cd $DIR/oaisim_build_oai/build -cmake .. - -# For oaisim_mme -############ -cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt -cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file -echo "set(XFORMS $XFORMS )" >> $cmake_file -echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file -echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file -echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file -mkdir -p $DIR/oaisim_mme_build_oai/build -cd $DIR/oaisim_mme_build_oai/build -cmake .. - -# For unitary test simulators -################### -cd $OPENAIR_DIR/cmake_targets/lte-simulators -[ "$CLEAN" = "1" ] && rm -rf build -mkdir -p build -cd build -rm -f *sim -cmake .. if [ "$eNB" = "1" -o "UE" = "1" ] ; then # LTE softmodem compilation + mkdir -p $DIR/lte_build_oai/build + cmake_file=$DIR/lte_build_oai/CMakeLists.txt + echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file + echo "set(XFORMS $XFORMS )" >> $cmake_file + echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file + echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo "set(RF_BOARD \"${HW}\")" >> $cmake_file + echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file + cd $DIR/lte_build_oai/build + cmake .. echo_info "Compiling LTE softmodem" compilations \ lte_build_oai lte-softmodem \ lte-softmodem lte-softmodem.$REL - # nasmesh driver compilation - compilations \ - oaisim_build_oai nasmesh \ - CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko + fi if [ "$UE" = 1 ] ; then @@ -247,6 +196,15 @@ if [ "$UE" = 1 ] ; then nvram $dbin/nvram fi +if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then + cd $OPENAIR_DIR/cmake_targets/lte-simulators + [ "$CLEAN" = "1" ] && rm -rf build + mkdir -p build + cd build + rm -f *sim + cmake .. +fi + if [ "$SIMUS_PHY" = "1" ] ; then # lte unitary simulators compilation echo_info "Compiling unitary tests simulators" @@ -273,7 +231,7 @@ fi # EXMIMO drivers & firmware loader ############### -if [ "$HW" = "EXMIMO" ] ; then +if [ "$HW" = "EXMIMO" -o "$UE$eNB" != "" ] ; then echo_info "Compiling Express MIMO 2 board drivers" compilations \ lte_build_oai openair_rf \ @@ -285,42 +243,71 @@ fi if [ "$oaisim" = "1" ] ; then echo_info "Compiling oaisim" + cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt + cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file + echo "set(XFORMS $XFORMS )" >> $cmake_file + echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file + echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file + mkdir -p $DIR/oaisim_build_oai/build + cd $DIR/oaisim_build_oai/build + cmake .. compilations \ oaisim_build_oai oaisim \ oaisim $dbin/oaisim.$REL + + # nasmesh driver compilation compilations \ - oaisim_mme_build_oai oaisim_mme \ - oaisim_mme $dbin/oaisim_mme.$REL + oaisim_build_oai nasmesh \ + CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko #oai_nw_drv compilations \ oaisim_build_oai oai_nw_drv \ CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko + cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt + cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file + echo "set(XFORMS $XFORMS )" >> $cmake_file + echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file + echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file + mkdir -p $DIR/oaisim_mme_build_oai/build + cd $DIR/oaisim_mme_build_oai/build + cmake .. + compilations \ + oaisim_mme_build_oai oaisim_mme \ + oaisim_mme $dbin/oaisim_mme.$REL fi # EPC compilation ################## if [ "$EPC" = "1" ] ; then - echo_info "Compiling EPC" - - compilations \ - epc_build_oai mme_gw \ - mme_gw $dbin/mme_gw.$REL + echo_info "Compiling EPC" + cmake_file=$DIR/epc_build_oai/CMakeLists.txt + cp $DIR/epc_build_oai/CMakeLists.template $cmake_file + echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file + echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file + mkdir -p $DIR/epc_build_oai/build + cd $DIR/epc_build_oai/build + cmake .. + compilations \ + epc_build_oai mme_gw \ + mme_gw $dbin/mme_gw.$REL # Only integrated mme+sgw+pgw is operational today # compilations \ -# epc_build_oai oai_sgw \ -# oai_sgw $dbin/oai_sgw.$REL - compilations \ - epc_build_oai xt_GTPUAH_lib \ - libxt_GTPUAH_lib.so $dbin - compilations \ - epc_build_oai xt_GTPURH_lib \ - libxt_GTPURH_lib.so $dbin - compilations \ - epc_build_oai xt_GTPURH \ - CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin - compilations \ - epc_build_oai xt_GTPUAH \ - CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin +# epc_build_oai oai_sgw \ +# oai_sgw $dbin/oai_sgw.$REL + compilations \ + epc_build_oai xt_GTPUAH_lib \ + libxt_GTPUAH_lib.so $dbin + compilations \ + epc_build_oai xt_GTPURH_lib \ + libxt_GTPURH_lib.so $dbin + compilations \ + epc_build_oai xt_GTPURH \ + CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin + compilations \ + epc_build_oai xt_GTPUAH \ + CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then # Example HSS and EPC run on the same host @@ -338,30 +325,47 @@ fi if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then echo_info "Copying iptables libraries into system directory: /lib/xtables" - $SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so - $SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so + if [ -f $dbin/libxt_GTPURH_lib.so ] ; then + $SUDO rm -f /lib/xtables/libxt_GTPURH.so /lib/xtables/libxt_GTPUAH.s + $SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so + $SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so + else + echo_warning "not installed GTP-U iptables: binaries not found" + fi dconf=$OPENAIR_TARGETS/bin mkdir -p $dconf - cp $ORIGIN_PATH/$CONFIG_FILE $dconf || echo_fatal "config file $ORIGIN_PATH/$CONFIG_FILE not found" +#LG??? cp $ORIGIN_PATH/$CONFIG_FILE $dconf || echo_fatal "config file $ORIGIN_PATH/$CONFIG_FILE not found" # generate USIM data - install_nas_tools $dbin $dconf + if [ -f $dbin/nvram ]; then + install_nas_tools $dbin $dconf + else + echo_warning "not generated UE NAS files: binaries not found" + fi # Do EPC - cp $DIR/epc_build_oai/build/epc.*.conf $dconf - $SUDO cp $DIR/epc_build_oai/build/epc_s6a.conf /usr/local/etc/freeDiameter + if [ -f $DIR/epc_build_oai/build/epc_s6a.conf ] ; then + cp $DIR/epc_build_oai/build/epc.*.conf $dconf + $SUDO cp $DIR/epc_build_oai/build/epc_s6a.conf /usr/local/etc/freeDiameter + else + echo_warning "not installed EPC config files: not found" + fi # Do HSS # bash doesn't like space char around = char - cp $DIR/hss_build/hss.conf $dbin - $SUDO cp $DIR/hss_build/hss_fd.conf $DIR/hss_build/acl.conf /usr/local/etc/freeDiameter + #cp $DIR/hss_build/hss.conf $dbin + #$SUDO cp $DIR/hss_build/build/hss_fd.conf $DIR/hss_build/acl.conf /usr/local/etc/freeDiameter - sed -e 's/ *= */=/' $dbin/hss.conf > $dconf/hss.conf.nospace - source $dconf/hss.conf.nospace - rm -f $dconf/hss.conf.nospace - create_hss_database root linux "$MYSQL_user" "$MYSQL_pass" "$MYSQL_db" -fi + if [ -f $dbin/hss.conf ] ; then + sed -e 's/ *= */=/' $dbin/hss.conf > $dconf/hss.conf.nospace + source $dconf/hss.conf.nospace + rm -f $dconf/hss.conf.nospace + create_hss_database root linux "$MYSQL_user" "$MYSQL_pass" "$MYSQL_db" + else + echo_warning "not created HSS database: config not found" + fi +fi # Auto-tests ##################### -- GitLab