.SECONDARY:

CC = metaocamlc
INC = -I src/

CMO = src/staged.cmo src/basetypes.cmo src/code.cmo src/util.cmo \
      src/algebra.cmo src/float.cmo src/rational.cmo src/integer.cmo  \
      src/tuple.cmo src/foldable.cmo src/matrix.cmo src/determinant.cmo \
      src/vector.cmo src/vectoren.cmo src/point.cmo src/pointen.cmo \
      src/affine.cmo \
      src/hplane.cmo src/sphere.cmo \
      src/vertex.cmo src/simplex.cmo \
      src/orient.cmo src/insphere.cmo src/inside.cmo

ML = $(CMO:.cmo=.ml)

# CMI = $(SRC:.ml=.cmi)

# %.mli : %.ml
#	$(CC) $(INC) -i $< > $@

# %.cmi: %.mli
#	$(CC) $(INC) -c $<

%.cmo: %.ml
	$(CC) $(INC) -c $<

%.cmo: %.ml
	$(CC) $(INC) -c $(LIB) $<

# ohunit:
#	cd ounit && make all && cd ..

# unittest:
#	cd utest && make && cd .. && touch utest.out

codetest:
	cd ctest && make && cd .. && touch ctest.out

ggk: $(CMO)
	ocamlmktop -o ggk.top $?

all: ggk codetest

clean:
	rm -f src/*.cm[iox] src/*.mli src/*~ *.out ggk.top
	cd ctest && make clean && cd ..



