blob: 17089ea61260c2604b48b787cabc2cca99b8d171 [file] [log] [blame]
ARCH ?= none # catch bugs
CFLAGS_USER += -g
CXXFLAGS_USER += -g
LIBNAME = utest
# DEPLIBS passed in from the top-level Makefile
DEPLIBS := $(DEPLIBS)
DEPLIBAS = $(patsubst %, $(XCC_TARGET_LIB)/lib%.a, $(DEPLIBS))
SRCDIR :=
OBJDIR := $(SRCDIR)obj
INCDIR = $(SRCDIR)include
LDLIBS := -lpthread -lbenchutil -lm -liplib -lndblib
uc = $(shell echo $(1) | tr a-z A-Z)
LIBUCNAME := $(call uc, $(LIBNAME))
SCRIPTS := $(wildcard $(SRCDIR)*.sh)
SRCS_C := $(wildcard $(SRCDIR)*.c)
SRCS_CPP := $(wildcard $(SRCDIR)*.cc)
HEADERS := $(shell find $(INCDIR) -name "*.h")
EXECS_C = $(patsubst $(SRCDIR)%.c, $(OBJDIR)/%, $(SRCS_C))
EXECS_CPP = $(patsubst $(SRCDIR)%.cc, $(OBJDIR)/%, $(SRCS_CPP))
EXECS = $(EXECS_C) $(EXECS_CPP)
STATIC := $(findstring static,$(CFLAGS_USER))
$(OBJDIR)/%: %.c $(HEADERS) $(DEPLIBAS)
@echo + cc [$(LIBUCNAME)] $<
@mkdir -p $(@D)
$(Q)$(CC) $(CFLAGS_USER) -I$(INCDIR) -o $@ $< $(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)/%: %.cc $(HEADERS) $(DEPLIBAS)
@echo + cc [$(LIBUCNAME)] $<
@mkdir -p $(@D)
$(Q)$(CPP) $(CXXFLAGS_USER) -I$(INCDIR) -o $@ $< $(LDLIBS)
all: $(EXECS)
install: $(EXECS) $(SCRIPTS)
@mkdir -p $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
$(Q)cp -uP $^ $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
uninstall: $(EXECS)
$(Q)rm -rf $(AKAROS_ROOT)/$(FIRST_KFS_PATH)/bin/tests/utest
clean:
@echo + clean [$(LIBUCNAME)]
$(Q)rm -rf $(OBJDIR)
.PHONY: $(PHONY)