diff --git a/.gitignore b/.gitignore
index 5ecb4c908bde9f33a0f623d2e6a54f5af4bce94d..1eeb96df674c443feed628d1bece97a9b9eaf457 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,6 @@
 # executable files
 coalg
 coalgcompare
+
+# libraries
+lib/
diff --git a/Makefile b/Makefile
index 7592426310bfc69da450f4a3f10e0a4456968541..7a3cc88aeed5c62199997a591413d7061f22f7ea 100644
--- a/Makefile
+++ b/Makefile
@@ -66,7 +66,9 @@ minisat.cmxa: minisat.cmx minisat_stub.o
 COALG_OBJS := minisat$(SUFFIXLIB) \
               genAndComp$(SUFFIX) MiscSolver$(SUFFIX) altGenlex$(SUFFIX) HashConsing$(SUFFIX) \
               ALCFormula$(SUFFIX) ALCMisc$(SUFFIX) ALCGraph$(SUFFIX) \
-              CoAlgFormula$(SUFFIX) CoAlgMisc$(SUFFIX) CoAlgLogics$(SUFFIX) CoAlgReasoner$(SUFFIX)
+              CoAlgFormula$(SUFFIX) CoAlgMisc$(SUFFIX) CoAlgLogics$(SUFFIX) \
+              CoAlgReasoner$(SUFFIX) \
+              lib/ocamlgraph-1.8.3/graph$(SUFFIX)
 
 coalg: $(COALG_OBJS) coalg$(SUFFIX)
 	$(OC) -o coalg $(FLAGS) $(LIBS) $^
@@ -99,6 +101,22 @@ clean:
 	$(RM) -f .depend
 	$(RM) -f $(PROGS)
 	$(RM) -f *.a
+	$(RM) -rf lib/
+
+GRAPHLIBTAR := lib/ocamlgraph-1.8.3.tar.gz
+
+$(GRAPHLIBTAR):
+	mkdir -p lib/
+	wget -O $@ http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.3.tar.gz
+
+lib/ocamlgraph-1.8.3/src/graphml.ml: $(GRAPHLIBTAR)
+	tar xf $(GRAPHLIBTAR) -C lib/
+	touch $@
+
+
+lib/ocamlgraph-1.8.3/graph$(SUFFIX): lib/ocamlgraph-1.8.3/src/graphml.ml
+	cd lib/ocamlgraph-1.8.3/ ; ./configure
+	make -C lib/ocamlgraph-1.8.3/
 
 
 .PHONY: depend