# The package sedlex is released under the terms of an MIT-like license.
# See the attached LICENSE file.
# Copyright 2005, 2013 by Alain Frisch and LexiFi.

include $(shell ocamlc -where)/Makefile.config

.PHONY: test
test: tokenizer$(EXE) complement$(EXE) subtraction$(EXE) repeat$(EXE)
	./tokenizer$(EXE)
	./complement$(EXE)
	./subtraction$(EXE)
	./repeat$(EXE)

tokenizer$(EXE): tokenizer.ml
	ocamlfind ocamlc -package gen -ppx "../src/syntax/ppx_sedlex$(EXE) --as-ppx" -I ../src/lib -o tokenizer$(EXE) -linkpkg sedlexing.cma tokenizer.ml

complement$(EXE): complement.ml
	ocamlfind ocamlc -package gen -ppx "../src/syntax/ppx_sedlex$(EXE) --as-ppx" -I ../src/lib -o complement$(EXE) -linkpkg sedlexing.cma complement.ml

subtraction$(EXE): subtraction.ml
	ocamlfind ocamlc -package gen -ppx "../src/syntax/ppx_sedlex$(EXE) --as-ppx" -I ../src/lib -o subtraction$(EXE) -linkpkg sedlexing.cma subtraction.ml

repeat$(EXE): repeat.ml
	ocamlfind ocamlc -package gen -ppx "../src/syntax/ppx_sedlex$(EXE) --as-ppx" -I ../src/lib -o repeat$(EXE) -linkpkg sedlexing.cma repeat.ml

.PHONY: with_driver
with_driver: tokenizer.ml
	ocamlfind ocamlc -package gen -ppx "ppx_driver ../src/syntax/sedlex.cma" -I ../src/lib -o tokenizer$(EXE) sedlexing.cma tokenizer.ml

.PHONY: with_findlib
with_findlib: tokenizer.ml
	ocamlfind ocamlc -c -package sedlex -package gen tokenizer.ml
	ocamlfind ocamlc -o tokenizer$(EXE) -linkpkg -package sedlex -package gen tokenizer.cmo

clean:
	rm -f *~ *.cm* *.a *.lib *.o *.obj tokenizer$(EXE) complement$(EXE) subtraction$(EXE) repeat$(EXE)
