changequote([,]) cflags = ifdef([PROD], [], [-std=c99 -Wall -Wextra -g -D_DEFAULT_SOURCE]) bin = bin m4flags = rule cc command = gcc -MD -MF $out.d $cflags -c $in -o $out depfile = $out.d rule ar command = ar rcs $out $in build $bin/msgpack.o: cc msgpack.c build $bin/msgpack.a: ar $bin/msgpack.o build $bin/msgpack.so: cc msgpack.c cflags = $cflags -fPIC -shared rule elf command = gcc $cflags $in -o $out rule run command = valgrind -s --leak-check=full --show-leak-kinds=all $in build $bin/test.o: cc test.c build $bin/test: elf $bin/msgpack.o $bin/test.o build static: phony $bin/msgpack.a build shared: phony $bin/msgpack.so build header: phony # TODO write it build test: run $bin/test ifdef([PROD], [default test], [default header]) rule gen command = m4 $m4flags ninja.m4 > build.ninja generator = 1 build build.ninja: gen | ninja.m4 ifdef([PROD], [dnl build dev: gen ], [dnl build prod: gen m4flags = -D [PROD] ])