mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
make: Split up profiler.mk into profiler-defs.mk and profiler-rules-run.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
7faa876a18
commit
51b88d618e
5 changed files with 110 additions and 107 deletions
|
|
@ -8,7 +8,7 @@ LOADABLE_OBJ_HOOK ?= LOADABLE_OBJECT_HOOK
|
|||
# === change this <
|
||||
|
||||
include $(MODDIR)/make/defs.mk
|
||||
include $(MODDIR)/make/profiler.mk
|
||||
include $(MODDIR)/make/profiler-defs.mk
|
||||
|
||||
.PRECIOUS: %.cpp %.o
|
||||
LOADABLE_OBJS_HEADER ?= $(wildcard $(TOOLS_INCLUDE_DIR)/$(CPP_PREFIX)*$(CPP_SUFFIX).h)
|
||||
|
|
|
|||
21
make/profiler-defs.mk
Normal file
21
make/profiler-defs.mk
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
all:
|
||||
clean:
|
||||
|
||||
PROF_EXE_PATH ?= $(EXE_PATH)
|
||||
CALLGRIND_OUT ?= callgrind.out
|
||||
OPROF_OUT_DIR ?= oprofile-dir
|
||||
|
||||
ifeq ($(USE_GPROF),true)
|
||||
PROJECT_CPPFLAGS += -pg
|
||||
PROJECT_CFLAGS += -pg
|
||||
PROJECT_LDFLAGS += -pg
|
||||
clean: clean.gprof
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GCOV),true)
|
||||
PROJECT_CPPFLAGS += -fprofile-arcs -ftest-coverage
|
||||
PROJECT_CFLAGS += -fprofile-arcs -ftest-coverage
|
||||
PROJECT_LDFLAGS += -fprofile-arcs -ftest-coverage
|
||||
clean: clean.gcov
|
||||
endif
|
||||
|
||||
85
make/profiler-rules-run.mk
Normal file
85
make/profiler-rules-run.mk
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# ---- callgrind
|
||||
|
||||
clean: clean.callgrind
|
||||
|
||||
callgrind: run-prereq
|
||||
$(RM) -f core.*
|
||||
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
|
||||
callgrind-noinst: run-prereq
|
||||
$(RM) -f core.*
|
||||
valgrind --tool=callgrind --callgrind-out-file=$(CALLGRIND_OUT) --instr-atstart=no $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
|
||||
$(CALLGRIND_OUT): callgrind
|
||||
kcachegrind: $(CALLGRIND_OUT)
|
||||
kcachegrind $<
|
||||
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
|
||||
clean.callgrind:
|
||||
rm -f $(CALLGRIND_OUT)
|
||||
|
||||
# ---- oprofile
|
||||
|
||||
clean: clean.oprof
|
||||
|
||||
operf: | $(OPROF_OUT_DIR)
|
||||
|
||||
$(OPROF_OUT_DIR):
|
||||
mkdir -p $@
|
||||
oprof-setup:
|
||||
echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
|
||||
echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid
|
||||
oprof-callgraph.txt:
|
||||
opreport --session-dir $(OPROF_OUT_DIR) --callgraph > $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-view-callgraph-txt: oprof-callgraph.txt
|
||||
less -S $<
|
||||
oprof-callgraph.dot: oprof-callgraph.txt
|
||||
cat $< | gprof2dot -f oprofile > $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-callgraph.pdf: oprof-callgraph.dot
|
||||
dot -Tpdf $< -o $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-view-callgraph-pdf: oprof-callgraph.pdf
|
||||
okular $<
|
||||
oprof-view-callgraph-dot: oprof-callgraph.dot
|
||||
xdot $<
|
||||
|
||||
#operf: operf.txt
|
||||
#operf.txt:
|
||||
# operf --session-dir $(OPROF_OUT_DIR) $(PROF_CMD)
|
||||
#operf-view-txt: operf.txt
|
||||
# less -S $<
|
||||
#operf-callgraph.pdf: gmon.out
|
||||
# operf $(PROF_EXE_PATH) | operf2dot | dot -Tpdf -o $@.tmp
|
||||
# mv $@.tmp $@
|
||||
#operf-pdf: operf-callgraph.pdf
|
||||
|
||||
clean.oprof:
|
||||
rm -rf $(OPROF_OUT_DIR) oprof-callgraph.txt oprof-callgraph.pdf oprof-callgraph.dot
|
||||
|
||||
# ---- gcov
|
||||
|
||||
clean.gcov:
|
||||
rm -f *.gcda *.gcov
|
||||
|
||||
# ---- gprof
|
||||
|
||||
clean: clean.gprof
|
||||
gprof: gprof.txt
|
||||
gprof.txt:
|
||||
gprof $(PROF_EXE_PATH) > $@.tmp
|
||||
mv $@.tmp $@
|
||||
gprof-view-txt: gprof.txt
|
||||
less -S $<
|
||||
gprof-callgraph.pdf: gmon.out
|
||||
gprof $(PROF_EXE_PATH) | gprof2dot | dot -Tpdf -o $@.tmp
|
||||
mv $@.tmp $@
|
||||
gprof-pdf: gprof-callgraph.pdf
|
||||
gprof-view-callgraph-pdf: gprof-callgraph.pdf
|
||||
okular $<
|
||||
clean.gprof:
|
||||
rm -f gmon.out gprof.txt *.tmp gprof-callgraph.pdf
|
||||
|
||||
107
make/profiler.mk
107
make/profiler.mk
|
|
@ -1,105 +1,2 @@
|
|||
all:
|
||||
clean:
|
||||
|
||||
PROF_EXE_PATH ?= $(EXE_PATH)
|
||||
CALLGRIND_OUT ?= callgrind.out
|
||||
OPROF_OUT_DIR ?= oprofile-dir
|
||||
|
||||
ifeq ($(USE_GPROF),true)
|
||||
PROJECT_CPPFLAGS += -pg
|
||||
PROJECT_CFLAGS += -pg
|
||||
PROJECT_LDFLAGS += -pg
|
||||
clean: clean.gprof
|
||||
endif
|
||||
|
||||
ifeq ($(USE_GCOV),true)
|
||||
PROJECT_CPPFLAGS += -fprofile-arcs -ftest-coverage
|
||||
PROJECT_CFLAGS += -fprofile-arcs -ftest-coverage
|
||||
PROJECT_LDFLAGS += -fprofile-arcs -ftest-coverage
|
||||
clean: clean.gcov
|
||||
endif
|
||||
|
||||
# ---- callgrind
|
||||
|
||||
clean: clean.callgrind
|
||||
|
||||
callgrind: run-prereq
|
||||
$(RM) -f core.*
|
||||
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
|
||||
callgrind-noinst: run-prereq
|
||||
$(RM) -f core.*
|
||||
valgrind --tool=callgrind --callgrind-out-file=$(CALLGRIND_OUT) --instr-atstart=no $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
|
||||
$(CALLGRIND_OUT): callgrind
|
||||
kcachegrind: $(CALLGRIND_OUT)
|
||||
kcachegrind $<
|
||||
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
|
||||
clean.callgrind:
|
||||
rm -f $(CALLGRIND_OUT)
|
||||
|
||||
# ---- oprofile
|
||||
|
||||
clean: clean.oprof
|
||||
|
||||
operf: | $(OPROF_OUT_DIR)
|
||||
|
||||
$(OPROF_OUT_DIR):
|
||||
mkdir -p $@
|
||||
oprof-setup:
|
||||
echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
|
||||
echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid
|
||||
oprof-callgraph.txt:
|
||||
opreport --session-dir $(OPROF_OUT_DIR) --callgraph > $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-view-callgraph-txt: oprof-callgraph.txt
|
||||
less -S $<
|
||||
oprof-callgraph.dot: oprof-callgraph.txt
|
||||
cat $< | gprof2dot -f oprofile > $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-callgraph.pdf: oprof-callgraph.dot
|
||||
dot -Tpdf $< -o $@.tmp
|
||||
mv $@.tmp $@
|
||||
oprof-view-callgraph-pdf: oprof-callgraph.pdf
|
||||
okular $<
|
||||
oprof-view-callgraph-dot: oprof-callgraph.dot
|
||||
xdot $<
|
||||
|
||||
#operf: operf.txt
|
||||
#operf.txt:
|
||||
# operf --session-dir $(OPROF_OUT_DIR) $(PROF_CMD)
|
||||
#operf-view-txt: operf.txt
|
||||
# less -S $<
|
||||
#operf-callgraph.pdf: gmon.out
|
||||
# operf $(PROF_EXE_PATH) | operf2dot | dot -Tpdf -o $@.tmp
|
||||
# mv $@.tmp $@
|
||||
#operf-pdf: operf-callgraph.pdf
|
||||
|
||||
clean.oprof:
|
||||
rm -rf $(OPROF_OUT_DIR) oprof-callgraph.txt oprof-callgraph.pdf oprof-callgraph.dot
|
||||
|
||||
# ---- gcov
|
||||
|
||||
clean.gcov:
|
||||
rm -f *.gcda *.gcov
|
||||
|
||||
# ---- gprof
|
||||
|
||||
clean: clean.gprof
|
||||
gprof: gprof.txt
|
||||
gprof.txt:
|
||||
gprof $(PROF_EXE_PATH) > $@.tmp
|
||||
mv $@.tmp $@
|
||||
gprof-view-txt: gprof.txt
|
||||
less -S $<
|
||||
gprof-callgraph.pdf: gmon.out
|
||||
gprof $(PROF_EXE_PATH) | gprof2dot | dot -Tpdf -o $@.tmp
|
||||
mv $@.tmp $@
|
||||
gprof-pdf: gprof-callgraph.pdf
|
||||
gprof-view-callgraph-pdf: gprof-callgraph.pdf
|
||||
okular $<
|
||||
clean.gprof:
|
||||
rm -f gmon.out gprof.txt *.tmp gprof-callgraph.pdf
|
||||
include $(MODDIR)/make/profiler-defs.mk
|
||||
include $(MODDIR)/make/profiler-rules-run.mk
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
# $Id$
|
||||
|
||||
include $(MODDIR)/make/defs.mk
|
||||
include $(MODDIR)/make/profiler-defs.mk
|
||||
include $(MODDIR)/make/targets-tools.mk
|
||||
include $(MODDIR)/make/cpp-extra-targets.mk
|
||||
include $(MODDIR)/make/depend.mk
|
||||
include $(MODDIR)/make/backup.mk
|
||||
include $(MODDIR)/make/profiler.mk
|
||||
|
||||
LOCAL_CFLAGS += -D_USRDLL -DALL_EXPORTS
|
||||
LOCAL_CPPFLAGS += -D_USRDLL -DALL_EXPORTS
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue