diff options
Diffstat (limited to 'driver/main.ml')
| -rw-r--r-- | driver/main.ml | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/driver/main.ml b/driver/main.ml deleted file mode 100644 index 7bbbf05666..0000000000 --- a/driver/main.ml +++ /dev/null @@ -1,156 +0,0 @@ -(***********************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the Q Public License version 1.0. *) -(* *) -(***********************************************************************) - -(* $Id$ *) - -open Config -open Clflags - -let process_interface_file ppf name = - Compile.interface ppf name - -let process_implementation_file ppf name = - Compile.implementation ppf name; - objfiles := (Misc.chop_extension_if_any name ^ ".cmo") :: !objfiles - -let process_file ppf name = - if Filename.check_suffix name ".ml" - || Filename.check_suffix name ".mlt" then begin - Compile.implementation ppf name; - objfiles := (Misc.chop_extension_if_any name ^ ".cmo") :: !objfiles - end - else if Filename.check_suffix name !Config.interface_suffix then - Compile.interface ppf name - else if Filename.check_suffix name ".cmo" - || Filename.check_suffix name ".cma" 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 ext_dll then - dllibs := name :: !dllibs - else if Filename.check_suffix name ".c" then begin - Compile.c_file name; - match Sys.os_type with - | "MacOS" -> ccobjs := (name ^ ".o") :: (name ^ ".x") :: !ccobjs - | _ -> - ccobjs := (Filename.chop_suffix (Filename.basename name) ".c" ^ ext_obj) - :: !ccobjs - end - else - raise(Arg.Bad("don't know what to do with " ^ name)) - -let print_version_and_library () = - print_string "The Objective Caml compiler, version "; - print_string Config.version; print_newline(); - print_string "Standard library directory: "; - print_string Config.standard_library; print_newline(); - exit 0 - -let print_version_string () = - print_string Config.version; print_newline(); exit 0 - -let print_standard_library () = - print_string Config.standard_library; print_newline(); exit 0 - -let usage = "Usage: ocamlc <options> <files>\nOptions are:" - -(* Error messages to standard error formatter *) -let anonymous = process_file Format.err_formatter;; -let impl = process_implementation_file Format.err_formatter;; -let intf = process_interface_file Format.err_formatter;; - -module Options = Main_args.Make_options (struct - let set r () = r := true - let unset r () = r := false - let _a = set make_archive - let _c = set compile_only - let _cc s = c_compiler := s; c_linker := s - let _cclib s = ccobjs := Misc.rev_split_words s @ !ccobjs - let _ccopt s = ccopts := s :: !ccopts - let _custom = set custom_runtime - let _dllib s = dllibs := Misc.rev_split_words s @ !dllibs - let _dllpath s = dllpaths := !dllpaths @ [s] - let _dtypes = set save_types - let _g = set debug - let _i () = print_types := true; compile_only := true - let _I s = include_dirs := s :: !include_dirs - let _impl = impl - let _intf = intf - let _intf_suffix s = Config.interface_suffix := s - let _labels = unset classic - let _linkall = set link_everything - let _make_runtime () = - custom_runtime := true; make_runtime := true; link_everything := true - let _noassert = set noassert - let _nolabels = set classic - let _noautolink = set no_auto_link - let _nostdlib = set no_std_include - let _o s = output_name := Some s - let _output_obj () = output_c_object := true; custom_runtime := true - let _pack = set make_package - let _pp s = preprocessor := Some s - let _principal = set principal - let _rectypes = set recursive_types - let _thread = set use_threads - let _vmthread = set use_vmthreads - let _unsafe = set fast - let _use_prims s = use_prims := s - let _use_runtime s = use_runtime := s - let _v = print_version_and_library - let _version = print_version_string - let _w = (Warnings.parse_options false) - let _warn_error = (Warnings.parse_options true) - let _where = print_standard_library - let _verbose = set verbose - let _nopervasives = set nopervasives - let _dparsetree = set dump_parsetree - let _drawlambda = set dump_rawlambda - let _dlambda = set dump_lambda - let _dinstr = set dump_instr - let anonymous = anonymous -end) - -let extract_output = function - | Some s -> s - | None -> - prerr_endline - "Please specify the name of the output file, using option -o"; - exit 2 - -let default_output = function - | Some s -> s - | None -> Config.default_executable_name - -let main () = - try - Arg.parse Options.list anonymous usage; - if !make_archive then begin - Compile.init_path(); - Bytelibrarian.create_archive (List.rev !objfiles) - (extract_output !output_name) - end - else if !make_package then begin - Compile.init_path(); - Bytepackager.package_files (List.rev !objfiles) - (extract_output !output_name) - end - else if not !compile_only && !objfiles <> [] then begin - Compile.init_path(); - Bytelink.link (List.rev !objfiles) (default_output !output_name) - end; - exit 0 - with x -> - Errors.report_error Format.err_formatter x; - exit 2 - -let _ = main () |
