Sockets shutdown() is just a close()
[akaros.git] / user / utest / Makefile
1 ARCH ?= none # catch bugs
2 CFLAGS_USER += -g
3 CXXFLAGS_USER += -g
4 LIBNAME = utest 
5
6 SRCDIR := 
7 OBJDIR := $(SRCDIR)obj
8 INCDIR = $(SRCDIR)include
9
10 LDLIBS := -lpthread -lbenchutil -lm -liplib -lndb -lbsd
11
12 uc = $(shell echo $(1) | tr a-z A-Z)
13
14 LIBUCNAME := $(call uc, $(LIBNAME))
15 SCRIPTS := $(wildcard $(SRCDIR)*.sh)
16 SRCS_C := $(wildcard $(SRCDIR)*.c)
17 SRCS_CPP := $(wildcard $(SRCDIR)*.cc)
18 HEADERS := $(shell find $(INCDIR) -name *.h)
19
20 EXECS_C = $(patsubst $(SRCDIR)%.c, $(OBJDIR)/%, $(SRCS_C))
21 EXECS_CPP = $(patsubst $(SRCDIR)%.cc, $(OBJDIR)/%, $(SRCS_CPP))
22 EXECS = $(EXECS_C) $(EXECS_CPP)
23
24 STATIC := $(findstring static,$(CFLAGS_USER))
25 $(OBJDIR)/%: $(SRCS_C) $(HEADERS)
26         @echo + cc [$(LIBUCNAME)] $<
27         @mkdir -p $(@D)
28         $(Q)$(CC) $(CFLAGS_USER) -I$(INCDIR) -o $@ $< $(LDLIBS)
29         @if [ "$(STATIC)" != "static" ]; then \
30                 $(OBJDUMP) -S $@ > $@.asm; \
31                 $(NM) -n $@ > $@.sym; \
32         fi
33
34 # Note that we don't disassemble CPPs by default, even if they aren't static.
35 # The files are pretty large regardless (9MB for a simple stream test asm).
36 $(OBJDIR)/%: $(SRCS_CPP) $(HEADERS)
37         @echo + cc [$(LIBUCNAME)] $<
38         @mkdir -p $(@D)
39         $(Q)$(CPP) $(CXXFLAGS_USER) -I$(INCDIR) -o $@ $< $(LDLIBS)
40
41 all: $(EXECS)
42
43 install: $(EXECS) $(SCRIPTS)
44         @mkdir -p $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
45         $(Q)cp -uP $^ $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
46
47 uninstall: $(EXECS)
48         $(Q)rm -rf $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
49
50 clean:
51         @echo + clean [$(LIBUCNAME)]
52         $(Q)rm -rf $(OBJDIR)
53
54 .PHONY: $(PHONY)