Makefile 14.8 KB
Newer Older
1 2 3 4 5
# Include some shared directives
include $(OPENAIR_TARGETS)/Makerules

default: oaisim

nikaeinn's avatar
nikaeinn committed
6
include $(OPENAIR_TARGETS)/Makefile.common
7

8 9 10 11 12
TOP_DIR               = $(OPENAIR1_DIR)
OPENAIR1_TOP          = $(OPENAIR1_DIR)
OPENAIR2_TOP          = $(OPENAIR2_DIR)
OPENAIR3_TOP          = $(OPENAIR3_DIR)
OPENAIR3              = $(OPENAIR3_DIR)
13

14
ifeq ($(DEBUG),1)	
15
CFLAGS += -g -ggdb -DDEBUG_PHY -DDEBUG_MEAS
16 17
CFLAGS += -DRRC_MSG_PRINT
CFLAGS += -DPDCP_MSG_PRINT
18 19 20 21 22
CFLAGS += -DTRACE_RLC_UM_PDU
CFLAGS += -DTRACE_RLC_AM_PDU
else
CFLAGS += -DTRACE_RLC_UM_PDU
CFLAGS += -DTRACE_RLC_AM_PDU
23 24 25 26 27
endif 

ifeq ($(MSG_PRINT),1)
CFLAGS += -DRRC_MSG_PRINT
CFLAGS += -DPDCP_MSG_PRINT
28 29
endif

30

31
CFLAGS += -Wpointer-sign
32
CFLAGS += -DUSER_MODE -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 $(CPUFLAGS) -I/usr/include/X11 #-Wno-packed-bitfield-compat
33

34 35 36 37 38 39
ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES

CFLAGS += -DOPENAIR_LTE -DPUCCH #-DOFDMA_ULSCH -DIFFT_FPGA -DIFFT_FPGA_UE
CFLAGS += -DMAC_CONTEXT=1 -DPHY_CONTEXT=1 -DPHY_ABSTRACTION #-DPHY_ABSTRACTION_UL #-DRLC_UM_TEST_TRAFFIC=1
CFLAGS += -DNEW_FFT
#CFLAGS += -DLLR8
40
CFLAGS += -DPACKAGE_NAME='"oaisim"'
41

42 43 44 45 46 47 48 49 50
ifndef OPENAIR2
OPENAIR2=1
endif

ifdef DEBUG
DISABLE_XER_PRINT=0
MSG_PRINT=1
endif

51 52
ifndef OPENAIR_EMU
export OPENAIR_EMU=1
53
CFLAGS += -DOAISIM
54 55 56 57 58 59
endif

ifdef EMOS
CFLAGS+=-DEMOS
endif

60 61 62 63 64 65 66 67
ifeq ($(LOCALIZATION), 1)
CFLAGS += -DLOCALIZATION
endif

ifeq ($(LINUX_LIST), 1)
CFLAGS += -DLINUX_LIST
endif

68 69 70 71 72 73
ifdef TRAFFIC_TM5
CFLAGS += -DRLC_UM_TEST_TRAFFIC=1 #-DFULL_BUFFER=1
endif

# activate OCG and libxml only under linux
ifeq ($(linux),1)
74
CFLAGS += $(LIBXML2_CFLAGS) -L/usr/local/lib -I/usr/include/atlas -L/usr/X11R6/lib
75
OCG_FLAG =1
76 77 78 79 80 81 82
CFLAGS += -DLINUX
endif

ifdef SMBV
CFLAGS += -DSMBV
endif

83
ifeq ($(XFORMS), 1)
84 85 86
CFLAGS += -DXFORMS
endif

87
ifdef DB
88 89 90 91 92
# Check if libmysqlclient is installed and use it if found to store simulation data for postprocessing
ENABLE_DB = $(shell if [ `dpkg -l | grep libmysqlclient -c` = "0" ]; then  echo "0" ; else  echo "1" ; fi )
ifeq ($(ENABLE_DB), 1)
CFLAGS +=-I/usr/include/mysql -L/usr/lib/mysql -DENABLE_DB_STATS
DB_LDFLAGS = -lmysqlclient
93
endif
94
endif
95

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
ifdef PRINT_STATS
CFLAGS += -DPRINT_STATS
endif

