Merge "Memory handling fixes [Issue-ID: ODUHIGH-337]"
[o-du/l2.git] / build / odu / makefile
1 ################################################################################
2 #   Copyright (c) [2017-2019] [Radisys]                                        #
3 #                                                                              #
4 #   Licensed under the Apache License, Version 2.0 (the "License");            #
5 #   you may not use this file except in compliance with the License.           #
6 #   You may obtain a copy of the License at                                    #
7 #                                                                              #
8 #       http://www.apache.org/licenses/LICENSE-2.0                             #
9 #                                                                              #
10 #   Unless required by applicable law or agreed to in writing, software        #
11 #   distributed under the License is distributed on an "AS IS" BASIS,          #
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
13 #   See the License for the specific language governing permissions and        #
14 #   limitations under the License.                                             #
15 ################################################################################
16
17 # Master makefile
18
19 # Identify the location our software which is used by rest
20 # of the build scripts
21
22 include ../common/rsys_fancy.mak
23 include ../common/env.mak
24
25 RULE=$(COLOR_RED)
26 OPTS=$(COLOR_GREEN)
27 NORM=$(REVERT_COLOR)
28
29 # For improved speed
30 CPUINFO=`cat /proc/cpuinfo | grep processor| wc -l`
31 ifeq ($(CPUINFO), 1)
32    NUM_PARALLEL=1
33 else
34       NUM_PARALLEL=$(shell echo $(CPUINFO) - 1 |bc)
35 endif
36
37 ifeq ($(FAST), 1)
38       NUM_PARALLEL=$(shell echo $(CPUINFO) + 2 |bc)
39 endif
40
41 PARALLEL_COMP=-j $(NUM_PARALLEL)
42
43 # Different options to CPUH and CPUL builds
44 # # Other apsects of tool chain set here
45 # # These should be made available appropriately to the builds
46 ifeq ($(MACHINE),BIT64)
47 CC          =gcc -m64
48 CC_STRIP    =strip --strip-all
49 CC_LINKER   =gcc -m64
50 CCPP        =g++ -m64
51 CCPP_LINKER =g++ -m64
52 else
53 CC          =gcc -m32
54 CC_STRIP    =strip --strip-all
55 CC_LINKER   =gcc -m32
56 CCPP        =g++ -m32
57 CCPP_LINKER =g++ -m32
58 endif
59
60 CC1= $(CC)
61 CCPP1= $(CCPP)
62
63 ifeq ($(MODE),TDD)
64 CNM_ENABLE = YES
65 else
66 CNM_ENABLE=NO
67 endif
68
69 #-----------------------------------------------------------------------
70 # macro for output file name and makefile name
71 #
72
73 PLTFRM_FLAGS= -UMSPD -DODU -DINTEL_FAPI #-DODU_SLOT_IND_DEBUG_LOG -DEGTP_TEST
74
75 ifeq ($(MODE),TDD)
76    PLTFRM_FLAGS += -DNR_TDD
77 endif
78 ifeq ($(CA_ENABLE),YES)
79    PLTFRM_FLAGS += -DCA_ENABLE=YES
80 endif
81
82 ifeq ($(NODE),TEST_STUB)
83         PLTFRM_FLAGS+=-DODU_TEST_STUB
84 endif
85 ifeq ($(PHY), INTEL_L1)
86         PLTFRM_FLAGS+=-DSS_USE_WLS_MEM -DINTEL_WLS_MEM -DDEBUG_MODE
87 ifeq ($(PHY_MODE),TIMER)
88         PLTFRM_FLAGS+=-DINTEL_TIMER_MODE
89 else
90    #TODO: Remove below flag for testing RACH.indication onward
91    PLTFRM_FLAGS+=-DTEMP_INTG_FLAG
92 endif
93 endif
94
95 ifeq ($(O1_ENABLE),YES)
96         PLTFRM_FLAGS+=-DO1_ENABLE
97 endif
98
99 # The include options get merged with the options needed by
100 # # the called makefiles and hence we export these to make them
101 # # available to them.
102 BUILD=i686-linux
103
104 # The called makefiles depend on these macros and these need to be exported
105 export PLTFRM
106 export PLTFRM_FLAGS
107 export BUILD
108 export I_OPTS
109
110 # Add to the linker options the platform specific components
111 L_OPTS+=-lnsl -lrt -lm -lpthread -lsctp 
112 ifeq ($(PHY), INTEL_L1)
113         L_OPTS+=-L/root/intel/phy/wls_lib/lib -lwls                         \
114         -lhugetlbfs -lnuma -ldl -L/root/intel/dpdk-19.11/x86_64-native-linuxapp-gcc/lib             \
115         -ldpdk -lrte_gso -lrte_pmd_atlantic -lrte_pmd_iavf -lrte_pmd_tap -lrte_acl                  \
116         -lrte_hash -lrte_pmd_avp -lrte_pmd_ice -lrte_pmd_thunderx_nicvf -lrte_bbdev                 \
117         -lrte_ip_frag -lrte_pmd_axgbe -lrte_pmd_ifc -lrte_pmd_vdev_netvsc -lrte_bitratestats        \
118         -lrte_ipsec -lrte_pmd_bbdev_fpga_lte_fec -lrte_pmd_ixgbe -lrte_pmd_vhost                    \
119         -lrte_bpf -lrte_jobstats -lrte_pmd_bbdev_null -lrte_pmd_kni -lrte_pmd_virtio                \
120         -lrte_bus_dpaa -lrte_kni -lrte_pmd_bbdev_turbo_sw -lrte_pmd_lio -lrte_pmd_virtio_crypto     \
121         -lrte_bus_fslmc -lrte_kvargs -lrte_pmd_bnxt -lrte_pmd_memif -lrte_pmd_vmxnet3_uio           \
122         -lrte_bus_ifpga -lrte_latencystats -lrte_pmd_bond -lrte_pmd_netvsc -lrte_port               \
123         -lrte_bus_pci -lrte_lpm -lrte_pmd_caam_jr -lrte_pmd_nfp -lrte_power -lrte_bus_vdev          \
124         -lrte_mbuf -lrte_pmd_crypto_scheduler -lrte_pmd_nitrox -lrte_rawdev -lrte_bus_vmbus         \
125         -lrte_member -lrte_pmd_cxgbe -lrte_pmd_null -lrte_rawdev_dpaa2_cmdif -lrte_cfgfile          \
126         -lrte_mempool -lrte_pmd_dpaa -lrte_pmd_null_crypto -lrte_rawdev_dpaa2_qdma                  \
127         -lrte_cmdline -lrte_mempool_bucket -lrte_pmd_dpaa2 -lrte_pmd_octeontx -lrte_rawdev_ioat     \
128         -lrte_common_cpt -lrte_mempool_dpaa -lrte_pmd_dpaa2_event -lrte_pmd_octeontx2               \
129         -lrte_rawdev_ntb -lrte_common_dpaax -lrte_mempool_dpaa2 -lrte_pmd_dpaa2_sec                 \
130         -lrte_pmd_octeontx2_crypto -lrte_rawdev_octeontx2_dma -lrte_common_octeontx                 \
131         -lrte_mempool_octeontx -lrte_pmd_dpaa_event -lrte_pmd_octeontx2_event -lrte_rawdev_skeleton \
132         -lrte_common_octeontx2 -lrte_mempool_octeontx2 -lrte_pmd_dpaa_sec -lrte_pmd_octeontx_crypto \
133         -lrte_rcu -lrte_compressdev -lrte_mempool_ring -lrte_pmd_dsw_event -lrte_pmd_octeontx_ssovf \
134         -lrte_reorder -lrte_cryptodev -lrte_mempool_stack -lrte_pmd_e1000 -lrte_pmd_octeontx_zip    \
135         -lrte_rib -lrte_distributor -lrte_meter -lrte_pmd_ena -lrte_pmd_opdl_event -lrte_ring       \
136         -lrte_eal -lrte_metrics -lrte_pmd_enetc -lrte_pmd_qat -lrte_sched -lrte_efd -lrte_net       \
137         -lrte_pmd_enic -lrte_pmd_qede -lrte_security -lrte_ethdev -lrte_pci -lrte_pmd_failsafe      \
138         -lrte_pmd_ring -lrte_stack -lrte_eventdev -lrte_pdump -lrte_pmd_fm10k -lrte_pmd_sfc_efx     \
139         -lrte_table -lrte_fib -lrte_pipeline -lrte_pmd_hinic -lrte_pmd_skeleton_event -lrte_timer   \
140         -lrte_flow_classify -lrte_pmd_af_packet -lrte_pmd_hns3 -lrte_pmd_softnic -lrte_vhost        \
141         -lrte_gro -lrte_pmd_ark -lrte_pmd_i40e -lrte_pmd_sw_event
142 endif
143
144 ifeq ($(O1_ENABLE),YES)
145   L_OPTS+=-lsysrepo -lyang
146   L_OPTS+=-lsysrepo-cpp -lyang-cpp
147 L_OPTS+= -lnetconf2 -lcjson -lcurl
148   L_OPTS+=-lstdc++
149 endif
150
151 # Export some of the flags expected from the command line.
152 # # These macros are made available for the makefiles called from this makefile
153 export BOARD
154 export MACHINE
155 export MODE
156 export OAM_ENABLE
157 export CNM_ENABLE
158 export TEXT_LOG
159 export CA_ENABLE
160 export O1_ENABLE
161
162 help:
163                 @echo -e "******************************************************************"
164                 @echo -e "BUILD COMMAND            DESCRIPTION                              "
165                 @echo -e "------------------------------------------------------------------"
166                 @echo -e "$(RULE)odu       - Builds all components of ODU$(NORM)"
167                 @echo -e "$(RULE)cu_stub   - Builds all CU Stub$(NORM)"
168                 @echo -e "$(RULE)ric_stub   - Builds all RIC_Stub$(NORM)"
169                 @echo -e "$(RULE)clean_odu - clean up ODU$(NORM)"
170                 @echo -e "$(RULE)clean_cu  - clean up CU Stub$(NORM)"
171                 @echo -e "$(RULE)clean_ric  - clean up RIC Stub$(NORM)"
172                 @echo -e "$(RULE)clean_all - cleanup everything$(NORM)"
173                 @echo -e "$(OPTS)options: $(NORM)"
174                 @echo -e "$(OPTS)    MACHINE=BIT64/BIT32  - Default is BIT32$(NORM)"
175                 @echo -e "$(OPTS)    NODE=TEST_STUB       - Mandatory option for cu_stub/ric_stub$(NORM)"
176                 @echo -e "$(OPTS)    MODE=TDD             - If not specified, MODE=FDD$(NORM)"
177                 @echo -e "$(OPTS)    PHY=INTEL_L1         - If not specified, Phy stub is used$(NORM)"
178                 @echo -e "$(OPTS)    PHY_MODE=TIMER       - Testing mode for INTEL_L1"
179                 @echo -e "******************************************************************"
180
181 prepare_dirs:
182         $(Q)echo -e "Preparing directories for build..."
183         $(Q)mkdir -p $(BUILD_DIR)/obj/odu
184         $(Q)mkdir -p $(LIB_ROOT)/odu
185         $(Q)mkdir -p $(ROOT_DIR)/libs/
186         $(Q)mkdir -p $(BIN_DIR)/odu
187         $(Q)mkdir -p $(ROOT_DIR)/bin
188         $(Q)echo -e "Directories are successfully prepared"
189
190 prepare_cu_dirs:
191          $(Q)echo -e "Preparing directories for build..."
192          $(Q)mkdir -p $(BUILD_DIR)/obj/cu_stub
193          $(Q)mkdir -p $(LIB_ROOT)/cu_stub
194          $(Q)mkdir -p $(BIN_DIR)/cu_stub
195          $(Q)echo -e "Directories are successfully prepared"
196
197 prepare_ric_dirs:
198          $(Q)echo -e "Preparing directories for build..."
199          $(Q)mkdir -p $(BUILD_DIR)/obj/ric_stub
200          $(Q)mkdir -p $(LIB_ROOT)/ric_stub
201          $(Q)mkdir -p $(BIN_DIR)/ric_stub
202          $(Q)echo -e "Directories are successfully prepared"
203
204 du:
205                 $(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)'
206                 $(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)'
207                 $(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)'
208                 $(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)'
209                 $(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)'
210                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rlc.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)'
211                 $(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)'
212                 $(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)'
213                 $(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)'
214                 $(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)'
215                 $(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)'
216 ifeq ($(O1_ENABLE),YES)
217                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CCPP1)'
218                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CCPP1)'
219 endif
220
221 link_du: du
222                    $(Q)$(CC1) -g -o $(OBJ_ROOT)/odu/odu -Wl,-R../lib/:. $(OBJ_ROOT)/odu/*.o\
223                         $(L_OPTS) -L$(LIB_ROOT)/odu -L$(ROOT_DIR)/libs/odu 
224
225 clean_odu: 
226                 $(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)'
227                 $(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)'
228                 $(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)'
229                 $(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)'
230                 $(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)'
231                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/rlc.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)'
232                 $(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)'
233                 $(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)'
234                 $(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)'
235                 $(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)'
236                 $(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)'
237 ifeq ($(O1_ENABLE),YES)
238                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CCPP1)'
239                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CCPP1)'
240 endif
241                 $(Q)rm -rf $(OBJ_ROOT)/odu/*
242                 $(Q)rm -rf $(LIB_ROOT)/odu/*
243                 $(Q)rm -rf $(BIN_DIR)/odu/*
244            $(Q)rm -rf $(ROOT_DIR)/bin/odu
245            $(Q)echo -e "***** ODU CLEAN COMPLETE *****"
246
247 clean_all: clean_odu clean_cu clean_ric
248                           $(Q)rm -rf $(OBJ_ROOT)
249                           $(Q)rm -rf $(LIB_ROOT)
250                           $(Q)rm -rf $(LOG_ROOT)
251                           $(Q)rm -rf $(BIN_DIR)
252                           $(Q)rm -rf $(ROOT_DIR)/bin
253                           $(Q)rm -rf $(ROOT_DIR)/libs
254
255 cu: 
256          $(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)'
257          $(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)'
258          $(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)'
259          $(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)'
260          $(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)'
261          $(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)'
262 ifeq ($(O1_ENABLE),YES)
263                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CCPP1)'
264                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CCPP1)'
265 endif
266
267 clean_cu:
268          $(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)'
269          $(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)'
270          $(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)'
271          $(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)'
272          $(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)'
273          $(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)'
274 ifeq ($(O1_ENABLE),YES)
275                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CCPP1)'
276                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CCPP1)'
277 endif
278          $(Q)rm -rf $(OBJ_ROOT)/cu_stub/*
279          $(Q)rm -rf $(LIB_ROOT)/cu_stub/*
280          $(Q)rm -rf $(BIN_DIR)/cu_stub/*
281          $(Q)rm -rf $(ROOT_DIR)/bin/cu_stub
282          $(Q)echo -e "***** CU STUB CLEAN COMPLETE *****"
283
284 link_cu: 
285                 $(Q)$(CC1) -g -o $(OBJ_ROOT)/cu_stub/cu_stub -Wl,-R../lib/:. $(OBJ_ROOT)/cu_stub/*.o\
286                 $(L_OPTS) -L$(LIB_ROOT)/cu_stub -L$(ROOT_DIR)/libs/cu_stub
287                 $(Q)cp -f ./obj/cu_stub/cu_stub ./bin/cu_stub
288                 $(Q)cp -rf ./bin/cu_stub $(ROOT_DIR)/bin/
289                 $(Q)cp -f ../scripts/cu_script.sh $(ROOT_DIR)/bin/cu_stub
290                 $(Q)echo -e "***** CU STUB BUILD COMPLETE *****"
291
292 ric: 
293          $(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)'
294          $(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)'
295          $(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)'
296          $(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)'
297          $(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)'
298 ifeq ($(O1_ENABLE),YES)
299                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CCPP1)'
300                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CCPP1)'
301 endif
302
303 clean_ric:
304          $(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)'
305          $(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)'
306          $(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)'
307          $(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)'
308          $(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)'
309          $(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)'
310 ifeq ($(O1_ENABLE),YES)
311                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/o1.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CCPP1)'
312                 $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ves.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CCPP1)'
313 endif
314          $(Q)rm -rf $(OBJ_ROOT)/ric_stub/*
315          $(Q)rm -rf $(LIB_ROOT)/ric_stub/*
316          $(Q)rm -rf $(BIN_DIR)/ric_stub/*
317          $(Q)rm -rf $(ROOT_DIR)/bin/ric_stub
318          $(Q)echo -e "***** RIC STUB CLEAN COMPLETE *****"
319
320
321 link_ric: 
322                 $(Q)$(CC1) -g -o $(OBJ_ROOT)/ric_stub/ric_stub -Wl,-R../lib/:. $(OBJ_ROOT)/ric_stub/*.o\
323                 $(L_OPTS) -L$(LIB_ROOT)/ric_stub -L$(ROOT_DIR)/libs/ric_stub
324                 $(Q)cp -f ./obj/ric_stub/ric_stub ./bin/ric_stub
325                 $(Q)cp -rf ./bin/ric_stub $(ROOT_DIR)/bin/
326                 $(Q)echo -e "***** RIC STUB BUILD COMPLETE *****"
327
328
329 copy_build: link_du
330                         $(Q)cp -f ./obj/odu/odu ./bin/odu
331                         $(Q)cp -rf ./bin/odu $(ROOT_DIR)/bin/
332                         $(Q)cp -f ../scripts/odu_script.sh $(ROOT_DIR)/bin/odu
333                         $(Q)cp -rf ../config/ $(ROOT_DIR)/bin/odu
334                         $(Q)cp -f ./lib/odu/*.a $(ROOT_DIR)/libs/
335                    $(Q)echo -e "***** BUILD COMPLETE *****"
336
337 odu: prepare_dirs copy_build
338
339 cu_stub: prepare_cu_dirs cu link_cu
340 ric_stub: prepare_ric_dirs ric link_ric
341
342 #**********************************************************************
343 #         End of file
344 #**********************************************************************