summaryrefslogtreecommitdiff
path: root/driver/optmain.ml
diff options
context:
space:
mode:
authorJun FURUSE / 古瀬 淳 <jun.furuse@gmail.com>2004-06-18 05:04:14 +0000
committerJun FURUSE / 古瀬 淳 <jun.furuse@gmail.com>2004-06-18 05:04:14 +0000
commit5e1bf20850aaa9b1ceb86a971848609ee9e84c47 (patch)
treef3a6e5b5c38263fe527e6275ff95425f12637226 /driver/optmain.ml
parent8ec769214e067da9ee8b33d05f4ef275e9269dd5 (diff)
downloadocaml-gcaml.tar.gz
port to the latest ocaml (2004/06/18)gcaml
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gcaml@6419 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'driver/optmain.ml')
-rw-r--r--driver/optmain.ml30
1 files changed, 22 insertions, 8 deletions
diff --git a/driver/optmain.ml b/driver/optmain.ml
index 2afb45fa6d..9ff920603c 100644
--- a/driver/optmain.ml
+++ b/driver/optmain.ml
@@ -15,31 +15,45 @@
open Config
open Clflags
+let output_prefix name =
+ let oname =
+ match !output_name with
+ | None -> name
+ | Some n -> if !compile_only then (output_name := None; n) else name in
+ Misc.chop_extension_if_any oname
+
let process_interface_file ppf name =
- Optcompile.interface ppf name
+ Optcompile.interface ppf name (output_prefix name)
let process_implementation_file ppf name =
- Optcompile.implementation ppf name;
- objfiles := (Misc.chop_extension_if_any name ^ ".cmx") :: !objfiles
+ let opref = output_prefix name in
+ Optcompile.implementation ppf name opref;
+ objfiles := (opref ^ ".cmx") :: !objfiles
let process_file ppf name =
if Filename.check_suffix name ".ml"
|| Filename.check_suffix name ".mlt" then begin
- Optcompile.implementation ppf name;
- objfiles := (Misc.chop_extension_if_any name ^ ".cmx") :: !objfiles
+ let opref = output_prefix name in
+ Optcompile.implementation ppf name opref;
+ objfiles := (opref ^ ".cmx") :: !objfiles
+ end
+ else if Filename.check_suffix name !Config.interface_suffix then begin
+ let opref = output_prefix name in
+ Optcompile.interface ppf name opref;
+ if !make_package then objfiles := (opref ^ ".cmi") :: !objfiles
end
- else if Filename.check_suffix name !Config.interface_suffix then
- Optcompile.interface ppf name
else if Filename.check_suffix name ".cmx"
|| Filename.check_suffix name ".cmxa" then
objfiles := name :: !objfiles
+ else if Filename.check_suffix name ".cmi" && !make_package then
+ objfiles := name :: !objfiles
else if Filename.check_suffix name ext_obj
|| Filename.check_suffix name ext_lib then
ccobjs := name :: !ccobjs
else if Filename.check_suffix name ".c" then begin
Optcompile.c_file name;
ccobjs := (Filename.chop_suffix (Filename.basename name) ".c" ^ ext_obj)
- :: !ccobjs
+ :: !ccobjs
end
else
raise(Arg.Bad("don't know what to do with " ^ name))