annotate src/ocaml-native-1-fixes.patch @ 5893:53a6c7df43f8

Mesa 3D: Update to version 21.1.8. * src/mesa.mk: Update version and checksum. * src/mesa-2-uninitialized.patch: Remove file. * dist-files.mk: Remove file from list.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 16 Sep 2021 22:37:45 +0200
parents fe0a6e45513f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2834
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
1 This file is part of MXE.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
2 See index.html for further information.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
3
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
4 Contains ad hoc patches for cross building.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
6 From 71a88993df13ccaaab5957ad2a0aef3adf1d49ff Mon Sep 17 00:00:00 2001
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
7 From: MXE
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
8 Date: Wed, 3 Oct 2012 09:25:11 +0200
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
9 Subject: [PATCH 1/5] findlib.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
10
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
11
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
12 diff --git a/ocamlbuild/findlib.ml b/ocamlbuild/findlib.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
13 index b5ef878..77454ed 100644
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
14 --- a/ocamlbuild/findlib.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
15 +++ b/ocamlbuild/findlib.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
16 @@ -44,7 +44,7 @@ let report_error e =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
17 prerr_endline (string_of_error e);
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
18 exit 2
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
19
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
20 -let ocamlfind = "ocamlfind"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
21 +let ocamlfind = "@target@-ocamlfind"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
22
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
23 type package = {
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
24 name: string;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
25 --
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
26 1.7.2.5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
27
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
28
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
29 From a1a25210b44d5c7064d5c7a7002676a114b5f539 Mon Sep 17 00:00:00 2001
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
30 From: MXE
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
31 Date: Wed, 3 Oct 2012 09:26:40 +0200
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
32 Subject: [PATCH 2/5] main.ml : warnings on use of option -use-ocamlfind
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
33
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
34
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
35 diff --git a/ocamlbuild/main.ml b/ocamlbuild/main.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
36 index 3b9bd89..7045867 100644
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
37 --- a/ocamlbuild/main.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
38 +++ b/ocamlbuild/main.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
39 @@ -152,6 +152,14 @@ let proceed () =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
40 Ocaml_specific.init ();
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
41 Hooks.call_hook Hooks.After_rules;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
42
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
43 + if not !Options.use_ocamlfind then begin
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
44 + if !Param_tags.ocamlfind_tags_used <> StringSet.empty then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
45 + Log.eprintf "Warning: Tag(s) '%s' can only work with option -use-ocamlfind"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
46 + (String.concat "," (StringSet.elements !Param_tags.ocamlfind_tags_used));
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
47 + if !Options.ocaml_pkgs <> [] then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
48 + Log.eprintf "Warning: Options -pkg and -pkgs only work with -use-ocamlfind"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
49 + end;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
50 +
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
51 Param_tags.init ();
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
52
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
53 Sys.chdir newpwd;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
54 --
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
55 1.7.2.5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
56
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
57
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
58 From aa7642e19ec9a81bcdda382d4682ab20df0013ba Mon Sep 17 00:00:00 2001
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
59 From: MXE
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
60 Date: Wed, 3 Oct 2012 09:29:23 +0200
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
61 Subject: [PATCH 3/5] param_tags : use of special tags considering whether state of option -use-ocamlfind
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
62
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
63
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
64 diff --git a/ocamlbuild/param_tags.ml b/ocamlbuild/param_tags.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
65 index 02001de..1aae306 100644
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
66 --- a/ocamlbuild/param_tags.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
67 +++ b/ocamlbuild/param_tags.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
68 @@ -12,15 +12,24 @@
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
69
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
70 (* Original author: Romain Bardou *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
71
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
72 -module StringSet = Set.Make(String)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
73 +(* 1 : 'acknowledge' while reading user input;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
74 + 2 : 'declare ' to declare what tags are parameterised tags
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
75 + 3 : 'init' to check acknowledged vs declared tags,
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
76 + and perform declared actions *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
77 +
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
78 +module StringSet = My_std.StringSet
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
79 module SSOSet = Set.Make(struct
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
80 type t = string * string option
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
81 let compare = Pervasives.compare
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
82 end)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
83
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
84 -(* tag name -> tag action (string -> unit) *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
85 +(* tag (string) -> action (string -> unit) *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
86 +(* all parameterised tags must be declared here *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
87 let declared_tags = Hashtbl.create 17
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
88
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
89 +(* set of tags that were read (see 'acknowledge'):
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
90 + ("package",Some "lablgtk2") if "package(lablgtk2)" was read ;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
91 + ("foo",None) if "foo" was read *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
92 let acknowledged_tags = ref SSOSet.empty
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
93
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
94 let only_once f =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
95 @@ -32,25 +41,32 @@ let only_once f =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
96 f param
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
97 end
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
98
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
99 -let declare name action =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
100 - Hashtbl.add declared_tags name (only_once action)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
101 +let declare tag action =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
102 + Hashtbl.add declared_tags tag (only_once action)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
103
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
104 -let acknowledge tag =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
105 - let tag = Lexers.tag_gen (Lexing.from_string tag) in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
106 - acknowledged_tags := SSOSet.add tag !acknowledged_tags
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
107 +let ocamlfind_tags_used = ref StringSet.empty
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
108
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
109 -let really_acknowledge (name, param) =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
110 - match param with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
111 - | None ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
112 - if Hashtbl.mem declared_tags name then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
113 - Log.eprintf "Warning: tag %S expects a parameter" name
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
114 - | Some param ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
115 - let actions = List.rev (Hashtbl.find_all declared_tags name) in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
116 - if actions = [] then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
117 - Log.eprintf "Warning: tag %S does not expect a parameter, but is used with parameter %S" name param;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
118 - List.iter (fun f -> f param) actions
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
119 +let acknowledge tag_string =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
120 + let sso = Lexers.tag_gen (Lexing.from_string tag_string) in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
121 + let tag = fst sso in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
122 + (match tag with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
123 + | "package" | "predicate" | "syntax" ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
124 + ocamlfind_tags_used := StringSet.add tag !ocamlfind_tags_used
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
125 + | _ -> ()
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
126 + );
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
127 + acknowledged_tags := SSOSet.add sso !acknowledged_tags
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
128
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
129 let init () =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
130 - SSOSet.iter really_acknowledge !acknowledged_tags
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
131 + SSOSet.iter (fun (tag,param) ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
132 + match param with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
133 + | None ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
134 + if Hashtbl.mem declared_tags tag then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
135 + Log.eprintf "Warning: tag %S expects a parameter" tag
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
136 + | Some param ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
137 + let actions = List.rev (Hashtbl.find_all declared_tags tag) in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
138 + if actions = [] then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
139 + Log.eprintf "Warning: tag %S does not expect a parameter, but is used with parameter %S" tag param;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
140 + List.iter (fun f -> f param) actions
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
141 + ) !acknowledged_tags
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
142
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
143 let make = Printf.sprintf "%s(%s)"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
144 --
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
145 1.7.2.5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
146
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
147
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
148 From e1f2adad03b52d5b71dea7fd6e2169d361366d60 Mon Sep 17 00:00:00 2001
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
149 From: MXE
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
150 Date: Wed, 3 Oct 2012 09:30:21 +0200
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
151 Subject: [PATCH 4/5] param_tags : use of special tags considering whether state of option -use-ocamlfind (mli)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
152
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
153
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
154 diff --git a/ocamlbuild/param_tags.mli b/ocamlbuild/param_tags.mli
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
155 index a0047af..0839534 100644
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
156 --- a/ocamlbuild/param_tags.mli
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
157 +++ b/ocamlbuild/param_tags.mli
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
158 @@ -12,29 +12,38 @@
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
159
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
160 (* Original author: Romain Bardou *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
161
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
162 +(** just a check for use of tag "package" that implies ocamlfind use *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
163 +val ocamlfind_tags_used : My_std.StringSet.t ref
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
164 +
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
165 val declare: string -> (string -> unit) -> unit
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
166 (** Declare a parameterized tag.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
167
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
168 -[declare "name" action]: [action "param"] will be executed (once) by [init]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
169 -if a tag of the form [name(param)] is [acknowledge]d.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
170 -
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
171 -A given tag may be declared several times with different actions. All actions
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
172 -will be executed, in the order they were declared. *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
173 +[declare tag action] declares [tag] as a parameterized tag.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
174 +A given tag may be declared several times with different actions.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
175 +[init] will execute all actions in the order they were declared.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
176 +Example : [declare "package" action] *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
177
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
178 val acknowledge: string -> unit
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
179 (** Acknowledge a tag.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
180
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
181 -If the tag is of the form [X(Y)], and have been declared using [declare],
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
182 -then the actions given using [declare] will be executed with [Y] as parameter
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
183 -when [init] is executed. The action will only be called once per
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
184 -acknowledged parameter. *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
185 +[acknowledge "package(lablgtk2)"] will store the tag "package" with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
186 +parameter [Some "lablgtk2"].
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
187 +[acknowledge "annot"] will store the tag "annot" with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
188 +parameter [None] *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
189
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
190 val init: unit -> unit
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
191 (** Initialize parameterized tags.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
192
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
193 -Call this function once all tags have been [declare]d and [acknowledge]d.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
194 +[init] checks in turn each acknowledged tag along with its parameter :
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
195 +- if the tag is declared (e.g "package"), and parameter=Some "lablgtk2",
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
196 +calls declared actions (only once) on "lablgtk2".
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
197 +- if the tag is not declared (e.g "annot"), and parameter=None, nothing is done
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
198 +- if the tag is not declared, but there is a parameter, raise a warning
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
199 +- if the tag is declared, but there is no parameter, raise a warning
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
200 If you [declare] or [acknowledge] a tag after having called [init], this will
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
201 -have no effect. [init] should only be called once. *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
202 +have no effect.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
203 +[init] must be called once all tags have been marked with [declare] and
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
204 +[acknowledge]. It should only be called once. *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
205
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
206 val make: Tags.elt -> string -> Tags.elt
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
207 (** Make a parameterized tag instance.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
208 --
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
209 1.7.2.5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
210
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
211
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
212 From 82118f5d8e0cb7a0193479d0e7459d265692551a Mon Sep 17 00:00:00 2001
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
213 From: MXE
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
214 Date: Wed, 3 Oct 2012 09:31:13 +0200
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
215 Subject: [PATCH 5/5] options : support for prefixed ocaml-tools with ocamlfind
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
216
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
217
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
218 diff --git a/ocamlbuild/options.ml b/ocamlbuild/options.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
219 index 1be4b63..48f6648 100644
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
220 --- a/ocamlbuild/options.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
221 +++ b/ocamlbuild/options.ml
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
222 @@ -39,16 +39,17 @@ let use_menhir = ref false
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
223 let catch_errors = ref true
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
224 let use_ocamlfind = ref false
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
225
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
226 -let mk_virtual_solvers =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
227 +let mk_virtual_solvers target =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
228 let dir = Ocamlbuild_where.bindir in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
229 List.iter begin fun cmd ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
230 - let opt = cmd ^ ".opt" in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
231 + let target_cmd = target^cmd in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
232 + let opt = target_cmd ^ ".opt" in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
233 let a_opt = A opt in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
234 - let a_cmd = A cmd in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
235 + let a_cmd = A target_cmd in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
236 let search_in_path = memo Command.search_in_path in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
237 let solver () =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
238 if sys_file_exists !dir then
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
239 - let long = filename_concat !dir cmd in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
240 + let long = filename_concat !dir target_cmd in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
241 let long_opt = long ^ ".opt" in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
242 if file_or_exe_exists long_opt then A long_opt
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
243 else if file_or_exe_exists long then A long
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
244 @@ -61,9 +62,9 @@ let mk_virtual_solvers =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
245 end
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
246
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
247 let () =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
248 - mk_virtual_solvers
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
249 - ["ocamlc"; "ocamlopt"; "ocamldep"; "ocamldoc";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
250 - "ocamlyacc"; "menhir"; "ocamllex"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
251 + mk_virtual_solvers "@target@-"
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
252 + ["ocamlc"; "ocamlopt"; "ocamldep"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"];
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
253 + mk_virtual_solvers "" ["ocamldoc"; "ocamlyacc"; "menhir"; "ocamllex"; "ocamlfind"]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
254 let ocamlc = ref (V"OCAMLC")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
255 let ocamlopt = ref (V"OCAMLOPT")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
256 let ocamldep = ref (V"OCAMLDEP")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
257 @@ -73,7 +74,7 @@ let ocamllex = ref (V"OCAMLLEX")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
258 let ocamlmklib = ref (V"OCAMLMKLIB")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
259 let ocamlmktop = ref (V"OCAMLMKTOP")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
260 let ocamlrun = ref N
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
261 -let ocamlfind x = S[V"OCAMLFIND"; x]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
262 +let ocamlfind = (V"OCAMLFIND")
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
263 let program_to_execute = ref false
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
264 let must_clean = ref false
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
265 let show_documentation = ref false
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
266 @@ -261,11 +262,19 @@ let init () =
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
267 (* TODO: warning message when using an option such as -ocamlc *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
268 (* Note that plugins can still modify these variables After_options.
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
269 This design decision can easily be changed. *)
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
270 - ocamlc := ocamlfind & A"ocamlc";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
271 - ocamlopt := ocamlfind & A"ocamlopt";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
272 - ocamldep := ocamlfind & A"ocamldep";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
273 - ocamldoc := ocamlfind & A"ocamldoc";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
274 - ocamlmktop := ocamlfind & A"ocamlmktop";
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
275 + List.iter (fun (option,string) ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
276 + (match !option with
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
277 + | Sh s
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
278 + | A s ->
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
279 + Log.eprintf "Warning : Command '-%s %s' overidden by option -use-ocamlfind" string s
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
280 + | _ -> ()
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
281 + );
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
282 + option := S[ocamlfind; A string]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
283 + ) [(ocamlc,"ocamlc");
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
284 + (ocamlopt,"ocamlopt");
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
285 + (ocamldep,"ocamldep");
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
286 + (ocamldoc,"ocamldoc");
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
287 + (ocamlmktop,"ocamlmktop")]
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
288 end;
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
289
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
290 let reorder x y = x := !x @ (List.concat (List.rev !y)) in
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
291 --
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
292 1.7.2.5
fe0a6e45513f add package ocaml-native
William <r.3@libertysurf.fr>
parents:
diff changeset
293