92 lines
2.8 KiB
Makefile
92 lines
2.8 KiB
Makefile
######################################
|
|
###### Build tasks #######
|
|
######################################
|
|
|
|
all: build_exec_dbg
|
|
|
|
# creates executable using profiling info generated by profile
|
|
build_exec: profile
|
|
@cbuild/call_task.sh build_exec 2>&1 | tee -a make_raw.log
|
|
|
|
# creates executable with debug info and no optimizations
|
|
build_exec_dbg:
|
|
@cbuild/call_task.sh build_exec_dbg 2>&1 | tee make_raw.log
|
|
|
|
# creates shared library
|
|
build_shared_lib:
|
|
@cbuild/call_task.sh build_shared_lib 2>&1 | tee make_raw.log
|
|
|
|
# creates shared library with debug symbols and no optimizations
|
|
build_shared_lib_dbg:
|
|
@cbuild/call_task.sh build_shared_lib_dbg 2>&1 | tee make_raw.log
|
|
|
|
# creates static library
|
|
build_static_lib:
|
|
@cbuild/call_task.sh build_static_lib 2>&1 | tee make_raw.log
|
|
|
|
# creates static library with debug symbols and no optimizations
|
|
build_static_lib_dbg:
|
|
@cbuild/call_task.sh build_static_lib_dbg 2>&1 | tee make_raw.log
|
|
|
|
# recompile libsome_dep.a in the next build task
|
|
#rebuild_some_dep:
|
|
# @cbuild/rebuild_dep.sh libsome_dep.a 2>&1 | tee make_raw.log
|
|
|
|
#rebuild_all: rebuild_some_dep
|
|
|
|
######################################
|
|
###### Launch tasks #######
|
|
######################################
|
|
|
|
# executes $EXEC_FILE
|
|
exec: build_exec
|
|
@cbuild/call_task.sh exec 2>&1 | tee -a make_raw.log
|
|
|
|
# executes $EXEC_FILE
|
|
exec_dbg: build_exec_dbg
|
|
@cbuild/call_task.sh exec 2>&1 | tee -a make_raw.log
|
|
|
|
# executes $EXEC_FILE with valgrind memory checker
|
|
valgrind: build_exec_dbg
|
|
@cbuild/call_task.sh valgrind 2>&1 | tee -a make_raw.log
|
|
|
|
# generates profiling info
|
|
profile:
|
|
@cbuild/call_task.sh profile 2>&1 | tee make_raw.log
|
|
|
|
# compiles program with -pg and runs it with gprof
|
|
# uses gprof2dot python script to generate function call tree (pip install gprof2dot)
|
|
# requires graphviz (https://www.graphviz.org/download/source/)
|
|
gprof:
|
|
@cbuild/call_task.sh gprof 2>&1 | tee make_raw.log
|
|
|
|
# compiles program and runs it with callgrind (part of valgrind)
|
|
# uses gprof2dot python script to generate function call tree (pip install gprof2dot)
|
|
# requires graphviz (https://www.graphviz.org/download/source/)
|
|
# P.S. detailed rezults can be viewed in KCacheGrind
|
|
callgrind:
|
|
@cbuild/call_task.sh callgrind 2>&1 | tee make_raw.log
|
|
|
|
# compiles executable with sanitizers and executes it to find errors and warnings
|
|
sanitize:
|
|
@cbuild/call_task.sh sanitize 2>&1 | tee make_raw.log
|
|
|
|
######################################
|
|
###### Other tasks #######
|
|
######################################
|
|
|
|
# deletes generated files
|
|
clean:
|
|
@cbuild/call_task.sh clean 2>&1 | tee make_raw.log
|
|
|
|
# removes all unreadable characters copied from stdio
|
|
fix_log:
|
|
sed 's/[^[:blank:][:print:]]//g' make_raw.log \
|
|
| sed 's/\[0;[0-9][0-9]m//g' \
|
|
| sed 's/\[0;[0-9]m//g' \
|
|
| sed 's/\[[0-9][0-9]m//g' \
|
|
| sed 's/\[[0-9]m//g' \
|
|
| sed 's/ H //g' \
|
|
| sed 's/\[3gH //g' \
|
|
> make_fixed.log
|