feat: use wildcard to make makefile hacking easier

This commit is contained in:
Nemo D'ACREMONT 2025-04-04 22:44:02 +02:00
parent f2a00ae698
commit 5352d16c8f
No known key found for this signature in database
GPG Key ID: 85F245EC3BB1E022

View File

@ -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,13 +89,13 @@ 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
${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}