ifndef rrc_cellular
rrc_cellular = 0
rrc_cellular_eNB = 0
rrc_cellular_UE = 0
else
  ifeq ($(eNB_flag),1)
    rrc_cellular_eNB=1
  endif
  ifeq ($(UE_flag),1)
    rrc_cellular_UE=1
  endif
endif

ifdef LS
CFLAGS += -DLARGE_SCALE
endif

# ln -sf EUTRA-RRC-Definitions-a20.asn EUTRA-RRC-Definitions.asn
# make cleanasn1
#make all Rel10=1

ifdef CBA
CFLAGS += -DRel10
CFLAGS += -DCBA
124
$(info "Rel10=1 CBA=1")
125 126 127

else ifdef Rel10
CFLAGS += -DRel10
128
$(info "Rel10=1")
129
else # default is rel 8
130
$(info "Rel8=1")
131 132 133
CFLAGS += -DRel8
endif

134
#CFLAGS += -DMAX_NUM_CCs=1
135

gauthier's avatar
gauthier committed
136 137 138
ifeq ($(RLC_STOP_ON_LOST_PDU), 1)
CFLAGS += -DRLC_STOP_ON_LOST_PDU
endif
gauthier's avatar
gauthier committed
139 140 141
ifeq ($(STOP_ON_IP_TRAFFIC_OVERLOAD), 1)
CFLAGS += -DSTOP_ON_IP_TRAFFIC_OVERLOAD
endif
gauthier's avatar
gauthier committed
142

143 144 145

ifeq ($(MIH_C_MEDIEVAL_EXTENSIONS), 1)
CFLAGS += -DMIH_C_MEDIEVAL_EXTENSIONS
146 147
ifeq ($(USE_3GPP_ADDR_AS_LINK_ADDR), 1)
CFLAGS += -DUSE_3GPP_ADDR_AS_LINK_ADDR
148
endif
149 150 151
endif


152

153 154
ifeq ($(LINK_ENB_PDCP_TO_IP_DRIVER), 1)
CFLAGS += -DPDCP_USE_NETLINK -DLINUX
155 156 157
NAS_FLAG=1
endif

158 159 160 161
ifeq ($(LINK_ENB_PDCP_TO_GTPV1U), 1)
CFLAGS += -DLINK_ENB_PDCP_TO_GTPV1U 
endif

162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
ifdef TEST_OMG
CFLAGS += -DTEST_OMG
#CFLAGS += -DDEBUG_OMG
endif
# after the execution, a profiling output "gmon.out" will be created,
#then we need to run "gprof ./oaisim > gmon.txt" in the same directory as "gmon.out"
# you could also use the script "grpof2dot.py gmon.txt" for visual diagrams
ifdef GPROF
CFLAGS += -pg
endif

#require kernel patch for oai driver to enable address autoconfiguration (IPv6 only)
ifdef ADDCONF
CFLAGS+=-DADDRCONF
endif

ifdef OAI_NW_DRIVER_TYPE_ETHERNET
CFLAGS+=-DOAI_NW_DRIVER_TYPE_ETHERNET
endif

182 183 184 185
CFLAGS += -DENABLE_FXP -DOAI_EMU -DENABLE_USE_CPU_EXECUTION_TIME
ifndef DISABLE_XER_PRINT
CFLAGS += -DXER_PRINT
endif
186

187 188
ifdef SECU
ifeq ($(NETTLE_FOUND), 0)
189
$(warning "Nettle library >= 2.5 is not installed on your system, nettle-dev lib needed, continuing with security disabled")
190 191 192
SECU=0
else
ifeq ($(OPENSSL_FOUND), 0)
193
$(warning "openssl library is not installed on your system, openssl lib needed, continuing with security disabled")
194 195 196
SECU=0
else
CFLAGS += -DENABLE_SECURITY
197
LIBS += $(OPENSSL_LIBS) $(NETTLE_LIBS)
198 199 200 201
endif
endif
endif

202 203 204 205 206 207 208
include $(OPENAIR1_DIR)/PHY/Makefile.inc
include $(OPENAIR1_DIR)/SCHED/Makefile.inc
include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
include $(OPENAIR2_DIR)/LAYER2/Makefile.inc
include $(OPENAIR1_DIR)/SIMULATION/ETH_TRANSPORT/Makefile.inc
include $(OPENAIR2_DIR)/RRC/NAS/Makefile.inc
include $(OPENAIR2_DIR)/UTIL/Makefile.inc
209
include $(OPENAIR3_DIR)/RAL-LTE/Makefile.inc
winckel's avatar
winckel committed
210 211
include $(OPENAIR2_DIR)/ENB_APP/Makefile.inc

