diff --git a/BaseLib/BuildInfo.h.in b/BaseLib/BuildInfo.h.in
new file mode 100644
index 0000000000000000000000000000000000000000..145411c6c79afdf91edc64b3ce9494a8acb3e082
--- /dev/null
+++ b/BaseLib/BuildInfo.h.in
@@ -0,0 +1,27 @@
+/**
+ * \file BuildInfo.h.in
+ * 24/08/2010 LB Initial implementation
+ * #defines which gets set through CMake
+ */
+
+#ifndef BUILDINFO_H
+#define BUILDINFO_H
+
+#cmakedefine CMAKE_CMD_ARGS "${CMAKE_CMD_ARGS}"
+#cmakedefine CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}"
+
+// #cmakedefine SVN_REVISION "${SVN_REVISION}"
+// #cmakedefine GIT_COMMIT_INFO "${GIT_COMMIT_INFO}"
+// #cmakedefine GIT_BRANCH_INFO "${GIT_BRANCH_INFO}"
+// #cmakedefine BUILD_TIMESTAMP "${BUILD_TIMESTAMP}"
+// #cmakedefine CMAKE_RUN_TIMESTAMP ""
+// #cmakedefine CMAKE_SYSTEM "${CMAKE_SYSTEM}-x${BITS}"
+
+#cmakedefine CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}"
+#cmakedefine CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER}"
+#cmakedefine CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}"
+#cmakedefine CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}"
+#cmakedefine CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}"
+#cmakedefine CMAKE_GENERATOR "${CMAKE_GENERATOR}"
+
+#endif // BUILDINFO_H
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aa96b25ab4005fe55ded399da3f09bc84a590f99..d1a3df61a10e9c9f8f00cc78854ac511a08a37d3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,6 +34,11 @@ IF (OGS_CMAKE_DEBUG)
 	list_all_cmake_variable_values()
 ENDIF (OGS_CMAKE_DEBUG)
 
+OPTION(OGS_BUILD_INFO "Should build information be generated" ON)
+IF (OGS_BUILD_INFO)
+	ADD_DEFINITIONS (-DOGS_BUILD_INFO)
+ENDIF (OGS_BUILD_INFO)
+
 ######################
 ### Subdirectories ###
 ######################
@@ -52,3 +57,7 @@ IF(NOT MSVC)
         ADD_SUBDIRECTORY( SimpleTests/SolverTests )
 ENDIF(NOT MSVC)
 
+# Create Configure.h
+CONFIGURE_FILE (BaseLib/BuildInfo.h.in ${PROJECT_BINARY_DIR}/BaseLib/BuildInfo.h)
+
+
diff --git a/SimpleTests/MatrixTests/CMakeLists.txt b/SimpleTests/MatrixTests/CMakeLists.txt
index bec0e87864f811454ddfec67f5b3dbe7fffad7a6..3f6ca5d90ca80014c5d32162e666ba3c4392701b 100644
--- a/SimpleTests/MatrixTests/CMakeLists.txt
+++ b/SimpleTests/MatrixTests/CMakeLists.txt
@@ -12,6 +12,7 @@ ENDIF (CMAKE_USE_PTHREADS_INIT )
 INCLUDE_DIRECTORIES(
         .
 	${CMAKE_SOURCE_DIR}/BaseLib/
+	${CMAKE_BINARY_DIR}/BaseLib/
 	${CMAKE_SOURCE_DIR}/BaseLib/logog/include
 	${CMAKE_SOURCE_DIR}/MathLib/
 )
diff --git a/SimpleTests/MatrixTests/MatVecMultNDPerm.cpp b/SimpleTests/MatrixTests/MatVecMultNDPerm.cpp
index 33d6ed2449256aa007951c1a1764199a7534772a..c5059d012c597ac6da5a261f69960566a168e8db 100644
--- a/SimpleTests/MatrixTests/MatVecMultNDPerm.cpp
+++ b/SimpleTests/MatrixTests/MatVecMultNDPerm.cpp
@@ -9,6 +9,7 @@
 
 #ifdef OGS_BUILD_INFO
 #include "BuildInfo.h"
+#include <sys/unistd.h>
 #endif
 
 // BaseLib
@@ -79,7 +80,17 @@ int main(int argc, char *argv[])
 	logogCout->SetFormatter(*custom_format);
 
 #ifdef OGS_BUILD_INFO
-	INFO("git commit: %s, executed on machine: ", GIT_COMMIT_INFO);
+	INFO("compiler: %s", CMAKE_CXX_COMPILER);
+	if (std::string(CMAKE_BUILD_TYPE).compare("Release") == 0) {
+		INFO("CXX_FLAGS: %s %s", CMAKE_CXX_FLAGS, CMAKE_CXX_FLAGS_RELEASE);
+	} else {
+		INFO("CXX_FLAGS: %s %s", CMAKE_CXX_FLAGS, CMAKE_CXX_FLAGS_DEBUG);
+	}
+	const size_t length(256);
+	char *hostname(new char[length]);
+	gethostname (hostname, length);
+	INFO("hostname: %s", hostname);
+	delete [] hostname;
 #endif
 
 	// *** reading matrix in crs format from file
@@ -95,7 +106,7 @@ int main(int argc, char *argv[])
 		CS_read(in, n, iA, jA, A);
 		timer.stop();
 		if (verbose) {
-			INFO("ok, %e s", timer.elapsed());
+			INFO("\t- took %e s", timer.elapsed());
 		}
 	} else {
 		ERR("error reading matrix from %s", fname_mat.c_str());
@@ -103,7 +114,7 @@ int main(int argc, char *argv[])
 	}
 	unsigned nnz(iA[n]);
 	if (verbose) {
-		INFO("Parameters read: n=%d, nnz=%d", n, nnz);
+		INFO("\tParameters read: n=%d, nnz=%d", n, nnz);
 	}
 
 	MathLib::CRSMatrixReordered mat(n, iA, jA, A);