summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1998-12-02 10:58:22 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1998-12-02 10:58:22 +0000
commit16bc49829e54094479cb8c43e92cb63f48f215b8 (patch)
tree9fa20274124cb6fa251dd742322cb86b46d3d489
parente603b870cbb5124157e20b3736f80d4825bbf606 (diff)
Implementation de -cclib -lfoo pour Windows
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2214 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--asmcomp/asmlink.ml14
-rw-r--r--bytecomp/bytelink.ml14
2 files changed, 26 insertions, 2 deletions
diff --git a/asmcomp/asmlink.ml b/asmcomp/asmlink.ml
index c9282866c..fc2389f31 100644
--- a/asmcomp/asmlink.ml
+++ b/asmcomp/asmlink.ml
@@ -176,6 +176,17 @@ let make_startup_file filename info_list =
Emit.end_assembly();
close_out oc
+let expand_libname name =
+ if String.length name < 2 || String.sub name 0 2 <> "-l"
+ then name
+ else begin
+ let libname = String.sub name 2 (String.length name - 2) ^ ext_lib in
+ try
+ find_in_path !load_path libname
+ with Not_found ->
+ libname
+ end
+
let call_linker file_list startup_file =
let libname =
if !Clflags.gprofile
@@ -197,7 +208,8 @@ let call_linker file_list startup_file =
(String.concat " " (List.rev !Clflags.ccopts))
startup_file
(String.concat " " (List.rev file_list))
- (String.concat " " (List.rev !Clflags.ccobjs))
+ (String.concat " "
+ (List.map expand_libname (List.rev !Clflags.ccobjs)))
runtime_lib
Config.c_libraries
else
diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml
index ff9a8e5da..6031dc59d 100644
--- a/bytecomp/bytelink.ml
+++ b/bytecomp/bytelink.ml
@@ -360,6 +360,17 @@ let rec extract suffix l =
| h::t -> extract suffix t
;;
+let expand_libname name =
+ if String.length name < 2 || String.sub name 0 2 <> "-l"
+ then name
+ else begin
+ let libname = String.sub name 2 (String.length name - 2) ^ ext_lib in
+ try
+ find_in_path !load_path libname
+ with Not_found ->
+ libname
+ end
+
let build_custom_runtime prim_name exec_name =
let libname = "libcamlrun" ^ ext_lib in
let runtime_lib =
@@ -390,7 +401,8 @@ let build_custom_runtime prim_name exec_name =
Config.standard_library
(String.concat " " (List.rev !Clflags.ccopts))
prim_name
- (String.concat " " (List.rev !Clflags.ccobjs))
+ (String.concat " "
+ (List.map expand_libname (List.rev !Clflags.ccobjs)))
runtime_lib
Config.c_libraries)
| "MacOS" ->