212

213
INCLUDES += -I$(TOP_DIR)
winckel's avatar
winckel committed
214 215 216 217 218
INCLUDES += $(L2_incl)
INCLUDES += $(ENB_APP_incl)
INCLUDES += $(UTIL_incl)
INCLUDES += $(UTILS_incl)
INCLUDES += -I$(ASN1_MSG_INC)
219
INCLUDES += -I$(COMMON_UTILS_DIR)/collection
220

221 222 223 224 225 226 227 228 229 230
SIMULATION_OBJS  = $(TOP_DIR)/SIMULATION/TOOLS/gauss.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/random_channel.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/rangen_double.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/taus.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/multipath_channel.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/TOOLS/abstraction.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/rf.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/adc.o
SIMULATION_OBJS += $(TOP_DIR)/SIMULATION/RF/dac.o

231
ASN1_RRC_MSG_OBJS1=$(addprefix $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/, $(ASN1_MSG_OBJS))
232

233 234 235 236 237 238
OAISIM_OBJS_COMMON  = $(OPENAIR_TARGETS)/SIMU/USER/channel_sim.o
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/init_lte.o
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_config.o
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/sinr_sim.o
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/cor_SF_sim.o
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_functions.o
239
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/event_handler.o
240

241
OAISIM_OBJS = $(OPENAIR_TARGETS)/SIMU/USER/oaisim.o
242

243
ifeq ($(XFORMS), 1)	
244 245 246 247 248 249 250
TOOLS_OBJS += $(OPENAIR1_DIR)/PHY/TOOLS/lte_phy_scope.o
endif

ifdef PAD
CFLAGS += -DPAD
endif

251 252 253
OAISIM_PAD_OBJS =  $(OPENAIR_TARGETS)/SIMU/USER/discrete_event_generator.o
OAISIM_PAD_OBJS += $(OPENAIR_TARGETS)/SIMU/USER/threadpool.o
OAISIM_PAD_OBJS += $(OPENAIR_TARGETS)/SIMU/USER/oaisim_pad.o
254
#deactivate the log offloading
255 256 257 258 259
ifndef LOG_THREAD
CFLAGS +=-DLOG_NO_THREAD
endif

ifdef PROC
260 261 262
INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/channel_sim_proc.o
INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/Process.o
CFLAGS += -DPROC
263 264 265
endif

CFLAGS += -DENABLE_VCD_FIFO
Cedric Roux's avatar
Cedric Roux committed
266
CFLAGS += -DENABLE_NEW_MULTICAST
267
ifdef NAS
268
CFLAGS += -DUSE_PDCP_NETLINK_QUEUES
269
endif
270 271
# CFLAGS += -DENABLE_LOG_FIFO

272 273
# Check if libpgm is installed and use it if found instead of the unreliable
# multicast
274
ifeq ($(PGM_FOUND), 1)
275 276
CFLAGS		+= $(PGM_CFLAGS) -DENABLE_PGM_TRANSPORT
LIBS		+= $(PGM_LIBS)
277 278
endif

279
OBJ += $(PHY_OBJS) $(SIMULATION_OBJS) $(ETHERNET_TRANSPORT_OBJS) $(TOOLS_OBJS) $(SCHED_OBJS) $(STATS_OBJS) $(NAS_OBJS)
280
OBJ += $(INT_OBJS) $(UTIL_OBJ) $(UTILS_OBJS) $(OAISIM_OBJS_COMMON) $(ENB_APP_OBJS)
281 282 283 284
ifeq ($(OPENAIR2),1)
OBJ += $(L2_OBJS)
endif

285
LFDS_OBJ_DIR		 = $(subst $(OPENAIR_DIR),$(OBJS_DIR),$(LFDS_DIR))
286 287
LFDS_LIB		 = $(LFDS_OBJ_DIR)/bin/liblfds611.a
LIBS 			+= $(LFDS_LIB)
288
SHARED_DEPENDENCIES 	+= $(LFDS_LIB)
289

