# Default target is to just make PHONY += all install uninstall clean all: # TODO: when we clean this up, if we ditch OBJDIR, change the root makefile TESTS_DIR = tests CFLAGS_TESTS += $(CFLAGS_USER) -g TESTS_CXXFLAGS += $(CXXFLAGS_USER) -g -std=gnu++11 TESTS_LDLIBS := -lpthread -lvmm -lbenchutil -lm -lndblib -liplib TESTS_SRCS_C := $(wildcard $(TESTS_DIR)/*.c) TESTS_SRCS_CPP := $(wildcard $(TESTS_DIR)/*.cc) TESTS_LDDEPENDS_C := $(TESTS_DIR)/%.c TESTS_LDDEPENDS_CPP := $(TESTS_DIR)/%.cc TESTS_EXECS_C = $(patsubst $(TESTS_DIR)/%.c, \ $(OBJDIR)/$(TESTS_DIR)/%, \ $(TESTS_SRCS_C)) TESTS_EXECS_CPP = $(patsubst $(TESTS_DIR)/%.cc, \ $(OBJDIR)/$(TESTS_DIR)/%, \ $(TESTS_SRCS_CPP)) include $(TESTS_DIR)/openmp/Makefrag include $(TESTS_DIR)/vmm/Makefrag include $(TESTS_DIR)/dune/Makefrag TESTS_EXECS = $(TESTS_EXECS_C) $(TESTS_EXECS_CPP) STATIC := $(findstring static,$(CFLAGS_TESTS)) $(OBJDIR)/$(TESTS_DIR)/%: $(TESTS_LDDEPENDS_C) @echo + cc [TESTS] $< @mkdir -p $(@D) $(Q)$(CC) $(CFLAGS_TESTS) -o $@ $< $(TESTS_LDLIBS) @if [ "$(STATIC)" != "static" ]; then \ $(OBJDUMP) -S $@ > $@.asm; \ $(NM) -n $@ > $@.sym; \ fi # Note that we don't disassemble CPPs by default, even if they aren't static. # The files are pretty large regardless (9MB for a simple stream test asm). $(OBJDIR)/$(TESTS_DIR)/%: $(TESTS_LDDEPENDS_CPP) @echo + cc [TESTS] $< @mkdir -p $(@D) $(Q)$(CPP) $(TESTS_CXXFLAGS) -o $@ $< $(TESTS_LDLIBS) all: $(TESTS_EXECS) @: install: $(TESTS_EXECS) @mkdir -p $(FIRST_KFS_PATH)/bin $(Q)cp -uP $^ $(FIRST_KFS_PATH)/bin uninstall: $(Q)rm -rf $(addprefix $(FIRST_KFS_PATH)/bin/, $(notdir $(TESTS_EXECS))) clean: @echo + clean [TESTS] @rm -rf $(OBJDIR)/tests/ .PHONY: $(PHONY)