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

default: oaisim

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 += -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TX=2 $(CPUFLAGS) -I/usr/include/X11 #-Wno-packed-bitfield-compat
33

34 35
ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES

bruno mongazon's avatar
bruno mongazon committed
36
CFLAGS += -DOPENAIR_LTE #-DOFDMA_ULSCH -DIFFT_FPGA -DIFFT_FPGA_UE
37
CFLAGS += -DMAC_CONTEXT=1 -DPHY_CONTEXT=1 #-DRLC_UM_TEST_TRAFFIC=1
38
#CFLAGS += -DLLR8
39
CFLAGS += -DPACKAGE_NAME='"oaisim"'
40

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

ifdef DEBUG
DISABLE_XER_PRINT=0
MSG_PRINT=1
endif

50 51 52 53 54 55 56 57
ifeq ($(LOCALIZATION), 1)
CFLAGS += -DLOCALIZATION
endif

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

58 59 60 61 62 63
ifdef TRAFFIC_TM5
CFLAGS += -DRLC_UM_TEST_TRAFFIC=1 #-DFULL_BUFFER=1
endif

# activate OCG and libxml only under linux
ifeq ($(linux),1)
64
CFLAGS += $(LIBXML2_CFLAGS) -L/usr/local/lib -I/usr/include/atlas -L/usr/X11R6/lib
65
OCG_FLAG =1
66 67 68 69 70 71 72
CFLAGS += -DLINUX
endif

ifdef SMBV
CFLAGS += -DSMBV
endif

73
ifeq ($(XFORMS), 1)
74 75 76
CFLAGS += -DXFORMS
endif

77
ifdef DB
78 79 80 81 82
# 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
83
endif
84
endif
85

86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
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
114
$(info "Rel10=1 CBA=1")
115 116 117

else ifdef Rel10
CFLAGS += -DRel10
118
$(info "Rel10=1")
119
else # default is rel 8
120
$(info "Rel8=1")
121 122 123
CFLAGS += -DRel8
endif

124
#CFLAGS += -DMAX_NUM_CCs=1
Raymond Knopp's avatar
 
Raymond Knopp committed
125

Lionel Gauthier's avatar
Lionel Gauthier committed
126 127 128
ifeq ($(RLC_STOP_ON_LOST_PDU), 1)
CFLAGS += -DRLC_STOP_ON_LOST_PDU
endif
129 130 131
ifeq ($(STOP_ON_IP_TRAFFIC_OVERLOAD), 1)
CFLAGS += -DSTOP_ON_IP_TRAFFIC_OVERLOAD
endif
Lionel Gauthier's avatar
Lionel Gauthier committed
132

133

134 135
ifeq ($(USE_3GPP_ADDR_AS_LINK_ADDR), 1)
CFLAGS += -DUSE_3GPP_ADDR_AS_LINK_ADDR
136
endif
137 138 139
endif


140

141 142
ifeq ($(LINK_ENB_PDCP_TO_IP_DRIVER), 1)
CFLAGS += -DPDCP_USE_NETLINK -DLINUX
143 144 145
NAS_FLAG=1
endif

146 147 148 149
ifeq ($(LINK_ENB_PDCP_TO_GTPV1U), 1)
CFLAGS += -DLINK_ENB_PDCP_TO_GTPV1U 
endif

150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
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

170
CFLAGS += -DENABLE_USE_CPU_EXECUTION_TIME
171 172 173
ifndef DISABLE_XER_PRINT
CFLAGS += -DXER_PRINT
endif
174

175 176
ifdef SECU
ifeq ($(NETTLE_FOUND), 0)
177
$(warning "Nettle library >= 2.5 is not installed on your system, nettle-dev lib needed, continuing with security disabled")
178 179 180
SECU=0
else
ifeq ($(OPENSSL_FOUND), 0)
181
$(warning "openssl library is not installed on your system, openssl lib needed, continuing with security disabled")
182 183 184
SECU=0
else
CFLAGS += -DENABLE_SECURITY
185
LIBS += $(OPENSSL_LIBS) $(NETTLE_LIBS)
186 187 188 189
endif
endif
endif

190 191 192 193 194 195 196
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
197
include $(OPENAIR3_DIR)/RAL-LTE/Makefile.inc
winckel's avatar
winckel committed
198 199
include $(OPENAIR2_DIR)/ENB_APP/Makefile.inc