nikaeinn's avatar
nikaeinn committed
290
all: oaisim 
291 292 293 294 295

pad: oaisim_pad

userclean: cleanall oaisim

296 297 298
objsdir:
	@if [ ! -d $(OBJS_DIR) ]; then mkdir -p $(OBJS_DIR); fi

299 300 301 302 303 304 305 306 307
printvars:
	@echo rrc_cellular variable is $(rrc_cellular)
	@echo EXTRA_CFLAGS = $(EXTRA_CFLAGS)
	@echo OAI Config generator is $(OCG_FLAG)
	@echo OAI NETLINK FLAG is $(NAS_FLAG)
	@echo SSE3 proc is $(SSE3PROC)
	@echo L2 objs are $(L2_OBJS)
	@echo eNB_flag is $(eNB_flag)
	@echo UE_flag is $(UE_flag)
308
	@echo S1AP objs: $(S1AP_BUILT_OBJS)
309
	@echo X2AP objs: $(X2AP_BUILT_OBJS)
310
	@echo CFLAGS: $(CFLAGS)
311
	@echo Enable PGM: $(PGM_FOUND)
312

313
##UTIL_YAC_C = $(OPENAIR2_TOP)/UTIL/enb_parser.o
314
##$(UTIL_LEX_C) = $(subst $(OPENAIR_DIR), $(OBJS_DIR), $(OBJ) $(OAISIM_OBJS) $(ASN1_RRC_MSG_OBJS1))
315 316


317
OAISIM_COMPILED_OBJECTS = $(subst $(OPENAIR_DIR), $(OBJS_DIR), $(OBJ) $(OAISIM_OBJS) $(ASN1_RRC_MSG_OBJS1))
Cedric Roux's avatar
Cedric Roux committed
318

319
-include $(ITTI_MESSAGES_XML:.xml=.d)
320
-include $(OAISIM_PAD_OBJS:.o=.d)
Cedric Roux's avatar
Cedric Roux committed
321
-include $(OAISIM_COMPILED_OBJECTS:.o=.d)
322

winckel's avatar
winckel committed
323
ifdef ENABLE_ITTI
324
$(OAISIM_COMPILED_OBJECTS): $(ITTI_MESSAGES_H)
325 326

oaisim_pad.o: $(ITTI_MESSAGES_H)
327
endif
328

329 330 331
$(OAISIM_COMPILED_OBJECTS): | objsdir

.SECONDEXPANSION:
332
$(OAISIM_COMPILED_OBJECTS) $(OAISIM_PAD_OBJS): %.o : $$(subst $(OBJS_DIR), $(OPENAIR_DIR), $$*.c)
333
	@echo Compiling $<
334
	@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;
winckel's avatar
winckel committed
335 336
	@$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) -o $@ $<
	@$(CC) -MM $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) $< > $*.d
337 338 339 340 341 342
	@mv -f $*.d $*.d.tmp
	@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
	@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
	sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
	@rm -f $*.d.tmp

343 344 345 346
$(LFDS_LIB):
	@if [ ! -d $(LFDS_OBJ_DIR)/bin ]; then mkdir -p $(LFDS_OBJ_DIR)/bin; fi;
	@if [ ! -d $(LFDS_OBJ_DIR)/obj ]; then mkdir -p $(LFDS_OBJ_DIR)/obj; fi;
	$(MAKE) -C $(LFDS_DIR) -f makefile.linux OUTDIR=$(LFDS_OBJ_DIR)
347

348
oaisim_pad: $(OBJ) $(OAISIM_PAD_OBJS) $(ASN1_RRC_MSG_OBJS1)
349
	@echo "Linking oaisim_pad ..."
350
	@$(MPICC) $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisim_pad $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(OAISIM_PAD_OBJS) $(ASN1_RRC_MSG_OBJS1) \
winckel's avatar
winckel committed
351
	-lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS)
352

353
oaisim: $(OAISIM_COMPILED_OBJECTS) $(SHARED_DEPENDENCIES)
354
	@echo "Linking oaisim ..."
355
	@$(CC) $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisim $(CFLAGS) $(EXTRA_CFLAGS) $(OAISIM_COMPILED_OBJECTS) \
356
	-lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS)
357 358 359 360 361 362 363 364

