# vim: noexpandtab tabstop=4 : buildtype ?= release buildtype_options = buildtypes/${buildtype}.txt prefix = bin/${buildtype}-buildtype objs = $(patsubst %.cpp,${prefix}/%.o,$(srcs)) default: ${prefix}/sat-solver srclist.mk: find -name '*.cpp' -! -path '*/junk/*' | sed 's/^/srcs += /' | sort -V > $@ include srclist.mk .PRECIOUS: %/ %/: @mkdir -p $@ ${prefix}/sat-solver: ${buildtype_options} ${objs} | ${prefix}/ @echo "${buildtype}: linking ${@} ..." @gcc @${buildtype_options} ${objs} -o $@ -lstdc++ -static-libasan ${prefix}/%.o ${prefix}/%.d: %.cpp ${buildtype_options} | ${prefix}/%/ @echo "${buildtype}: compiling ${*}.cpp ..." @gcc -c @${buildtype_options} $< -MD -MF ${prefix}/${*}.d -o ${prefix}/${*}.o args += -d args += -v args += -V #args += -i ./inputs/0.txt #args += -i ./inputs/1.txt #args += -i ./inputs/2.txt #args += -i ./inputs/3.txt #args += -i ./inputs/all.txt #args += -i ./inputs/none.txt args += -i ./satlib/uf20-91/uf20-01.cnf run: ${prefix}/sat-solver ${env} $< ${args} time-run: ${prefix}/sat-solver bash -c "time ${env} $< ${args}" gdbrun: ${prefix}/sat-solver gdb --args $< ${args} valrun: ${prefix}/sat-solver valgrind --gen-suppressions=yes -- $< ${args} valrun-leak: ${prefix}/sat-solver valgrind --leak-check=full --gen-suppressions=yes -- $< ${args} test: ${prefix}/sat-solver ./test.py ${<} ${targs} include $(patsubst %.cpp,${prefix}/%.d,$(srcs))