X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=build%2Fodu%2Fmakefile;h=634fc7a60e07fd10bba793648ca6ab0f5e7e7783;hb=refs%2Fchanges%2F77%2F4377%2F11;hp=42c00874c4fcb21984c036350cd7978be51ec4e8;hpb=829bbd114f1c3dc00c1da47bca0a8207c049df3f;p=o-du%2Fl2.git diff --git a/build/odu/makefile b/build/odu/makefile index 42c00874c..634fc7a60 100644 --- a/build/odu/makefile +++ b/build/odu/makefile @@ -70,14 +70,7 @@ endif # macro for output file name and makefile name # -prepare_dirs: - $(Q)echo -e "Preparing directories for build..." - $(Q)mkdir -p $(BUILD_DIR)/obj/odu - $(Q)mkdir -p $(LOG_ROOT)/odu - $(Q)mkdir -p $(LIB_ROOT)/odu - $(Q)echo -e "Directories are successfully prepared" - -PLTFRM_FLAGS= -UMSPD -DODU +PLTFRM_FLAGS= -UMSPD -DODU #-DINTEL_FAPI -DINTEL_WLS -DEGTP_TEST ifeq ($(MODE),TDD) PLTFRM_FLAGS += -DMODE=TDD @@ -86,6 +79,10 @@ ifeq ($(CA_ENABLE),YES) PLTFRM_FLAGS += -DCA_ENABLE=YES endif +ifeq ($(NODE),TEST_STUB) + PLTFRM_FLAGS+=-DODU_TEST_STUB +endif + # The include options get merged with the options needed by # # the called makefiles and hence we export these to make them # # available to them. @@ -98,6 +95,7 @@ export BUILD export I_OPTS # Add to the linker options the platform specific components +#L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp # Export some of the flags expected from the command line. @@ -114,60 +112,155 @@ help: @echo -e "******************************************************************" @echo -e "BUILD COMMAND DESCRIPTION " @echo -e "------------------------------------------------------------------" - @echo -e "$(RULE)odu - Builds all components of ODU$(NORM)" + @echo -e "$(RULE)odu - Builds all components of ODU$(NORM)" + @echo -e "$(RULE)cu_stub - Builds all CU Stub$(NORM)" + @echo -e "$(RULE)ric_stub - Builds all RIC_Stub$(NORM)" + @echo -e "$(RULE)clean_odu - clean up ODU$(NORM)" + @echo -e "$(RULE)clean_cu - clean up CU Stub$(NORM)" + @echo -e "$(RULE)clean_ric - clean up RIC Stub$(NORM)" + @echo -e "$(RULE)clean_all - cleanup everything$(NORM)" @echo -e "$(OPTS) options: $(NORM)" @echo -e "$(OPTS) MACHINE=BIT64/BIT32 - Default is BIT32$(NORM)" - @echo -e "$(OPTS) TEXT_LOG=YES - With text logging instead of binary$(NORM)" - @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" - @echo -e "$(RULE)clean_all tdd cleanup everything$(NORM)" + @echo -e "$(OPTS) NODE=TEST_STUB - Mandatory option for cu_stub/ric_stub$(NORM)" + @echo -e "$(OPTS) MODE=TDD - If not specified, MODE=FDD$(NORM)" @echo -e "******************************************************************" +prepare_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/odu + $(Q)mkdir -p $(LIB_ROOT)/odu + $(Q)mkdir -p $(ROOT_DIR)/libs/ + $(Q)mkdir -p $(BIN_DIR)/odu + $(Q)mkdir -p $(ROOT_DIR)/bin + $(Q)echo -e "Directories are successfully prepared" + +prepare_cu_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/cu_stub + $(Q)mkdir -p $(LIB_ROOT)/cu_stub + $(Q)mkdir -p $(BIN_DIR)/cu_stub + $(Q)echo -e "Directories are successfully prepared" + +prepare_ric_dirs: + $(Q)echo -e "Preparing directories for build..." + $(Q)mkdir -p $(BUILD_DIR)/obj/ric_stub + $(Q)mkdir -p $(LIB_ROOT)/ric_stub + $(Q)mkdir -p $(BIN_DIR)/ric_stub + $(Q)echo -e "Directories are successfully prepared" + du: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + #$(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mac.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/sch.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' -clean: +link_du: du + $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu + +clean_odu: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rg.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mac.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/sch.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rl.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/phy_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/odu/* + $(Q)rm -rf $(LIB_ROOT)/odu/* + $(Q)rm -rf $(BIN_DIR)/odu/* + $(Q)rm -rf $(ROOT_DIR)/bin/odu + $(Q)echo -e "***** ODU CLEAN COMPLETE *****" -clean_all: clean +clean_all: clean_odu clean_cu clean_ric $(Q)rm -rf $(OBJ_ROOT) $(Q)rm -rf $(LIB_ROOT) $(Q)rm -rf $(LOG_ROOT) - $(Q)rm -rf bin -link_all: du - $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\ - $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu + $(Q)rm -rf $(BIN_DIR) + $(Q)rm -rf $(ROOT_DIR)/bin + $(Q)rm -rf $(ROOT_DIR)/libs -odu: prepare_dirs copy_build +cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' -copy_build: link_all - $(Q)mkdir -p bin bin/config bin/odu bin/scripts -ifneq ($(TEXT_LOG), YES) - $(Q)cp -f ./obj/odu/rlogapp bin/odu - $(Q)cat $(LOG_ROOT)/odu/*.db > $(LOG_ROOT)/odu/rlog.logdb - $(Q)cp -f $(LOG_ROOT)/odu/rlog.logdb odu/bin/ - $(Q)echo -e "Completed generation of log database" -endif +clean_cu: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/cu_stub/* + $(Q)rm -rf $(LIB_ROOT)/cu_stub/* + $(Q)rm -rf $(BIN_DIR)/cu_stub/* + $(Q)rm -rf $(ROOT_DIR)/bin/cu_stub + $(Q)echo -e "***** CU STUB CLEAN COMPLETE *****" + +link_cu: + $(Q)$(CC1) -g -o $(OBJ_ROOT)/cu_stub/cu_stub -Wl,-R../lib/:. $(OBJ_ROOT)/cu_stub/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/cu_stub -L$(ROOT_DIR)/libs/cu_stub + $(Q)cp -f ./obj/cu_stub/cu_stub ./bin/cu_stub + $(Q)cp -rf ./bin/cu_stub $(ROOT_DIR)/bin/ + $(Q)cp -f ../scripts/cu_script.sh $(ROOT_DIR)/bin/cu_stub + $(Q)echo -e "***** CU STUB BUILD COMPLETE *****" + +ric: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ric_stub.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + +clean_ric: + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ric_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)rm -rf $(OBJ_ROOT)/ric_stub/* + $(Q)rm -rf $(LIB_ROOT)/ric_stub/* + $(Q)rm -rf $(BIN_DIR)/ric_stub/* + $(Q)rm -rf $(ROOT_DIR)/bin/ric_stub + $(Q)echo -e "***** RIC STUB CLEAN COMPLETE *****" + + +link_ric: + $(Q)$(CC1) -g -o $(OBJ_ROOT)/ric_stub/ric_stub -Wl,-R../lib/:. $(OBJ_ROOT)/ric_stub/*.o\ + $(L_OPTS) -L$(LIB_ROOT)/ric_stub -L$(ROOT_DIR)/libs/ric_stub + $(Q)cp -f ./obj/ric_stub/ric_stub ./bin/ric_stub + $(Q)cp -rf ./bin/ric_stub $(ROOT_DIR)/bin/ + $(Q)echo -e "***** RIC STUB BUILD COMPLETE *****" + + +copy_build: link_du $(Q)cp -f ./obj/odu/odu ./bin/odu -# $(Q)cp -f ../config/wr_cfg_fdd.txt ./odu/bin/wr_cfg.txt -# $(Q)cp -f ../config/ys_cfg.txt ./odu/bin/ys_cfg.txt - $(Q)cp -f ../config/ssi_mem ./bin/config - $(Q)cp -rf ./bin $(ROOT_DIR)/bin/ - $(Q)mkdir -p $(ROOT_DIR)/libs/ + $(Q)cp -rf ./bin/odu $(ROOT_DIR)/bin/ + $(Q)cp -f ../scripts/odu_script.sh $(ROOT_DIR)/bin/odu $(Q)cp -f ./lib/odu/*.a $(ROOT_DIR)/libs/ $(Q)echo -e "***** BUILD COMPLETE *****" + +odu: prepare_dirs copy_build + +cu_stub: prepare_cu_dirs cu link_cu +ric_stub: prepare_ric_dirs ric link_ric +