+let register_include dir =
+ if not (StringSet.mem dir !includes) then begin
+ includes := StringSet.add dir !includes;
+ dep [ "extension:ml" ]
+ (List.map (fun s -> dir ^ "/" ^ s )
+ (Array.to_list (Pathname.readdir dir)))
+ end
+
+let set_flags tag_list action_list =
+ List.iter (fun s ->
+ List.iter (fun (fl, fu) ->
+ pflag s fl fu)
+ action_list
+ ) tag_list
+
+let macro_flags = [
+ "macro_include",
+ (fun s -> register_include s; S [A"-ppopt"; A "-I"; A"-ppopt"; A s]);
+ "macro_define", (fun s -> S [A"-ppopt"; A ("-D"^s)]);
+]