Codebase list coq / e7236048-92ea-4cdf-8ac0-eb3875e0aff8/main Makefile.dev
e7236048-92ea-4cdf-8ac0-eb3875e0aff8/main

Tree @e7236048-92ea-4cdf-8ac0-eb3875e0aff8/main (Download .tar.gz)

Makefile.dev @e7236048-92ea-4cdf-8ac0-eb3875e0aff8/mainraw · history · blame

##########################################################################
##         #   The Coq Proof Assistant / The Coq Development Team       ##
##  v      #         Copyright INRIA, CNRS and contributors             ##
## <O___,, # (see version control and CREDITS file for authors & dates) ##
##   \VV/  ###############################################################
##    //   #    This file is distributed under the terms of the         ##
##         #     GNU Lesser General Public License Version 2.1          ##
##         #     (see LICENSE file for the text of the license)         ##
##########################################################################

# Extra targets for developers :
# debug printers, revision, partial targets ...

#########################
# Debug printers in dev/
#########################

.PHONY: devel printers

DEBUGPRINTERS:=dev/top_printers.cmo dev/vm_printers.cmo

devel: printers
printers: $(CORECMA) $(DEBUGPRINTERS)

############
# revision
############

# display the revision number when compiling a checked out source tree

revision:
	$(SHOW)'CHECK revision'
	$(HIDE)rm -f revision.new
	$(HIDE)set -e; \
	./dev/tools/make_git_revision.sh > revision.new
	$(HIDE)set -e; \
	if test -e revision.new; then \
          if test -e revision; then \
	    if test "`cat revision`" = "`cat revision.new`" ; then \
	       rm -f revision.new; \
            else \
               mv -f revision.new revision; \
            fi; \
          else \
            mv -f revision.new revision; \
          fi \
	fi

.PHONY: revision

###################
# Partial builds
###################

# The following partial targets are normally not necessary
# for a complete build of coq, see instead 'make world' for that.
# But these partial targets could be quite handy for quick builds
# of specific components of Coq.

###############################
### 1) general-purpose targets
###############################

coqlight: theories-light tools coqbinaries

states: theories/Init/Prelude.$(VO)

miniopt: $(COQTOPEXE) pluginsopt
minibyte: $(COQTOPBYTE) pluginsbyte

pluginsopt: $(PLUGINSOPT)
pluginsbyte: $(PLUGINS)

# This should build all the ocaml code but not (most of) the .v files
coqocaml: tools coqbinaries $(PLUGINSCMO:.cmo=$(DYNOBJ)) coqide printers bin/votour

.PHONY: coqlight states miniopt minibyte pluginsopt pluginsbyte coqocaml

##########################
### 2) core ML components
##########################

lib: lib/clib.cma lib/lib.cma
kernel: kernel/kernel.cma
byterun: $(BYTERUN)
library: library/library.cma
engine: engine/engine.cma
proofs: proofs/proofs.cma
tactics: tactics/tactics.cma
interp: interp/interp.cma
parsing: parsing/parsing.cma
pretyping: pretyping/pretyping.cma
stm: stm/stm.cma
toplevel: toplevel/toplevel.cma

.PHONY: lib kernel byterun library proofs tactics interp parsing pretyping
.PHONY: engine stm toplevel

######################
### 3) theories files
######################

init: $(filter theories/Init/%, $(THEORIESVO))
logic: $(filter theories/Logic/%, $(THEORIESVO))
arith: $(filter theories/Arith/%, $(THEORIESVO))
bool: $(filter theories/Bool/%, $(THEORIESVO))
parith: $(filter theories/PArith/%, $(THEORIESVO))
narith: $(filter theories/NArith/%, $(THEORIESVO))
zarith: $(filter theories/ZArith/%, $(THEORIESVO))
qarith: $(filter theories/QArith/%, $(THEORIESVO))
lists: $(filter theories/Lists/%, $(THEORIESVO))
strings: $(filter theories/Strings/%, $(THEORIESVO))
sets: $(filter theories/Sets/%, $(THEORIESVO))
fsets: $(filter theories/FSets/%, $(THEORIESVO))
relations: $(filter theories/Relations/%, $(THEORIESVO))
wellfounded: $(filter theories/Wellfounded/%, $(THEORIESVO))
reals: $(filter theories/Reals/%, $(THEORIESVO))
setoids: $(filter theories/Setoids/%, $(THEORIESVO))
sorting: $(filter theories/Sorting/%, $(THEORIESVO))
numbers: $(filter theories/Numbers/%, $(THEORIESVO))
unicode: $(filter theories/Unicode/%, $(THEORIESVO))
classes: $(filter theories/Classes/%, $(THEORIESVO))
program: $(filter theories/Program/%, $(THEORIESVO))
structures: $(filter theories/Structures/%, $(THEORIESVO))
vectors: $(filter theories/Vectors/%, $(THEORIESVO))
msets: $(filter theories/MSets/%, $(THEORIESVO))
compat: $(filter theories/Compat/%, $(THEORIESVO))

theories-light: $(THEORIESLIGHTVO)

noreal: unicode logic arith bool zarith qarith lists sets fsets \
	relations wellfounded setoids sorting

.PHONY: init theories-light noreal
.PHONY: logic arith bool narith zarith qarith lists strings sets
.PHONY: fsets relations wellfounded reals setoids sorting numbers
.PHONY: msets mmaps compat parith classes program unicode structures vectors

################
### 4) plugins
################

OMEGAVO:=$(filter theories/omega/%, $(THEORIESVO))
MICROMEGAVO:=$(filter theories/micromega/%, $(THEORIESVO))
RINGVO:=$(filter theories/setoid_ring/%, $(THEORIESVO))
NSATZVO:=$(filter theories/nsatz/%, $(THEORIESVO))
FUNINDVO:=$(filter theories/funind/%, $(THEORIESVO))
BTAUTOVO:=$(filter theories/btauto/%, $(THEORIESVO))
RTAUTOVO:=$(filter theories/rtauto/%, $(THEORIESVO))
EXTRACTIONVO:=$(filter theories/extraction/%, $(THEORIESVO))
CCVO:=
DERIVEVO:=$(filter theories/derive/%, $(THEORIESVO))
LTACVO:=$(filter theories/ltac/%, $(THEORIESVO))

omega: $(OMEGAVO) $(OMEGACMO)
micromega: $(MICROMEGAVO) $(MICROMEGACMO) $(CSDPCERT)
setoid_ring: $(RINGVO) $(RINGCMO)
nsatz: $(NSATZVO) $(NSATZCMO)
extraction: $(EXTRACTIONCMO) $(EXTRACTIONVO)
funind: $(FUNINDCMO) $(FUNINDVO)
cc: $(CCVO) $(CCCMO)
rtauto: $(RTAUTOVO) $(RTAUTOCMO)
btauto: $(BTAUTOVO) $(BTAUTOCMO)
ltac: $(LTACVO) $(LTACCMO)

.PHONY: omega micromega setoid_ring nsatz extraction
.PHONY: funind cc rtauto btauto ltac

# For emacs:
# Local Variables:
# mode: makefile
# End: