-(* this function calls the parser in a way that it does not perform inclusions,
- * so that we can ensure the inclusion is performed after the included file
- * is compiled (if needed). matitac does not need that, since it compiles files
- * in the good order, here files may be compiled on demand. *)
-let wrap_with_make include_paths f x =
- match f x with
- GrafiteParser.LSome (GrafiteAst.Executable (_,GrafiteAst.NCommand
- (_,GrafiteAst.Include (_,_,mafilename)))) as cmd ->
- let root, buri, _, tgt =
- try Librarian.baseuri_of_script ~include_paths mafilename
- with Librarian.NoRootFor _ ->
- HLog.error ("The included file '"^mafilename^"' has no root file,");
- HLog.error "please create it.";
- raise (Failure ("No root file for "^mafilename))
- in
- if MatitacLib.Make.make root [tgt] then
- cmd
- else raise (Failure ("Compiling: " ^ tgt))
- | cmd -> cmd
-;;
-