build: Hide make passthrough command.
[goals.git] / Makefile.in
index f4f176d..20d0a49 100644 (file)
 
 # Pass through normal targets to Goalfile.in
 
-# XXX Why can't this parse "all" instead of "all ()"?
-all clean install: src/goals
-       ./run src/goals -d "$@ ()"
+all clean depend install check maintainer-clean: src/goals
+       @./run src/goals $@
 
 # If src/goals doesn't exist then brute-force build it.  Once we have
 # src/goals we can rebuild it and other parts of the project using
 # goals itself (see Goalfile.in).
 
 MENHIR = @MENHIR@
+OCAMLDEP = @OCAMLDEP@
 OCAMLFIND = @OCAMLFIND@
 OCAMLLEX = @OCAMLLEX@
 OCAMLFLAGS = @OCAMLFLAGS@
@@ -34,16 +34,12 @@ OCAMLPACKAGES = @OCAMLPACKAGES@
 
 src/goals:
        $(MENHIR) --explain src/parser.mly
-# Hack required to get includes working.
-       echo 'val lexer_read : (Lexing.lexbuf -> token) option ref' \
-           >> src/parser.mli
+# Hack required to break circular dependencies.
+       echo 'val lexer_read : (Lexing.lexbuf -> token) option ref' >> src/parser.mli
+       echo 'val eval_substitute : (Ast.env -> Ast.loc -> Ast.substs -> string) option ref' >> src/parser.mli
        $(OCAMLLEX) src/lexer.mll
        $(OCAMLFIND) opt $(OCAMLFLAGS) $(OCAMLPACKAGES) -I src \
-           src/config.mli src/utils.mli src/cmdline.mli src/ast.mli \
-           src/eval.mli src/parser.mli src/lexer.mli src/parse.mli \
-           src/config.ml src/utils.ml src/cmdline.ml src/ast.ml \
-           src/eval.ml src/parser.ml src/lexer.ml src/parse.ml \
-           src/main.ml \
+           $$($(OCAMLDEP) -sort src/*.mli src/*.ml) \
            -linkpkg -o $@
 
 # These rules are required by autoconf.