RM = rm -rf MKDIR = mkdir -p FPGA_EMULATOR = true REPORT = false PROFILE = true NO_INLINE = false OMMIT_AREA_ERROR = false CXX = dpcpp CXXFLAGS = -std=c++11 -c -g LDFLAGS = -lOpenCL -lsycl -g TARGET_EMU = FHVar_emu TARGET_HW = FHVar_hardware TARGET_REPORT = FHVar_report FHVAR_DIR = /home/u59313/FHVar_isolated/sycl_new_makefile FHVAR_SRC_DIR = $(FHVAR_DIR)/src FHVAR_INC_DIR = $(FHVAR_DIR)/include FHVAR_BIN_DIR = $(FHVAR_DIR)/bin # Intel-supported FPGA cards FPGA_DEVICE_A10 = intel_a10gx_pac:pac_a10 FPGA_DEVICE_S10 = intel_s10sx_pac:pac_s10 FPGA_DEVICE = $(FPGA_DEVICE_A10) # Compile flags EMULATOR_FLAGS = -fintelfpga -DFPGA_EMULATOR HARDWARE_FLAGS = -fintelfpga -Xshardware -Xsboard=$(FPGA_DEVICE) REPORT_FLAGS = -Xshardware -fsycl-link SRCDIRS += $(shell find $(FHVAR_SRC_DIR) -type d) ifeq ($(FPGA_EMULATOR), true) CXXFLAGS += $(EMULATOR_FLAGS) LDFLAGS += $(EMULATOR_FLAGS) TARGET_NAME = $(TARGET_EMU) else #CXXFLAGS += $(HARDWARE_FLAGS) LDFLAGS += $(HARDWARE_FLAGS) TARGET_NAME = $(TARGET_HW) endif ifeq ($(REPORT), true) LDFLAGS += $(REPORT_FLAGS) TARGET_NAME = $(TARGET_REPORT) endif ifeq ($(PROFILE), true) CXXFLAGS += -Xsprofile LDFLAGS += -Xsprofile endif ifeq ($(NO_INLINE), true) CXXFLAGS += -fno-inline LDFLAGS += -fno-inline endif ifeq ($(OMMIT_AREA_ERROR), true) LDFLAGS += -Xsdont-error-if-large-area-est endif ###################################### # Target & Source Files ###################################### include $(FHVAR_DIR)/sources.mk HEADERS = $(SRC_H) HEADERS += $(SRC_CUH) OBJ_DPCPP = $(SRC_DPCPP:.dp.cpp=.o) OBJ_CPPDPCPP = $(SRC_CPPDPCPP:.cpp.dp.cpp=.o) OBJ_CPP = $(SRC_CPP:.cpp=.o) OBJS = $(OBJ_CPPDPCPP) OBJS += $(OBJ_CPP) OBJS += $(OBJ_DPCPP) #$(info OBJS is $(OBJS)) TARGET_DIR = bin TARGET = $(TARGET_DIR)/$(TARGET_NAME) LIBS = -lboost_filesystem -lboost_system -lpthread -ldl #-lnvToolsExt -lboost_program_options ##################################### # Default Rules ##################################### %.o: %.cpp @echo 'Building file: $<' @echo 'Invoking: DPCPP Compiler' $(CXX) $(CXXFLAGS) -I$(FHVAR_INC_DIR) -o $@ $< %.o: %.dp.cpp @echo 'Building file: $<' @echo 'Invoking: DPCPP Compiler' $(CXX) $(CXXFLAGS) -I$(FHVAR_INC_DIR) -o $@ $< %.o: %.cpp.dp.cpp @echo 'Building file: $<' @echo 'Invoking: DPCPP Compiler' $(CXX) $(CXXFLAGS) -I$(FHVAR_INC_DIR) -o $@ $< ###################################### # Top Level Rules ###################################### all: $(TARGET) @echo 'SUCCESS : Finished building all targets' $(TARGET) : $(OBJS) @echo 'Building target : $@' -$(MKDIR) $(TARGET_DIR) $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS) -I$(FHVAR_INC_DIR) @echo 'Finished building target: $@' @echo ' ' run: $(TARGET_DIR)/$(TARGET_NAME) clean : @for dir in $(SRCDIRS); \ do \ echo Cleaning source dir $$dir/*.o;\ echo Cleaning source dir $$dirinclude/*.o;\ $(RM) $$dir/*.o $$dir/*.gcno $$dir/*.gcda;\ $(RM) *.o *.gcno *.gcda;\ $(RM) $$dirinclude/*.o $$dirinclude/*.gcno $$dirinclude/*.gcda;\ done $(RM) *.log # $(RM) $(TARGET_DIR) .PHONY: all clean