Every directory should have a test target, and the test target should depend on all so that all files are generated that might be needed for testing. This commit fixes some missing targets, and adds some missing dependencies.
Signed-off-by: Jan Lindemann <jan@janware.com>
167 lines
4.6 KiB
Makefile
167 lines
4.6 KiB
Makefile
# generic utility modules
|
|
# (c) 2001 jannet it services
|
|
# contact@jannet.de
|
|
# $Id$
|
|
|
|
include $(JWBDIR)/make/defs.mk
|
|
include $(JWBDIR)/make/defs-cpp.mk
|
|
|
|
DIR_BASENAME = $(notdir $(CWD))
|
|
|
|
ifneq ($(TARGET_PRODUCT),)
|
|
EXE_BASENAME_PREFIX ?= $(TARGET_PRODUCT)-
|
|
endif
|
|
|
|
ifeq ($(EXE_BASENAME),)
|
|
ifneq ($(DIR_BASENAME),test)
|
|
EXE_BASENAME = $(EXE_BASENAME_PREFIX)$(DIR_BASENAME)
|
|
else
|
|
EXE_BASENAME = $(EXE_BASENAME_PREFIX)test-$(notdir $(shell cd ..; $(PWD)))
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(EXE_BASENAME),)
|
|
ifneq ($(TARGET),mingw)
|
|
EXE ?= $(EXE_BASENAME)
|
|
SHORTCUT_SCRIPT ?= ./run.sh
|
|
else
|
|
EXE ?= $(EXE_BASENAME).exe
|
|
SHORTCUT_SCRIPT ?= run.bat
|
|
endif
|
|
endif
|
|
|
|
EXE_PATH ?= ./$(EXE)
|
|
CHECK_CONF_EXE ?= $(firstword $(wildcard $(PROJECTS_DIR)/valdi/bin/checkconf) checkconf)
|
|
|
|
FINAL_CFLAGS += -DEXE_NAME=\"$(EXE)\"
|
|
FINAL_CXXFLAGS += -DEXE_NAME=\"$(EXE)\"
|
|
|
|
# ----- linker scripts from tagged templates
|
|
#BUILD_LD_DIR = $(wildcard $(firstword $(call $(TAGGED_TMPL_DIRS),ld)))
|
|
#BUILD_LD_DIR = $(firstword $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(wildcard $(repo)/$(tag)/ld))))
|
|
#BUILD_LD_DIR = $(firstword $(wildcard $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(repo)/$(tag)/ld))))
|
|
|
|
#BUILD_LD_TMPL_DIRS ?= $(foreach tag,$(TAGGED_TMPL_TAGS),$(foreach repo,$(TOPDIR)/tmpl/tagged $(JWBDIR)/tmpl/tagged,$(repo)/$(tag)/ld))
|
|
#BUILD_LD_DIRS += $(wildcard $(BUILD_LD_TMPL_DIRS))
|
|
#FINAL_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
|
|
|
|
BUILD_LD_DIRS = $(call uniq,$(dir $(foreach d,$(BUILD_LD_CHECK_DIRS),$(wildcard $(d)/*.ld))))
|
|
LD_SCRIPTS = $(foreach d,$(BUILD_LD_DIRS),$(wildcard $(d)/*.ld))
|
|
FINAL_LDFLAGS += $(foreach d,$(BUILD_LD_DIRS),-L$(d) $(addprefix -T ,$(sort $(notdir $(wildcard $(d)/*.ld)))))
|
|
|
|
include $(JWBDIR)/make/profiler.mk
|
|
include $(JWBDIR)/make/rules.mk
|
|
include $(JWBDIR)/make/ldlibpath.mk
|
|
include $(JWBDIR)/make/path-rules.mk
|
|
include $(JWBDIR)/make/debugger.mk
|
|
|
|
EXE_ARGS += $(LOCAL_EXE_ARGS)
|
|
EXE_CMD ?= $(EXE_PATH) $(EXE_ARGS)
|
|
|
|
ifneq ($(wildcard local.supp),)
|
|
VALGRIND_OPTS += --suppressions=local.supp
|
|
endif
|
|
|
|
all:
|
|
install:
|
|
clean: runclean localclean
|
|
distclean:
|
|
test: all
|
|
|
|
run-deps: all
|
|
$(RM) -f core core.* vgcore vgcore.*
|
|
|
|
ifeq ($(TARGET),mingw)
|
|
run test: run-deps
|
|
@echo "wine $(EXE_CMD)"
|
|
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
|
|
"$(EXE_CMD)" | wine cmd
|
|
|
|
start: run-deps
|
|
@echo "wine $(EXE_CMD)"
|
|
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
|
|
"$(EXE_CMD)" | wine cmd &
|
|
|
|
else
|
|
run test: run-deps
|
|
$(EXE_CMD)
|
|
start: run-deps
|
|
$(EXE_CMD) &
|
|
|
|
which:
|
|
$(WHICH) $(EXE_PATH)
|
|
|
|
$(SHORTCUT_SCRIPT):
|
|
ifeq ($(TARGET),mingw)
|
|
echo "set PATH=%PATH;$(DLL_PATH)" > $@.tmp
|
|
echo "$(EXE_CMD)" >> $@.tmp
|
|
else
|
|
echo -e "#!/bin/bash\n\n$(RM) -f core.*\nexport LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)\nexport PATH=$(PATH)\n$(EXE_CMD)" > $@.tmp
|
|
chmod 755 $@.tmp
|
|
endif
|
|
mv $@.tmp $@
|
|
shortcut: $(SHORTCUT_SCRIPT)
|
|
distclean.shortcut:
|
|
$(RM) -f $(SHORTCUT_SCRIPT)
|
|
distclean: distclean.shortcut
|
|
|
|
# unfortunately iwatch supports only one directory :-(
|
|
autorun:
|
|
make run &
|
|
iwatch -e close_write -c "$(HOME)/bin/run-once.sh make restart" \
|
|
$(BUILD_LIBDIR)
|
|
|
|
wait-stop:
|
|
while /sbin/checkproc $(notdir $(EXE_PATH)); do sleep 1; done
|
|
|
|
restart: stop wait-stop all start
|
|
|
|
valgrind: run-deps
|
|
valgrind $(VALGRIND_OPTS) $(EXE_CMD)
|
|
|
|
valkyrie: run-deps
|
|
valkyrie $(VALGRIND_OPTS) $(EXE_CMD)
|
|
|
|
efence: run-deps
|
|
ef $(EXE_CMD)
|
|
|
|
supp.tmp:
|
|
valgrind --gen-suppressions=all $(EXE_CMD) 2>$@.tmp; mv $@.tmp $@ || exit 0
|
|
|
|
vg-create-supp: supp.tmp
|
|
$(CAT) $< | $(JWB_SCRIPT_DIR)/parse-valgrind-suppressions.sh > local.supp
|
|
$(RM) -f supp.tmp
|
|
vg-add-supp:
|
|
$(CAT) | $(JWB_SCRIPT_DIR)/parse-valgrind-suppressions.sh >> local.supp
|
|
clean: vg-clean-supp
|
|
vg-clean-supp:
|
|
$(RM) -f local.supp
|
|
|
|
clean: clean.out
|
|
clean.out:
|
|
$(RM) -f run.out
|
|
|
|
snap:
|
|
killall -SIGUSR1 $(notdir $(EXE_PATH))
|
|
|
|
check-conf:
|
|
$(CHECK_CONF_EXE) -p --log-flags console \
|
|
$(shell echo $(EXE_ARGS) | sed 's/.*--config-file *//; s/ .*//')
|
|
endif
|
|
|
|
stop:
|
|
if /sbin/checkproc $(notdir $(EXE_PATH)); then killall $(notdir $(EXE_PATH)); fi
|
|
kill:
|
|
killall -9 $(notdir $(EXE_PATH))
|
|
|
|
abort:
|
|
killall -6 $(notdir $(EXE_PATH))
|
|
|
|
strace: $(EXE_PATH) $(EXE_BIN) run-deps
|
|
strace -f $(STRACE_EXTRA_OPTS) $(EXE_CMD)
|
|
|
|
tee: $(EXE_PATH) $(EXE_BIN) run-deps
|
|
$(EXE_CMD) 2>&1 | tee run.out
|
|
|
|
kcg:
|
|
kcachegrind callgrind.*
|