##############################################################################
##                 The Calculus of Inductive Constructions                  ##
##                                                                          ##
##                                Projet Coq                                ##
##                                                                          ##
##                     INRIA                        ENS-CNRS                ##
##              Rocquencourt                        Lyon                    ##
##                                                                          ##
##                                  Coq V7                                  ##
##                                                                          ##
##                                                                          ##
##############################################################################

# WARNING
#
# This Makefile has been automagically generated by coq_makefile
# Edit at your own risks !
#
# END OF WARNING

#
# This Makefile was generated by the command line :
# coq_makefile AllFloat.v Closest2Plus.v Closest2Prop.v ClosestMult.v ClosestPlus.v ClosestProp.v Closest.v Digit.v Faux.v Fbound.v Fcomp.v Finduct.v Float.v Fmin.v Fnorm.v Fodd.v Fop.v FPred.v Fprop.v FroundMult.v FroundPlus.v FroundProp.v Fround.v FSucc.v MSBProp.v MSB.v Option.v Paux.v Rpow.v sTactic.v Zdivides.v Zenum.v Ct2/FboundI.v Ct2/FnormI.v Expansions/EFast2Sum.v Expansions/Fast2Diff.v Expansions/Fast2Sum.v Expansions/Fexp2.v Expansions/FexpAdd.v Expansions/FexpDiv.v Expansions/FexpPlus.v Expansions/Fexp.v Expansions/ThreeSum2.v Expansions/ThreeSumProps.v Expansions/TwoSum.v FnElem/Axpy.v FnElem/DoubleRound.v FnElem/FArgReduct2.v FnElem/FArgReduct3.v FnElem/FArgReduct4.v FnElem/FArgReduct.v FnElem/FIA64elem.v FnElem/FmaErrApprox.v FnElem/FmaErr.v FnElem/MinOrMax.v Others/DblRndOdd.v Others/Dekker.v Others/discriminant2.v Others/discriminant3.v Others/discriminant.v Others/Divnk.v Others/FmaEmul.v Others/FminOp.v Others/FroundDivSqrt.v Others/IEEE.v Others/PradixE.v Others/RND.v Others/Veltkamp.v 
#

##########################
#                        #
# Variables definitions. #
#                        #
##########################

CAMLP4LIB=`camlp4 -where`
COQSRC=-I $(COQTOP)/kernel -I $(COQTOP)/lib \
  -I $(COQTOP)/library -I $(COQTOP)/parsing \
  -I $(COQTOP)/pretyping -I $(COQTOP)/interp \
  -I $(COQTOP)/proofs -I $(COQTOP)/syntax -I $(COQTOP)/tactics \
  -I $(COQTOP)/toplevel -I $(COQTOP)/contrib/correctness \
  -I $(COQTOP)/contrib/extraction -I $(COQTOP)/contrib/field \
  -I $(COQTOP)/contrib/fourier -I $(COQTOP)/contrib/graphs \
  -I $(COQTOP)/contrib/interface -I $(COQTOP)/contrib/jprover \
  -I $(COQTOP)/contrib/omega -I $(COQTOP)/contrib/romega \
  -I $(COQTOP)/contrib/ring -I $(COQTOP)/contrib/xml \
  -I $(CAMLP4LIB)
ZFLAGS=$(OCAMLLIBS) $(COQSRC)
OPT=
COQFLAGS=-q $(OPT) $(COQLIBS) $(OTHERFLAGS) $(COQ_XML)
COQC=$(COQBIN)coqc
GALLINA=gallina
COQDOC=coqdoc
CAMLC=ocamlc -c
CAMLOPTC=ocamlopt -c
CAMLLINK=ocamlc
CAMLOPTLINK=ocamlopt
COQDEP=$(COQBIN)coqdep -c
GRAMMARS=grammar.cma
CAMLP4EXTEND=pa_extend.cmo pa_ifdef.cmo q_MLast.cmo
PP=-pp "camlp4o -I . -I $(COQTOP)/parsing $(CAMLP4EXTEND) $(GRAMMARS) -impl"

#########################
#                       #
# Libraries definition. #
#                       #
#########################

OCAMLLIBS=-I .
COQLIBS=-I . -I ./Ct2/ -I ./FnElem/ -I ./Expansions/ -I ./Others/

###################################
#                                 #
# Definition of the "all" target. #
#                                 #
###################################

VFILES=AllFloat.v\
  Closest2Plus.v\
  Closest2Prop.v\
  ClosestMult.v\
  ClosestPlus.v\
  ClosestProp.v\
  Closest.v\
  Digit.v\
  Faux.v\
  Fbound.v\
  Fcomp.v\
  Finduct.v\
  Float.v\
  Fmin.v\
  Fnorm.v\
  Fodd.v\
  Fop.v\
  FPred.v\
  Fprop.v\
  FroundMult.v\
  FroundPlus.v\
  FroundProp.v\
  Fround.v\
  FSucc.v\
  MSBProp.v\
  MSB.v\
  Option.v\
  Paux.v\
  Rpow.v\
  sTactic.v\
  Zdivides.v\
  Zenum.v\
  Ct2/FboundI.v\
  Ct2/FnormI.v\
  Expansions/EFast2Sum.v\
  Expansions/Fast2Diff.v\
  Expansions/Fast2Sum.v\
  Expansions/Fexp2.v\
  Expansions/FexpAdd.v\
  Expansions/FexpDiv.v\
  Expansions/FexpPlus.v\
  Expansions/Fexp.v\
  Expansions/ThreeSum2.v\
  Expansions/ThreeSumProps.v\
  Expansions/TwoSum.v\
  FnElem/Axpy.v\
  FnElem/DoubleRound.v\
  FnElem/FArgReduct2.v\
  FnElem/FArgReduct3.v\
  FnElem/FArgReduct4.v\
  FnElem/FArgReduct.v\
  FnElem/FIA64elem.v\
  FnElem/FmaErrApprox.v\
  FnElem/FmaErr.v\
  FnElem/MinOrMax.v\
  Others/DblRndOdd.v\
  Others/Dekker.v\
  Others/discriminant2.v\
  Others/discriminant3.v\
  Others/discriminant.v\
  Others/Divnk.v\
  Others/FmaEmul.v\
  Others/FminOp.v\
  Others/FroundDivSqrt.v\
  Others/IEEE.v\
  Others/PradixE.v\
  Others/RND.v\
  Others/Veltkamp.v
