cc = clang cflags = -Wunused-function -Wunused-variable -Wconversion -Wformat -I include -I lib/liballoc/include -I lib/libdvec/include rule liba $cc -o $out.tmp.o $in $cflags -r objcopy --keep-global-symbols=libstrvec.api $out.tmp.o $out.fixed.o ar rcs $out $out.fixed.o rm $out.tmp.o $out.fixed.o rule libso $cc -o $out $in $cflags -shared -Wl,-version-script libstrvec.lds rule cc $cc -o $out $in $cflags rule mkdir mkdir $out target build mkdir target lib/liballoc/build/liballoc.a just lib/liballoc target build/libstrvec.a liba src/strvec.c lib/liballoc/build/liballoc.a | build target build/libstrvec.so libso src/strvec.c | build target build/test cc src/test.c build/libstrvec.a $liballoc | build command clean rm -rf build command cleanall just clean just -C lib/libdvec cleanall just -C lib/liballoc cleanall command all just build/libstrvec.a build/libstrvec.so build/test