|  | # 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) |