diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4576d73b485edf4306ca1aeb92ad71d26eff7444..fb25022980d1ef2862aef7f211ebee02cb7fc4ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,56 +5,132 @@
 
 project("dune-stuff" CXX)
 
-# cmake specific
-cmake_minimum_required( VERSION 2.8 )
+if(CMAKE_WITH_AUTOTOOLS)
+  # this is how it used to be in the good old days :)
+  # this assumes that we use autotools to configure everything and just use this CMakeLists.txt for the tests and
+  # examples in dune-gdt
+  if( NOT CMAKE_BUILD_TYPE )
+    message( STATUS "No build type selected, setting default build type 'Debug'" )
+    set( CMAKE_BUILD_TYPE "DEBUG" CACHE STRING "DEBUG/RELEASE")
+  endif( NOT CMAKE_BUILD_TYPE )
 
-set( CMAKE_COLOR_MAKEFILE ON)
+  # cmake specific
+  cmake_minimum_required( VERSION 2.8 )
+  set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true )
+  set( CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".lib" ".la" ".a")
+  set( CMAKE_COLOR_MAKEFILE ON)
+  set( CMAKE_VERBOSE_MAKEFILE ON )
 
-# guess dune-common build dir
-if(NOT (dune-common_DIR OR dune-common_ROOT OR
-        "${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
-    string(REPLACE  ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
-      ${PROJECT_BINARY_DIR})
-endif()
+  # local environment
+  set( ENV{PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../local/bin:$ENV{PATH}" )
+  set( ENV{LD_LIBRARY_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../local/lib:$ENV{LD_LIBRARY_PATH}" )
+  set( ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../local/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}" )
 
-#find dune-common and set the module path
-find_package(dune-common REQUIRED)
-list(APPEND CMAKE_MODULE_PATH ${dune-common_MODULE_PATH}
-  "${PROJECT_SOURCE_DIR}/cmake/modules")
+  # needs to come first to include correct config.h
+  include_directories( ${dune-stuff_SOURCE_DIR} )
+  include_directories( ${dune-stuff_BINARY_DIR} )
 
-#include the dune macros
-include(DuneMacros)
+  # dune-stuff cmake includes
+  set(CMAKE_MODULE_PATH
+      ${CMAKE_CURRENT_SOURCE_DIR}/cmake
+      ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
+  )
+  include(DuneUtils)
+  include(GridUtils)
 
-# start a dune project with information from dune.module
-dune_project()
+  # we would like to have fasp
+  #include(FindFASP)
 
-# dune-stuff cmake includes
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
+  add_dune_modules(
+    stuff
+    common
+    pdelab
+    typetree
+    fem
+    istl
+    geometry
+    grid
+    localfunctions
+  )
 
-#----------------------------------------------------------------------------------------------------
-# General Settings
-#----------------------------------------------------------------------------------------------------
-execute_process(
-	COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh
-	OUTPUT_VARIABLE COMMIT
-	ERROR_VARIABLE shell_error
-	OUTPUT_STRIP_TRAILING_WHITESPACE
-)
+  # header
+  file( GLOB_RECURSE stuff "${CMAKE_CURRENT_SOURCE_DIR}/*.hh" )
+  set( COMMON_HEADER ${stuff} ${DUNE_HEADERS} )
+  set_source_files_properties( ${COMMON_HEADER} PROPERTIES HEADER_FILE_ONLY 1 )
 
-include(DuneUtils)
-# configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_config.h )
+  # libs
+  set( COMMON_LIBS
+      ${DUNE_LIBS}
+      ${DUNE_DEFAULT_LIBS}
+      ${PARALIBS}
+      ${CCGNU_LIBRARIES}
+      ${Boost_SYSTEM_LIBS}
+      ${GRIDLIBS}
+      ${FASPLIB}
+  )
 
+  add_subdirectory(dune/stuff/test)
 
-link_directories( "/usr/lib" ${CCGNU_LIBRARY_DIRS} )
+  ADD_EXECUTABLE(this_needs_to_be_here_to_have_header_listing_until_we_have_a_real_executable
+                 "dune/stuff/test/common_color.cc"
+                 ${COMMON_HEADER} )
+  TARGET_LINK_LIBRARIES(this_needs_to_be_here_to_have_header_listing_until_we_have_a_real_executable
+                        ${COMMON_LIBS})
 
-# header
-file( GLOB_RECURSE stuff "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.hh" )
-set( COMMON_HEADER ${stuff} ${DUNE_HEADERS} )
-set_source_files_properties( ${COMMON_HEADER} PROPERTIES HEADER_FILE_ONLY 1 )
+else(CMAKE_WITH_AUTOTOOLS)
+  # this assumes that we run dunecontrol with the --use-cmake option
 
-add_subdirectory(dune)
-#add_subdirectory(examples)
-add_subdirectory("cmake/modules")
-add_subdirectory("cmake/scripts")
+  # cmake specific
+  cmake_minimum_required( VERSION 2.8 )
 
-finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
+  set( CMAKE_COLOR_MAKEFILE ON)
+
+  # guess dune-common build dir
+  if(NOT (dune-common_DIR OR dune-common_ROOT OR
+          "${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
+      string(REPLACE  ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
+        ${PROJECT_BINARY_DIR})
+  endif()
+
+  #find dune-common and set the module path
+  find_package(dune-common REQUIRED)
+  list(APPEND CMAKE_MODULE_PATH ${dune-common_MODULE_PATH}
+    "${PROJECT_SOURCE_DIR}/cmake/modules")
+
+  #include the dune macros
+  include(DuneMacros)
+
+  # start a dune project with information from dune.module
+  dune_project()
+
+  # dune-stuff cmake includes
+  list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
+
+  #----------------------------------------------------------------------------------------------------
+  # General Settings
+  #----------------------------------------------------------------------------------------------------
+  execute_process(
+    COMMAND ${CMAKE_SOURCE_DIR}/getRevision.sh
+    OUTPUT_VARIABLE COMMIT
+    ERROR_VARIABLE shell_error
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+  )
+
+  include(DuneUtils)
+  # configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_config.h )
+
+
+  link_directories( "/usr/lib" ${CCGNU_LIBRARY_DIRS} )
+
+  # header
+  file( GLOB_RECURSE stuff "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.hh" )
+  set( COMMON_HEADER ${stuff} ${DUNE_HEADERS} )
+  set_source_files_properties( ${COMMON_HEADER} PROPERTIES HEADER_FILE_ONLY 1 )
+
+  add_subdirectory(dune)
+  #add_subdirectory(examples)
+  add_subdirectory("cmake/modules")
+  add_subdirectory("cmake/scripts")
+
+  finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
+endif(CMAKE_WITH_AUTOTOOLS)