97 lines
2.6 KiB
Makefile
97 lines
2.6 KiB
Makefile
#CONFIGURE BUILD SYSTEM
|
|
TAG = $(OPT_TAG)-$(TOOLCHAIN)-$(DATA_TYPE)
|
|
TARGET = MDBench-$(TAG)
|
|
BUILD_DIR = ./build/build-$(TAG)
|
|
SRC_ROOT = ./src
|
|
SRC_DIR = $(SRC_ROOT)/$(OPT_SCHEME)
|
|
COMMON_DIR = $(SRC_ROOT)/common
|
|
CUDA_DIR = $(SRC_DIR)/cuda
|
|
MAKE_DIR = ./make
|
|
Q ?= @
|
|
|
|
#DO NOT EDIT BELOW
|
|
include config.mk
|
|
include $(MAKE_DIR)/include_$(TOOLCHAIN).mk
|
|
include $(MAKE_DIR)/include_LIKWID.mk
|
|
ifneq ($(strip $(ISA)),NONE)
|
|
include $(MAKE_DIR)/include_ISA.mk
|
|
endif
|
|
include $(MAKE_DIR)/include_GROMACS.mk
|
|
INCLUDES += -I./$(SRC_DIR) -I./$(COMMON_DIR)
|
|
|
|
VPATH = $(SRC_DIR) $(COMMON_DIR) $(CUDA_DIR)
|
|
ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(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))
|
|
OBJ += $(patsubst $(COMMON_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(COMMON_DIR)/*.c))
|
|
ifeq ($(strip $(TAG)),NVCC)
|
|
OBJ += $(patsubst $(CUDA_DIR)/%.cu, $(BUILD_DIR)/%-cuda.o,$(wildcard $(CUDA_DIR)/*.cu))
|
|
endif
|
|
CPPFLAGS := $(CPPFLAGS) $(DEFINES) $(OPTIONS) $(INCLUDES)
|
|
|
|
# $(warning $(OBJ))
|
|
|
|
ifneq ($(VARIANT),)
|
|
.DEFAULT_GOAL := ${TARGET}-$(VARIANT)
|
|
DEFINES += -DVARIANT=$(VARIANT)
|
|
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)
|
|
|
|
$(BUILD_DIR)/%.o: %.c
|
|
$(info ===> COMPILE $@)
|
|
$(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
|
|
$(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d
|
|
|
|
$(BUILD_DIR)/%-cuda.o: %.cu
|
|
$(info ===> COMPILE $@)
|
|
$(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
|
|
$(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d
|
|
|
|
$(BUILD_DIR)/%.s: %.c
|
|
$(info ===> GENERATE ASM $@)
|
|
$(Q)$(CC) -S $(ASFLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@
|
|
|
|
$(BUILD_DIR)/%.o: %.s
|
|
$(info ===> ASSEMBLE $@)
|
|
$(Q)$(AS) $< -o $@
|
|
|
|
.PHONY: clean distclean tags info asm
|
|
|
|
clean:
|
|
$(info ===> CLEAN)
|
|
@rm -rf $(BUILD_DIR)
|
|
|
|
cleanall:
|
|
$(info ===> CLEAN)
|
|
@rm -rf build
|
|
@rm -rf MDBench-*
|
|
@rm -f tags
|
|
|
|
distclean: 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 -p $(BUILD_DIR)
|
|
|
|
-include $(OBJ:.o=.d)
|