200

201
INCLUDES += -I$(TOP_DIR)
winckel's avatar
winckel committed
202 203 204 205 206
INCLUDES += $(L2_incl)
INCLUDES += $(ENB_APP_incl)
INCLUDES += $(UTIL_incl)
INCLUDES += $(UTILS_incl)
INCLUDES += -I$(ASN1_MSG_INC)
207
INCLUDES += -I$(COMMON_UTILS_DIR)/collection
208

209 210 211 212 213 214 215 216 217 218
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

219
ASN1_RRC_MSG_OBJS1=$(addprefix $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/, $(ASN1_MSG_OBJS))
220

221 222 223 224 225 226
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
227
OAISIM_OBJS_COMMON += $(OPENAIR_TARGETS)/SIMU/USER/event_handler.o
228

229
OAISIM_OBJS = $(OPENAIR_TARGETS)/SIMU/USER/oaisim.o
230

231
ifeq ($(XFORMS), 1)	
232 233 234 235 236 237 238
TOOLS_OBJS += $(OPENAIR1_DIR)/PHY/TOOLS/lte_phy_scope.o
endif

ifdef PAD
CFLAGS += -DPAD
endif

239 240 241
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
242
#deactivate the log offloading
243 244 245 246 247
ifndef LOG_THREAD
CFLAGS +=-DLOG_NO_THREAD
endif

ifdef PROC
248 249 250
INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/channel_sim_proc.o
INT_OBJS += $(OPENAIR_TARGETS)/SIMU/PROC/Process.o
CFLAGS += -DPROC
251 252 253
endif

CFLAGS += -DENABLE_VCD_FIFO
Cedric Roux's avatar
Cedric Roux committed
254
CFLAGS += -DENABLE_NEW_MULTICAST
255
ifdef NAS
256
CFLAGS += -DPDCP_USE_NETLINK_QUEUES
257
endif
258 259
# CFLAGS += -DENABLE_LOG_FIFO

260 261
# Check if libpgm is installed and use it if found instead of the unreliable
# multicast
262
ifeq ($(PGM_FOUND), 1)
263
CFLAGS		+= $(PGM_CFLAGS)
264
LIBS		+= $(PGM_LIBS)
265 266
endif

267
OBJ += $(PHY_OBJS) $(SIMULATION_OBJS) $(ETHERNET_TRANSPORT_OBJS) $(TOOLS_OBJS) $(SCHED_OBJS) $(STATS_OBJS) $(NAS_OBJS)
268
OBJ += $(INT_OBJS) $(UTIL_OBJ) $(UTILS_OBJS) $(OAISIM_OBJS_COMMON) $(ENB_APP_OBJS)
269 270 271 272
ifeq ($(OPENAIR2),1)
OBJ += $(L2_OBJS)
endif

273
LFDS_OBJ_DIR		 = $(subst $(OPENAIR_DIR),$(OBJS_DIR),$(LFDS_DIR))
274 275
LFDS_LIB		 = $(LFDS_OBJ_DIR)/bin/liblfds611.a
LIBS 			+= $(LFDS_LIB)
276
SHARED_DEPENDENCIES 	+= $(LFDS_LIB)
277

Navid Nikaein's avatar
Navid Nikaein committed
278
all: oaisim 
279 280 281 282 283

pad: oaisim_pad

userclean: cleanall oaisim

284 285 286
objsdir:
	@if [ ! -d $(OBJS_DIR) ]; then mkdir -p $(OBJS_DIR); fi

287 288 289 290 291 292 293 294 295
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)
296
	@echo S1AP objs: $(S1AP_BUILT_OBJS)
297
	@echo X2AP objs: $(X2AP_BUILT_OBJS)
298
	@echo CFLAGS: $(CFLAGS)
299
	@echo Enable PGM: $(PGM_FOUND)
300

301
##UTIL_YAC_C = $(OPENAIR2_TOP)/UTIL/enb_parser.o
302
##$(UTIL_LEX_C) = $(subst $(OPENAIR_DIR), $(OBJS_DIR), $(OBJ) $(OAISIM_OBJS) $(ASN1_RRC_MSG_OBJS1))
303 304


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