VOFILES=$(VFILES:.v=.vo)
VIFILES=$(VFILES:.v=.vi)
GFILES=$(VFILES:.v=.g)
HTMLFILES=$(VFILES:.v=.html)
GHTMLFILES=$(VFILES:.v=.g.html)

all: AllFloat.vo\
  Closest2Plus.vo\
  Closest2Prop.vo\
  ClosestMult.vo\
  ClosestPlus.vo\
  ClosestProp.vo\
  Closest.vo\
  Digit.vo\
  Faux.vo\
  Fbound.vo\
  Fcomp.vo\
  Finduct.vo\
  Float.vo\
  Fmin.vo\
  Fnorm.vo\
  Fodd.vo\
  Fop.vo\
  FPred.vo\
  Fprop.vo\
  FroundMult.vo\
  FroundPlus.vo\
  FroundProp.vo\
  Fround.vo\
  FSucc.vo\
  MSBProp.vo\
  MSB.vo\
  Option.vo\
  Paux.vo\
  Rpow.vo\
  sTactic.vo\
  Zdivides.vo\
  Zenum.vo\
  Ct2/FboundI.vo\
  Ct2/FnormI.vo\
  Expansions/EFast2Sum.vo\
  Expansions/Fast2Diff.vo\
  Expansions/Fast2Sum.vo\
  Expansions/Fexp2.vo\
  Expansions/FexpAdd.vo\
  Expansions/FexpDiv.vo\
  Expansions/FexpPlus.vo\
  Expansions/Fexp.vo\
  Expansions/ThreeSum2.vo\
  Expansions/ThreeSumProps.vo\
  Expansions/TwoSum.vo\
  FnElem/Axpy.vo\
  FnElem/DoubleRound.vo\
  FnElem/FArgReduct2.vo\
  FnElem/FArgReduct3.vo\
  FnElem/FArgReduct4.vo\
  FnElem/FArgReduct.vo\
  FnElem/FIA64elem.vo\
  FnElem/FmaErrApprox.vo\
  FnElem/FmaErr.vo\
  FnElem/MinOrMax.vo\
  Others/DblRndOdd.vo\
  Others/Dekker.vo\
  Others/discriminant2.vo\
  Others/discriminant3.vo\
  Others/discriminant.vo\
  Others/Divnk.vo\
  Others/FmaEmul.vo\
  Others/FminOp.vo\
  Others/FroundDivSqrt.vo\
  Others/IEEE.vo\
  Others/PradixE.vo\
  Others/RND.vo\
  Others/Veltkamp.vo

spec: $(VIFILES)

gallina: $(GFILES)

html: $(HTMLFILES)

gallinahtml: $(GHTMLFILES)

all.ps: $(VFILES)
	$(COQDOC) -ps -o $@ `$(COQDEP) -sort -suffix .v $(VFILES)`

all-gal.ps: $(VFILES)
	$(COQDOC) -ps -g -o $@ `$(COQDEP) -sort -suffix .v $(VFILES)`



####################
#                  #
# Special targets. #
#                  #
####################

.PHONY: all opt byte archclean clean install depend html

.SUFFIXES: .v .vo .vi .g .html .tex .g.tex .g.html

.v.vo:
	$(COQC) $(COQDEBUG) $(COQFLAGS) $*

.v.vi:
	$(COQC) -i $(COQDEBUG) $(COQFLAGS) $*

.v.g:
	$(GALLINA) $<

.v.tex:
	$(COQDOC) -latex $< -o $@

.v.html:
	$(COQDOC) -html $< -o $@

.v.g.tex:
	$(COQDOC) -latex -g $< -o $@

.v.g.html:
	$(COQDOC) -html -g $< -o $@

byte:
	$(MAKE) all "OPT=-byte"

opt:
	$(MAKE) all "OPT=-opt"

include .depend

.depend depend:
	rm -f .depend
	$(COQDEP) -i $(COQLIBS) $(VFILES) *.ml *.mli >.depend
	$(COQDEP) $(COQLIBS) -suffix .html $(VFILES) >>.depend

install:
	mkdir -p `$(COQC) -where`/user-contrib
	cp -f $(VOFILES) `$(COQC) -where`/user-contrib

clean:
	rm -f *.cmo *.cmi *.cmx *.o $(VOFILES) $(VIFILES) $(GFILES) *~
	rm -f all.ps all-gal.ps $(HTMLFILES) $(GHTMLFILES)

archclean:
	rm -f *.cmx *.o

html:

# WARNING
#
# This Makefile has been automagically generated by coq_makefile
# Edit at your own risks !
#
# END OF WARNING

