# generic utility modules # (c) 2001 jannet it services # contact@jannet.de # $Id$ DIR_BASENAME = $(notdir $(shell pwd)) ifeq ($(EXE_BASENAME),) ifneq ($(DIR_BASENAME),test) EXE_BASENAME = $(DIR_BASENAME) else EXE_BASENAME = test-$(notdir $(shell cd ..; pwd)) endif endif ifneq ($(EXE_BASENAME),) ifneq ($(TARGET),mingw) EXE ?= $(EXE_BASENAME) else EXE ?= $(EXE_BASENAME).exe endif endif EXE_PATH ?= ./$(EXE) LOCAL_CFLAGS += -DEXE_NAME=\"$(EXE)\" LOCAL_CPPFLAGS += -DEXE_NAME=\"$(EXE)\" include $(MODDIR)/make/defs.mk BUILD_HDR = include $(MODDIR)/make/rules.mk include $(MODDIR)/make/ldlibpath.mk include $(MODDIR)/make/debugger.mk EXE_ARGS += $(LOCAL_EXE_ARGS) ifneq ($(wildcard local.supp),) VALGRIND_OPTS += --suppressions=local.supp endif all: install: clean: distclean: ifeq ($(TARGET),mingw) run test: all @echo "wine $(EXE_PATH) $(EXE_ARGS)" @echo -e "set PATH=%PATH;$(DLL_PATH)\n" \ "$(EXE_PATH) $(EXE_ARGS)" | wine cmd start: all @echo "wine $(EXE_PATH) $(EXE_ARGS)" @echo -e "set PATH=%PATH;$(DLL_PATH)\n" \ "$(EXE_PATH) $(EXE_ARGS)" | wine cmd & clean: winrunclean winrunclean: rm -f start.bat else run test: all rm -f core.* $(EXE_PATH) $(EXE_ARGS) start: all rm -f core.* $(EXE_PATH) $(EXE_ARGS) & clean: vg-clean-supp clean.out # unfortunately iwatch only supports 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: rm -f core.* valgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS) valkyrie: rm -f core.* valkyrie $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS) efence: rm -f core.* ef $(EXE_PATH) $(EXE_ARGS) supp.tmp: valgrind --gen-suppressions=all $(EXE_PATH) $(EXE_ARGS) 2>$@.tmp; mv $@.tmp $@ || exit 0 vg-create-supp: supp.tmp $(CAT) $< | $(MOD_SCRIPT_DIR)/parse-valgrind-suppressions.sh > local.supp rm -f supp.tmp vg-add-supp: $(CAT) | $(MOD_SCRIPT_DIR)/parse-valgrind-suppressions.sh >> local.supp vg-clean-supp: rm -f local.supp clean.out: rm -f run.out callgrind: rm -f core.* valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS) callgrind-noinst: rm -f core.* valgrind --tool=callgrind $(VALGRIND_OPTS) --instr-atstart=no $(EXE_PATH) $(EXE_ARGS) callgrind-startinst: ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=on callgrind-stopinst: ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=off callgrind-dump: ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --dump snap: killall -SIGUSR1 $(notdir $(EXE_PATH)) check-conf: $(firstword $(wildcard $(CVS_PROJ_DIR)/valdi/bin/checkconf) checkconf) -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) strace -f $(STRACE_EXTRA_OPTS) $(EXE_PATH) $(EXE_ARGS) tee: $(EXE_PATH) $(EXE_BIN) all rm -f core.* $(EXE_PATH) $(EXE_ARGS) 2>&1 | tee run.out kcg: kcachegrind callgrind.* clean: runclean localclean start.bat: echo "set PATH=%PATH;$(DLL_PATH)" > $@.tmp echo "$(EXE_PATH) $(EXE_ARGS)" >> $@.tmp mv $@.tmp $@