Initial
[dormin.git] / build.ml
blob22d6917575c875adfdcb18478f43c1fbfd2b5bfa
1 let start = Unix.gettimeofday ();;
2 open List;;
3 open Typs;;
4 open Utils;;
5 open State;;
6 open Helpers;;
8 let jobs, targets, dodeplist, dotarlist = getopt ();;
10 let srcdir =
11 match getval "src" with
12 | None -> failwith "no source dir"
13 | Some s -> s
16 let boc flags src =
17 let o = src ^ ".o" in
18 let c = src ^ ".c" in
19 ocaml
20 "ocamlc.opt"
21 ("-ccopt '-Wall -Wno-unused -g " ^ flags ^ " -o " ^ o ^ "'")
23 (StrSet.singleton o)
24 [Filename.concat srcdir c]
26 if src = "skin"
27 then StrSet.singleton (Filename.concat srcdir "vec.c")
28 else StrSet.empty
33 let bso src =
34 let so = src ^ ".so" in
35 let so = Filename.concat (Sys.getcwd ()) so in
36 let o = src ^ ".o" in
37 ocaml
38 "gcc"
39 ("-shared -o " ^ so)
41 (StrSet.singleton so)
42 [o]
43 StrSet.empty
48 let _ =
49 List.iter (fun src ->
50 cmopp ~flags:"-g -I +lablGL -thread" ~dirname:srcdir src)
51 ["xff"; "nto"; "nmo"; "slice"; "rend"; "vec"; "skb"; "qtr"; "anb"; "skin"]
53 boc "-g -O" "swizzle";
54 boc "-g -O" "skin";
55 let so = bso "swizzle" in
56 let so1 = bso "skin" in
57 let prog name cmos =
58 ocaml
59 "ocamlc.opt"
60 ("-g -I +lablGL lablgl.cma lablglut.cma unix.cma")
61 name
62 (StrSet.singleton name)
63 (State.dep_sort cmos)
64 StrSet.empty
66 prog "dormin" ["slice.cmo"; "xff.cmo"; "nto.cmo"; "rend.cmo";
67 "vec.cmo"; "anb.cmo"; "skb.cmo"; "skin.cmo";
68 "nmo.cmo"; "qtr.cmo";
69 so; so1];
73 let () =
74 Helpers.run start jobs targets dodeplist dotarlist