Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 11 additions & 29 deletions .depend
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
bin/ocamlbuild.cmo : \
plugin-lib/ocamlbuild_unix_plugin.cmi \
bin/ocamlbuild.cmi
bin/ocamlbuild.cmx : \
plugin-lib/ocamlbuild_unix_plugin.cmx \
bin/ocamlbuild.cmi
bin/ocamlbuild.cmi :
bin/ocamlbuildlight.cmo : \
bin/ocamlbuildlight.cmi
bin/ocamlbuildlight.cmx : \
bin/ocamlbuildlight.cmi
bin/ocamlbuildlight.cmi :
bin/ppcache.cmo : \
src/shell.cmi \
src/pathname.cmi \
Expand All @@ -25,29 +18,13 @@ bin/ppcache.cmx : \
src/command.cmx \
bin/ppcache.cmi
bin/ppcache.cmi :
plugin-lib/ocamlbuild_executor.cmo : \
plugin-lib/ocamlbuild_executor.cmi
plugin-lib/ocamlbuild_executor.cmx : \
plugin-lib/ocamlbuild_executor.cmi
plugin-lib/ocamlbuild_executor.cmi :
plugin-lib/ocamlbuild_plugin.cmo : \
plugin-lib/ocamlbuild_plugin.cmi
plugin-lib/ocamlbuild_plugin.cmx : \
plugin-lib/ocamlbuild_plugin.cmi
plugin-lib/ocamlbuild_plugin.cmi :
plugin-lib/ocamlbuild_unix_plugin.cmo : \
plugin-lib/ocamlbuild_executor.cmi \
src/my_unix.cmi \
src/my_std.cmi \
src/exit_codes.cmi \
plugin-lib/ocamlbuild_unix_plugin.cmi
plugin-lib/ocamlbuild_unix_plugin.cmx : \
plugin-lib/ocamlbuild_executor.cmx \
src/my_unix.cmx \
src/my_std.cmx \
src/exit_codes.cmx \
plugin-lib/ocamlbuild_unix_plugin.cmi
plugin-lib/ocamlbuild_unix_plugin.cmi :
plugin-lib/ocamlbuild_unix_plugin.cmo :
plugin-lib/ocamlbuild_unix_plugin.cmx :
src/bool.cmo : \
src/bool.cmi
src/bool.cmx : \
Expand Down Expand Up @@ -349,10 +326,14 @@ src/my_std.cmx : \
src/my_std.cmi : \
src/signatures.cmi
src/my_unix.cmo : \
src/ocamlbuild_executor.cmi \
src/my_std.cmi \
src/exit_codes.cmi \
src/my_unix.cmi
src/my_unix.cmx : \
src/ocamlbuild_executor.cmx \
src/my_std.cmx \
src/exit_codes.cmx \
src/my_unix.cmi
src/my_unix.cmi :
src/ocaml_arch.cmo : \
Expand Down Expand Up @@ -515,6 +496,11 @@ src/ocaml_utils.cmi : \
src/command.cmi
src/ocamlbuild_config.cmo :
src/ocamlbuild_config.cmx :
src/ocamlbuild_executor.cmo : \
src/ocamlbuild_executor.cmi
src/ocamlbuild_executor.cmx : \
src/ocamlbuild_executor.cmi
src/ocamlbuild_executor.cmi :
src/ocamlbuild_where.cmo : \
src/ocamlbuild_config.cmo \
src/ocamlbuild_where.cmi
Expand Down Expand Up @@ -590,7 +576,6 @@ src/plugin.cmo : \
src/param_tags.cmi \
src/options.cmi \
src/ocamlbuild_where.cmi \
src/my_unix.cmi \
src/my_std.cmi \
src/log.cmi \
src/exit_codes.cmi \
Expand All @@ -606,7 +591,6 @@ src/plugin.cmx : \
src/param_tags.cmx \
src/options.cmx \
src/ocamlbuild_where.cmx \
src/my_unix.cmx \
src/my_std.cmx \
src/log.cmx \
src/exit_codes.cmx \
Expand Down Expand Up @@ -635,7 +619,6 @@ src/resource.cmo : \
src/shell.cmi \
src/pathname.cmi \
src/options.cmi \
src/my_unix.cmi \
src/my_std.cmi \
src/log.cmi \
src/lexers.cmi \
Expand All @@ -650,7 +633,6 @@ src/resource.cmx : \
src/shell.cmx \
src/pathname.cmx \
src/options.cmx \
src/my_unix.cmx \
src/my_std.cmx \
src/log.cmx \
src/lexers.cmx \
Expand Down
14 changes: 4 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ PACK_CMO= $(addprefix src/,\
loc.cmo \
discard_printf.cmo \
signatures.cmi \
exit_codes.cmo \
my_std.cmo \
ocamlbuild_executor.cmo \
my_unix.cmo \
tags.cmo \
display.cmo \
Expand Down Expand Up @@ -73,15 +75,13 @@ PACK_CMO= $(addprefix src/,\
ocaml_compiler.cmo \
ocaml_tools.cmo \
ocaml_specific.cmo \
exit_codes.cmo \
plugin.cmo \
hooks.cmo \
main.cmo \
)

EXTRA_CMO=$(addprefix plugin-lib/,\
ocamlbuild_plugin.cmo \
ocamlbuild_executor.cmo \
ocamlbuild_unix_plugin.cmo \
)

Expand Down Expand Up @@ -117,7 +117,7 @@ all: byte man
endif

byte: ocamlbuild.byte plugin-lib/ocamlbuildlib.cma
# ocamlbuildlight.byte ocamlbuildlightlib.cma

native: ocamlbuild.native plugin-lib/ocamlbuildlib.cmxa

allopt: all # compatibility alias
Expand All @@ -129,9 +129,6 @@ distclean:: clean
ocamlbuild.byte: src/ocamlbuild_pack.cmo $(EXTRA_CMO) bin/ocamlbuild.cmo
$(OCAMLC) $(LINKFLAGS) -o $@ -I +unix unix.cma $^

ocamlbuildlight.byte: src/ocamlbuild_pack.cmo bin/ocamlbuildlight.cmo
$(OCAMLC) $(LINKFLAGS) -o $@ $^

ocamlbuild.native: src/ocamlbuild_pack.cmx $(EXTRA_CMX) bin/ocamlbuild.cmx
$(OCAMLOPT) $(LINKFLAGS) -o $@ -I +unix unix.cmxa $^

Expand All @@ -140,9 +137,6 @@ ocamlbuild.native: src/ocamlbuild_pack.cmx $(EXTRA_CMX) bin/ocamlbuild.cmx
plugin-lib/ocamlbuildlib.cma: src/ocamlbuild_pack.cmo $(EXTRA_CMO)
$(OCAMLC) -a -o $@ $^

bin/ocamlbuildlightlib.cma: src/ocamlbuild_pack.cmo bin/ocamlbuildlight.cmo
$(OCAMLC) -a -o $@ $^

plugin-lib/ocamlbuildlib.cmxa: src/ocamlbuild_pack.cmx $(EXTRA_CMX)
$(OCAMLOPT) -a -o $@ $^

Expand Down Expand Up @@ -213,7 +207,7 @@ distclean::
rm -f man/ocamlbuild.1

man/options_man.byte: src/ocamlbuild_pack.cmo
$(OCAMLC) $^ -I src man/options_man.ml -o man/options_man.byte
$(OCAMLC) -I +unix unix.cma $^ -I src man/options_man.ml -o man/options_man.byte

clean::
rm -f man/options_man.cm*
Expand Down
1 change: 0 additions & 1 deletion bin/ocamlbuild.ml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,4 @@


(* Original author: Nicolas Pouillard *)
Ocamlbuild_unix_plugin.setup ();
Ocamlbuild_pack.Main.main ()
16 changes: 0 additions & 16 deletions bin/ocamlbuildlight.ml

This file was deleted.

16 changes: 0 additions & 16 deletions bin/ocamlbuildlight.mli

This file was deleted.

6 changes: 2 additions & 4 deletions bootstrap/_tags
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@ true: debug
"src": include
"bin": include
"plugin-lib": include
<**/*.ml> or <**/*.mli>: warn_L, warn_R, warn_Z, annot
<**/*.ml> or <**/*.mli>: warn_L, warn_R, warn_Z, annot, use_unix
"src/discard_printf.ml": rectypes
"ocamlbuildlib.cma" or "ocamlbuildlightlib.cma": linkall
"ocamlbuildlib.cma": linkall
<**/*.byte> or <**/*.native> or <**/*.top>: use_unix
<plugin-lib/*.ml>: use_unix
"ocamlbuildlight.byte": -use_unix, nopervasives
<src/*.cmx>: for-pack(Ocamlbuild_pack)

# we have several build stages using different build directories,
Expand Down
2 changes: 0 additions & 2 deletions bootstrap/bootstrap.itarget
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
ocamlbuild_pack.cmo
ocamlbuild_pack.cmx
ocamlbuildlightlib.cma
ocamlbuildlib.cma
ocamlbuild.top
ocamlbuild.docdir/index.html
bin/ocamlbuildlight.byte
bin/ocamlbuild.byte
bin/ocamlbuild.native
1 change: 0 additions & 1 deletion bootstrap/ocamlbuild.mltop
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
Ocamlbuild_pack
Ocamlbuild_plugin
Ocamlbuild_unix_plugin
Ocamlbuild_executor
3 changes: 2 additions & 1 deletion bootstrap/ocamlbuild_pack.mlpack
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ Const
Loc
Log
My_unix
Ocamlbuild_executor
My_std
Exit_codes
Signatures
Shell
Display
Expand Down Expand Up @@ -37,7 +39,6 @@ Ocaml_utils
Ocaml_tools
Ocaml_compiler
Ocaml_dependencies
Exit_codes
Digest_cache
Findlib
Param_tags
4 changes: 1 addition & 3 deletions bootstrap/ocamlbuildlib.mllib
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
Ocamlbuild_pack
Ocamlbuild_plugin
Ocamlbuild_unix_plugin
Ocamlbuild_executor
Ocamlbuild_plugin
2 changes: 0 additions & 2 deletions bootstrap/ocamlbuildlightlib.mllib

This file was deleted.

91 changes: 2 additions & 89 deletions plugin-lib/ocamlbuild_unix_plugin.ml
Original file line number Diff line number Diff line change
Expand Up @@ -12,93 +12,6 @@
(***********************************************************************)


(* Original author: Nicolas Pouillard *)
open Format
open Ocamlbuild_pack
open My_unix
(* This is kept here for compatibility reason. *)

let report_error f =
function
| Unix.Unix_error(err, fun_name, arg) ->
fprintf f "%s: %S failed" Sys.argv.(0) fun_name;
if String.length arg > 0 then
fprintf f " on %S" arg;
fprintf f ": %s" (Unix.error_message err)
| exn -> raise exn

let mkstat unix_stat x =
let st =
try unix_stat x
with Unix.Unix_error _ as e -> raise (Sys_error (My_std.sbprintf "%a" report_error e))
in
{ stat_key = sprintf "(%d,%d)" st.Unix.st_dev st.Unix.st_ino;
stat_file_kind =
match st.Unix.st_kind with
| Unix.S_LNK -> FK_link
| Unix.S_DIR -> FK_dir
| Unix.S_CHR | Unix.S_BLK | Unix.S_FIFO | Unix.S_SOCK -> FK_other
| Unix.S_REG -> FK_file }

let is_link s = (Unix.lstat s).Unix.st_kind = Unix.S_LNK

let at_exit_once callback =
let pid = Unix.getpid () in
at_exit begin fun () ->
if pid = Unix.getpid () then callback ()
end

let run_and_open s kont =
let s =
(* Be consistent! My_unix.run_and_open uses My_std.sys_command and
sys_command uses bash. *)
if Sys.win32 then
"bash --norc -c " ^ Filename.quote s
else
s
in
let ic = Unix.open_process_in s in
let close () =
match Unix.close_process_in ic with
| Unix.WEXITED 0 -> ()
| Unix.WEXITED _ | Unix.WSIGNALED _ | Unix.WSTOPPED _ ->
failwith (Printf.sprintf "Error while running: %s" s) in
let res = try
kont ic
with e -> (close (); raise e)
in close (); res

let stdout_isatty () =
Unix.isatty Unix.stdout &&
try Unix.getenv "TERM" <> "dumb" with Not_found -> true

let execute_many =
let exit i = raise (My_std.Exit_with_code i) in
let exit = function
| Ocamlbuild_executor.Subcommand_failed -> exit Exit_codes.rc_executor_subcommand_failed
| Ocamlbuild_executor.Subcommand_got_signal -> exit Exit_codes.rc_executor_subcommand_got_signal
| Ocamlbuild_executor.Io_error -> exit Exit_codes.rc_executor_io_error
| Ocamlbuild_executor.Exceptionl_condition -> exit Exit_codes.rc_executor_excetptional_condition
in
Ocamlbuild_executor.execute ~exit

(* Ocamlbuild code assumes throughout that [readlink] will return a file name
relative to the current directory. Let's make it so. *)
let myunixreadlink x =
let y = Unix.readlink x in
if Filename.is_relative y then
Filename.concat (Filename.dirname x) y
else
y

let setup () =
implem.is_degraded <- false;
implem.stdout_isatty <- stdout_isatty;
implem.gettimeofday <- Unix.gettimeofday;
implem.report_error <- report_error;
implem.execute_many <- execute_many;
implem.readlink <- myunixreadlink;
implem.run_and_open <- run_and_open;
implem.at_exit_once <- at_exit_once;
implem.is_link <- is_link;
implem.stat <- mkstat Unix.stat;
implem.lstat <- mkstat Unix.lstat;;
let setup () = ()
16 changes: 0 additions & 16 deletions plugin-lib/ocamlbuild_unix_plugin.mli

This file was deleted.

3 changes: 1 addition & 2 deletions src/command.ml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,6 @@ let flatten_commands quiet pretend cmd =

let execute_many ?(quiet=false) ?(pretend=false) cmds =
add_parallel_stat (List.length cmds);
let degraded = !*My_unix.is_degraded || Sys.win32 in
let jobs = !jobs in
if jobs < 0 then invalid_arg "jobs < 0";
let max_jobs = if jobs = 0 then None else Some jobs in
Expand All @@ -281,7 +280,7 @@ let execute_many ?(quiet=false) ?(pretend=false) cmds =
else
begin
reset_filesys_cache ();
if degraded then
if Sys.win32 then
let res, opt_exn =
List.fold_left begin fun (acc_res, acc_exn) cmds ->
match acc_exn with
Expand Down
Loading