# # OMNeT++/OMNEST Makefile for QUIC # # This file was generated with the command: # opp_makemake -f --deep -O out -KINET_PROJ=../inet -DINET_IMPORT -I. -I$$\(INET_PROJ\)/src -L$$\(INET_PROJ\)/src -lINET$$\(D\) # # Name of target to be created (-o option) TARGET = QUIC$(D)$(EXE_SUFFIX) TARGET_DIR = . # User interface (uncomment one) (-u option) USERIF_LIBS = $(ALL_ENV_LIBS) # that is, $(TKENV_LIBS) $(QTENV_LIBS) $(CMDENV_LIBS) #USERIF_LIBS = $(CMDENV_LIBS) #USERIF_LIBS = $(TKENV_LIBS) #USERIF_LIBS = $(QTENV_LIBS) # C++ include paths (with -I) INCLUDE_PATH = -I. -I$(INET_PROJ)/src # Additional object and library files to link with EXTRA_OBJS = # Additional libraries (-L, -l options) LIBS = $(LDFLAG_LIBPATH)$(INET_PROJ)/src -lINET$(D) # Output directory PROJECT_OUTPUT_DIR = out PROJECTRELATIVE_PATH = O = $(PROJECT_OUTPUT_DIR)/$(CONFIGNAME)/$(PROJECTRELATIVE_PATH) # Object files for local .cc, .msg and .sm files OBJS = \ $O/Connection/connection_Setup.o \ $O/Connection/sockets.o \ $O/Frames/ack_m.o \ $O/Frames/application_Close_m.o \ $O/Frames/blocked_m.o \ $O/Frames/connection_close_m.o \ $O/Frames/max_Data_m.o \ $O/Frames/max_Stream_Data_m.o \ $O/Frames/max_Stream_Id_m.o \ $O/Frames/new_Connection_Id_m.o \ $O/Frames/padding_m.o \ $O/Frames/ping_m.o \ $O/Frames/rst_stream_m.o \ $O/Frames/stop_Sending_m.o \ $O/Frames/stream_m.o \ $O/Frames/stream_Blocked_m.o \ $O/Frames/stream_Id_Blocked_m.o \ $O/Headers/long_Header_m.o \ $O/Headers/short_Header_m.o \ $O/Packets/0_RTT_Protected_m.o \ $O/Packets/client_Cleartext_m.o \ $O/Packets/client_Initial_m.o \ $O/Packets/server_Cleartext_m.o \ $O/Packets/server_Stateless_Retry_m.o \ $O/Packets/version_Negotiation_m.o # Message files MSGFILES = \ Frames/ack.msg \ Frames/application_Close.msg \ Frames/blocked.msg \ Frames/connection_close.msg \ Frames/max_Data.msg \ Frames/max_Stream_Data.msg \ Frames/max_Stream_Id.msg \ Frames/new_Connection_Id.msg \ Frames/padding.msg \ Frames/ping.msg \ Frames/rst_stream.msg \ Frames/stop_Sending.msg \ Frames/stream.msg \ Frames/stream_Blocked.msg \ Frames/stream_Id_Blocked.msg \ Headers/long_Header.msg \ Headers/short_Header.msg \ Packets/0_RTT_Protected.msg \ Packets/client_Cleartext.msg \ Packets/client_Initial.msg \ Packets/server_Cleartext.msg \ Packets/server_Stateless_Retry.msg \ Packets/version_Negotiation.msg # SM files SMFILES = # Other makefile variables (-K) INET_PROJ=../inet #------------------------------------------------------------------------------ # Pull in OMNeT++ configuration (Makefile.inc) ifneq ("$(OMNETPP_CONFIGFILE)","") CONFIGFILE = $(OMNETPP_CONFIGFILE) else ifneq ("$(OMNETPP_ROOT)","") CONFIGFILE = $(OMNETPP_ROOT)/Makefile.inc else CONFIGFILE = $(shell opp_configfilepath) endif endif ifeq ("$(wildcard $(CONFIGFILE))","") $(error Config file '$(CONFIGFILE)' does not exist -- add the OMNeT++ bin directory to the path so that opp_configfilepath can be found, or set the OMNETPP_CONFIGFILE variable to point to Makefile.inc) endif include $(CONFIGFILE) # Simulation kernel and user interface libraries OMNETPP_LIBS = $(OPPMAIN_LIB) $(USERIF_LIBS) $(KERNEL_LIBS) $(SYS_LIBS) ifneq ($(TOOLCHAIN_NAME),clangc2) LIBS += -Wl,-rpath,$(abspath $(INET_PROJ)/src) endif COPTS = $(CFLAGS) $(IMPORT_DEFINES) -DINET_IMPORT $(INCLUDE_PATH) -I$(OMNETPP_INCL_DIR) MSGCOPTS = $(INCLUDE_PATH) SMCOPTS = # we want to recompile everything if COPTS changes, # so we store COPTS into $COPTS_FILE and have object # files depend on it (except when "make depend" was called) COPTS_FILE = $O/.last-copts ifneq ("$(COPTS)","$(shell cat $(COPTS_FILE) 2>/dev/null || echo '')") $(shell $(MKPATH) "$O" && echo "$(COPTS)" >$(COPTS_FILE)) endif #------------------------------------------------------------------------------ # User-supplied makefile fragment(s) # >>> # <<< #------------------------------------------------------------------------------ # Main target all: $(TARGET_DIR)/$(TARGET) $(TARGET_DIR)/% :: $O/% @mkdir -p $(TARGET_DIR) $(Q)$(LN) $< $@ ifeq ($(TOOLCHAIN_NAME),clangc2) $(Q)-$(LN) $(<:%.dll=%.lib) $(@:%.dll=%.lib) endif $O/$(TARGET): $(OBJS) $(wildcard $(EXTRA_OBJS)) Makefile $(CONFIGFILE) @$(MKPATH) $O @echo Creating executable: $@ $(Q)$(CXX) $(LDFLAGS) -o $O/$(TARGET) $(OBJS) $(EXTRA_OBJS) $(AS_NEEDED_OFF) $(WHOLE_ARCHIVE_ON) $(LIBS) $(WHOLE_ARCHIVE_OFF) $(OMNETPP_LIBS) .PHONY: all clean cleanall depend msgheaders smheaders .SUFFIXES: .cc $O/%.o: %.cc $(COPTS_FILE) | msgheaders smheaders @$(MKPATH) $(dir $@) $(qecho) "$<" $(Q)$(CXX) -c $(CXXFLAGS) $(COPTS) -o $@ $< %_m.cc %_m.h: %.msg $(qecho) MSGC: $< $(Q)$(MSGC) -s _m.cc $(MSGCOPTS) $? %_sm.cc %_sm.h: %.sm $(qecho) SMC: $< $(Q)$(SMC) -c++ -suffix cc $(SMCOPTS) $? msgheaders: $(MSGFILES:.msg=_m.h) smheaders: $(SMFILES:.sm=_sm.h) clean: $(qecho) Cleaning $(TARGET) $(Q)-rm -rf $O $(Q)-rm -f $(TARGET_DIR)/$(TARGET) $(Q)-rm -f $(TARGET_DIR)/$(TARGET:%.dll=%.lib) $(Q)-rm -f $(call opp_rwildcard, . , *_m.cc *_m.h *_sm.cc *_sm.h) cleanall: $(Q)$(MAKE) -s clean MODE=release $(Q)$(MAKE) -s clean MODE=debug $(Q)-rm -rf $(PROJECT_OUTPUT_DIR) # include all dependencies -include $(OBJS:%.o=%.d)