################################################################################ # OpenAirInterface # Copyright(c) 1999 - 2014 Eurecom # # OpenAirInterface is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # # OpenAirInterface is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OpenAirInterface.The full GNU General Public License is # included in this distribution in the file called "COPYING". If not, # see . # # Contact Information # OpenAirInterface Admin: openair_admin@eurecom.fr # OpenAirInterface Tech : openair_tech@eurecom.fr # OpenAirInterface Dev : openair4g-devel@eurecom.fr # # Address : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France. # ################################################################################ # include $(OPENAIR_TARGETS)/SIMU/USER/Makerules OUTDIR = $(S1AP_DIR)/enb_objs ASN1MESSAGESDIR=$(S1AP_DIR)/MESSAGES ASN1DIR=$(ASN1MESSAGESDIR)/ASN1 ifeq ($(USE_MME), R10) ASN1RELDIR=R10.5 UPDATE_RELEASE_9=1 UPDATE_RELEASE_10=1 ADD_CFLAGS=-DUPDATE_RELEASE_9 -DUPDATE_RELEASE_10 else ifeq ($(USE_MME), R9) UPDATE_RELEASE_9=1 ASN1RELDIR=R9.8 ADD_CFLAGS=-DUPDATE_RELEASE_9 else ASN1RELDIR=R8.10 endif endif include $(ASN1MESSAGESDIR)/Makefile.inc libs1ap_OBJECTS = \ s1ap_common.o \ s1ap_eNB.o \ s1ap_eNB_context_management_procedures.o \ s1ap_eNB_decoder.o \ s1ap_eNB_encoder.o \ s1ap_eNB_handlers.o \ s1ap_eNB_itti_messaging.o \ s1ap_eNB_management_procedures.o \ s1ap_eNB_nas_procedures.o \ s1ap_eNB_nnsf.o \ s1ap_eNB_overload.o \ s1ap_eNB_trace.o \ s1ap_eNB_ue_context.o \ $(addprefix MESSAGES/, $(S1AP_ASN_MODULE_SOURCES)) ifeq ($(USE_MME), R10) libs1ap_OBJECTS += $(addprefix MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9)) libs1ap_OBJECTS += $(addprefix MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R10)) else ifeq ($(USE_MME), R9) libs1ap_OBJECTS += $(addprefix MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9)) endif endif # pull in dependency info for *existing* .o files -include $(OUTDIR)/*.d CFLAGS = \ -Wall \ -DENB_MODE \ -DENABLE_USE_MME \ -DUSER_MODE \ -I./MESSAGES \ -I$(OUTDIR) \ -I../UTILS \ $(ADD_CFLAGS) \ -DENB_MODE \ $(S1AP_CFLAGS) \ -Wuninitialized \ -Werror=implicit-function-declaration S1AP_GENERATED = \ $(OUTDIR)/s1ap_encoder.o \ $(OUTDIR)/s1ap_decoder.o \ $(OUTDIR)/s1ap_xer_print.o $(OUTDIR)/%.o : %.c @echo "Compiling $<" @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi; @$(CC) -c $(CFLAGS) -o $@ $< @$(CC) -MM $(CFLAGS) $< > $(basename $@).d @mv -f $(basename $@).d $(basename $@).d.tmp @sed -e 's|.*:|$@:|' < $(basename $@).d.tmp > $(basename $@).d @sed -e 's/.*://' -e 's/\\$$//' < $(basename $@).d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $(basename $@).d @rm -f $(basename $@).d.tmp $(S1AP_GENERATED): %.o : %.c @echo "Compiling $<" @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi; @$(CC) -c $(CFLAGS) -o $@ $< @$(CC) -MM $(CFLAGS) $< > $(basename $@).d @mv -f $(basename $@).d $(basename $@).d.tmp @sed -e 's|.*:|$@:|' < $(basename $@).d.tmp > $(basename $@).d @sed -e 's/.*://' -e 's/\\$$//' < $(basename $@).d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $(basename $@).d @rm -f $(basename $@).d.tmp #$(OUTDIR)/%.c : $(OUTDIR)/s1ap_ieregen.stamp $(OUTDIR)/s1ap_asn1regen.stamp #@if [ -f $< ] ; then touch $<; else echo "ERROR: " $< "not generated" ; exit 1 ; fi; $(OUTDIR)/s1ap_ieregen.stamp: $(ASN1DIR)/$(ASN1RELDIR)/S1AP-PDU-Contents.asn $(ASN1DIR)/asn1tostruct.py @if [ ! -d $(OUTDIR) ]; then mkdir -p $(OUTDIR); fi; @python $(ASN1DIR)/asn1tostruct.py -f$< -o$(OUTDIR) @echo Timestamp > $@ $(OUTDIR)/s1ap_asn1regen.stamp: $(ASN1DIR)/$(ASN1RELDIR)/S1AP-CommonDataTypes.asn \ $(ASN1DIR)/$(ASN1RELDIR)/S1AP-Constants.asn $(ASN1DIR)/$(ASN1RELDIR)/S1AP-IEs.asn $(ASN1DIR)/$(ASN1RELDIR)/S1AP-PDU.asn (cd $(ASN1MESSAGESDIR) && asn1c -fhave_native64 -gen-PER $^) @echo Timestamp > $@ $(OUTDIR)/libs1ap.a: $(OUTDIR)/s1ap_ieregen.stamp $(OUTDIR)/s1ap_asn1regen.stamp $(S1AP_GENERATED) $(addprefix $(OUTDIR)/,$(libs1ap_OBJECTS)) @echo Creating S1AP archive @$(AR) rcs $@ $(S1AP_GENERATED) $(addprefix $(OUTDIR)/,$(libs1ap_OBJECTS)) clean: @$(RM_F_V) $(OUTDIR)/*.o @$(RM_F_V) $(OUTDIR)/*.d @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R10)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES:.o=.d)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9:.o=.d)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R10:.o=.d)) @$(RM_F_V) $(OUTDIR)/libs1ap.a @$(RM_F_V) $(OUTDIR)/s1ap_asn1regen.stamp @$(RM_F_V) $(OUTDIR)/s1ap_ieregen.stamp @$(RM_F_V) $(OUTDIR)/s1ap_decoder.c $(OUTDIR)/s1ap_encoder.c @$(RM_F_V) $(OUTDIR)/s1ap_xer_print.c $(OUTDIR)/s1ap_ies_defs.h cleanall: clean @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES:.o=.c)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES:.o=.h)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9:.o=.c)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R9:.o=.h)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R10:.o=.c)) @$(RM_F_V) $(addprefix $(OUTDIR)/MESSAGES/, $(S1AP_ASN_MODULE_SOURCES_R10:.o=.h)) showcflags: @echo s1ap cflags: $(CFLAGS)