[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] oasis patch that adds an .nobj.o target
This patch against darcs-oasis is sufficient to add a "native output obj" target that outputs a standalone object file. Just one more little rule required to do the Xen objcopy/link, but this will also be useful for kFreeBSD too. This one is mainly for Dave as he's working on ocaml-xenstore atm. I'll submit an upstreamable patch shortly and have a Xen plugin to OASIS that will make all our build pains waft away into a gentle summer breeze. -anil avsm@debian:~/src/darcs/oasis$ darcs diff diff -rN -u old-oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml new-oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml --- old-oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml 2012-08-24 18:45:09.249486856 +0100 +++ new-oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml 2012-08-24 18:45:09.301486856 +0100 @@ -165,6 +165,15 @@ ) t.lib_c; + (* Add output_obj rules mapped to .nobj.o *) + let native_output_obj x = + OC.link_gen "cmx" "cmxa" !Options.ext_lib [!Options.ext_obj; "cmi"] + OC.ocamlopt_link_prog + (fun tags -> tags++"ocaml"++"link"++"byte"++"output_obj") x + in + rule "ocaml: cmx* and o* -> .nobj.o" ~prod:"%.nobj.o" ~deps:["%.cmx"; "%.o"] + (native_output_obj "%.cmx" "%.nobj.o"); + (* Add flags *) List.iter (fun (tags, cond_specs) -> diff -rN -u old-oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml new-oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml --- old-oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml 2012-08-24 18:45:09.249486856 +0100 +++ new-oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml 2012-08-24 18:45:09.301486856 +0100 @@ -86,6 +86,7 @@ (* When one link an OCaml library/binary/package, one should use -linkpkg *) flag ["ocaml"; "link"; "program"] & A"-linkpkg"; + flag ["ocaml"; "link"; "output_obj"] & A"-linkpkg"; (* For each ocamlfind package one inject the -package option when * compiling, computing dependencies, generating documentation and diff -rN -u old-oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml new-oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml --- old-oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml 2012-08-24 18:45:09.249486856 +0100 +++ new-oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml 2012-08-24 18:45:09.301486856 +0100 @@ -158,9 +158,9 @@ let acc = match bs.bs_compiled_object with | Native -> - (target ".native") :: acc + (target ".native") :: (target ".nobj.o") :: acc | Best when bool_of_string (is_native ()) -> - (target ".native") :: acc + (target ".native") :: (target ".nobj.o") :: acc | Byte | Best -> (target ".byte") :: acc @@ -928,11 +928,11 @@ let ext = match bs.bs_compiled_object with | Best -> - "{native,byte}" + "{native,byte,nobj.o}" | Byte -> "byte" | Native -> - "native" + "native,nobj.o" in prepend_bs_path bs (OASISUnixPath.replace_extension
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |