#default PREFIX /usr/local #default INCLDIR /include #default LIBDIR /lib #default CC gcc #ifdef LIBIDX_DEBUG #define DEBUG 1 #endif #ifdef DEBUG #define OPT_CFLAGS -Og -g #else #define OPT_CFLAGS -O2 #endif cflags = -std=c99 -Wunused-variable -Wunused-function -Wconversion -Wformat -I include -I lib/liballoc/include #{OPT_CFLAGS} #{LIBIDX_EXTRA_CFLAGS} #{EXTRA_CFLAGS} rule liba gcc -o $out.tmp.o $in $cflags -r objcopy --keep-global-symbols=libidx.api $out.tmp.o $out.fixed.o ar rcs $out $out.fixed.o rm $out.tmp.o $out.fixed.o rule libso gcc -o $out $in $cflags -shared -Wl,-version-script libidx.lds rule cc gcc -o $out $in $cflags rule mkdir mkdir $out target build mkdir target build/libidx.a liba src/idx.c | include/idx.h build target build/libidx.so liba src/idx.c | include/idx.h build target build/test cc src/test.c build/libidx.a | build command clean rm -rf build command cleanall just clean just -C lib/liballoc cleanall command install install -m755 include/idx.h -t "#{DESTDIR}#{PREFIX}#{INCLDIR}" install -m755 build/libidx.a -t "#{DESTDIR}#{PREFIX}#{LIBDIR}" install -m755 build/libidx.so -t "#{DESTDIR}#{PREFIX}#{LIBDIR}" command uninstall rm -f "#{DESTDIR}#{PREFIX}#{INCLDIR}/idx.h" rm -f "#{DESTDIR}#{PREFIX}#{LIBDIR}/libidx.a" rm -f "#{DESTDIR}#{PREFIX}#{LIBDIR}/libidx.so" command all just build/libidx.a build/libidx.so