ifeq ($(rrc_cellular_eNB),1)
	mv oaisim oaisim_eNB
endif
ifeq ($(rrc_cellular_UE),1)
	mv oaisim oaisim_UE
endif

365
oaisimCROWN: $(OBJ) $(ASN1_RRC_MSG_OBJS1) oaisimCROWN.c
366
	@echo "Compiling oaisimCROWN.c ..."
367
	@$(CC) oaisimCROWN.c $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisimCROWN $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(ASN1_RRC_MSG_OBJS1) -lm -lblas -lpthread -llapack_atlas -lforms $(LIBXML2_LIBS) -lX11 -lXpm -lrt -lconfig 
368

gauthier's avatar
gauthier committed
369 370 371 372 373
oai_nw_drv:
	(cd $(OPENAIR2_DIR) && $(MAKE) oai_nw_drv.ko)
	(cp $(OPENAIR2_DIR)/NAS/DRIVER/LITE/oai_nw_drv.ko . )
oai_nw_drv_clean:
	(cd $(OPENAIR2_DIR)/NAS/DRIVER/LITE && $(MAKE) clean)
374
nasmesh_fix:
nikaeinn's avatar
nikaeinn committed
375
	(cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE) clean && $(MAKE))
376 377 378 379
	(cd $(OPENAIR2_DIR) && $(MAKE) clean && $(MAKE) nasmesh_netlink_address_fix.ko)
nasmesh_fix_uninstall:	
	(sudo rmmod nasmesh.ko)
nasmesh_fix_install:	
nikaeinn's avatar
nikaeinn committed
380
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)	
381 382
nasmesh_fix_reinstall:
	(sudo rmmod nasmesh.ko)	
nikaeinn's avatar
nikaeinn committed
383
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)
384
nasmesh_nl:
nikaeinn's avatar
nikaeinn committed
385
	(cd $(OPENAIR2_DIR)/NETWORK_RIVER/MESH/RB_TOOL && $(MAKE))
386
	(cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink.ko)
nikaeinn's avatar
nikaeinn committed
387
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)
388
rb_tool:
nikaeinn's avatar
nikaeinn committed
389
	(cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE))
390 391 392 393

nasmesh_install:
	(sudo rmmod nasmesh)
	(sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko)
394 395
nasmesh_clean:
	(cd $(OPENAIR2_DIR) && $(MAKE) clean)
396 397 398 399 400 401 402 403 404
nas_sim_mt_cellular:
	( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make nasmt_sim CELLULAR=1 NO_RRM=1)

nas_sim_rg_cellular:
	( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make nasrg_sim MASTER=1 CELLULAR=1 NO_RRM=1)

rrm_std_cellular:
	( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make cell_rrm CELL_RRM=1 CELLULAR=1 NO_RRM=1)

405
cleanall: common-cleanall clean cleanasn1
406

407
cleanalmostall: clean
408
	rm -f $(ASN1_RRC_MSG_OBJS1)
409

410
clean: common-clean
411 412
	@$(RM_F_V) oaisim
	@$(RM_F_V) oaisim_pad
413
# 	@$(RM_F_V) $(ITTI_MESSAGES_H) $(ITTI_MESSAGES_XML) $(ITTI_MESSAGES_XML:.xml=.d)
414 415 416 417
	@$(RM_F_V) $(OAISIM_PAD_OBJS)
	@$(RM_F_V) $(OAISIM_PAD_OBJS:.o=.d)
	@$(RM_F_V) $(OAISIM_COMPILED_OBJECTS)
	@$(RM_F_V) $(OAISIM_COMPILED_OBJECTS:.o=.d)
418 419
	@$(RM_F_V) *.exe*
	@$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o
420 421

cleanl1:
422 423 424 425
	@$(RM_F_V) LOG_THREAD oaisim
	@$(RM_F_V) $(PHY_OBJS) $(SCHED_OBJS)
	@$(RM_F_V) *.o
	@$(RM_F_V) *.exe
426 427

cleanl2:
428 429
	@$(RM_F_V) $(L2_OBJS)
	@$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o
430 431

cleanasn1:
432
	@$(RM_F_V) $(ASN1_RRC_MSG_OBJS1)
