127 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#CONFIGURE BUILD SYSTEM
 | 
						|
TARGET	   = gather-bench-$(TAG)
 | 
						|
BUILD_DIR  = ./$(TAG)
 | 
						|
SRC_DIR	= ./src
 | 
						|
MAKE_DIR   = ./
 | 
						|
ISA_DIR	= ./src/$(ISA)
 | 
						|
Q		 ?= @
 | 
						|
 | 
						|
#DO NOT EDIT BELOW
 | 
						|
include $(MAKE_DIR)/config.mk
 | 
						|
include $(MAKE_DIR)/include_$(TAG).mk
 | 
						|
include $(MAKE_DIR)/include_LIKWID.mk
 | 
						|
INCLUDES  += -I./src/includes
 | 
						|
 | 
						|
VPATH	 = $(SRC_DIR) ${ISA_DIR}
 | 
						|
ASM	   = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c))
 | 
						|
ASM	  += $(patsubst $(SRC_DIR)/%.f90, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.f90))
 | 
						|
OBJ	   = $(filter-out $(BUILD_DIR)/main%, $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c)))
 | 
						|
OBJ	  += $(patsubst $(SRC_DIR)/%.cc, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.cc))
 | 
						|
OBJ	  += $(patsubst $(SRC_DIR)/%.cpp, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.cpp))
 | 
						|
OBJ	  += $(patsubst $(SRC_DIR)/%.f90, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.f90))
 | 
						|
OBJ	  += $(patsubst $(SRC_DIR)/%.F90, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.F90))
 | 
						|
OBJ	  += $(patsubst $(SRC_DIR)/%.s, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.s))
 | 
						|
OBJ	  += $(patsubst $(ISA_DIR)/%.S, $(BUILD_DIR)/%.o,$(wildcard $(ISA_DIR)/*.S))
 | 
						|
CPPFLAGS := $(CPPFLAGS) $(DEFINES) $(INCLUDES) -DISA_$(ISA)
 | 
						|
 | 
						|
ifneq ($(VARIANT),)
 | 
						|
	.DEFAULT_GOAL := ${TARGET}-$(VARIANT)
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(DATA_LAYOUT)),AOS)
 | 
						|
    CPPFLAGS += -DAOS
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(TEST)),true)
 | 
						|
    CPPFLAGS += -DTEST
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(PADDING)),true)
 | 
						|
    CPPFLAGS += -DPADDING
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(MEASURE_GATHER_CYCLES)),true)
 | 
						|
    CPPFLAGS += -DMEASURE_GATHER_CYCLES
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(ONLY_FIRST_DIMENSION)),true)
 | 
						|
    CPPFLAGS += -DONLY_FIRST_DIMENSION
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(strip $(MEM_TRACER)),true)
 | 
						|
    CPPFLAGS += -DMEM_TRACER
 | 
						|
endif
 | 
						|
 | 
						|
${TARGET}: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main.c
 | 
						|
	@echo "===>  LINKING  $(TARGET)"
 | 
						|
	$(Q)${LINKER} ${CPPFLAGS} ${LFLAGS} -o $(TARGET) $(SRC_DIR)/main.c $(OBJ) $(LIBS)
 | 
						|
 | 
						|
${TARGET}-%: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main-%.c
 | 
						|
	@echo "===>  LINKING  $(TARGET)-$* "
 | 
						|
	$(Q)${LINKER} ${CPPFLAGS} ${LFLAGS} -o $(TARGET)-$* $(SRC_DIR)/main-$*.c $(OBJ) $(LIBS)
 | 
						|
 | 
						|
asm:  $(BUILD_DIR) $(ASM)
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.c
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
 | 
						|
	$(Q)$(CC) $(CPPFLAGS) -MT $(@:.d=.o) -MM  $< > $(BUILD_DIR)/$*.d
 | 
						|
 | 
						|
$(BUILD_DIR)/%.s:  %.c
 | 
						|
	@echo "===>  GENERATE ASM  $@"
 | 
						|
	$(Q)$(CC) -S $(CPPFLAGS) $(CFLAGS) $< -o $@
 | 
						|
 | 
						|
$(BUILD_DIR)/%.s:  %.f90
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(FC) -S  $(FCFLAGS) $< -o $@
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.cc
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
 | 
						|
	$(Q)$(CXX) $(CPPFLAGS) -MT $(@:.d=.o) -MM  $< > $(BUILD_DIR)/$*.d
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.cpp
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
 | 
						|
	$(Q)$(CXX) $(CPPFLAGS) -MT $(@:.d=.o) -MM  $< > $(BUILD_DIR)/$*.d
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.f90
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(FC) -c  $(FCFLAGS) $< -o $@
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.F90
 | 
						|
	@echo "===>  COMPILE  $@"
 | 
						|
	$(Q)$(FC) -c  $(CPPFLAGS)  $(FCFLAGS) $< -o $@
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.s
 | 
						|
	@echo "===>  ASSEMBLE  $@"
 | 
						|
	$(Q)$(AS)  $(ASFLAGS) $< -o $@
 | 
						|
 | 
						|
$(BUILD_DIR)/%.o:  %.S
 | 
						|
	@echo "===>  ASSEMBLE  $@"
 | 
						|
	$(Q)$(CC) -c $(CPPFLAGS) $< -o $@
 | 
						|
 | 
						|
tags:
 | 
						|
	@echo "===>  GENERATE  TAGS"
 | 
						|
	$(Q)ctags -R
 | 
						|
 | 
						|
 | 
						|
$(BUILD_DIR):
 | 
						|
	@mkdir $(BUILD_DIR)
 | 
						|
 | 
						|
ifeq ($(findstring $(MAKECMDGOALS),clean),)
 | 
						|
-include $(OBJ:.o=.d)
 | 
						|
endif
 | 
						|
 | 
						|
.PHONY: clean distclean
 | 
						|
 | 
						|
clean:
 | 
						|
	@echo "===>  CLEAN"
 | 
						|
	@rm -rf $(BUILD_DIR)
 | 
						|
	@rm -f tags
 | 
						|
 | 
						|
distclean: clean
 | 
						|
	@echo "===>  DIST CLEAN"
 | 
						|
	@rm -f $(TARGET)
 | 
						|
	@rm -f tags
 |