diff --git a/Makefile b/Makefile
index d48aee959aa1030065de035b6dbb4ed262f77610..11defae43a82aab289474e1dab8d57ebbfe6111a 100644
--- a/Makefile
+++ b/Makefile
@@ -29,12 +29,14 @@ PROGS := coalg coalgcompare
 LIBS := unix str
 SOURCESMLI := $(wildcard *.mli)
 SOURCESML := $(wildcard *.ml)
+INCS ?= -I/usr/include -I/usr/lib/ocaml
+CXXFLAGS += -Wall -Werror $(INCS)
+LDXX ?= g++
 
 OCAMLC := ocamlc.opt
 OCAMLCFLAGS :=
 OCAMLOPT := ocamlopt.opt
-OCAMLOPTFLAGS := -unsafe -inline 100
-
+OCAMLOPTFLAGS := -cc $(LDXX) -unsafe -inline 100
 
 # No more user input beyond this point.
 
@@ -56,7 +58,6 @@ LIBS := $(patsubst %,%$(SUFFIXLIB),$(LIBS))
 LIBSMLI := $(patsubst %.mli,%.cmi,$(SOURCESMLI))
 LIBSML := $(patsubst %.ml,%$(SUFFIX),$(SOURCESML))
 
-
 .PHONY: all
 all:
 	$(MAKE) $(PARALLEL) $(PROGS)
diff --git a/minisat_stub.cc b/minisat_stub.cc
index 4711e818bcef86c57049c1444b47adb0cf081843..2a8e1f8c38a0a480d3b973bbd9047e426909503d 100644
--- a/minisat_stub.cc
+++ b/minisat_stub.cc
@@ -2,14 +2,14 @@
 #define __STDC_FORMAT_MACROS
 
 extern "C" {
-  #include "caml/mlvalues.h"
-  #include "caml/alloc.h"
-  #include "caml/memory.h"
-  #include "caml/custom.h"
+  #include <caml/mlvalues.h>
+  #include <caml/alloc.h>
+  #include <caml/memory.h>
+  #include <caml/custom.h>
 }
 
 //#include "minisat2/Solver.h"
-#include "minisat/core/Solver.h"
+#include <minisat/core/Solver.h>
 
 //
 using namespace Minisat;