Index: Makefile.am
===================================================================
--- Makefile.am	(revision 314)
+++ Makefile.am	(revision 227)
@@ -25,5 +25,4 @@
 bin_PROGRAMS =
 check_PROGRAMS =
-dist_bin_SCRIPTS =
 TESTS =
 XFAIL_TESTS =
@@ -33,4 +32,5 @@
 include doc/Makefile.am
 include demo/Makefile.am
+include benchmark/Makefile.am
 include tools/Makefile.am
 
Index: README
===================================================================
--- README	(revision 314)
+++ README	(revision 246)
@@ -38,4 +38,8 @@
    Contains programs to check the integrity and correctness of LEMON.
 
+benchmark/
+  
+   Contains programs for measuring the performance of algorithms.
+
 tools/
 
Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 146)
+++ benchmark/Makefile.am	(revision 146)
@@ -0,0 +1,7 @@
+if WANT_BENCHMARK
+
+noinst_HEADERS +=
+
+noinst_PROGRAMS +=
+
+endif WANT_BENCHMARK
Index: configure.ac
===================================================================
--- configure.ac	(revision 314)
+++ configure.ac	(revision 296)
@@ -82,4 +82,17 @@
 AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
 
+dnl Disable/enable building the benchmarks.
+AC_ARG_ENABLE([benchmark],
+AS_HELP_STRING([--enable-benchmark], [build the benchmarks])
+AS_HELP_STRING([--disable-benchmark], [do not build the benchmarks @<:@default@:>@]),
+              [], [enable_benchmark=no])
+AC_MSG_CHECKING([whether to build the benchmarks])
+if test x"$enable_benchmark" != x"no"; then
+  AC_MSG_RESULT([yes])
+else
+  AC_MSG_RESULT([no])
+fi
+AM_CONDITIONAL([WANT_BENCHMARK], [test x"$enable_benchmark" != x"no"])
+
 dnl Checks for header files.
 AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h)
@@ -120,4 +133,5 @@
 #echo SOPLEX support................ : $lx_soplex_found
 #echo
+echo Build benchmarks.............. : $enable_benchmark
 echo Build demo programs........... : $enable_demo
 echo Build additional tools........ : $enable_tools
Index: demo/arg_parser_demo.cc
===================================================================
--- demo/arg_parser_demo.cc	(revision 209)
+++ demo/arg_parser_demo.cc	(revision 315)
@@ -28,5 +28,5 @@
 
 using namespace lemon;
-int main(int argc, const char **argv)
+int main(int argc, char **argv)
 {
   // Initialize the argument parser
Index: lemon/arg_parser.cc
===================================================================
--- lemon/arg_parser.cc	(revision 214)
+++ lemon/arg_parser.cc	(revision 315)
@@ -27,10 +27,9 @@
   }
 
