diff --git a/Makefile.am b/Makefile.am
index 85524d76cd3f9e40a05760bc1b79521e361aee6e..4a3367ae65fdf400fbd7eda7129060f130682964 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,13 +1,14 @@
 # $Id: Makefile.am 731 2007-03-17 20:53:00Z christi $
 
 # we need the module file to be able to build via dunecontrol
-EXTRA_DIST=dune.module
+EXTRA_DIST=dune.module \
+  CMakeLists.txt
 
 # don't follow the full GNU-standard
 # need automake >= 1.5
 AUTOMAKE_OPTIONS = foreign 1.5
 
-SUBDIRS = dune doc m4
+SUBDIRS = dune doc m4 cmake
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = dune-fufem.pc
@@ -17,3 +18,8 @@ pkgconfig_DATA = dune-fufem.pc
 DISTCHECK_CONFIGURE_FLAGS = --with-dune-common="$(DUNE_COMMON_ROOT)" --with-dune-geometry="$(DUNE_GEOMETRY_ROOT)" --with-dune-grid="$(DUNE_GRID_ROOT)" --with-dune-istl="$(DUNE_ISTL_ROOT)" --with-dune-localfunctions="$(DUNE_LOCALFUNCTIONS_ROOT)" CXX="$(CXX)" CC="$(CC)" DOXYGEN="true" --enable-parallel=@ENABLE_PARALLEL@ MPICC="$(MPICC)"
 
 include $(top_srcdir)/am/global-rules
+
+# Generate package configuration files for finding
+# installed modules with CMake
+include $(top_srcdir)/am/cmake-pkg-config
+
diff --git a/cmake/Makefile.am b/cmake/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..26735eb4029328e305290cf95dfdc43a0e5fa55d
--- /dev/null
+++ b/cmake/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = modules
+
+include $(top_srcdir)/am/global-rules
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..857ebe8ceafb15f10b918a680c2358bce0983791
--- /dev/null
+++ b/cmake/modules/CMakeLists.txt
@@ -0,0 +1,3 @@
+set(modules "DuneFufemMacros.cmake")
+
+install(FILES ${modules} DESTINATION ${DUNE_INSTALL_MODULEDIR})
diff --git a/cmake/modules/DuneFufemMacros.cmake b/cmake/modules/DuneFufemMacros.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..613dfb664b75999b008f0003a4d7c409cbf409ad
--- /dev/null
+++ b/cmake/modules/DuneFufemMacros.cmake
@@ -0,0 +1 @@
+# File for module specific CMake tests.
diff --git a/cmake/modules/Makefile.am b/cmake/modules/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..4e8575a3895838c3c6bb08156f726526996005db
--- /dev/null
+++ b/cmake/modules/Makefile.am
@@ -0,0 +1,6 @@
+MODULES = DuneFufemMacros.cmake
+modulesdir = $(datadir)/dune/cmake/modules
+dist_modules_DATA = ${MODULES}
+
+include $(top_srcdir)/am/global-rules
+EXTRA_DIST = CMakeLists.txt