307
-include $(ITTI_MESSAGES_XML:.xml=.d)
308
-include $(OAISIM_PAD_OBJS:.o=.d)
Cedric Roux's avatar
Cedric Roux committed
309
-include $(OAISIM_COMPILED_OBJECTS:.o=.d)
310

winckel's avatar
winckel committed
311
ifdef ENABLE_ITTI
312
$(OAISIM_COMPILED_OBJECTS): $(ITTI_MESSAGES_H)
313 314

oaisim_pad.o: $(ITTI_MESSAGES_H)
315
endif
316

317 318 319
$(OAISIM_COMPILED_OBJECTS): | objsdir

.SECONDEXPANSION:
320
$(OAISIM_COMPILED_OBJECTS) $(OAISIM_PAD_OBJS): %.o : $$(subst $(OBJS_DIR), $(OPENAIR_DIR), $$*.c)
321
	@echo Compiling $<
322
	@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;
winckel's avatar
winckel committed
323 324
	@$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) -o $@ $<
	@$(CC) -MM $(CFLAGS) $(EXTRA_CFLAGS) -DPHY_CONTEXT=1 $(INCLUDES) $< > $*.d
325 326 327 328 329 330
	@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

331 332 333 334
$(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)
335

336
oaisim_pad: $(OBJ) $(OAISIM_PAD_OBJS) $(ASN1_RRC_MSG_OBJS1)
337
	@echo "Linking oaisim_pad ..."
338
	@$(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
339
	-lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS)
340

341
oaisim: $(OAISIM_COMPILED_OBJECTS) $(SHARED_DEPENDENCIES)
342
	@echo "Linking oaisim ..."
343
	@$(CC) $(INCLUDES) $(S1AP_Incl) $(X2AP_Incl) -o oaisim $(CFLAGS) $(EXTRA_CFLAGS) $(OAISIM_COMPILED_OBJECTS) \
344
	-lpthread -llapack_atlas -lforms -lrt -lconfig $(LIBS) $(DB_LDFLAGS)
345 346 347 348 349 350 351 352

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

353
oaisimCROWN: $(OBJ) $(ASN1_RRC_MSG_OBJS1) oaisimCROWN.c
354
	@echo "Compiling oaisimCROWN.c ..."
355
	@$(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 
356

Lionel Gauthier's avatar
Lionel Gauthier committed
357 358 359 360 361
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)
362
nasmesh_fix:
363
	(cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE) clean && $(MAKE))
364 365 366 367
	(cd $(OPENAIR2_DIR) && $(MAKE) clean && $(MAKE) nasmesh_netlink_address_fix.ko)
nasmesh_fix_uninstall:	
	(sudo rmmod nasmesh.ko)
nasmesh_fix_install:	
368
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)	
369 370
nasmesh_fix_reinstall:
	(sudo rmmod nasmesh.ko)	
371
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)
372
nasmesh_nl:
373
	(cd $(OPENAIR2_DIR)/NETWORK_RIVER/MESH/RB_TOOL && $(MAKE))
374
	(cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink.ko)
375
	(sudo insmod $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/nasmesh.ko)
376
rb_tool:
377
	(cd $(OPENAIR2_DIR)/NETWORK_DRIVER/MESH/RB_TOOL && $(MAKE))
378 379 380 381

nasmesh_install:
	(sudo rmmod nasmesh)
	(sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko)
382 383
nasmesh_clean:
	(cd $(OPENAIR2_DIR) && $(MAKE) clean)
384 385 386 387 388 389 390 391 392
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)

393
cleanall: common-cleanall clean cleanasn1
394

395
cleanalmostall: clean
396
	rm -f $(ASN1_RRC_MSG_OBJS1)
397

398
clean: common-clean
399 400
	@$(RM_F_V) oaisim
	@$(RM_F_V) oaisim_pad
401
# 	@$(RM_F_V) $(ITTI_MESSAGES_H) $(ITTI_MESSAGES_XML) $(ITTI_MESSAGES_XML:.xml=.d)
402 403 404 405
	@$(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)
406 407
	@$(RM_F_V) *.exe*
	@$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o
408 409

cleanl1:
410 411 412 413
	@$(RM_F_V) LOG_THREAD oaisim
	@$(RM_F_V) $(PHY_OBJS) $(SCHED_OBJS)
	@$(RM_F_V) *.o
	@$(RM_F_V) *.exe
