tester_dir = tester queues_dir = queues tests_dir = tests tests_opt_dir = tests_opt all_queues_cmo = $(patsubst $(queues_dir)/%.ml,%.cmo,$(wildcard $(queues_dir)/*.ml)) all_queues_cmx = $(patsubst $(queues_dir)/%.ml,%.cmx,$(wildcard $(queues_dir)/*.ml)) all_queues_ml = $(patsubst $(queues_dir)/%.ml,%.ml,$(wildcard $(queues_dir)/*.ml)) all_tests_opt_ml = $(patsubst $(tests_opt_dir)/%.ml,%.ml,$(wildcard $(tests_opt_dir)/*.ml)) all_tests_opt = $(patsubst $(tests_opt_dir)/%.ml,%,$(wildcard $(tests_opt_dir)/*.ml)) ocaml_q_test: %.cmo $(all_queues_cmo) ocamlmktop -custom -o ocaml_q_test unix.cma Prioqueue.cmo Tester.cmo ParticularTests.cmo $(all_queues_cmo) rm -f *.ml *.mli *.cmo *.cma %.cmo: Prioqueue.ml Tester.ml ParticularTests.ml $(all_queues_ml) ocamlc -c $^ %.cmx: Prioqueue.ml Tester.ml ParticularTests.ml $(all_queues_ml) $(all_tests_opt_ml) ocamlopt -c $^ Tester.ml: $(tester_dir)/Tester.ml install --mode=+rw $(tester_dir)/Tester.ml Tester.ml Prioqueue.ml: $(tester_dir)/Prioqueue.ml install --mode=+rw $(tester_dir)/Prioqueue.ml Prioqueue.ml ParticularTests.ml: $(tester_dir)/ParticularTests.ml install --mode=+rw $(tester_dir)/ParticularTests.ml ParticularTests.ml %.ml: install --mode=+rw $(wildcard */$@) . $(all_tests_opt): %.cmx ocamlopt -o $@ unix.cmxa Prioqueue.cmx Tester.cmx ParticularTests.cmx $(all_queues_cmx) $@.cmx opt: %.cmx $(all_queues_cmx) $(all_tests_opt) install --mode=+rx $(all_tests_opt) tests_opt install: install --mode=+rx ocaml_q_test tests install --mode=+rx $(wildcard *.cmi) tests clean_all: rm -f *.ml *.mli *.cmo *.cmi *.o *.cmx ocaml_q_test rm -f $(tests_dir)/*.cmi $(tests_dir)/ocaml_q_test rm -f $(all_tests_opt) rm -f $(patsubst %.ml,%,$(wildcard $(tests_opt_dir)/*.ml)) clean: rm -f *.ml *.mli *.cmo *.cmi *.o *.cmx ocaml_q_test rm -f $(all_tests_opt)