OCAMLMAKEFILE=OcamlMakefile

BASE := base/bairePervasives.ml\
	base/baireList.ml

STREAM := \
	base/streamHeader.ml\
	stream/stream.ml\
	stream/streamII.ml\
	stream/streamIII.ml\
	stream/streamIV.ml\
	stream/streamVI.ml

SET := 	set/unbalancedSet.ml\
	set/orderedListSet.ml\
	set/avlSet.ml\
	set/redBlackSet.ml\
	set/weightBalancedSet.ml\
	set/avlMutableSet.ml\
	set/unbalancedDiet.ml\
	set/digitalTrie.ml\
	\
	set/range2DSet.ml\
	set/avlRange2DSet.ml

MAP := 	map/unbalancedMap.ml\
	map/orderedListMap.ml\
	map/avlMap.ml\
	map/redBlackMap.ml\
	map/weightBalancedMap.ml\
	map/avlMutableMap.ml\
	\
	map/range2DMap.ml\
	map/avlRange2DMap.ml

TRIE := trie/lexicalSet.ml\
	trie/lexicalMap.ml\
	trie/avlLexicalSet.ml\
	trie/avlLexicalMap.ml

HEAP := heap/binaryBinomialHeap.ml\
	heap/binomialHeap.ml\
	heap/pairingHeap.ml\
	heap/simpleHeap.ml\
	heap/splayHeap.ml\
	heap/leftistHeap.ml

PRIORITYQUEUE := \
	priorityQueue/cartesianHeap.ml\
	priorityQueue/binaryBinomialHeapPQ.ml\
	priorityQueue/binomialHeapPQ.ml

GRAPH := \
	graph/adjacencyListGraph.ml\
	graph/mapGraph.ml\
	graph/rangeGraph.ml\
	\
	graph/functionalRangeGraph.ml\
	graph/functionalHashGraph.ml\
	graph/listRangeGraph.ml\
	graph/toppedListRangeGraph.ml

ABGRAPH := abgraph/abRangeGraph.ml

MISC := misc/cartesianTree.ml\
	misc/dijkstra.ml

SOURCES = $(BASE) $(STREAM) $(SET) $(MAP) $(TRIE) $(HEAP) $(PRIORITYQUEUE)\
	$(GRAPH) $(ABGRAPH) $(MISC)	

SOURCES_ML  = $(filter %.ml, $(SOURCES))
SOURCES_MLI = $(SOURCES_ML:.ml=.mli)
SOURCES_CMI = $(SOURCES_MLI:.mli=.cmi)

RESULT := baire

all: bcl
install: libinstall
uninstall: libuninstall

OCAML_LIB_INSTALL = library

OCAMLDOCFLAGS = -v -I set -I map -I trie -I priorityQueue -I heap -I graph \
	 -I abgraph $(SOURCES)

LIBINSTALL_FILES = $(SOURCES_CMI) baire.cma

include $(OCAMLMAKEFILE)