diff --git a/targets/RTAI/USER/Makefile.agilent b/targets/RTAI/USER/Makefile.agilent new file mode 100644 index 0000000000..6a1a4bec53 --- /dev/null +++ b/targets/RTAI/USER/Makefile.agilent @@ -0,0 +1,260 @@ +include $(OPENAIR_TARGETS)/Makerules + +include $(OPENAIR_TARGETS)/Makefile.common + +GCCVERSION = $(shell gcc --version | grep ^gcc | sed 's/^.* //g') +ifeq "$(GCCVERSION)" "4.4.3" + CFLAGS += -Wno-packed-bitfield-compat +endif +ifeq "$(GCCVERSION)" "4.5.2" + CFLAGS += -Wno-packed-bitfield-compat +endif +ifeq "$(GCCVERSION)" "4.6.1" + CFLAGS += -Wno-packed-bitfield-compat +endif + +CFLAGS += -O2 +# Debug +CFLAGS += -g -ggdb +CFLAGS += -DDRIVER2013 -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/ -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/DEFS -DENABLE_VCD_FIFO -DEXMIMO_IOT + +SRC = lte-enb.c + +ifndef RTAI +RTAI=1 +endif + +ifeq ($(RTAI),1) +CFLAGS += -DENABLE_RTAI_CLOCK -DRTAI +RTAI_OBJ = sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o lte-enb.o rt_wrapper.o +else +OBJ = sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o lte-enb.o rt_wrapper.o +CFLAGS += -DENABLE_USE_CPU_EXECUTION_TIME +endif + +OBJ += $(OPENAIR1_DIR)/SIMULATION/TOOLS/taus.o $(OPENAIR_TARGETS)/SIMU/USER/init_lte.o $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o + +TOP_DIR = $(OPENAIR1_DIR) +include $(OPENAIR1_DIR)/PHY/Makefile.inc +include $(OPENAIR1_DIR)/SCHED/Makefile.inc + +OBJ += $(PHY_OBJS) +ifeq ($(RTAI),1) +RTAI_OBJ += $(SCHED_OBJS) +else +OBJ += $(SCHED_OBJS) +endif + +#ifndef rrc_cellular +ifeq ($(rrc_cellular),0) +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 + +export rrc_cellular + +OPENAIR2_TOP = $(OPENAIR2_DIR) +include $(OPENAIR2_DIR)/LAYER2/Makefile.inc +include $(OPENAIR2_DIR)/UTIL/Makefile.inc +include $(OPENAIR2_DIR)/RRC/NAS/Makefile.inc + +ifeq ($(RTAI),1) +LOG_OBJS= +RTAI_OBJ+=$(LOG_DIR)/vcd_signal_dumper.o +RTAI_OBJ+=$(LOG_DIR)/log.o +endif + +include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc + +OBJ += $(LOG_OBJS) + +ifndef OPENAIR2 +OPENAIR2=1 +endif +ifeq ($(OPENAIR2),1) +ASN1_MSG_OBJS1=$(addprefix $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/, $(ASN1_MSG_OBJS)) +OBJ += $(L2_OBJS) $(LIST_OBJ) $(TIMER_OBJ) $(MEM_OBJ) $(OTG_OBJS) $(MATH_OBJS) +OBJ += $(OPENAIR1_DIR)/SIMULATION/ETH_TRANSPORT/netlink_init.o +OBJ += $(PDCP_DIR)/pdcp_thread.o +CFLAGS += -DOPENAIR2 -DNO_RRM -DPUCCH -DMAC_CONTEXT=1 +endif + +CFLAGS += $(L2_incl) $(UTIL_incl) $(UTILS_incl) + +CFLAGS += -I$(OPENAIR1_DIR) -I$(OPENAIR2_DIR)/RRC/LITE/MESSAGES #-I$(OPENAIR3_DIR)/MESH -I$(OPENAIR3_DIR)/MESH/RRM + +CFLAGS += -DNEW_FFT -DLOG_NO_THREAD + +ifeq ($(XFORMS),1) +CFLAGS += -DXFORMS -I/usr/include/X11 +LDFLAGS += -lforms +OBJ += $(OPENAIR1_DIR)/PHY/TOOLS/lte_phy_scope.o +OBJ += stats.o +endif + +ifdef SMBV +CFLAGS += -DSMBV +endif + +#CPUFLAGS = -mmmx -msse -msse2 -m32 -mssse3 -msse4.1 +CPUFLAGS = -mmmx -msse -msse2 -mssse3 -msse4.1 +#CFLAGS += -fno-common -mpreferred-stack-boundary=4 +CFLAGS += -Wall -fno-strict-aliasing -DPHYSIM -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 -rdynamic $(CPUFLAGS) # -Wno-packed-bitfield-compat +CFLAGS += -DOPENAIR_LTE -DENABLE_FXP -DOPENAIR1 -DDLSCH_THREAD #-DULSCH_THREAD + +#only for CBMIMO1 +ifdef CBMIMO1 +CFLAGS += -DFW2011 -DBIT8_TX -DCBMIMO1 +else +#only for EXPRESS MIMO +CFLAGS += -DEXMIMO +#CFLAGS += -DEXMIMO -DTIMING_ADVANCE_HW=138 #this is for ExpressMIMO 1 +#CFLAGS += -DEXMIMO -DTIMING_ADVANCE_HW=45 #this is for ExpressMIMO 2 +endif + +ifndef HARD_RT +HARD_RT=1 +endif + +ifeq ($(HARD_RT),1) +CFLAGS += -DHARD_RT +endif + +ifeq ($(EMOS),1) +CFLAGS += -DEMOS -DEMOS_CHANNEL +LDFLAGS += -lgps +endif + +ifndef NAS +NAS=1 +endif + +ifeq ($(NAS),1) +CFLAGS += -DNAS_NETLINK -DLINUX +OBJ += $(NAS_OBJS) +endif + +RTAI_CFLAGS += $(shell rtai-config --lxrt-cflags) +CFLAGS += -I/usr/realtime/include -DRTAI +LDFLAGS += -lpthread -lm -lforms +ifeq ($(RTAI),1) +LDFLAGS += $(shell rtai-config --lxrt-ldflags) +else +LDFLAGS += -lrt +endif + +#ifndef USE_MME +# USE_MME=R8 +#endif + +ifdef USE_MME + include $(OPENAIR2_DIR)/S1AP/Makefile.inc + include $(OPENAIR2_DIR)/S1AP/MESSAGES/Makefile.inc + CFLAGS += -DENABLE_USE_MME -DENB_MODE + LDFLAGS += -lsctp + CFLAGS_S1AP += -DENB_MODE -DENABLE_USE_MME -DEMIT_ASN_DEBUG=1 -DUSER_MODE + S1AP_BUILT_OBJS += $(S1AP_OBJS) $(addprefix $(OPENAIR2_DIR)/S1AP/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES)) + S1AP_BUILT_OBJS += $(OPENAIR3_DIR)/OPENAIRMME/SCTP/sctp_primitives_client.o +endif + + +ASN1RELDIR=R9.8 +ifeq ($(USE_MME), R8) + ASN1RELDIR=R8.10 +else + CFLAGS_S1AP += -DUPDATE_RELEASE_9 +endif +S1AP_DIR=$(OPENAIR2_DIR)/S1AP +ASN1MESSAGESDIR=$(S1AP_DIR)/MESSAGES +ASN1DIR=$(ASN1MESSAGESDIR)/ASN1 + +all: lte-enb + +$(LFDS_DIR)/bin/liblfds611.a: + $(MAKE) -C $(LFDS_DIR) -f makefile.linux + + +$(RTAI_OBJ): %.o : %.c + @echo Compiling $< ... + @$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) -o $@ $< + +$(OBJ) $(ASN1_MSG_OBJS1): %.o : %.c + @echo Compiling $< ... + @$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -o $@ $< + +$(S1AP_BUILT_OBJS): %.o : %.c + @echo Compiling $< + @$(CC) -Wall -c $(CFLAGS_S1AP) $(S1AP_Incl) $(UTIL_incl) -o $@ $< + +$(ASN1MESSAGESDIR)/s1ap_ieregen.stamp: $(ASN1DIR)/$(ASN1RELDIR)/S1AP-PDU-Contents.asn $(ASN1DIR)/asn1tostruct.py + echo Timestamp > $@ + (cd $(ASN1DIR) && python $(ASN1DIR)/asn1tostruct.py -f$<) + +$(ASN1MESSAGESDIR)/s1ap_asn1regen.stamp: $(ASN1DIR)/$(ASN1RELDIR)/S1AP-CommonDataTypes.asn $(ASN1DIR)/$(ASN1RELDIR)/S1AP-Constants.asn $(ASN1DIR)/$(ASN1RELDIR)/S1AP-IEs.asn $(ASN1DIR)/$(ASN1RELDIR)/S1AP-PDU.asn + echo Timestamp > $@ + (cd $(ASN1MESSAGESDIR) && asn1c -gen-PER -fnative-types -fskeletons-copy $^) + +$(S1AP_DIR)/libs1ap.a: $(ASN1MESSAGESDIR)/s1ap_ieregen.stamp $(ASN1MESSAGESDIR)/s1ap_asn1regen.stamp $(S1AP_BUILT_OBJS) + @echo Creating $@ + $(AR) rcs $@ $^ + +$(LFDS_DIR)/bin/liblfds611.a: + $(MAKE) -C $(LFDS_DIR) -f makefile.linux + +ifdef USE_MME + lte-enb: $(OBJ) $(S1AP_DIR)/libs1ap.a $(ASN1_MSG_OBJS1) $(RTAI_OBJ) $(LFDS_DIR)/bin/liblfds611.a +else + lte-enb: $(OBJ) $(ASN1_MSG_OBJS1) $(RTAI_OBJ) $(LFDS_DIR)/bin/liblfds611.a +endif + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(RTAI_OBJ) $(ASN1_MSG_OBJS1) -o lte-enb $(LDFLAGS) $(LFDS_DIR)/bin/liblfds611.a + + + +nasmesh: + (cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE)) + (cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink.ko) + (sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko) +rb_tool: + (cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE)) + +nasmesh_install: + (sudo rmmod nasmesh) + (sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko) + +clean: + rm -rf $(OBJ) $(RTAI_OBJ) + rm -f $(S1AP_BUILT_OBJS) + rm -f $(ASN1MESSAGESDIR)/libs1ap.a + +cleanasn1: + rm -f $(ASN1_MSG_OBJS1) + $(shell cd $(OPENAIR2_DIR)/RRC/LITE/MESSAGES ; rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS) *.o *.d ) + rm -f $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.am.sample + rm -f $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc.generated + rm -f $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1c/ASN1_files/.lock-rel8 + rm -f $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1c/ASN1_files/.lock-rel10 + +cleanall: clean cleanasn1 + rm -rf condtest synctest lte-softmodem + rm -rf synctest_eNB synctest_UE + +show: + @echo $(CFLAGS) + @echo $(EXTRA_CFLAGS) + @echo $(OBJ) $(RTAI_OBJ) + @echo rrc_cellular variable is $(rrc_cellular) + @echo eNB_flag is $(eNB_flag) + @echo UE_flag is $(UE_flag) + @echo IS_REL8 is $(IS_REL8) + @echo IS_REL10 is $(IS_REL10) + +beautiful: + astyle --style=gnu -s2 $(SRC)