414 415

cleanl2:
416 417
	@$(RM_F_V) $(L2_OBJS)
	@$(RM_F_V) $(ASN1_MSG_INC)/asn1_msg.o
418 419

cleanasn1:
420
	@$(RM_F_V) $(ASN1_RRC_MSG_OBJS1)
421 422 423
	$(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
424
	@$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1c/ASN1_files/.lock-rel*
425 426

cleancell:
427 428 429 430 431 432
	@$(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
433

434 435 436
cleanlfds:
	$(MAKE) -C $(LFDS_DIR) -f makefile.linux clean

437 438 439
cppcheck:
	@echo "cppcheck oaisim ..."
	cppcheck $(INCLUDES) ${OBJ:.o=.c} ${OAISIM_OBJS,.o=.c} ${ASN1_RRC_MSG_OBJS1,.o=.c}
440
print:
441 442 443
	@echo "OBJ "				$(OBJ)
	@echo "OAISIM_OBJS "		$(OAISIM_OBJS)
	@echo "OAISIM_PAD_OBJS "	$(OAISIM_PAD_OBJS)
444
	@echo "OCG_FLAG are "		$(OCG_FLAG)
445 446
	@echo "CFLAGS are "			$(CFLAGS)
	@echo "EXTRA_CFLAGS are"	$(EXTRA_CFLAGS)
447
	@echo "COMMON_CFLAGS are"	$(COMMON_CFLAGS)
448
	@echo "L2 includes are"		$(L2_incl)
winckel's avatar
winckel committed
449
	@echo "INCLUDES are"		$(INCLUDES)
450
	@echo "S1AP Includes are"	$(S1AP_Incl)
451
	@echo "X2AP Includes are"	$(X2AP_Incl)
452
	@echo "TOP_DIR Include is"	I$(TOP_DIR)
453 454
	@echo "UTIL includes are"	$(UTIL_incl)
	@echo "UTILS includes are"	$(UTILS_incl)
455 456 457 458
	@echo "IS_REL8 is "			$(IS_REL8)
	@echo "IS_REL10 is "		$(IS_REL10)
	@echo "ENABLE_DB is "		$(ENABLE_DB)
	@echo "Libs are"			$(LIBS)
459
	@echo "NAS"			$(NAS)	
460 461

showcflags:
462
	@echo oaisim cflags: $(CFLAGS)
463
	@echo oaisim includes: $(INCLUDES)
winckel's avatar
winckel committed
464
	@if [ -d $(S1AP_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB showcflags; fi
465
	@if [ -d $(X2AP_DIR) ]; then $(MAKE) -C $(X2AP_DIR) -f Makefile.inc showcflags; fi
466

467
otg_all: otg_latency otg_gp
468 469 470

# need to check if the file exists before calling otgplot
otg_latency:
471 472
	export TITLE="Application OWD(ms)"
	cp /tmp/otg_latency.dat /tmp/onewaydelay.dat
473 474
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency.dat" "[$(COL1):$(COL2)]"
otg_latency_bg:
475
	export TITLE="Background OWD(ms)"
476 477
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_latency_bg.dat" "[$(COL1):$(COL2)]"
otg_gp:
478
	export TITLE="Application Goodput(Kb/s)"
479
	cp /tmp/otg_goodput.dat /tmp/goodput.dat
480 481
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/goodput.dat" "[$(COL1):$(COL2)]"
otg_gp_bg:
482
	export TITLE="Background Goodput(Kb/s)"
483
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_goodput_bg.dat" "[$(COL1):$(COL2)]"
484
otg_jitter:
485
	export TITLE="Aplication Jitter(ms)"
486
	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_jitter.dat" "[$(COL1):$(COL2)]"
487 488 489

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

490
pre-ci:
491 492
	@echo "Pre-commit check"

493
ifeq 	($(pexpect), 1)
494 495 496
ifndef	PW
	@echo "Usage: make pre-ci PW=mypassword"
	@echo "Password is used to access the local host through ssh."
497
	python $(OPENAIR_TARGETS)/TEST/OAI/test01.py
498 499 500 501 502
else
	python $(OPENAIR_TARGETS)/TEST/OAI/test01.py -w $(PW)
endif
else
	@echo "Python pexpect package is missing, please install"
503
endif