summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrégoire Duchêne <gduchene@awhk.org>2014-09-10 19:56:01 +0200
committerGrégoire Duchêne <gduchene@awhk.org>2014-09-24 16:06:04 +0200
commitfce67653347965627bc3adc3575078635e28f519 (patch)
treef9d5ef4c89b8d3d6950fede93d90834779ecb489
parent5186ff832d1a1771aa103d1dcd8b73cb04e0a3b8 (diff)
Added support for .mll and .mly files
-rw-r--r--gnu.ocaml.prog.mk10
-rw-r--r--gnu.ocaml.rules.mk4
2 files changed, 12 insertions, 2 deletions
diff --git a/gnu.ocaml.prog.mk b/gnu.ocaml.prog.mk
index cb88f40..26e7797 100644
--- a/gnu.ocaml.prog.mk
+++ b/gnu.ocaml.prog.mk
@@ -17,6 +17,8 @@
include $(dir $(lastword $(MAKEFILE_LIST)))gnu.ocaml.rules.mk
DEPFILE?= .Makefile.dep
+MENHIR?= menhir
+OCAMLLEX?= ocamllex
PROG?= a.out
SRC+= $(CSRC)
@@ -53,14 +55,18 @@ OBJ+= $(patsubst %.ml, %.cmo, $(filter %.ml, $(SRC)))
CLEAN+= $(patsubst %.cmo, %.cmi, $(OBJ))
endif
-$(DEPFILE): $(wildcard *.ml)
+INTER= $(patsubst %.mly, %.ml, $(wildcard *.mly))
+INTER+= $(patsubst %.mll, %.ml, $(wildcard *.mll))
+CLEAN+= $(patsubst %.ml, %.mli, $(INTER))
+
+$(DEPFILE): $(wildcard *.ml) $(INTER)
printf "SRC+=\t%s\n" `ocamldep -sort *.ml` > $(DEPFILE)
printf "\n%s\n" "`ocamldep *.mli *.ml`" >> $(DEPFILE)
$(PROG): $(DEPFILE) $(OBJ)
$(OCAMLC) $(OCAMLFLAGS) -o $@ $(filter-out $(DEPFILE), $^)
all: $(PROG)
clean:
- $(RM) $(CLEAN) $(OBJ) $(PROG)
+ $(RM) $(CLEAN) $(OBJ) $(PROG) $(INTER)
dist-clean: clean
$(RM) $(DEPFILE)
diff --git a/gnu.ocaml.rules.mk b/gnu.ocaml.rules.mk
index 1d1cbc5..a259208 100644
--- a/gnu.ocaml.rules.mk
+++ b/gnu.ocaml.rules.mk
@@ -22,3 +22,7 @@
$(OCAMLC) $(OCAMLFLAGS) -c $<
%.cmx: %.ml
$(OCAMLC) $(OCAMLFLAGS) -c $<
+%.ml: %.mll
+ $(OCAMLLEX) $(OCAMLLEXFLAGS) $<
+%.ml: %.mly
+ $(MENHIR) $(MENHIRFLAGS) $<