
VFILESDOC = \
	\
	liblat/SharedLat.v \
	liblat/Generic.v \
	liblat/Lift.v \
	liblat/CombinationLats.v \
	liblat/SignProps.v \
	liblat/MapLat.v \
	liblat/PropLat.v \
	\
	libsem/PrettyBigStep.v \
	libsem/SemClosure.v \
	libsem/LiftSem.v \

DEPEND = \
	-R . Main \
	-R owhile OWhile \
	-R libsem LibSem \
	-R liblat LibLat \
	-R lib Lib \
	-R lib/itp10/lib ITP10 \
	-R lib/tlc/src TLC

VFILES = \
	${VFILESDOC} \
	Shared.v \

AT= # Set to “@” to hide every command.

INDEXFILE=all.html

VOFILES = ${VFILES:.v=.vo}
VIOFILES = ${VFILES:.v=.vio}
GLOBFILES = ${VFILES:.v=.glob}

DOCDIR = doc


.PHONY: all clean depend doc vio tlc itp10 lib

all: depend ${VOFILES}

vio: ${VIOFILES}

clean:
	${AT}rm ${VOFILES} ${VIOFILES} ${GLOBFILES} \
		2> /dev/null || echo "Done"
	${AT}rm owhile/Abstracto_flat.{ml,mli,o,cmi,cmx} \
	   2> /dev/null || echo "Done"
	${AT}rm main.{o,cmi,cmx} \
		2> /dev/null || echo "Done"

depend: .depend

.depend: ${VFILES} Makefile
	${AT}coqdep ${DEPEND} ${VFILES} > $@

tlc:
	${AT}cd lib; git clone https://scm.gforge.inria.fr/anonscm/git/tlc/tlc.git tlc; cd ..
	${AT}cd lib/tlc; git checkout 9f34f04892c9cb46854e09ec10489ce113efcd1c; cd ../..
	${AT}echo "SERIOUS=true" > lib/tlc/src/settings.sh
	${AT}cd lib/tlc/src; make; cd ../../..

itp10:
	${AT}cd lib/itp10; make; cd ../..

lib: tlc itp10

-include .depend

%.vo %.glob: %.v
	${AT}coqc -dump-glob $*.glob ${DEPEND} $<

%.vio: %.v
	${AT}coqc -quick $*.glob ${DEPEND} $<

%.html: %.glob
	${AT}coqdoc -glob-from $*.glob -utf8 -html -l -d ${DOCDIR} $*.v

doc: ${GLOBFILES:.glob=.html}
	${AT}coqdoc -utf8 -toc -l -d ${DOCDIR} ${VFILESDOC}
	${AT}mv ${DOCDIR}/index.html ${DOCDIR}/${INDEXFILE}
	${AT}sed -e 's/index.html/${INDEXFILE}/g' -i ${DOCDIR}/*.html

