diff --git a/Makefile b/Makefile index 59e1fda..5cc4a0c 100644 --- a/Makefile +++ b/Makefile @@ -4,33 +4,16 @@ tst_dir?=tst install_dir?=install # Comment out the bins that doesn't need to be compiled -bins+=01-main -bins+=02-switch -bins+=03-equity -bins+=11-join -bins+=12-join-main -bins+=21-create-many -bins+=22-create-many-recursive -bins+=23-create-many-once -bins+=31-switch-many -bins+=32-switch-many-join -bins+=33-switch-many-cascade -#bins+=51-fibonacci -bins+=61-mutex -bins+=62-mutex -bins+=63-mutex-equity -bins+=64-mutex-join -bins+=71-preemption -bins+=81-deadlock +bins+=$(wildcard ${tst_dir}/*.c) +all_bins=01-main 02-switch 03-equity 11-join 12-join-main 21-create-many 22-create-many-recursive 23-create-many-once 31-switch-many 32-switch-many-join 33-switch-many-cascade 51-fibonacci 61-mutex 62-mutex 63-mutex-equity 64-mutex-join 71-preemption 81-deadlock -bins_target=$(addprefix ${build_dir}/,${bins}) -install_bins_targets=$(addprefix ${install_dir}/bin/,${bins}) -install_bins_targets+=${install_dir}/bin/51-fibonacci +bins_target=$(patsubst %.c,${build_dir}/%,${bins}) +install_bins_targets=$(patsubst %.c,${install_dir}/bin/%,${bins}) -valgrind_targets=$(addprefix valgrind_,${bins}) +valgrind_targets=$(addprefix valgrind_,${all_bins}) check_argv?=20 255 -check_targets=$(addprefix check_,${bins}) +check_targets=$(addprefix check_,${all_bins}) src_dirs=$(sort $(dir $(wildcard ${src_dir}/**/))) includes=$(patsubst %,-I%,${src_dirs}) @@ -87,7 +70,7 @@ graphs: valgrind: ${valgrind_targets} .PHONY: ${valgrind_targets} -${valgrind_targets}: valgrind_%: ${build_dir}/% +${valgrind_targets}: valgrind_%: ${build_dir}/${tst_dir}/% valgrind $^ ${check_argv} --leak-check=full --show-reachable=yes --track-origins=yes .PHONY: build @@ -106,14 +89,14 @@ pthreads: check: ${check_targets} .PHONY: ${check_targets} -${check_targets}: check_%: ${build_dir}/% +${check_targets}: check_%: ${build_dir}/${tst_dir}/% $^ ${check_argv} -${build_dir}/51-fibonacci: ${build_dir}/src/thread/thread_fibo.o ${build_dir}/${tst_dir}/51-fibonacci.o +${bins_target}: ${build_dir}/%: ${objs} ${build_dir}/%.o ${CC} -o $@ $^ ${CFLAGS} ./lib/libmimalloc ${LDFLAGS} -${bins_target}: ${build_dir}/%: ${objs} ${build_dir}/${tst_dir}/%.o - ${CC} -o $@ $^ ${CFLAGS} ./lib/libmimalloc ${LDFLAGS} +${build_dir}/51-fibonacci: ${build_dir}/src/thread/thread_fibo.o ${build_dir}/${tst_dir}/51-fibonacci.o + ${CC} -o $@ $^ ${CFLAGS} ./lib/libmimalloc ${LDFLAGS} ${build_dir}/libthread.so: ${objs} ${CC} -o $@ -shared $^ ${CFLAGS} ${LDFLAGS}