-  ArgParser::ArgParser(int argc, const char **argv) :_argc(argc), _argv(argv),
-                                                     _command_name(argv[0]) {
+  ArgParser::ArgParser(int argc, const char * const *argv)
+    :_argc(argc), _argv(argv), _command_name(argv[0]) {
     funcOption("-help","Print a short help message",_showHelp,this);
     synonym("help","-help");
     synonym("h","-help");
-
   }
 
Index: lemon/arg_parser.h
===================================================================
--- lemon/arg_parser.h	(revision 290)
+++ lemon/arg_parser.h	(revision 315)
@@ -47,5 +47,5 @@
 
     int _argc;
-    const char **_argv;
+    const char * const *_argv;
 
     enum OptType { UNKNOWN=0, BOOL=1, STRING=2, DOUBLE=3, INTEGER=4, FUNC=5 };
@@ -120,5 +120,5 @@
 
     ///Constructor
-    ArgParser(int argc, const char **argv);
+    ArgParser(int argc, const char * const *argv);
 
     ~ArgParser();
Index: scripts/lemon-0.x-to-1.x.sh
===================================================================
--- scripts/lemon-0.x-to-1.x.sh	(revision 310)
+++ scripts/lemon-0.x-to-1.x.sh	(revision 310)
@@ -0,0 +1,127 @@
+#!/bin/bash
+
+set -e
+
+if [ $# -eq 0 -o x$1 = "x-h" -o x$1 = "x-help" -o x$1 = "x--help" ]; then
+	echo "Usage:"
+	echo "  $0 source-file"
+	exit
+fi
+
+TMP=`mktemp`
+
+sed	-e "s/undirected graph/_gr_aph_label_/g"\
+	-e "s/undirected edge/_ed_ge_label_/g"\
+	-e "s/graph_/_gr_aph_label__/g"\
+	-e "s/_graph/__gr_aph_label_/g"\
+	-e "s/UGraph/_Gr_aph_label_/g"\
+	-e "s/uGraph/_gr_aph_label_/g"\
+	-e "s/ugraph/_gr_aph_label_/g"\
+	-e "s/Graph/_Digr_aph_label_/g"\
+	-e "s/graph/_digr_aph_label_/g"\
+	-e "s/UEdge/_Ed_ge_label_/g"\
+	-e "s/uEdge/_ed_ge_label_/g"\
+	-e "s/uedge/_ed_ge_label_/g"\
+	-e "s/IncEdgeIt/_In_cEd_geIt_label_/g"\
+	-e "s/Edge/_Ar_c_label_/g"\
+	-e "s/edge/_ar_c_label_/g"\
+	-e "s/ANode/_Re_d_label_/g"\
+	-e "s/BNode/_Blu_e_label_/g"\
+	-e "s/A-Node/_Re_d_label_/g"\
+	-e "s/B-Node/_Blu_e_label_/g"\
+	-e "s/anode/_re_d_label_/g"\
+	-e "s/bnode/_blu_e_label_/g"\
+	-e "s/aNode/_re_d_label_/g"\
+	-e "s/bNode/_blu_e_label_/g"\
+	-e "s/_Digr_aph_label_/Digraph/g"\
+	-e "s/_digr_aph_label_/digraph/g"\
+	-e "s/_Gr_aph_label_/Graph/g"\
+	-e "s/_gr_aph_label_/graph/g"\
+	-e "s/_Ar_c_label_/Arc/g"\
+	-e "s/_ar_c_label_/arc/g"\
+	-e "s/_Ed_ge_label_/Edge/g"\
+	-e "s/_ed_ge_label_/edge/g"\
+	-e "s/_In_cEd_geIt_label_/IncEdgeIt/g"\
+	-e "s/_Re_d_label_/Red/g"\
+	-e "s/_Blu_e_label_/Blue/g"\
+	-e "s/_re_d_label_/red/g"\
+	-e "s/_blu_e_label_/blue/g"\
+	-e "s/\(\W\)DefPredMap\(\W\)/\1SetPredMap\2/g"\
+	-e "s/\(\W\)DefPredMap$/\1SetPredMap/g"\
+	-e "s/^DefPredMap\(\W\)/SetPredMap\1/g"\
+	-e "s/^DefPredMap$/SetPredMap/g"\
+	-e "s/\(\W\)DefDistMap\(\W\)/\1SetDistMap\2/g"\
+	-e "s/\(\W\)DefDistMap$/\1SetDistMap/g"\
+	-e "s/^DefDistMap\(\W\)/SetDistMap\1/g"\
+	-e "s/^DefDistMap$/SetDistMap/g"\
+	-e "s/\(\W\)DefReachedMap\(\W\)/\1SetReachedMap\2/g"\
+	-e "s/\(\W\)DefReachedMap$/\1SetReachedMap/g"\
+	-e "s/^DefReachedMap\(\W\)/SetReachedMap\1/g"\
+	-e "s/^DefReachedMap$/SetReachedMap/g"\
+	-e "s/\(\W\)DefProcessedMap\(\W\)/\1SetProcessedMap\2/g"\
+	-e "s/\(\W\)DefProcessedMap$/\1SetProcessedMap/g"\
+	-e "s/^DefProcessedMap\(\W\)/SetProcessedMap\1/g"\
+	-e "s/^DefProcessedMap$/SetProcessedMap/g"\
+	-e "s/\(\W\)DefHeap\(\W\)/\1SetHeap\2/g"\
+	-e "s/\(\W\)DefHeap$/\1SetHeap/g"\
+	-e "s/^DefHeap\(\W\)/SetHeap\1/g"\
+	-e "s/^DefHeap$/SetHeap/g"\
+	-e "s/\(\W\)DefStandardHeap\(\W\)/\1SetStandradHeap\2/g"\
+	-e "s/\(\W\)DefStandardHeap$/\1SetStandradHeap/g"\
+	-e "s/^DefStandardHeap\(\W\)/SetStandradHeap\1/g"\
+	-e "s/^DefStandardHeap$/SetStandradHeap/g"\
+	-e "s/\(\W\)DefOperationTraits\(\W\)/\1SetOperationTraits\2/g"\
+	-e "s/\(\W\)DefOperationTraits$/\1SetOperationTraits/g"\
+	-e "s/^DefOperationTraits\(\W\)/SetOperationTraits\1/g"\
+	-e "s/^DefOperationTraits$/SetOperationTraits/g"\
+	-e "s/\(\W\)DefProcessedMapToBeDefaultMap\(\W\)/\1SetStandardProcessedMap\2/g"\
+	-e "s/\(\W\)DefProcessedMapToBeDefaultMap$/\1SetStandardProcessedMap/g"\
+	-e "s/^DefProcessedMapToBeDefaultMap\(\W\)/SetStandardProcessedMap\1/g"\
+	-e "s/^DefProcessedMapToBeDefaultMap$/SetStandardProcessedMap/g"\
+	-e "s/\(\W\)IntegerMap\(\W\)/\1RangeMap\2/g"\
+	-e "s/\(\W\)IntegerMap$/\1RangeMap/g"\
+	-e "s/^IntegerMap\(\W\)/RangeMap\1/g"\
+	-e "s/^IntegerMap$/RangeMap/g"\
+	-e "s/\(\W\)integerMap\(\W\)/\1rangeMap\2/g"\
+	-e "s/\(\W\)integerMap$/\1rangeMap/g"\
+	-e "s/^integerMap\(\W\)/rangeMap\1/g"\
+	-e "s/^integerMap$/rangeMap/g"\
+	-e "s/\(\W\)copyGraph\(\W\)/\1graphCopy\2/g"\
+	-e "s/\(\W\)copyGraph$/\1graphCopy/g"\
+	-e "s/^copyGraph\(\W\)/graphCopy\1/g"\
+	-e "s/^copyGraph$/graphCopy/g"\
+	-e "s/\(\W\)copyDigraph\(\W\)/\1digraphCopy\2/g"\
+	-e "s/\(\W\)copyDigraph$/\1digraphCopy/g"\
+	-e "s/^copyDigraph\(\W\)/digraphCopy\1/g"\
+	-e "s/^copyDigraph$/digraphCopy/g"\
+	-e "s/\(\W\)\([sS]\)tdMap\(\W\)/\1\2parseMap\3/g"\
+	-e "s/\(\W\)\([sS]\)tdMap$/\1\2parseMap/g"\
+	-e "s/^\([sS]\)tdMap\(\W\)/\1parseMap\2/g"\
+	-e "s/^\([sS]\)tdMap$/\1parseMap/g"\
+	-e "s/\(\W\)\([Ff]\)unctorMap\(\W\)/\1\2unctorToMap\3/g"\
+	-e "s/\(\W\)\([Ff]\)unctorMap$/\1\2unctorToMap/g"\
+	-e "s/^\([Ff]\)unctorMap\(\W\)/\1unctorToMap\2/g"\
+	-e "s/^\([Ff]\)unctorMap$/\1unctorToMap/g"\
+	-e "s/\(\W\)\([Mm]\)apFunctor\(\W\)/\1\2apToFunctor\3/g"\
+	-e "s/\(\W\)\([Mm]\)apFunctor$/\1\2apToFunctor/g"\
+	-e "s/^\([Mm]\)apFunctor\(\W\)/\1apToFunctor\2/g"\
+	-e "s/^\([Mm]\)apFunctor$/\1apToFunctor/g"\
+	-e "s/\(\W\)\([Ff]\)orkWriteMap\(\W\)/\1\2orkMap\3/g"\
+	-e "s/\(\W\)\([Ff]\)orkWriteMap$/\1\2orkMap/g"\
+	-e "s/^\([Ff]\)orkWriteMap\(\W\)/\1orkMap\2/g"\
+	-e "s/^\([Ff]\)orkWriteMap$/\1orkMap/g"\
+	-e "s/\(\W\)StoreBoolMap\(\W\)/\1LoggerBoolMap\2/g"\
+	-e "s/\(\W\)StoreBoolMap$/\1LoggerBoolMap/g"\
+	-e "s/^StoreBoolMap\(\W\)/LoggerBoolMap\1/g"\
+	-e "s/^StoreBoolMap$/LoggerBoolMap/g"\
+	-e "s/\(\W\)storeBoolMap\(\W\)/\1loggerBoolMap\2/g"\
+	-e "s/\(\W\)storeBoolMap$/\1loggerBoolMap/g"\
+	-e "s/^storeBoolMap\(\W\)/loggerBoolMap\1/g"\
+	-e "s/^storeBoolMap$/loggerBoolMap/g"\
+	-e "s/\(\W\)BoundingBox\(\W\)/\1Box\2/g"\
+	-e "s/\(\W\)BoundingBox$/\1Box/g"\
+	-e "s/^BoundingBox\(\W\)/Box\1/g"\
+	-e "s/^BoundingBox$/Box/g"\
+<$1 > $TMP
+
+mv $TMP $1
Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am	(revision 314)
+++ tools/Makefile.am	(revision 146)
@@ -2,5 +2,4 @@
 
 bin_PROGRAMS +=
-dist_bin_SCRIPTS += tools/lemon-0.x-to-1.x.sh
 
 endif WANT_TOOLS
Index: ols/lemon-0.x-to-1.x.sh
===================================================================
--- tools/lemon-0.x-to-1.x.sh	(revision 314)
+++ 	(revision )
@@ -1,127 +1,0 @@
-#!/bin/bash
-
-set -e
-
-if [ $# -eq 0 -o x$1 = "x-h" -o x$1 = "x-help" -o x$1 = "x--help" ]; then
-	echo "Usage:"
-	echo "  $0 source-file"
-	exit
-fi
-
-TMP=`mktemp`
-
-sed	-e "s/undirected graph/_gr_aph_label_/g"\
-	-e "s/undirected edge/_ed_ge_label_/g"\
-	-e "s/graph_/_gr_aph_label__/g"\
-	-e "s/_graph/__gr_aph_label_/g"\
-	-e "s/UGraph/_Gr_aph_label_/g"\
-	-e "s/uGraph/_gr_aph_label_/g"\
-	-e "s/ugraph/_gr_aph_label_/g"\
-	-e "s/Graph/_Digr_aph_label_/g"\
-	-e "s/graph/_digr_aph_label_/g"\
-	-e "s/UEdge/_Ed_ge_label_/g"\
-	-e "s/uEdge/_ed_ge_label_/g"\
-	-e "s/uedge/_ed_ge_label_/g"\
-	-e "s/IncEdgeIt/_In_cEd_geIt_label_/g"\
-	-e "s/Edge/_Ar_c_label_/g"\
-	-e "s/edge/_ar_c_label_/g"\
-	-e "s/ANode/_Re_d_label_/g"\
-	-e "s/BNode/_Blu_e_label_/g"\
-	-e "s/A-Node/_Re_d_label_/g"\
-	-e "s/B-Node/_Blu_e_label_/g"\
-	-e "s/anode/_re_d_label_/g"\
-	-e "s/bnode/_blu_e_label_/g"\
-	-e "s/aNode/_re_d_label_/g"\
-	-e "s/bNode/_blu_e_label_/g"\
-	-e "s/_Digr_aph_label_/Digraph/g"\
-	-e "s/_digr_aph_label_/digraph/g"\
-	-e "s/_Gr_aph_label_/Graph/g"\
-	-e "s/_gr_aph_label_/graph/g"\
-	-e "s/_Ar_c_label_/Arc/g"\
-	-e "s/_ar_c_label_/arc/g"\
-	-e "s/_Ed_ge_label_/Edge/g"\
-	-e "s/_ed_ge_label_/edge/g"\
-	-e "s/_In_cEd_geIt_label_/IncEdgeIt/g"\
-	-e "s/_Re_d_label_/Red/g"\
-	-e "s/_Blu_e_label_/Blue/g"\
-	-e "s/_re_d_label_/red/g"\
-	-e "s/_blu_e_label_/blue/g"\
-	-e "s/\(\W\)DefPredMap\(\W\)/\1SetPredMap\2/g"\
-	-e "s/\(\W\)DefPredMap$/\1SetPredMap/g"\
-	-e "s/^DefPredMap\(\W\)/SetPredMap\1/g"\
-	-e "s/^DefPredMap$/SetPredMap/g"\
-	-e "s/\(\W\)DefDistMap\(\W\)/\1SetDistMap\2/g"\
-	-e "s/\(\W\)DefDistMap$/\1SetDistMap/g"\
-	-e "s/^DefDistMap\(\W\)/SetDistMap\1/g"\
-	-e "s/^DefDistMap$/SetDistMap/g"\
-	-e "s/\(\W\)DefReachedMap\(\W\)/\1SetReachedMap\2/g"\
-	-e "s/\(\W\)DefReachedMap$/\1SetReachedMap/g"\
-	-e "s/^DefReachedMap\(\W\)/SetReachedMap\1/g"\
-	-e "s/^DefReachedMap$/SetReachedMap/g"\
-	-e "s/\(\W\)DefProcessedMap\(\W\)/\1SetProcessedMap\2/g"\
-	-e "s/\(\W\)DefProcessedMap$/\1SetProcessedMap/g"\
-	-e "s/^DefProcessedMap\(\W\)/SetProcessedMap\1/g"\
-	-e "s/^DefProcessedMap$/SetProcessedMap/g"\
-	-e "s/\(\W\)DefHeap\(\W\)/\1SetHeap\2/g"\
-	-e "s/\(\W\)DefHeap$/\1SetHeap/g"\
-	-e "s/^DefHeap\(\W\)/SetHeap\1/g"\
-	-e "s/^DefHeap$/SetHeap/g"\
-	-e "s/\(\W\)DefStandardHeap\(\W\)/\1SetStandradHeap\2/g"\
-	-e "s/\(\W\)DefStandardHeap$/\1SetStandradHeap/g"\
-	-e "s/^DefStandardHeap\(\W\)/SetStandradHeap\1/g"\
-	-e "s/^DefStandardHeap$/SetStandradHeap/g"\
-	-e "s/\(\W\)DefOperationTraits\(\W\)/\1SetOperationTraits\2/g"\
-	-e "s/\(\W\)DefOperationTraits$/\1SetOperationTraits/g"\
-	-e "s/^DefOperationTraits\(\W\)/SetOperationTraits\1/g"\
-	-e "s/^DefOperationTraits$/SetOperationTraits/g"\
-	-e "s/\(\W\)DefProcessedMapToBeDefaultMap\(\W\)/\1SetStandardProcessedMap\2/g"\
-	-e "s/\(\W\)DefProcessedMapToBeDefaultMap$/\1SetStandardProcessedMap/g"\
-	-e "s/^DefProcessedMapToBeDefaultMap\(\W\)/SetStandardProcessedMap\1/g"\
-	-e "s/^DefProcessedMapToBeDefaultMap$/SetStandardProcessedMap/g"\
-	-e "s/\(\W\)IntegerMap\(\W\)/\1RangeMap\2/g"\
-	-e "s/\(\W\)IntegerMap$/\1RangeMap/g"\
-	-e "s/^IntegerMap\(\W\)/RangeMap\1/g"\
-	-e "s/^IntegerMap$/RangeMap/g"\
-	-e "s/\(\W\)integerMap\(\W\)/\1rangeMap\2/g"\
-	-e "s/\(\W\)integerMap$/\1rangeMap/g"\
-	-e "s/^integerMap\(\W\)/rangeMap\1/g"\
-	-e "s/^integerMap$/rangeMap/g"\
-	-e "s/\(\W\)copyGraph\(\W\)/\1graphCopy\2/g"\
-	-e "s/\(\W\)copyGraph$/\1graphCopy/g"\
-	-e "s/^copyGraph\(\W\)/graphCopy\1/g"\
-	-e "s/^copyGraph$/graphCopy/g"\
-	-e "s/\(\W\)copyDigraph\(\W\)/\1digraphCopy\2/g"\
-	-e "s/\(\W\)copyDigraph$/\1digraphCopy/g"\
-	-e "s/^copyDigraph\(\W\)/digraphCopy\1/g"\
-	-e "s/^copyDigraph$/digraphCopy/g"\
-	-e "s/\(\W\)\([sS]\)tdMap\(\W\)/\1\2parseMap\3/g"\
-	-e "s/\(\W\)\([sS]\)tdMap$/\1\2parseMap/g"\
-	-e "s/^\([sS]\)tdMap\(\W\)/\1parseMap\2/g"\
-	-e "s/^\([sS]\)tdMap$/\1parseMap/g"\
-	-e "s/\(\W\)\([Ff]\)unctorMap\(\W\)/\1\2unctorToMap\3/g"\
-	-e "s/\(\W\)\([Ff]\)unctorMap$/\1\2unctorToMap/g"\
-	-e "s/^\([Ff]\)unctorMap\(\W\)/\1unctorToMap\2/g"\
-	-e "s/^\([Ff]\)unctorMap$/\1unctorToMap/g"\
-	-e "s/\(\W\)\([Mm]\)apFunctor\(\W\)/\1\2apToFunctor\3/g"\
-	-e "s/\(\W\)\([Mm]\)apFunctor$/\1\2apToFunctor/g"\
-	-e "s/^\([Mm]\)apFunctor\(\W\)/\1apToFunctor\2/g"\
-	-e "s/^\([Mm]\)apFunctor$/\1apToFunctor/g"\
-	-e "s/\(\W\)\([Ff]\)orkWriteMap\(\W\)/\1\2orkMap\3/g"\
-	-e "s/\(\W\)\([Ff]\)orkWriteMap$/\1\2orkMap/g"\
-	-e "s/^\([Ff]\)orkWriteMap\(\W\)/\1orkMap\2/g"\
-	-e "s/^\([Ff]\)orkWriteMap$/\1orkMap/g"\
-	-e "s/\(\W\)StoreBoolMap\(\W\)/\1LoggerBoolMap\2/g"\
-	-e "s/\(\W\)StoreBoolMap$/\1LoggerBoolMap/g"\
-	-e "s/^StoreBoolMap\(\W\)/LoggerBoolMap\1/g"\
-	-e "s/^StoreBoolMap$/LoggerBoolMap/g"\
-	-e "s/\(\W\)storeBoolMap\(\W\)/\1loggerBoolMap\2/g"\
-	-e "s/\(\W\)storeBoolMap$/\1loggerBoolMap/g"\
-	-e "s/^storeBoolMap\(\W\)/loggerBoolMap\1/g"\
-	-e "s/^storeBoolMap$/loggerBoolMap/g"\
-	-e "s/\(\W\)BoundingBox\(\W\)/\1Box\2/g"\
-	-e "s/\(\W\)BoundingBox$/\1Box/g"\
-	-e "s/^BoundingBox\(\W\)/Box\1/g"\
-	-e "s/^BoundingBox$/Box/g"\
-<$1 > $TMP
-
-mv $TMP $1
