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)