From b6d4753c2a2daa05757253389b3ff01b51d88808 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 11 Jun 2021 09:38:34 +0200 Subject: [PATCH] Add LIKWID Option. Allow to overwrite with asm variant. --- Makefile | 58 +++++++++++++++++++++++++++-------------------- asm/.gitkeep | 0 config.mk | 6 +++-- include_LIKWID.mk | 10 ++++++++ 4 files changed, 48 insertions(+), 26 deletions(-) create mode 100644 asm/.gitkeep create mode 100644 include_LIKWID.mk diff --git a/Makefile b/Makefile index 2378bba..28d203e 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,14 @@ TARGET = MDBench-$(TAG) BUILD_DIR = ./$(TAG) SRC_DIR = ./src +ASM_DIR = ./asm MAKE_DIR = ./ 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 ifeq ($(strip $(DATA_LAYOUT)),AOS) @@ -27,11 +29,15 @@ ifneq ($(EXPLICIT_TYPES),) DEFINES += -DEXPLICIT_TYPES endif -VPATH = $(SRC_DIR) +VPATH = $(SRC_DIR) $(ASM_DIR) ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) -OBJ = $(filter-out $(BUILD_DIR)/main%,$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) +OVERWRITE:= $(patsubst $(ASM_DIR)/%-new.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*-new.s)) +OBJ = $(filter-out $(BUILD_DIR)/main% $(OVERWRITE),$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) +OBJ += $(patsubst $(ASM_DIR)/%.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*.s)) CPPFLAGS := $(CPPFLAGS) $(DEFINES) $(OPTIONS) $(INCLUDES) +# $(warning $(OBJ)) + ifneq ($(VARIANT),) .DEFAULT_GOAL := ${TARGET}-$(VARIANT) endif @@ -44,38 +50,42 @@ ${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: %.s -#$(BUILD_DIR)/%.o: %.c - @echo "===> COMPILE $@" +$(BUILD_DIR)/%.o: %.c + $(info ===> COMPILE $@) $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ - $(Q)$(CC) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d + $(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d $(BUILD_DIR)/%.s: %.c - @echo "===> GENERATE ASM $@" - $(Q)$(CC) -S $(ASFLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@ + $(info ===> GENERATE ASM $@) + $(Q)$(CC) -S $(CPPFLAGS) $(CFLAGS) $< -o $@ -tags: - @echo "===> GENERATE TAGS" - $(Q)ctags -R +$(BUILD_DIR)/%.o: %.s + $(info ===> ASSEMBLE $@) + $(Q)$(AS) $(ASFLAGS) $< -o $@ - -$(BUILD_DIR): - @mkdir $(BUILD_DIR) - -ifeq ($(findstring $(MAKECMDGOALS),clean),) --include $(OBJ:.o=.d) -endif - -.PHONY: clean distclean +.PHONY: clean distclean tags info asm clean: - @echo "===> CLEAN" + $(info ===> CLEAN) @rm -rf $(BUILD_DIR) @rm -f tags distclean: clean - @echo "===> DIST CLEAN" + $(info ===> DIST CLEAN) @rm -f $(TARGET)* @rm -f tags + +info: + $(info $(CFLAGS)) + $(Q)$(CC) $(VERSION) + +asm: $(BUILD_DIR) $(ASM) + +tags: + $(info ===> GENERATE TAGS) + $(Q)ctags -R + +$(BUILD_DIR): + @mkdir $(BUILD_DIR) + +-include $(OBJ:.o=.d) diff --git a/asm/.gitkeep b/asm/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config.mk b/config.mk index 0d02951..55045fe 100644 --- a/config.mk +++ b/config.mk @@ -1,9 +1,11 @@ # Supported: GCC, CLANG, ICC -TAG ?= ICC +TAG ?= CLANG +ENABLE_LIKWID ?= false # SP or DP DATA_TYPE ?= DP # AOS or SOA DATA_LAYOUT ?= AOS #Feature options -OPTIONS += -DALIGNMENT=64 -DLIKWID_PERFMON +OPTIONS = -DALIGNMENT=64 +#OPTIONS += More options diff --git a/include_LIKWID.mk b/include_LIKWID.mk new file mode 100644 index 0000000..4ca5456 --- /dev/null +++ b/include_LIKWID.mk @@ -0,0 +1,10 @@ +LIKWID_INC ?= -I/usr/local/include +LIKWID_DEFINES ?= -DLIKWID_PERFMON +LIKWID_LIB ?= -L/usr/local/lib + +ifeq ($(strip $(ENABLE_LIKWID)),true) +INCLUDES += ${LIKWID_INC} +DEFINES += ${LIKWID_DEFINES} +LIBS += -llikwid +LFLAGS += ${LIKWID_LIB} +endif