aoc-2019-c

Advent of Code 2019 Solutions in C
git clone https://git.sinitax.com/sinitax/aoc-2019-c
Log | Files | Refs | README | sfeed.txt

build.jst.tmpl (1326B)


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