Simplify
[llpp.git] / build.ninja
blob3c8958a8aba297cb4d2ac972c7f40d354796e6ef
1 cc = gcc
2 include .config
3 ocamlc = ocamlc.opt
4 ocamlflags = -warn-error +a -w +a -g -safe-string
5 libs = -lmupdf $mujs -lpthread -L$mupdf/build/$buildtype
7 cflags = $cflags -Wall -Werror -I$mupdf/include -I$freetype -g $
8        -std=c99 -pedantic-errors -Wunused-parameter -Wsign-compare -Wshadow
10 rule cc
11      deps = gcc
12      depfile = $out.d
13      command = $ocamlc -cc "$cc" -ccopt "$cflags -MMD -MF $out.d -o $out" -c $in
14      description = cc $out
16 rule ocamlc
17      deps = gcc
18      depfile = $out.d
19      command = env incs="$incs" pp="$pp" /bin/sh $srcdir/doocaml.sh $
20              $ocamlc $out $in -c $ocamlflags
21      description = ocamlc $out
23 rule genhelp
24      command = sh $srcdir/mkhelp.sh $srcdir/keystoml.ml $srcdir/KEYS >$out
25      description = genhelp
27 build $builddir/help.ml: genhelp $
28       $srcdir/mkhelp.sh $srcdir/keystoml.ml $srcdir/KEYS
29 build $builddir/link.o: cc $srcdir/link.c
30       cflags = $cflags -D_GNU_SOURCE -DOBSCURED_OPT -DFFP
31 build $builddir/help.cmo: ocamlc $builddir/help.ml
32 build $builddir/utils.cmo: ocamlc $srcdir/utils.ml
33 build $builddir/bo.cmo: ocamlc $srcdir/le/bo.ml
34 build $builddir/wsi.cmi: ocamlc $srcdir/wsi.mli
35 build $builddir/wsi.cmo: ocamlc $srcdir/wsi.ml $
36       | $builddir/bo.cmo $builddir/utils.cmo $builddir/wsi.cmi
37 build $builddir/parser.cmo: ocamlc $srcdir/parser.ml
38 build $builddir/config.cmo: ocamlc $srcdir/config.ml $
39       | $builddir/wsi.cmi $builddir/utils.cmo $builddir/parser.cmo
40       incs = -I +lablGL
41 build $builddir/main.cmo: ocamlc $srcdir/main.ml $
42       | $builddir/wsi.cmi $builddir/utils.cmo $builddir/config.cmo $
43         $builddir/help.cmo $srcdir/doocaml.sh
44         incs = -I +lablGL
45         pp = sed -f $srcdir/pp.sed
47 rule linkso
48      command = $cc -o $out -shared $in $libs $lflags
49      description = linkso $out
51 build $builddir/link.so: linkso $builddir/link.o
53 rule link
54      command = $ocamlc -g -o $out -I +lablGL $
55              str.cma unix.cma lablgl.cma $in $
56              $ocamllflags
57      description = link $out
59 build $builddir/llpp.custom: link $
60      $builddir/help.cmo $
61      $builddir/utils.cmo $
62      $builddir/parser.cmo $
63      $builddir/bo.cmo $
64      $builddir/wsi.cmo $
65      $builddir/config.cmo $
66      $builddir/main.cmo $
67      $builddir/link.o
68      ocamllflags = -custom -cclib "$libs -lX11 $lflags"
70 build $builddir/llpp: link $
71      $builddir/help.cmo $
72      $builddir/utils.cmo $
73      $builddir/parser.cmo $
74      $builddir/bo.cmo $
75      $builddir/wsi.cmo $
76      $builddir/config.cmo $
77      $builddir/main.cmo $
78      $builddir/link.so
79      ocamllflags = $builddir/link.so
81 default $builddir/llpp