jw-pkg/make/run.mk

90 lines
1.7 KiB
Makefile

# 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
include $(MODDIR)/make/defs.mk
BUILD_HDR =
include $(MODDIR)/make/rules.mk
include $(MODDIR)/make/ldlibpath.mk
include $(MODDIR)/make/debugger.mk
EXE_PATH ?= ./$(EXE)
all:
install:
valgrind:
rm -f $(CORE)
valgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
callgrind:
rm -f $(CORE)
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
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) &
# 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
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 $(EXE_PATH) $(EXE_ARGS)
kcg:
kcachegrind callgrind.*
clean: runclean localclean
start.bat:
echo "set PATH=%PATH;$(DLL_PATH)" > $@.tmp
echo "$(EXE_PATH) $(EXE_ARGS)" >> $@.tmp
mv $@.tmp $@