diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1996-11-07 11:04:12 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1996-11-07 11:04:12 +0000 |
commit | ab737837060a6c45917a7cd37f0e7c57eac813f2 (patch) | |
tree | 54eba3f2fd033e804fab5971dd68f58d8fc470e4 | |
parent | 48092f6ea28370be487cbb6d233d4693db4c4d01 (diff) |
Ajout de utils/ccomp
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1175 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | Makefile.Mac | 2 | ||||
-rw-r--r-- | Makefile.Mac.depend | 4 | ||||
-rw-r--r-- | Makefile.nt | 2 | ||||
-rw-r--r-- | utils/ccomp.ml | 40 | ||||
-rw-r--r-- | utils/ccomp.mli | 17 |
5 files changed, 63 insertions, 2 deletions
diff --git a/Makefile.Mac b/Makefile.Mac index d2c723a8a..a5a3725ff 100644 --- a/Makefile.Mac +++ b/Makefile.Mac @@ -16,7 +16,7 @@ INCLUDES = -I :utils: -I :parsing: -I :typing: -I :bytecomp: ¶ -I :driver: -I :toplevel: UTILS = :utils:misc.cmo :utils:tbl.cmo :utils:config.cmo ¶ - :utils:clflags.cmo :utils:terminfo.cmo + :utils:clflags.cmo :utils:terminfo.cmo :utils:ccomp.cmo PARSING = :parsing:location.cmo :parsing:longident.cmo :parsing:pstream.cmo ¶ :parsing:parser.cmo :parsing:lexer.cmo :parsing:parse.cmo diff --git a/Makefile.Mac.depend b/Makefile.Mac.depend index 2583ecbec..69a1dc259 100644 --- a/Makefile.Mac.depend +++ b/Makefile.Mac.depend @@ -1,3 +1,7 @@ +:utils:ccomp.cmoÄ :utils:clflags.cmo :utils:config.cmi :utils:misc.cmi ¶ + :utils:ccomp.cmi +:utils:ccomp.cmxÄ :utils:clflags.cmx :utils:config.cmx :utils:misc.cmx ¶ + :utils:ccomp.cmi :utils:config.cmoÄ :utils:config.cmi :utils:config.cmxÄ :utils:config.cmi :utils:misc.cmoÄ :utils:misc.cmi diff --git a/Makefile.nt b/Makefile.nt index 4de8b6db3..af2ec9c6a 100644 --- a/Makefile.nt +++ b/Makefile.nt @@ -17,7 +17,7 @@ CAMLRUN=byterun\ocamlrun INCLUDES=-I utils -I parsing -I typing -I bytecomp -I asmcomp -I driver -I toplevel UTILS=utils\misc.cmo utils\tbl.cmo utils\config.cmo \ - utils\clflags.cmo utils\terminfo.cmo + utils\clflags.cmo utils\terminfo.cmo utils\ccomp.cmo PARSING=parsing\location.cmo parsing\longident.cmo \ parsing\pstream.cmo parsing\parser.cmo parsing\lexer.cmo parsing\parse.cmo diff --git a/utils/ccomp.ml b/utils/ccomp.ml new file mode 100644 index 000000000..90681670a --- /dev/null +++ b/utils/ccomp.ml @@ -0,0 +1,40 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 1996 Institut National de Recherche en Informatique et *) +(* Automatique. Distributed only by permission. *) +(* *) +(***********************************************************************) + +(* $Id$ *) + +(* Compiling C files and building C libraries *) + +let compile_file name = + Sys.command + (Printf.sprintf + "%s -c %s %s -I%s %s" + Config.bytecomp_c_compiler + (String.concat " " (List.rev !Clflags.ccopts)) + (String.concat " " + (List.map (fun dir -> "-I" ^ dir) + (List.rev !Clflags.include_dirs))) + Config.standard_library + name) + +let create_archive archive file_list = + Misc.remove_file archive; + match Config.system with + "win32" -> + Sys.command(Printf.sprintf "lib /nologo /debugtype:cv /out:%s %s" + archive (String.concat " " file_list)) + | _ -> + let r1 = + Sys.command(Printf.sprintf "ar rc %s %s" + archive (String.concat " " file_list)) in + if r1 <> 0 or String.length Config.ranlib = 0 + then r1 + else Sys.command(Config.ranlib ^ " " ^ archive) diff --git a/utils/ccomp.mli b/utils/ccomp.mli new file mode 100644 index 000000000..c0eb6f6a4 --- /dev/null +++ b/utils/ccomp.mli @@ -0,0 +1,17 @@ +(***********************************************************************) +(* *) +(* Objective Caml *) +(* *) +(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) +(* *) +(* Copyright 1996 Institut National de Recherche en Informatique et *) +(* Automatique. Distributed only by permission. *) +(* *) +(***********************************************************************) + +(* $Id$ *) + +(* Compiling C files and building C libraries *) + +val compile_file: string -> int +val create_archive: string -> string list -> int |