Cosmetics
[dormin.git] / build.ml
blobb4f14914273f7e4f65538df455ad699c1b1464d1
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 get key msg =
11 match getval key with | None -> failwith msg | Some s -> s
14 let getdef key def =
15 match getval key with | None -> def | Some s -> s
18 let srcdir = get "src" "no source dir";;
19 let cc = getdef "cc" "cc";;
20 let ccopt = getdef "ccopt" "";;
22 let boc flags src =
23 let o = src ^ ".o" in
24 let c = src ^ ".c" in
25 ocaml
26 "ocamlc.opt"
27 ("-cc " ^ cc ^ " -ccopt '" ^ flags ^ " " ^ ccopt ^ " -o " ^ o ^ "'")
29 (StrSet.singleton o)
30 [Filename.concat srcdir c]
32 if src = "skin" || src = "skinvp"
33 then
34 (StrSet.add (Filename.concat srcdir "pgl.h")
35 (StrSet.singleton (Filename.concat srcdir "vec.c")))
36 else StrSet.empty
41 let bso name objs =
42 let so = name ^ ".so" in
43 let so = Filename.concat (Sys.getcwd ()) so in
44 let o = List.map (fun s -> s ^ ".o") objs in
45 ocaml
47 ("-shared -o " ^ so)
49 (StrSet.singleton so)
51 StrSet.empty
56 let _ =
57 List.iter (fun src ->
58 cmopp ~flags:"-g -I +lablGL -thread" ~dirname:srcdir src)
59 ["xff"; "nto"; "nmo"; "slice"; "rend"; "vec"; "skb"; "qtr"; "anb"; "skin"]
61 boc "-g" "swizzle";
62 boc "-g" "skin";
63 boc "-g" "skinvp";
64 let so = bso "swizzle" ["swizzle"] in
65 let so1 = bso "skin" ["skin"; "skinvp"] in
66 let prog name cmos =
67 ocaml
68 "ocamlc.opt"
69 ("-g -I +lablGL lablgl.cma lablglut.cma unix.cma")
70 name
71 (StrSet.singleton name)
72 (State.dep_sort cmos)
73 StrSet.empty
75 prog "dormin" ["slice.cmo"; "xff.cmo"; "nto.cmo"; "skin.cmo"; "rend.cmo";
76 "vec.cmo"; "anb.cmo"; "skb.cmo"; "nmo.cmo"; "qtr.cmo";
77 so; so1];
81 let () =
82 Helpers.run start jobs targets dodeplist dotarlist