mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
make, scripts: Re-add files necessary for building ytools
Re-add everthing needed for building and packaging ytools. This is a big commit, 2002 lines of code. It mostly consists of C/C++ machinery, plus some documentation-related stuff. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
0a9340af49
commit
bf16c6714b
27 changed files with 1975 additions and 0 deletions
166
make/run.mk
Normal file
166
make/run.mk
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
# 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:
|
||||
|
||||
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.*
|
||||
Loading…
Add table
Add a link
Reference in a new issue