Tests now build with -lm
[akaros.git] / tests / Makefrag
1 TESTS_DIR = tests
2
3 OBJDIRS += $(TESTS_DIR)
4
5 TESTS_CFLAGS += $(USER_CFLAGS) -g
6 TESTS_CXXFLAGS += $(USER_CXXFLAGS) -g
7 TESTS_LDFLAGS += $(USER_LDFLAGS) -lm
8
9 TESTS_LDLIBS := -lpthread
10
11 TESTS_SRCS_C = $(shell ls $(TESTS_DIR)/*.c)
12 TESTS_SRCS_CPP = $(shell ls $(TESTS_DIR)/*.cc)
13
14 TESTS_LDDEPENDS_C := $(TESTS_DIR)/%.c 
15 TESTS_LDDEPENDS_CPP := $(TESTS_DIR)/%.cc
16
17 TESTS_EXECS_C  = $(patsubst $(TESTS_DIR)/%.c, \
18                             $(OBJDIR)/$(TESTS_DIR)/%, \
19                             $(TESTS_SRCS_C))
20
21 TESTS_EXECS_CPP  = $(patsubst $(TESTS_DIR)/%.cc, \
22                             $(OBJDIR)/$(TESTS_DIR)/%, \
23                             $(TESTS_SRCS_CPP))
24
25 include $(TESTS_DIR)/c3po/Makefrag
26 include $(TESTS_DIR)/openmp/Makefrag
27
28 STATIC := $(findstring static,$(TESTS_CFLAGS))
29 $(OBJDIR)/$(TESTS_DIR)/%: $(TESTS_LDDEPENDS_C)
30         @echo + cc [TESTS] $<
31         @mkdir -p $(@D)
32         $(V)$(CC) $(TESTS_CFLAGS) -o $@ $(TESTS_LDFLAGS) \
33                   $< $(TESTS_LDLIBS)
34         @if [ "$(STATIC)" != "static" ]; then \
35                 $(OBJDUMP) -S $@ > $@.asm; \
36                 $(NM) -n $@ > $@.sym; \
37         fi
38
39 # Note that we don't disassemble CPPs by default, even if they aren't static.
40 # The files are pretty large regardless (9MB for a simple stream test asm).
41 $(OBJDIR)/$(TESTS_DIR)/%: $(TESTS_LDDEPENDS_CPP)
42         @echo + cc [TESTS] $<
43         @mkdir -p $(@D)
44         $(V)$(CPP) $(TESTS_CXXFLAGS) -o $@ $(TESTS_LDFLAGS) \
45                   $< $(TESTS_LDLIBS)
46
47 install-tests: $(TESTS_EXECS_C) $(TESTS_EXECS_CPP) 
48         @echo + install [TESTS] $(FIRST_INITRAMFS_PATH)/bin/
49         $(V)for i in "$(TESTS_EXECS) $(TESTS_EXECS_CPP)"; \
50         do \
51           cp $$i $(FIRST_INITRAMFS_PATH)/bin/; \
52         done;