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