433 434 435
	$(shell cd $(OPENAIR2_DIR)/RRC/LITE/MESSAGES ; rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS) *.o *.d)
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.am.sample
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc.generated
436
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1c/ASN1_files/.lock-rel*
437 438

cleancell:
439 440 441 442 443 444
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/CELLULAR/*.o
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/CELLULAR/*.d
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/L2_INTERFACE/*.o
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/L2_INTERFACE/*.d
	@$(RM_F_V) $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR/*.o
	@$(RM_F_V) $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR/*.d
445

446 447 448
cleanlfds:
	$(MAKE) -C $(LFDS_DIR) -f makefile.linux clean

449 450 451
cppcheck:
	@echo "cppcheck oaisim ..."
	cppcheck $(INCLUDES) ${OBJ:.o=.c} ${OAISIM_OBJS,.o=.c} ${ASN1_RRC_MSG_OBJS1,.o=.c}
452
print:
453 454 455
	@echo "OBJ "				$(OBJ)
	@echo "OAISIM_OBJS "		$(OAISIM_OBJS)
	@echo "OAISIM_PAD_OBJS "	$(OAISIM_PAD_OBJS)
456
	@echo "OCG_FLAG are "		$(OCG_FLAG)
457 458
	@echo "CFLAGS are "			$(CFLAGS)
	@echo "EXTRA_CFLAGS are"	$(EXTRA_CFLAGS)
459
	@echo "COMMON_CFLAGS are"	$(COMMON_CFLAGS)
460
	@echo "L2 includes are"		$(L2_incl)
winckel's avatar
winckel committed
461
	@echo "INCLUDES are"		$(INCLUDES)
462
	@echo "S1AP Includes are"	$(S1AP_Incl)
463
	@echo "X2AP Includes are"	$(X2AP_Incl)
464
	@echo "TOP_DIR Include is"	I$(TOP_DIR)
465 466
	@echo "UTIL includes are"	$(UTIL_incl)
	@echo "UTILS includes are"	$(UTILS_incl)
467 468 469 470
	@echo "IS_REL8 is "			$(IS_REL8)
	@echo "IS_REL10 is "		$(IS_REL10)
	@echo "ENABLE_DB is "		$(ENABLE_DB)
	@echo "Libs are"			$(LIBS)
471
	@echo "NAS"			$(NAS)	
472 473

showcflags:
474
	@echo oaisim cflags: $(CFLAGS)
475
	@echo oaisim includes: $(INCLUDES)
winckel's avatar
winckel committed
476
	@if [ -d $(S1AP_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB showcflags; fi
477
	@if [ -d $(X2AP_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc showcflags; fi
478

479
otg_all: otg_latency otg_gp
480 481 482

# need to check if the file exists before calling otgplot
otg_latency:
483 484
	export TITLE="Application OWD(ms)"
	cp /tmp/otg_latency.dat /tmp/onewaydelay.dat
485 486
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency.dat" "[$(COL1):$(COL2)]"
otg_latency_bg:
487
	export TITLE="Background OWD(ms)"
488 489
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency_bg.dat" "[$(COL1):$(COL2)]"
otg_gp:
490
	export TITLE="Application Goodput(Kb/s)"
491
	cp /tmp/otg_goodput.dat /tmp/goodput.dat
492 493
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/goodput.dat" "[$(COL1):$(COL2)]"
otg_gp_bg:
494
	export TITLE="Background Goodput(Kb/s)"
495
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_goodput_bg.dat" "[$(COL1):$(COL2)]"
496
otg_jitter:
497
	export TITLE="Aplication Jitter(ms)"
498
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_jitter.dat" "[$(COL1):$(COL2)]"
499 500 501

pexpect = $(shell if [ `dpkg -l | grep pexpect -c` = "0" ]; then  echo "0" ; else  echo "1" ; fi )

502
pre-ci:
503 504
	@echo "Pre-commit check"

505
ifeq 	($(pexpect), 1)
506 507 508
ifndef	PW
	@echo "Usage: make pre-ci PW=mypassword"
	@echo "Password is used to access the local host through ssh."
509
	python $(OPENAIR_TARGETS)/TEST/OAI/test01.py
510 511 512 513 514
else
	python $(OPENAIR_TARGETS)/TEST/OAI/test01.py -w $(PW)
endif
else
	@echo "Python pexpect package is missing, please install"
515
endif