diff options
Diffstat (limited to 'Makefile.dev')
| -rw-r--r-- | Makefile.dev | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Makefile.dev b/Makefile.dev new file mode 100644 index 0000000000..de69a1bf8f --- /dev/null +++ b/Makefile.dev @@ -0,0 +1,48 @@ +#************************************************************************** +#* * +#* OCaml * +#* * +#* Gabriel Scherer, projet Parsifal, INRIA Saclay * +#* * +#* Copyright 2018 Institut National de Recherche en Informatique et * +#* en Automatique. * +#* * +#* All rights reserved. This file is distributed under the terms of * +#* the GNU Lesser General Public License version 2.1, with the * +#* special exception on linking described in the file LICENSE. * +#* * +#************************************************************************** + +# Developer-only rules, included in Makefile when a Git repository is detected. + +# Testing the parser -- see parsing/HACKING.adoc + +SOURCE_FILES=$(shell git ls-files '*.ml' '*.mli' | grep -v boot/menhir/parser) + +AST_FILES=$(addsuffix .ast,$(SOURCE_FILES)) + +build-all-asts: +# Recursive invocation ensures that `git ls-files` is not executed on every +# invocation of make + @$(MAKE) --no-print-directory $(AST_FILES) + +CAMLC_DPARSETREE := \ + $(CAMLRUN) ./ocamlc -nostdlib -nopervasives \ + -stop-after parsing -dparsetree + +%.ml.ast: %.ml ocamlc + $(CAMLC_DPARSETREE) $< 2> $@ || exit 0 +# `|| exit 0` : some source files will fail to parse +# (for example, they are meant as toplevel scripts +# rather than source files, or are parse-error tests), +# we ignore the failure in that case + +%.mli.ast: %.mli ocamlc + $(CAMLC_DPARSETREE) $< 2> $@ || exit 0 + +.PHONY: list-all-asts +list-all-asts: + @for f in $(AST_FILES); do echo "'$$f'"; done + +partialclean:: + rm -f $(AST_FILES) |
