libstrvec-c

C string vector library
git clone https://git.sinitax.com/sinitax/libstrvec-c
Log | Files | Refs | LICENSE | sfeed.txt

build.jst.tmpl (1767B)


      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	just lib/liballoc
     40
     41target lib/libdvec/build/libdvec.a
     42	just 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	just clean
     60	just -C lib/libdvec cleanall
     61	just -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	just build/libstrvec.a build/libstrvec.so build/test
     75