+include ../../../Makefile.defs
+
+H=@
+
+REQUIRES = helm-library
+
+MLS = heights.ml
+MLIS =
+CLEAN =
+
+LIBRARIES = $(shell $(OCAMLFIND) query -recursive -predicates "byte $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+LIBRARIES_OPT = $(shell $(OCAMLFIND) query -recursive -predicates "native $(PREDICATES)" -format "%d/%a" $(REQUIRES))
+
+CMOS = $(MLS:%.ml=%.cmo)
+CMXS = $(MLS:%.ml=%.cmx)
+CMIS = $(MLIS:%.mli=%.cmi)
+EXTRAS =
+
+OCAMLC = $(OCAMLFIND) ocamlc -thread -package "$(REQUIRES)" -linkpkg
+OCAMLOPT = $(OCAMLFIND) ocamlopt -thread -package "$(REQUIRES)" -linkpkg
+OCAMLDEP = $(OCAMLFIND) ocamldep
+OCAMLYACC = ocamlyacc
+OCAMLLEX = ocamllex
+
+all: heights .depend
+ @echo -n
+
+opt: heights.opt $(EXTRAS) .depend.opt
+ @echo -n
+
+heights: $(CMIS) $(CMOS) $(EXTRAS)
+ @echo " OCAMLC $(CMOS)"
+ $(H)$(OCAMLC) -o $@ $(CMOS)
+
+heights.opt: $(CMIS) $(CMXS) $(EXTRAS)
+ @echo " OCAMLOPT $(CMXS)"
+ $(H)$(OCAMLOPT) -o $@ $(CMXS)
+
+clean:
+ $(H)rm -f *.cm[iox] *.a *.o *.output
+ $(H)rm -f heights heights.opt $(CLEAN)
+
+.depend: $(MLIS) $(MLS) $(EXTRAS)
+ @echo " OCAMLDEP $(MLIS) $(MLS)"
+ $(H)$(OCAMLDEP) $(MLIS) $(MLS) > .depend
+
+.depend.opt: $(MLIS) $(MLS) $(EXTRAS)
+ @echo " OCAMLDEP -native $(MLIS) $(MLS)"
+ $(H)$(OCAMLDEP) -native $(MLIS) $(MLS) > .depend.opt
+
+test: heights heights.conf.xml
+ @echo " HEIGHTS"
+ $(H)$< 1> heights.txt 2> errors.txt
+
+test.opt: heights.opt heights.conf.xml $(PACKAGES:%=%.conf.xml)
+ @echo " HEIGHTS.OPT"
+ $(H)$< 1> heights.txt 2> errors.txt
+
+export: clean
+ $(H)rm -f *~
+ @echo " TAR heights"
+ $(H)cd .. && tar --exclude=heights/.svn -czf heights.tgz heights
+
+depend: .depend
+
+depend.opt: .depend.opt
+
+%.cmi: %.mli $(EXTRAS)
+ @echo " OCAMLC $<"
+ $(H)$(OCAMLC) -c $<
+%.cmo %.cmi: %.ml $(EXTRAS) $(LIBRARIES)
+ @echo " OCAMLC $<"
+ $(H)$(OCAMLC) -c $<
+%.cmx: %.ml $(EXTRAS) $(LIBRARIES_OPT)
+ @echo " OCAMLOPT $<"
+ $(H)$(OCAMLOPT) -c $<
+%.ml %.mli: %.mly $(EXTRAS)
+ @echo " OCAMLYACC $<"
+ $(H)$(OCAMLYACC) -v $<
+%.ml: %.mll $(EXTRAS)
+ @echo " OCAMLLEX $<"
+ $(H)$(OCAMLLEX) $<
+
+include ../../../Makefile.defs
+
+ifeq ($(MAKECMDGOALS),)
+ include .depend
+endif
+
+ifeq ($(MAKECMDGOALS), all)
+ include .depend
+endif
+
+ifeq ($(MAKECMDGOALS), opt)
+ include .depend.opt
+endif
+
+ifeq ($(MAKECMDGOALS), test)
+ include .depend
+endif
+
+ifeq ($(MAKECMDGOALS), test.opt)
+ include .depend.opt
+endif