build.rmk.tmpl (1761B)
1#default PREFIX /usr/local 2#default INCLDIR /include 3#default LIBDIR /lib 4#default CC gcc 5 6#ifdef LIBSTRVEC_DEBUG 7#define DEBUG 1 8#endif 9 10#ifdef DEBUG 11#define OPT_CFLAGS -Og -g 12#else 13#define OPT_CFLAGS -O2 14#endif 15 16cflags = -Wunused-function -Wunused-variable -Wconversion -Wformat 17 -I include -I lib/liballoc/include -I lib/libdvec/include 18 #{OPT_CFLAGS} #{EXTRA_CFLAGS} #{LIBSTRVEC_EXTRA_CFLAGS} 19 20rule liba 21 #{CC} -o $out.tmp.o $in $cflags -r 22 objcopy --keep-global-symbols=libstrvec.api $out.tmp.o $out.fixed.o 23 ar rcs $out $out.fixed.o 24 rm $out.tmp.o $out.fixed.o 25 26rule libso 27 #{CC} -o $out $in $cflags -shared -Wl,-version-script libstrvec.lds 28 29rule cc 30 #{CC} -o $out $in $cflags 31 32rule mkdir 33 mkdir $out 34 35target build 36 mkdir 37 38target lib/liballoc/build/liballoc.a 39 rmk lib/liballoc 40 41target lib/libdvec/build/libdvec.a 42 rmk lib/libdvec 43 44target build/libstrvec.a 45 liba src/strvec.c lib/libdvec/build/libdvec.a 46 lib/liballoc/build/liballoc.a | include/strvec.h libstrvec.api build 47 48target build/libstrvec.so 49 libso src/strvec.c | build 50 51target build/test 52 cc src/test.c build/libstrvec.a lib/liballoc/build/liballoc.a 53 lib/libdvec/build/libdvec.a | include/strvec.h libstrvec.lds build 54 55command clean 56 rm -rf build 57 58command cleanall 59 rmk clean 60 rmk -C lib/libdvec cleanall 61 rmk -C lib/liballoc cleanall 62 63command install 64 install -m755 build/libstrvec.a -t "#{DESTDIR}#{PREFIX}#{LIBDIR}" 65 install -m755 build/libstrvec.so -t "#{DESTDIR}#{PREFIX}#{LIBDIR}" 66 install -m644 include/strvec.h -t "#{DESTDIR}#{PREFIX}#{INCLDIR}" 67 68command uninstall 69 rm -f "#{DESTDIR}#{PREFIX}#{LIBDIR}/libstrvec.a" 70 rm -f "#{DESTDIR}#{PREFIX}#{LIBDIR}/libstrvec.so" 71 rm -f "#{DESTDIR}#{PREFIX}#{INCLDIR}/strvec.h" 72 73command all 74 rmk build/libstrvec.a build/libstrvec.so build/test 75