#************************************************************************** #* * #* 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 := \ $(OCAMLRUN) ./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)