OCAMLFLAGS = -g OCAMLC = ocamlc LIB_DIR = lib TEST_DIR = tests LIB_FILES = ir.ml cfg.ml dominance.ml nemo.ml parser.ml printer.ml TEST_FILES = test.ml MAIN_FILES = main.ml all: nemo test nemo: $(LIB_FILES:%.ml=$(LIB_DIR)/%.cmo) $(MAIN_FILES:%.ml=%.cmo) $(OCAMLC) $(OCAMLFLAGS) -o $@ $^ test: $(LIB_FILES:%.ml=$(LIB_DIR)/%.cmo) $(TEST_DIR)/test.cmo $(OCAMLC) $(OCAMLFLAGS) -o $@ $^ $(LIB_DIR)/%.cmo: $(LIB_DIR)/%.ml cd $(LIB_DIR) && $(OCAMLC) $(OCAMLFLAGS) -c $(notdir $<) $(TEST_DIR)/%.cmo: $(TEST_DIR)/%.ml cd $(TEST_DIR) && $(OCAMLC) $(OCAMLFLAGS) -c -I ../$(LIB_DIR) $(notdir $<) %.cmo: %.ml $(OCAMLC) $(OCAMLFLAGS) -I $(LIB_DIR) -c $< clean: rm -f nemo test rm -f $(LIB_DIR)/*.cmo $(LIB_DIR)/*.cmi rm -f $(TEST_DIR)/*.cmo $(TEST_DIR)/*.cmi rm -f *.cmo *.cmi .PHONY: all clean