gnucash maint: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Mon Jul 3 19:24:26 EDT 2017


Updated	 via  https://github.com/Gnucash/gnucash/commit/e67f4500 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/6b14dc5b (commit)
	from  https://github.com/Gnucash/gnucash/commit/7ba5a846 (commit)



commit e67f45003bade92a65eb4d5b6ae067f6c64f5a6b
Author: Rob Gowin <robgowin at gmail.com>
Date:   Tue Jun 6 10:17:03 2017 -0500

    No need for make dist and distcheck when checking autotools build in cmake

diff --git a/src/cmake_modules/MakeDistCheck.cmake b/src/cmake_modules/MakeDistCheck.cmake
index d1fd355..6ff291e8 100644
--- a/src/cmake_modules/MakeDistCheck.cmake
+++ b/src/cmake_modules/MakeDistCheck.cmake
@@ -106,7 +106,8 @@ FUNCTION(RUN_AUTOTOOLS_DIST_CHECK PACKAGE_PREFIX)
         EXECUTE_PROCESS_AND_CHECK_RESULT(
                 COMMAND ${MY_CMAKE_COMMAND}
                     LDFLAGS=-L${CMAKE_PREFIX_PATH}/lib
-                    CFLAGS=-m32
+                    CFLAGS=${CMAKE_C_FLAGS}
+                    CXXFLAGS=${CMAKE_CXX_FLAGS}
                     CPPFLAGS=-I${CMAKE_PREFIX_PATH}/include
                     PATH=${CMAKE_PREFIX_PATH}/bin:$ENV{PATH}
                     ./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/${INSTALL_DIR} --enable-compile-warnings
@@ -147,31 +148,6 @@ FUNCTION(RUN_AUTOTOOLS_DIST_CHECK PACKAGE_PREFIX)
             ERROR_MSG "Autotools 'make uninstall' step failed."
     )
 
-    EXECUTE_PROCESS_AND_CHECK_RESULT(
-            COMMAND ${MY_CMAKE_COMMAND} make dist
-            WORKING_DIRECTORY ${BUILD_DIR}
-            ERROR_MSG "Autotools 'make dist' step failed."
-    )
-
-    IF (CMAKE_PREFIX_PATH)
-      EXECUTE_PROCESS_AND_CHECK_RESULT(
-            COMMAND ${MY_CMAKE_COMMAND}
-               LDFLAGS=-L${CMAKE_PREFIX_PATH}/lib
-               CFLAGS=-m32
-               CPPFLAGS=-I${CMAKE_PREFIX_PATH}/include
-               PATH=${CMAKE_PREFIX_PATH}/bin:$ENV{PATH}
-               DISTCHECK_CONFIGURE_FLAGS="--with-dbi-dbd-dir=${CMAKE_PREFIX_PATH}/lib/dbd" 
-                 make distcheck
-            WORKING_DIRECTORY ${BUILD_DIR}
-            ERROR_MSG "Autotools 'make distcheck' step failed."
-      )
-    ELSE()
-      EXECUTE_PROCESS_AND_CHECK_RESULT(
-              COMMAND ${MY_CMAKE_COMMAND} make distcheck
-              WORKING_DIRECTORY ${BUILD_DIR}
-              ERROR_MSG "Autotools 'make distcheck' step failed."
-      )
-    ENDIF()
     MESSAGE("Autotools distcheck complete.")
 
 ENDFUNCTION()

commit 6b14dc5b59ee6bea00df99459b6b428db2ac1fb0
Author: Rob Gowin <robgowin at gmail.com>
Date:   Wed Feb 1 21:48:46 2017 -0600

    Implement 'dist', 'distcheck' and 'uninstall' targets for CMake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ccff04f..70d3380 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,4 @@
-# CMakeLists.txt for the cutecash sub-project of gnucash
-
-# This is very EXPERIMENTAL! We will see how far this project will
-# get.
+# CMakeLists.txt for GnuCash
 
 IF (WIN32)
   CMAKE_MINIMUM_REQUIRED (VERSION 3.3.2)
@@ -46,13 +43,14 @@ INCLUDE (GncAddSchemeTargets)
 INCLUDE (GncConfigure)
 INCLUDE (GncAddGSchemaTargets)
 INCLUDE (GncAddTest)
+INCLUDE (MakeDistFiles)
 
 # ############################################################
 # These options are settable from the CMake command line. For example, to disable
 # SQL, put -D WITH_SQL=OFF on the command line.
 
 OPTION (WITH_SQL "Build this project with SQL (libdbi) support" ON)
-OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" ON )
+OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" OFF )
 OPTION (WITH_GNUCASH "Build all of GnuCash, not just cutecash" ON)
 OPTION (WITH_CUTECASH "Also build cutecash" OFF)
 OPTION (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
@@ -64,7 +62,11 @@ OPTION (DISABLE_NLS "do not use Native Language Support" OFF)
 OPTION (DISABLE_DEPRECATED_GLIB "don't use deprecated glib functions" OFF)
 OPTION (DISABLE_DEPRECATED_GTK "don't use deprectacted gtk, gdk or gdk-pixbuf functions" OFF)
 OPTION (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
-OPTION (GNC_BUILD_AS_INSTALL "Make build directory structure mirror install" ON)
+
+# If AUTOTOOLS_IN_DIST is OFF, then 'dist' wont run autogen.sh, and 'distcheck'
+# won't run the autotools distcheck. Note that various Makefile.am files are still
+# included in the dist when this is OFF. I'll fix that at some point.
+OPTION (AUTOTOOLS_IN_DIST "Add autotools support to distribution tarballs." ON)
 # ############################################################
 
 # These are also settable from the command line in a similar way.
@@ -84,13 +86,10 @@ SET(TEST_MYSQL_URL "" CACHE STRING "MySQL database URL for testing")
 SET(TEST_PGSQL_URL "" CACHE STRING "PgSQL database URL for testing")
 SET(HTMLHELP_DIR ${CMAKE_PREFIX_PATH}/hh CACHE PATH "Specify location of Win32 HTMLHELP library")
 
-IF(GNC_BUILD_AS_INSTALL)
-  SET(DATADIR_BUILD    ${CMAKE_BINARY_DIR}/${DATADIRNAME})
-  SET(LIBDIR_BUILD     ${CMAKE_BINARY_DIR}/lib)
-  SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
-  SET(BINDIR_BUILD     ${CMAKE_BINARY_DIR}/bin)
-
-ENDIF()
+SET(DATADIR_BUILD    ${CMAKE_BINARY_DIR}/${DATADIRNAME})
+SET(LIBDIR_BUILD     ${CMAKE_BINARY_DIR}/lib)
+SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
+SET(BINDIR_BUILD     ${CMAKE_BINARY_DIR}/bin)
 
 SET(SHELL_FROM_ENV $ENV{SHELL})
 SET(SHELL /bin/bash)
@@ -112,8 +111,15 @@ EXECUTE_PROCESS(
 SET(BUILDING_FROM_VCS "NO")
 IF (GNC_VCS_INFO_RESULT EQUAL 0)
   SET(BUILDING_FROM_VCS "YES")
+  # IF building from VCS, we need git
+  find_package(Git)
+  IF (NOT GIT_FOUND)
+    MESSAGE(SEND_ERROR "Looks like we're building from vesion control, but can't find git executable. Please set GIT_EXECUTABLE.")
+  ENDIF()
 ENDIF()
 
+
+
 IF (WIN32)
   # Help Windows find the various dependencies. We assume here that the standard advice for building
   # GnuCash has been followed and that these dependencies live underneath something like C:/GCDEV, which
@@ -429,33 +435,26 @@ ENDIF()
 
 SET(BUILD_SHARED_LIBS ON)
 
-IF (GNC_BUILD_AS_INSTALL)
-  # Most libraries are installed to lib/gnucash, so set that as the default.
-  # For the handful that are installed to lib, we override the properies below
-  # (after the targets have been read in).
+# Most libraries are installed to lib/gnucash, so set that as the default.
+# For the handful that are installed to lib, we override the properies below
+# (after the targets have been read in).
 
 
-  SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/lib/gnucash)
-  IF (XCODE_VERSION)
-    # FIXME: These settings break the ability to manipulate different configurations (Debug,
-    # FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
-    # we want to support multi config.
-    SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/lib/gnucash)
-    SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib/gnucash)
-  ENDIF()
-  # For binarines
-  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin)
-  IF (XCODE_VERSION)
-    SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin)
-    SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
-  ENDIF()
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/lib/gnucash)
+IF (XCODE_VERSION)
+  # FIXME: These settings break the ability to manipulate different configurations (Debug,
+  # FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
+  # we want to support multi config.
+  SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/lib/gnucash)
+  SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib/gnucash)
 ENDIF()
-# ############################################################
-
-SET(CMAKE_CTEST_COMMAND ctest)
+# For binarines
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin)
 IF (XCODE_VERSION)
-  SET(CMAKE_CTEST_COMMAND ctest -C Debug)
+  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin)
+  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
 ENDIF()
+# ############################################################
 
 # There are targets that need to build before tests will run
 ADD_CUSTOM_TARGET(check
@@ -465,50 +464,16 @@ ADD_CUSTOM_TARGET(check
      scm-test-core scm-test-report-system scm-standard-reports-2
      scm-test-standard-reports foo gncmodfoo baz gncmodbaz
      bar gncmodbar gncmod_agedver gncmod_incompatdep
-     gncmod_futuremodsys test-core-guile
+     gncmod_futuremodsys check-po test-core-guile
 )
 IF (NOT WIN32)
   ADD_DEPENDENCIES(check gncmod-backend-xml-link)
 ENDIF()
 
-# The subdirectories
-ADD_SUBDIRECTORY (accounts)
-ADD_SUBDIRECTORY (checks)
-ADD_SUBDIRECTORY (doc)
-ADD_SUBDIRECTORY (packaging)
-ADD_SUBDIRECTORY (po)
-ADD_SUBDIRECTORY (src)
-
-# This cmake subdir must be the last add_subdirectory() call because
-# it contains post-install actions to execute.
-ADD_SUBDIRECTORY(cmake)
-
-IF (GNC_BUILD_AS_INSTALL)
-  SET_TARGET_PROPERTIES(gnc-qof gnc-core-utils gnc-module gnc-backend-sql gnc-backend-xml-utils
-    gnc-business-ledger gnc-gnome PROPERTIES
-    LIBRARY_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/lib
-    IF (XCODE_VERSION)
-      LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/lib
-      LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib
-    ENDIF()
-
-    RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin
-    IF (XCODE_VERSION)
-      RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin
-      RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin
-    ENDIF()
-  )
-  IF (WIN32)
-    SET_TARGET_PROPERTIES(gncmod-backend-xml gncmod-stylesheets gncmod-utility-reports PROPERTIES
-      LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
-    )
-  ENDIF()
-ENDIF()
 
 
 SET(gnucash_DOCS
     AUTHORS
-    ChangeLog
     ChangeLog.1999
     ChangeLog.2000
     ChangeLog.2001
@@ -532,8 +497,151 @@ SET(gnucash_DOCS
     README.dependencies
 )
 
+
 INSTALL(FILES ${gnucash_DOCS} DESTINATION share/doc/gnucash)
 
+# The subdirectories
+ADD_SUBDIRECTORY (accounts)
+ADD_SUBDIRECTORY (checks)
+ADD_SUBDIRECTORY (doc)
+ADD_SUBDIRECTORY (lib)
+ADD_SUBDIRECTORY (macros)
+ADD_SUBDIRECTORY (packaging)
+ADD_SUBDIRECTORY (po)
+ADD_SUBDIRECTORY (src)
+ADD_SUBDIRECTORY (test-templates)
+ADD_SUBDIRECTORY (util)
+
+# This cmake subdir must be the last add_subdirectory() call because
+# it contains post-install actions to execute.
+ADD_SUBDIRECTORY(cmake)
+
+############################ BEGIN MAKE DIST #################
+
+
+
+SET(PACKAGE_PREFIX "${PACKAGE}-${PACKAGE_VERSION}")
+SET(DIST_FILE "${PACKAGE_PREFIX}.tar")
+
+SET(gnucash_DIST_local ${gnucash_DOCS} ChangeLog.2015 ChangeLog.2016 CMakeLists.txt configure.ac Makefile.am
+        make-gnucash-potfiles.in README TODO)
+
+IF(BUILDING_FROM_VCS AND AUTOTOOLS_IN_DIST)
+  SET(gnucash_DIST_local ${gnucash_DIST_local} autogen.sh)
+ENDIF()
+
+SET_LOCAL_DIST(gnucash_DIST ${gnucash_DIST_local})
+
+# Each subdirectory is responsible for reporting its list of distribution files to its parent, up to here.
+#
+# Leaf directories use the SET_DIST_LIST() function to report their distribution files. See
+# the bottom of src/app-utils/test/CMakeLists.txt for an example.
+#
+# A non leaf directories uses the SET_LOCAL_DIST() function to specify its distribution files local that dir,
+# then uses a (SET ${foo_DIST} ${locals....} PARENT_SCOPE) command to report up. See the bottom of
+# src/app-utils/CMakeLists.txt for an example of this.
+
+SET(ALL_DIST ${accounts_DIST} ${checks_DIST} ${cmake_DIST} ${doc_DIST} ${lib_DIST} ${macros_DIST} ${packaging_DIST}
+        ${po_DIST} ${src_DIST} ${gnucash_DIST} ${test_templates_DIST} ${util_DIST})
+
+
+IF (BUILDING_FROM_VCS)
+  SET(BUILD_SOURCE_DIR ${CMAKE_BINARY_DIR})
+ELSE()
+  SET(BUILD_SOURCE_DIR ${CMAKE_SOURCE_DIR})
+  IF(AUTOTOOLS_IN_DIST)
+    # Include autotools generated file in the dist
+    LIST(APPEND ALL_DIST compile config.guess config.sub configure depcomp install-sh missing
+            src/doc/design/mdate-sh src/doc/design/texinfo.tex)
+    IF (EXISTS ${CMAKE_SOURCE_DIR}/test-driver)  # test-driver only created for automake 1.12+.
+      LIST(APPEND ALL_DIST test-driver)
+    ENDIF()
+  ENDIF()
+ENDIF()
+
+# Write a dist manifest
+STRING(REPLACE ";" "\n" ALL_DIST_LINES "${ALL_DIST}")
+FILE(WRITE ${CMAKE_BINARY_DIR}/dist_manifest.txt ${ALL_DIST_LINES})
+
+SET(DIST_GENERATED_FILES "")
+FOREACH(file ${COPY_FROM_BUILD})
+  LIST(APPEND DIST_GENERATED_FILES2 ${BUILD_SOURCE_DIR}/${file})
+ENDFOREACH()
+
+
+ADD_CUSTOM_COMMAND(OUTPUT ${DIST_FILE}.gz ${DIST_FILE}.bz2
+        COMMAND ${CMAKE_COMMAND}
+           -D CMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/src/cmake_modules
+           -D PACKAGE_PREFIX=${PACKAGE_PREFIX}
+           -D GNUCASH_SOURCE_DIR=${CMAKE_SOURCE_DIR}
+           -D BUILD_SOURCE_DIR=${BUILD_SOURCE_DIR}
+           -D BUILDING_FROM_VCS=${BUILDING_FROM_VCS}
+           -D SHELL=${SHELL}
+           -D AUTOTOOLS_IN_DIST=${AUTOTOOLS_IN_DIST}
+           -P ${CMAKE_SOURCE_DIR}/src/cmake_modules/MakeDist.cmake
+
+        DEPENDS
+          ${ALL_DIST} ${DIST_GENERATED_FILES2} gnc-vcs-info iso-4217-c gnc-warnings-c build-config-scm gnucash-design-info ChangeLog
+        )
+
+ADD_CUSTOM_TARGET(dist DEPENDS ${DIST_FILE}.gz ${DIST_FILE}.bz2)
+
+ADD_CUSTOM_TARGET(distcheck DEPENDS dist
+        COMMAND ${CMAKE_COMMAND}
+            -D CMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/src/cmake_modules
+            -D CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
+            -D PACKAGE_PREFIX=${PACKAGE_PREFIX}
+            -D CMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+            -D CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+            -D AUTOTOOLS_IN_DIST=${AUTOTOOLS_IN_DIST}
+            -P ${CMAKE_SOURCE_DIR}/src/cmake_modules/MakeDistCheck.cmake
+        )
+
+
+
+############################# END MAKE DIST #################
+
+# uninstall target
+configure_file(
+        "${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
+        "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+        @ONLY)
+
+add_custom_target(uninstall
+        COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+
+SET_TARGET_PROPERTIES(gnc-qof gnc-core-utils gnc-module gnc-backend-sql gnc-backend-xml-utils
+  gnc-business-ledger gnc-gnome PROPERTIES
+  LIBRARY_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/lib
+  IF (XCODE_VERSION)
+    LIBRARY_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/lib
+    LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib
+  ENDIF()
+
+  RUNTIME_OUTPUT_DIRECTORY         ${CMAKE_BINARY_DIR}/bin
+  IF (XCODE_VERSION)
+    RUNTIME_OUTPUT_DIRECTORY_DEBUG   ${CMAKE_BINARY_DIR}/bin
+    RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin
+  ENDIF()
+)
+
+IF (WIN32)
+  SET_TARGET_PROPERTIES(gncmod-backend-xml gncmod-stylesheets gncmod-utility-reports PROPERTIES
+    LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+  )
+ENDIF()
+
+# Generate the ChangeLog
+
+IF (BUILDING_FROM_VCS)
+  ADD_CUSTOM_TARGET(ChangeLog ALL
+    COMMAND ${GIT_EXECUTABLE} log --format=\"%ad %aN %n%n%x09* %s%d%n\" --date=short --since=2016-01-01 > ${CMAKE_BINARY_DIR}/ChangeLog
+    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+  )
+ELSE()
+  FILE(COPY ChangeLog DESTINATION ChangeLog)
+ENDIF()
+
 #Link LICENSE to COPYING so that people expecting to find it,
 #will. COPYING is normally linked by autogen.sh to the latest
 #automake-provided version.
@@ -554,14 +662,10 @@ INSTALL(CODE
 IF (WIN32)
   SET(MINGW_DLLS ${CMAKE_PREFIX_PATH}/mingw/bin/libstdc++-6.dll ${CMAKE_PREFIX_PATH}/mingw/bin/libgcc_s_dw2-1.dll)
   INSTALL(PROGRAMS ${MINGW_DLLS} DESTINATION bin)
-  IF (GNC_BUILD_AS_INSTALL)
-    FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
-      # Do permissions matter for windows?
-      FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-    )
-  ENDIF()
-
-
+  FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
+    # Do permissions matter for windows?
+    FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+  )
 ENDIF()
 # ############################################################
 # Package creation rules
diff --git a/accounts/C/CMakeLists.txt b/accounts/C/CMakeLists.txt
new file mode 100644
index 0000000..d90a2da
--- /dev/null
+++ b/accounts/C/CMakeLists.txt
@@ -0,0 +1,25 @@
+
+
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(C_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/C)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/C)
+
diff --git a/accounts/CMakeLists.txt b/accounts/CMakeLists.txt
index 2899820..7b71b8e 100644
--- a/accounts/CMakeLists.txt
+++ b/accounts/CMakeLists.txt
@@ -35,33 +35,52 @@ SET(accounts_SUBDIRS
   zh_TW
 )
 
+SET(ACCOUNTS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts)
+SET(ACCOUNTS_BUILD_DIR ${DATADIR_BUILD}/gnucash/accounts)
 
-# Most of the account subdirectories that have acctchrt_full.gnucash-xea do not install it. Don't know why.
-# But these subdirectories do.
-SET(accounts_fullcharts_SUBDIRS ja nb nl)
 
-FOREACH(dir ${accounts_SUBDIRS})
-  INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
-                           PATTERN Makefile.* EXCLUDE
-                           PATTERN acctchrt_full.gnucash-xea EXCLUDE
-                           PATTERN README.bas_2012 EXCLUDE)
-  IF (GNC_BUILD_AS_INSTALL)
-    FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
-      PATTERN Makefile.* EXCLUDE
-      PATTERN acctchrt_full.gnucash-xea EXCLUDE
-      PATTERN README.bas_2012 EXCLUDE
-    )
-  ENDIF()
-ENDFOREACH(dir)
 
-FOREACH(dir ${accounts_fullcharts_SUBDIRS})
-  INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
-      PATTERN Makefile.* EXCLUDE
-      PATTERN README.bas_2012 EXCLUDE)
-  IF (GNC_BUILD_AS_INSTALL)
-    FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
-      PATTERN Makefile.* EXCLUDE
-      PATTERN README.bas_2012 EXCLUDE
-    )
-  ENDIF()
-ENDFOREACH(dir)
\ No newline at end of file
+ADD_SUBDIRECTORY(C)
+ADD_SUBDIRECTORY(cs)
+ADD_SUBDIRECTORY(da)
+ADD_SUBDIRECTORY(de_AT)
+ADD_SUBDIRECTORY(de_CH)
+ADD_SUBDIRECTORY(de_DE)
+ADD_SUBDIRECTORY(el_GR)
+ADD_SUBDIRECTORY(en_GB)
+ADD_SUBDIRECTORY(es_ES)
+ADD_SUBDIRECTORY(es_MX)
+ADD_SUBDIRECTORY(fi_FI)
+ADD_SUBDIRECTORY(fr_CA)
+ADD_SUBDIRECTORY(fr_CH)
+ADD_SUBDIRECTORY(fr_FR)
+ADD_SUBDIRECTORY(hu_HU)
+ADD_SUBDIRECTORY(it)
+ADD_SUBDIRECTORY(ja)
+ADD_SUBDIRECTORY(ko)
+ADD_SUBDIRECTORY(lt)
+ADD_SUBDIRECTORY(lv)
+ADD_SUBDIRECTORY(nb)
+ADD_SUBDIRECTORY(nl)
+ADD_SUBDIRECTORY(pl)
+ADD_SUBDIRECTORY(pt_BR)
+ADD_SUBDIRECTORY(pt_PT)
+ADD_SUBDIRECTORY(ru)
+ADD_SUBDIRECTORY(sk)
+ADD_SUBDIRECTORY(sv_AX)
+ADD_SUBDIRECTORY(sv_FI)
+ADD_SUBDIRECTORY(sv_SE)
+ADD_SUBDIRECTORY(tr_TR)
+ADD_SUBDIRECTORY(zh_CN)
+ADD_SUBDIRECTORY(zh_HK)
+ADD_SUBDIRECTORY(zh_TW)
+
+SET_LOCAL_DIST(dist_list CMakeLists.txt Makefile.am)
+
+SET(accounts_DIST ${C_DIST} ${CS_DIST} ${DA_DIST} ${DE_AT_DIST} ${DE_CH_DIST} ${DE_DE_DIST} ${EL_GR_DIST}
+                  ${EN_GB_DIST} ${ES_ES_DIST} ${ES_MX_DIST} ${FI_FI_DIST} ${FR_CA_DIST} ${FR_CH_DIST}
+                  ${FR_FR_DIST} ${HU_HU_DIST} ${IT_DIST} ${JA_DIST} ${KO_DIST} ${LT_DIST} ${LV_DIST}
+                  ${NB_DIST} ${NL_DIST} ${PL_DIST} ${PT_BR_DIST} ${PT_PT_DIST} ${RU_DIST} ${SK_DIST}
+                  ${SV_AX_DIST} ${SV_FI_DIST} ${SV_SE_DIST} ${TR_TR_DIST} ${ZH_CN_DIST}
+                  ${ZH_HK_DIST} ${ZH_TW_DIST} ${dist_list} PARENT_SCOPE)
+
diff --git a/accounts/cs/CMakeLists.txt b/accounts/cs/CMakeLists.txt
new file mode 100644
index 0000000..2f16891
--- /dev/null
+++ b/accounts/cs/CMakeLists.txt
@@ -0,0 +1,21 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(CS_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/cs)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/cs)
diff --git a/accounts/da/CMakeLists.txt b/accounts/da/CMakeLists.txt
new file mode 100644
index 0000000..cb3127c
--- /dev/null
+++ b/accounts/da/CMakeLists.txt
@@ -0,0 +1,10 @@
+SET(account_DATA
+  acctchrt_car.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea)
+
+SET_DIST_LIST(DA_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/da)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/da)
diff --git a/accounts/de_AT/CMakeLists.txt b/accounts/de_AT/CMakeLists.txt
new file mode 100644
index 0000000..4e5a98d
--- /dev/null
+++ b/accounts/de_AT/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(dist_account_DATA
+  acctchrt_auto.gnucash-xea
+  acctchrt_autoloan.gnucash-xea
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_houseown.gnucash-xea
+  acctchrt_investment.gnucash-xea
+  acctchrt_kids.gnucash-xea)
+
+SET_DIST_LIST(DE_AT_DIST ${dist_account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${dist_account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_AT)
+FILE(COPY ${dist_account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_AT)
diff --git a/accounts/de_CH/CMakeLists.txt b/accounts/de_CH/CMakeLists.txt
new file mode 100644
index 0000000..b8e2b01
--- /dev/null
+++ b/accounts/de_CH/CMakeLists.txt
@@ -0,0 +1,12 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_kids.gnucash-xea
+  acctchrt_otherasset.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_chkmu.gnucash-xea)
+
+SET_DIST_LIST(DE_CH_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_CH)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_CH)
\ No newline at end of file
diff --git a/accounts/de_DE/CMakeLists.txt b/accounts/de_DE/CMakeLists.txt
new file mode 100644
index 0000000..740ce5c
--- /dev/null
+++ b/accounts/de_DE/CMakeLists.txt
@@ -0,0 +1,20 @@
+SET(account_DATA
+  acctchrt_auto.gnucash-xea
+  acctchrt_autoloan.gnucash-xea
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_houseown.gnucash-xea
+  acctchrt_investment.gnucash-xea
+  acctchrt_kids.gnucash-xea
+  acctchrt_otherasset.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_studium.gnucash-xea
+  acctchrt_skr03.gnucash-xea
+  acctchrt_wohnungsw.gnucash-xea
+  acctchrt_skr04.gnucash-xea
+  acctchrt_skr49.gnucash-xea)
+
+SET_DIST_LIST(DE_DE_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/de_DE)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/de_DE)
\ No newline at end of file
diff --git a/accounts/el_GR/CMakeLists.txt b/accounts/el_GR/CMakeLists.txt
new file mode 100644
index 0000000..9cb47a6
--- /dev/null
+++ b/accounts/el_GR/CMakeLists.txt
@@ -0,0 +1,9 @@
+SET(account_DATA
+  acctchrt_common.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_brokerage.gnucash-xea)
+
+SET_DIST_LIST(EL_GR_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/el_GR)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/el_GR)
\ No newline at end of file
diff --git a/accounts/en_GB/CMakeLists.txt b/accounts/en_GB/CMakeLists.txt
new file mode 100644
index 0000000..40e550a
--- /dev/null
+++ b/accounts/en_GB/CMakeLists.txt
@@ -0,0 +1,23 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea
+  uk-vat.gnucash-xea)
+
+SET_DIST_LIST(EN_GB_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/en_GB)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/en_GB)
diff --git a/accounts/es_ES/CMakeLists.txt b/accounts/es_ES/CMakeLists.txt
new file mode 100644
index 0000000..51284e3
--- /dev/null
+++ b/accounts/es_ES/CMakeLists.txt
@@ -0,0 +1,21 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(ES_ES_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_ES)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_ES)
diff --git a/accounts/es_MX/CMakeLists.txt b/accounts/es_MX/CMakeLists.txt
new file mode 100644
index 0000000..019887c
--- /dev/null
+++ b/accounts/es_MX/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(ES_MX_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/es_MX)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/es_MX)
+
diff --git a/accounts/fi_FI/CMakeLists.txt b/accounts/fi_FI/CMakeLists.txt
new file mode 100644
index 0000000..314d069
--- /dev/null
+++ b/accounts/fi_FI/CMakeLists.txt
@@ -0,0 +1,9 @@
+SET(account_DATA
+  acctchrt_common.gnucash-xea
+  acctchrt_sbr-xbrl.gnucash-xea
+  acctchrt_ry.gnucash-xea)
+
+SET_DIST_LIST(FI_FI_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fi_FI)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fi_FI)
diff --git a/accounts/fr_CA/CMakeLists.txt b/accounts/fr_CA/CMakeLists.txt
new file mode 100644
index 0000000..4a51c4c
--- /dev/null
+++ b/accounts/fr_CA/CMakeLists.txt
@@ -0,0 +1,21 @@
+SET(account_DATA
+ acctchrt_actifsfixes.gnucash-xea
+ acctchrt_automobile.gnucash-xea
+ acctchrt_basecommune.gnucash-xea
+ acctchrt_cdmarchemon.gnucash-xea
+ acctchrt_chequier.gnucash-xea
+ acctchrt_conjointretraite.gnucash-xea
+ acctchrt_conjointrev.gnucash-xea
+ acctchrt_courtage.gnucash-xea
+ acctchrt_etudeemprunt.gnucash-xea
+ acctchrt_garderie.gnucash-xea
+ acctchrt_locataire.gnucash-xea
+ acctchrt_proprietaire.gnucash-xea
+ acctchrt_retraite.gnucash-xea
+ acctchrt_revenus.gnucash-xea)
+
+SET_DIST_LIST(FR_CA_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CA)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CA)
+
diff --git a/accounts/fr_CH/CMakeLists.txt b/accounts/fr_CH/CMakeLists.txt
new file mode 100644
index 0000000..04b6b5b
--- /dev/null
+++ b/accounts/fr_CH/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(FR_CH_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_CH)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_CH)
diff --git a/accounts/fr_FR/CMakeLists.txt b/accounts/fr_FR/CMakeLists.txt
new file mode 100644
index 0000000..5011311
--- /dev/null
+++ b/accounts/fr_FR/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(FR_FR_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/fr_FR)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/fr_FR)
diff --git a/accounts/hu_HU/CMakeLists.txt b/accounts/hu_HU/CMakeLists.txt
new file mode 100644
index 0000000..46b2259
--- /dev/null
+++ b/accounts/hu_HU/CMakeLists.txt
@@ -0,0 +1,24 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+
+SET_DIST_LIST(HU_HU_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/hu_HU)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/hu_HU)
+
diff --git a/accounts/it/CMakeLists.txt b/accounts/it/CMakeLists.txt
new file mode 100644
index 0000000..ff6df89
--- /dev/null
+++ b/accounts/it/CMakeLists.txt
@@ -0,0 +1,19 @@
+SET(account_DATA
+ acctchrt_brokerage.gnucash-xea
+ acctchrt_carloan.gnucash-xea
+ acctchrt_checkbook.gnucash-xea
+ acctchrt_childcare.gnucash-xea
+ acctchrt_common.gnucash-xea
+ acctchrt_fixedassets.gnucash-xea
+ acctchrt_homeloan.gnucash-xea
+ acctchrt_homeown.gnucash-xea
+ acctchrt_otherloan.gnucash-xea
+ acctchrt_renter.gnucash-xea
+ acctchrt_retiremt.gnucash-xea
+ acctchrt_spouseinc.gnucash-xea
+ acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(IT_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/it)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/it)
diff --git a/accounts/ja/CMakeLists.txt b/accounts/ja/CMakeLists.txt
new file mode 100644
index 0000000..d329035
--- /dev/null
+++ b/accounts/ja/CMakeLists.txt
@@ -0,0 +1,24 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_full.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(JA_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ja)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ja)
+
diff --git a/accounts/ko/CMakeLists.txt b/accounts/ko/CMakeLists.txt
new file mode 100644
index 0000000..35b4135
--- /dev/null
+++ b/accounts/ko/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(KO_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ko)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ko)
diff --git a/accounts/lt/CMakeLists.txt b/accounts/lt/CMakeLists.txt
new file mode 100644
index 0000000..9540b09
--- /dev/null
+++ b/accounts/lt/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(account_DATA acctchrt_business.gnucash-xea)
+
+SET_DIST_LIST(LT_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lt)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lt)
diff --git a/accounts/lv/CMakeLists.txt b/accounts/lv/CMakeLists.txt
new file mode 100644
index 0000000..bfc96ba
--- /dev/null
+++ b/accounts/lv/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(LV_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/lv)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/lv)
diff --git a/accounts/nb/CMakeLists.txt b/accounts/nb/CMakeLists.txt
new file mode 100644
index 0000000..8d4c62d
--- /dev/null
+++ b/accounts/nb/CMakeLists.txt
@@ -0,0 +1,23 @@
+SET(account_DATA
+ acctchrt_brokerage.gnucash-xea
+ acctchrt_business.gnucash-xea
+ acctchrt_carloan.gnucash-xea
+ acctchrt_cdmoneymkt.gnucash-xea
+ acctchrt_checkbook.gnucash-xea
+ acctchrt_childcare.gnucash-xea
+ acctchrt_common.gnucash-xea
+ acctchrt_eduloan.gnucash-xea
+ acctchrt_fixedassets.gnucash-xea
+ acctchrt_full.gnucash-xea
+ acctchrt_homeloan.gnucash-xea
+ acctchrt_homeown.gnucash-xea
+ acctchrt_otherloan.gnucash-xea
+ acctchrt_renter.gnucash-xea
+ acctchrt_retiremt.gnucash-xea
+ acctchrt_spouseinc.gnucash-xea
+ acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(NB_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nb)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nb)
diff --git a/accounts/nl/CMakeLists.txt b/accounts/nl/CMakeLists.txt
new file mode 100644
index 0000000..69dbee4
--- /dev/null
+++ b/accounts/nl/CMakeLists.txt
@@ -0,0 +1,9 @@
+SET(account_DATA
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_full.gnucash-xea
+  acctchrt_rgs_1.1.gnucash-xea)
+
+SET_DIST_LIST(NL_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/nl)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/nl)
diff --git a/accounts/pl/CMakeLists.txt b/accounts/pl/CMakeLists.txt
new file mode 100644
index 0000000..4f2a53e
--- /dev/null
+++ b/accounts/pl/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(PL_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pl)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pl)
\ No newline at end of file
diff --git a/accounts/pt_BR/CMakeLists.txt b/accounts/pt_BR/CMakeLists.txt
new file mode 100644
index 0000000..d8a8f27
--- /dev/null
+++ b/accounts/pt_BR/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(PT_BR_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_BR)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_BR)
+
diff --git a/accounts/pt_PT/CMakeLists.txt b/accounts/pt_PT/CMakeLists.txt
new file mode 100644
index 0000000..71ee6a3
--- /dev/null
+++ b/accounts/pt_PT/CMakeLists.txt
@@ -0,0 +1,21 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(PT_PT_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/pt_PT)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/pt_PT)
+
diff --git a/accounts/ru/CMakeLists.txt b/accounts/ru/CMakeLists.txt
new file mode 100644
index 0000000..a2a87d1
--- /dev/null
+++ b/accounts/ru/CMakeLists.txt
@@ -0,0 +1,11 @@
+SET(account_DATA
+  acctchrt_common.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_renter.gnucash-xea)
+
+SET_DIST_LIST(RU_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/ru)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/ru)
+
diff --git a/accounts/sk/CMakeLists.txt b/accounts/sk/CMakeLists.txt
new file mode 100644
index 0000000..074eabf
--- /dev/null
+++ b/accounts/sk/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_currency.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(SK_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sk)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sk)
+
diff --git a/accounts/sv_AX/CMakeLists.txt b/accounts/sv_AX/CMakeLists.txt
new file mode 100644
index 0000000..77b30b3
--- /dev/null
+++ b/accounts/sv_AX/CMakeLists.txt
@@ -0,0 +1,10 @@
+SET(account_DATA
+    acctchrt_common.gnucash-xea
+    acctchrt_sbr-xbrl.gnucash-xea
+    acctchrt_rf.gnucash-xea)
+
+SET_DIST_LIST(SV_AX_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_AX)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_AX)
+
diff --git a/accounts/sv_FI/CMakeLists.txt b/accounts/sv_FI/CMakeLists.txt
new file mode 100644
index 0000000..a5e03e9
--- /dev/null
+++ b/accounts/sv_FI/CMakeLists.txt
@@ -0,0 +1,9 @@
+SET(account_DATA
+    acctchrt_common.gnucash-xea
+    acctchrt_sbr-xbrl.gnucash-xea
+    acctchrt_rf.gnucash-xea)
+
+SET_DIST_LIST(SV_FI_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_FI)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_FI)
\ No newline at end of file
diff --git a/accounts/sv_SE/CMakeLists.txt b/accounts/sv_SE/CMakeLists.txt
new file mode 100644
index 0000000..17b1000
--- /dev/null
+++ b/accounts/sv_SE/CMakeLists.txt
@@ -0,0 +1,8 @@
+SET(account_DATA
+	bas_2012.gnucash-xea
+	acctchrt_common.gnucash-xea)
+
+SET_DIST_LIST(SV_SE_DIST ${account_DATA} README.bas_2012 Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/sv_SE)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/sv_SE)
diff --git a/accounts/tr_TR/CMakeLists.txt b/accounts/tr_TR/CMakeLists.txt
new file mode 100644
index 0000000..ca7a035
--- /dev/null
+++ b/accounts/tr_TR/CMakeLists.txt
@@ -0,0 +1,14 @@
+SET(account_DATA
+ acctchrt_brokerage.gnucash-xea
+ acctchrt_carloan.gnucash-xea
+ acctchrt_cdmoneymkt.gnucash-xea
+ acctchrt_checkbook.gnucash-xea
+ acctchrt_common.gnucash-xea
+ acctchrt_fixedassets.gnucash-xea
+ acctchrt_homeloan.gnucash-xea
+ acctchrt_TEKDUZ.gnucash-xea)
+
+SET_DIST_LIST(TR_TR_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/tr_TR)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/tr_TR)
diff --git a/accounts/zh_CN/CMakeLists.txt b/accounts/zh_CN/CMakeLists.txt
new file mode 100644
index 0000000..81d5cd3
--- /dev/null
+++ b/accounts/zh_CN/CMakeLists.txt
@@ -0,0 +1,22 @@
+SET(account_DATA
+  acctchrt_brokerage.gnucash-xea
+  acctchrt_business.gnucash-xea
+  acctchrt_carloan.gnucash-xea
+  acctchrt_cdmoneymkt.gnucash-xea
+  acctchrt_checkbook.gnucash-xea
+  acctchrt_childcare.gnucash-xea
+  acctchrt_common.gnucash-xea
+  acctchrt_eduloan.gnucash-xea
+  acctchrt_fixedassets.gnucash-xea
+  acctchrt_homeloan.gnucash-xea
+  acctchrt_homeown.gnucash-xea
+  acctchrt_otherloan.gnucash-xea
+  acctchrt_renter.gnucash-xea
+  acctchrt_retiremt.gnucash-xea
+  acctchrt_spouseinc.gnucash-xea
+  acctchrt_spouseretire.gnucash-xea)
+
+SET_DIST_LIST(ZH_CN_DIST ${account_DATA} acctchrt_full.gnucash-xea Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_CN)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zn_CN)
diff --git a/accounts/zh_HK/CMakeLists.txt b/accounts/zh_HK/CMakeLists.txt
new file mode 100644
index 0000000..3e9eea5
--- /dev/null
+++ b/accounts/zh_HK/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(account_DATA acctchrt_business.gnucash-xea)
+
+SET_DIST_LIST(ZH_HK_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_HK)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_HK)
diff --git a/accounts/zh_TW/CMakeLists.txt b/accounts/zh_TW/CMakeLists.txt
new file mode 100644
index 0000000..ec3124e
--- /dev/null
+++ b/accounts/zh_TW/CMakeLists.txt
@@ -0,0 +1,6 @@
+SET(account_DATA acctchrt_business.gnucash-xea)
+
+SET_DIST_LIST(ZH_TW_DIST ${account_DATA} Makefile.am CMakeLists.txt)
+
+INSTALL(FILES ${account_DATA} DESTINATION ${ACCOUNTS_INSTALL_DIR}/zh_TW)
+FILE(COPY ${account_DATA} DESTINATION ${ACCOUNTS_BUILD_DIR}/zh_TW)
diff --git a/checks/CMakeLists.txt b/checks/CMakeLists.txt
index 2663434..095119b 100644
--- a/checks/CMakeLists.txt
+++ b/checks/CMakeLists.txt
@@ -10,6 +10,6 @@ SET(checks_DATA
 
 INSTALL(FILES ${checks_DATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/checks)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
+
+SET_DIST_LIST(checks_DIST CMakeLists.txt Makefile.am ${checks_DATA})
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 9401328..9e1e2cb 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -10,22 +10,25 @@ IF (APPLE)
 ENDIF(APPLE)
 
 
-IF (GNC_BUILD_AS_INSTALL)
-  SET(CMAKE_COMMAND_TMP "")
-  IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
-    SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
-  ENDIF()
-  SET(schema-targets aqb-gschema business-gnome-gschema csv-exp-gschema csv-imp-gschema
-      generic-import-gschema gnome-gschema gnome-utils-gschema ofx-gschema qif-imp-gschema)
-
-  SET(SCHEMA_DIRECTORY ${DATADIR_BUILD}/glib-2.0/schemas)
-  ADD_CUSTOM_COMMAND(
-    OUTPUT ${SCHEMA_DIRECTORY}/gschemas.compiled
-    COMMAND ${CMAKE_COMMAND_TMP} ${GLIB_COMPILE_SCHEMAS} ${SCHEMA_DIRECTORY}
-    DEPENDS ${schema-targets}
-  )
-
-  ADD_CUSTOM_TARGET(compiled-schemas ALL DEPENDS ${SCHEMA_DIRECTORY}/gschemas.compiled)
-
-ENDIF(GNC_BUILD_AS_INSTALL)
-
+SET(CMAKE_COMMAND_TMP "")
+IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+ENDIF()
+
+SET(schema-targets business-gnome-gschema csv-exp-gschema csv-imp-gschema
+    generic-import-gschema gnome-gschema gnome-utils-gschema ofx-gschema qif-imp-gschema)
+
+IF (WITH_AQBANKING)
+  LIST(APPEND schema_targets aqb-gschema)
+ENDIF (WITH_AQBANKING)
+    
+SET(SCHEMA_DIRECTORY ${DATADIR_BUILD}/glib-2.0/schemas)
+ADD_CUSTOM_COMMAND(
+  OUTPUT ${SCHEMA_DIRECTORY}/gschemas.compiled
+  COMMAND ${CMAKE_COMMAND_TMP} ${GLIB_COMPILE_SCHEMAS} ${SCHEMA_DIRECTORY}
+  DEPENDS ${schema-targets}
+)
+
+ADD_CUSTOM_TARGET(compiled-schemas ALL DEPENDS ${SCHEMA_DIRECTORY}/gschemas.compiled)
+
+SET_DIST_LIST(cmake_DIST CMakeLists.txt README_CMAKE.txt cmake_uninstall.cmake.in)
\ No newline at end of file
diff --git a/cmake/README_CMAKE.txt b/cmake/README_CMAKE.txt
index c9249e1..5ee4850 100644
--- a/cmake/README_CMAKE.txt
+++ b/cmake/README_CMAKE.txt
@@ -29,10 +29,17 @@ faster that using the default Makefile generator to me.)
 
 == Scope
 
-The scope of the current work is to duplicate the `make`,
-`make check` and `make install` actions as the Autotools system would.
-Currently, there is no support for `make dist`, `make distcheck` or
-similar targets. Other limitations include:
+The scope of the current work is to duplicate these actions as
+the Autotools system would:
+
+   * make
+   * make check
+   * make install
+   * make uninstall
+   * make dist
+   * make distcheck
+
+Limitations include:
 
   * Not all options available in `./configure` have been ported to
     this CMake system.
@@ -44,21 +51,11 @@ similar targets. Other limitations include:
   * The Xcode build only supports the Debug configuration. Others such
     as Release are not supported yet.
 
-  * Python support has not been ported over.
-
   * Visual Studio support is out of scope. While CMake supports
     generating build files for Visual Studio on Windows, it is not
     likely at this point that either GnuCash or all of its
     dependencies can be built using the Microsoft compiler tool chain.
 
-== Known Issues
-
-* Sometimes the Tip of the Day is empty. I've got a stray
-  carriage return somewhere.
-
-* Clicking on 'Start AqBanking Wizard' in the AqBanking setup will
-  cause a crash. I have not yet investigated this.
-
 == Using CMake on Linux, OS X,  etc.
 
 === Prerequisites
@@ -71,7 +68,7 @@ will have advice on how to do this.
 
 You will need to have CMake and optionally Ninja installed, either
 from distro package repositories or by hand. You need at least version
-3.1 of CMake.
+3.0 of CMake.
 
 === Running CMake
 
@@ -180,9 +177,20 @@ directly from the build directory:
 In you chose to install, you can switch to the install directory and
 do the same.
 
+=== Building a Distribution Tarball
 
-== Using CMake and Ninja on Windows
+To create a distribution, use the 'dist' and 'distcheck' targets.
+For ninja, use:
+
+   $ ninja dist
+   $ ninja distcheck
+
+For Makefiles:
+
+   $ make dist
+   $ make distcheck
 
+== Using CMake and Ninja on Windows
 
 For Windows, follow the instructions at
 https://github.com/Gnucash/gnucash-on-windows to the point where you
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in
new file mode 100644
index 0000000..f3b1d03
--- /dev/null
+++ b/cmake/cmake_uninstall.cmake.in
@@ -0,0 +1,23 @@
+# This is taken from https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
+
+if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+
+file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+string(REGEX REPLACE "\n" ";" files "${files}")
+foreach(file ${files})
+  message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
+  if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+    exec_program(
+      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+    if(NOT "${rm_retval}" STREQUAL 0)
+      message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
+    endif(NOT "${rm_retval}" STREQUAL 0)
+  else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+    message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
+  endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+endforeach(file)
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 57f6dfe..f97e398 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -15,26 +15,35 @@ SET(doc_DATA
   projects.html
 )
 
+SET(doc_noinst_DATA
+        build-aix.txt build-solaris.txt CMakeLists.txt gnc-fq-dump.1 gnc-fq-helper.1 gnucash.1.in gtkrc-2.0.gnucash
+        Makefile.am misc-notes.txt README.build-system README.HBCI README.OFX README.translator.txt tip_of_the_day.list.in
+        TRANSLATION_HOWTO)
+
 INSTALL(FILES ${doc_DATA} DESTINATION share/doc/gnucash)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
-ENDIF()
+SET_LOCAL_DIST(doc_DIST_local ${doc_DATA} ${doc_noinst_DATA})
+SET(doc_DIST ${doc_DIST_local} ${examples_DIST} PARENT_SCOPE)
+
+FILE(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
 
 IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
   EXECUTE_PROCESS(
     COMMAND ${CMAKE_COMMAND} -E  env date +"%B %Y"
-    OUTPUT_VARIABLE DATE
+    OUTPUT_VARIABLE DATE_IN
     OUTPUT_STRIP_TRAILING_WHITESPACE
   )
 ELSE()
   EXECUTE_PROCESS(
     COMMAND date +"%B %Y"
-    OUTPUT_VARIABLE DATE
+    OUTPUT_VARIABLE DATE_IN
     OUTPUT_STRIP_TRAILING_WHITESPACE
   )
 ENDIF()
 
+# Remove any quotes present in the DATE string
+STRING(REGEX REPLACE "\"" "" DATE "${DATE_IN}")
+
 # Generate the tip of the day file.
 
 EXECUTE_PROCESS(
@@ -58,18 +67,13 @@ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
 
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION share/gnucash)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
-    DESTINATION ${DATADIR_BUILD}/gnucash)
-ENDIF()
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
+  DESTINATION ${DATADIR_BUILD}/gnucash)
 
 # ---
 
 GNC_CONFIGURE(gnucash.1.in gnucash.1 )
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION share/man/man1)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1
-    DESTINATION ${DATADIR_BUILD}/gnucash)
-ENDIF()
-
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1
+  DESTINATION ${DATADIR_BUILD}/gnucash)
\ No newline at end of file
diff --git a/doc/examples/CMakeLists.txt b/doc/examples/CMakeLists.txt
index efd5bd7..a73eb4f 100644
--- a/doc/examples/CMakeLists.txt
+++ b/doc/examples/CMakeLists.txt
@@ -22,3 +22,5 @@ SET(examples_DATA
 )
 
 INSTALL(FILES ${examples_DATA} DESTINATION share/doc/gnucash)
+
+SET_DIST_LIST(examples_DIST ${examples_DATA} CMakeLists.txt Makefile.am)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
new file mode 100644
index 0000000..4d7b48f
--- /dev/null
+++ b/lib/CMakeLists.txt
@@ -0,0 +1,5 @@
+ADD_SUBDIRECTORY(libc)
+ADD_SUBDIRECTORY(stf)
+
+SET_LOCAL_DIST(lib_DIST_local CMakeLists.txt Makefile.am README)
+SET(lib_DIST ${lib_DIST_local} ${libc_DIST} ${stf_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/lib/libc/CMakeLists.txt b/lib/libc/CMakeLists.txt
new file mode 100644
index 0000000..1d5c36c
--- /dev/null
+++ b/lib/libc/CMakeLists.txt
@@ -0,0 +1,4 @@
+SET(libc_SOURCES gmtime_r.c libc-missing-noop.c localtime_r.c setenv.c strfmon.c strptime.c)
+SET(libc_HEADERS gmtime_r.h localtime_r.h pow.h setenv.h strfmon.h strptime.h)
+
+SET_DIST_LIST(libc_DIST CMakeLists.txt Makefile.am ${libc_SOURCES} ${libc_HEADERS})
\ No newline at end of file
diff --git a/lib/stf/CMakeLists.txt b/lib/stf/CMakeLists.txt
new file mode 100644
index 0000000..2b8e314
--- /dev/null
+++ b/lib/stf/CMakeLists.txt
@@ -0,0 +1 @@
+SET_DIST_LIST(stf_DIST CMakeLists.txt Makefile.am README stf-parse.c stf-parse.h)
\ No newline at end of file
diff --git a/macros/CMakeLists.txt b/macros/CMakeLists.txt
new file mode 100644
index 0000000..e63554a
--- /dev/null
+++ b/macros/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+SET_DIST_LIST(macros_DIST ax_pkg_swig.m4 ax_python_devel.m4 ax_swig_python.m4 binreloc.m4
+                           compiler-flags.m4 CMakeLists.txt legacy_macros.m4 pkg.m4)
\ No newline at end of file
diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
index ccccdf5..041e062 100644
--- a/packaging/CMakeLists.txt
+++ b/packaging/CMakeLists.txt
@@ -1,2 +1,4 @@
 
 GNC_CONFIGURE(gnucash.spec.in gnucash.spec)
+
+SET_DIST_LIST(packaging_DIST CMakeLists.txt gnucash.spec.in Makefile.am)
\ No newline at end of file
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 69aa20b..847c5b7 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1,4 +1,4 @@
-
+ADD_SUBDIRECTORY(glossary)
 
 # Set of available languages.
 SET (TP_LINGUAS az ca cs da eu fa ja nl rw sk sr sv tr uk zh_CN)
@@ -17,6 +17,15 @@ IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
   SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
 ENDIF()
 
+SET(po_SOURCES "")
+FOREACH(lingua ${ALL_LINGUAS})
+  LIST(APPEND po_SOURCES ${lingua}.po)
+ENDFOREACH()
+
+SET_LOCAL_DIST(po_DIST_local ${po_SOURCES} CMakeLists.txt ChangeLog Makevars POTFILES.ignore POTFILES.in POTFILES.skip
+        README check-po.cmake)
+SET(po_DIST ${po_DIST_local} ${po_glossary_DIST} PARENT_SCOPE)
+
 FOREACH(lingua ${ALL_LINGUAS})
   SET(_OUTPUT_FILE ${lingua}.gmo)
   LIST(APPEND CATALOGS ${_OUTPUT_FILE})
@@ -24,26 +33,174 @@ FOREACH(lingua ${ALL_LINGUAS})
       OUTPUT ${_OUTPUT_FILE}
       COMMAND ${CMAKE_COMMAND_TMP} ${MSGFMT} -o ${_OUTPUT_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
   )
-  IF (GNC_BUILD_AS_INSTALL)
-    SET(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
-    MAKE_DIRECTORY(${_BUILD_FILE_DIR})
-    SET(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.gmo)
-    LIST(APPEND BUILD_CATALOGS ${_BUILD_FILE})
-    ADD_CUSTOM_COMMAND(
-      OUTPUT ${_BUILD_FILE}
-      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo ${_BUILD_FILE}
-      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE}
-      #APPEND
-    )
-  ENDIF()
+  SET(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
+  MAKE_DIRECTORY(${_BUILD_FILE_DIR})
+  SET(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.gmo)
+  LIST(APPEND BUILD_CATALOGS ${_BUILD_FILE})
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${_BUILD_FILE}
+    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo ${_BUILD_FILE}
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE}
+    #APPEND
+  )
 ENDFOREACH(lingua)
 
 ADD_CUSTOM_TARGET(po-gmo ALL DEPENDS ${CATALOGS})
-IF (GNC_BUILD_AS_INSTALL)
-  ADD_CUSTOM_TARGET(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
-ENDIF()
+ADD_CUSTOM_TARGET(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
 
 
 FOREACH(lingua ${ALL_LINGUAS})
   INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo RENAME gnucash.mo DESTINATION share/locale/${lingua}/LC_MESSAGES)
 ENDFOREACH(lingua)
+
+
+FUNCTION(READ_FILE_REMOVING_COMMENTS OUTPUT PATH)
+  SET(RESULT "")
+  FILE(STRINGS "${PATH}" LINES_IN)
+  FOREACH(line ${LINES_IN})
+    STRING(REGEX REPLACE "#.*" "" line2 ${line})
+    LIST(APPEND RESULT ${line2})
+  ENDFOREACH()
+  SET(${OUTPUT} ${RESULT} PARENT_SCOPE)
+ENDFUNCTION()
+
+
+FUNCTION(MAKE_GNUCASH_POTFILES)
+
+  SET(IGNORE_PATTERNS "gw-" "test" "experimental" "python-bindings" "swig-.*\\.c")
+  
+  # Create a list of candidate translation files
+  FILE(GLOB_RECURSE FILES_IN RELATIVE ${CMAKE_SOURCE_DIR}
+    ${CMAKE_SOURCE_DIR}/*.c ${CMAKE_SOURCE_DIR}/*.glade ${CMAKE_SOURCE_DIR}/*.desktop.in
+    ${CMAKE_SOURCE_DIR}/*.keys.in  ${CMAKE_SOURCE_DIR}/*.gschema.xml.in.in ${CMAKE_SOURCE_DIR}/*.scm)
+
+  # Only consider files in the src/ directory. Also check against list of ignore patterns
+  SET(FILES "")
+  FOREACH(path ${FILES_IN})
+    STRING(REGEX MATCH "^src" IS_SRC ${path})
+    IF (IS_SRC)
+      SET(IS_IGNORED FALSE)
+      FOREACH(pattern ${IGNORE_PATTERNS})
+        STRING(REGEX MATCH ${pattern} YES_IGNORE ${path})
+        IF (YES_IGNORE)
+	  SET(IS_IGNORED TRUE)
+        ENDIF()
+      ENDFOREACH(pattern)
+      IF (NOT IS_IGNORED)
+        LIST(APPEND FILES ${path})
+      ENDIF(NOT IS_IGNORED)
+    ENDIF(IS_SRC)      
+  ENDFOREACH(path)
+
+  # Read in list of paths to skip from POTFILES.{skip,ignore}
+  READ_FILE_REMOVING_COMMENTS(SKIP_LINES POTFILES.skip)
+  READ_FILE_REMOVING_COMMENTS(IGNORE_LINES POTFILES.ignore)
+
+  # Remove the paths that are skipped or ignored
+  FOREACH(path ${SKIP_LINES} ${IGNORE_LINES})
+    list(REMOVE_ITEM FILES ${path})
+  ENDFOREACH()
+
+  
+  # CMake sorting different from UNIX sorting. Sort the files
+  # here so it is easier for me to compare to the autotools
+  # generated POTFILES.in
+  STRING(REPLACE ";" "\n" SORT_IN "${FILES}")
+  FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in.in "${SORT_IN}")
+
+  EXECUTE_PROCESS(COMMAND "sort"
+    INPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in.in
+    OUTPUT_VARIABLE POTFILES_IN
+  )
+  STRING(REPLACE "\n" ";" POTFILES "${POTFILES_IN}")
+
+  # Write out the final list.
+  # intltool-update insists that this file be in the source directory. :-(
+  SET(POTFILES_IN_PATH ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in)
+  FILE(WRITE ${POTFILES_IN_PATH} "# This is a list of files which contain translatable strings.
+# This file was generated by ../make-gnucash-potfiles.
+")
+
+  FOREACH(path ${POTFILES})
+    STRING(REGEX MATCH gschema.xml.in.in IS_GSCHEMA ${path})
+    IF(IS_GSCHEMA AND NOT WIN32)
+      # Force parse type for gsettings files
+      SET(path "[type: gettext/gsettings]${path}")
+    ENDIF()
+    FILE(APPEND ${POTFILES_IN_PATH} "${path}\n")
+  ENDFOREACH()
+
+  # These are also added, even though they are outside of src/
+  FILE(APPEND ${POTFILES_IN_PATH} "src/gnome/gnucash.appdata.xml.in
+src/gnome/gnucash.desktop.in.in
+src/libqof/qof/gnc-date.c
+src/libqof/qof/qofbookslots.h
+doc/tip_of_the_day.list.in
+")
+
+ENDFUNCTION()
+
+find_program(INTLTOOL_UPDATE NAMES intltool-update)
+IF (${INTLTOOL_UPDATE} STREQUAL "INTLTOOL_UPDATE-NOTFOUND")
+  MESSAGE(FATAL_ERROR "Can't find the 'intltool-update' program.")
+ENDIF ()
+
+IF(BUILDING_FROM_VCS)
+
+  MAKE_GNUCASH_POTFILES()
+
+  find_program(INTLTOOL_EXTRACT NAMES intltool-extract)
+  find_program(XGETTEXT xgettext)
+
+  IF (${INTLTOOL_EXTRACT} STREQUAL "INTLTOOL_EXTRACT-NOTFOUND")
+    MESSAGE(FATAL_ERROR "Can't find the 'intltool-extract' program.")
+  ENDIF ()
+
+  IF (${XGETTEXT} STREQUAL "XGETTEXT-NOTFOUND")
+    MESSAGE(FATAL_ERROR "Can't find the 'xgettext' program.")
+  ENDIF ()
+
+  IF (${CMAKE_VERSION} VERSION_GREATER 3.1 AND NOT WIN32)
+    EXECUTE_PROCESS(
+            COMMAND ${CMAKE_COMMAND_TMP} INTLTOOL_EXTRACT=${INTLTOOL_EXTRACT} XGETTEXT=${XGETTEXT} ${INTLTOOL_UPDATE} --gettext-package ${PACKAGE} --pot
+            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+            RESULT_VARIABLE GNUCASH_POT_RESULT
+    )
+    IF(NOT ${GNUCASH_POT_RESULT} STREQUAL "0")
+      MESSAGE(FATAL_ERROR "Error when creating gnucash.pot: ${GNUCASH_POT_RESULT}")
+    ENDIF()
+  ELSE()
+    CONFIGURE_FILE(make-gnucash-pot.sh.in make-gnucash-pot.sh)
+    EXECUTE_PROCESS(
+            COMMAND ${SHELL} ${CMAKE_CURRENT_BINARY_DIR}/make-gnucash-pot.sh
+            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+            RESULT_VARIABLE GNUCASH_POT_RESULT_SHELL
+    )
+    IF(NOT ${GNUCASH_POT_RESULT_SHELL} STREQUAL "0")
+      MESSAGE(FATAL_ERROR "Error when creating gnucash.pot from shell script: ${GNUCASH_POT_RESULT_SHELL}")
+    ENDIF()
+  ENDIF()
+
+  IF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.pot)
+    MESSAGE(FATAL_ERROR "POT file '${CMAKE_CURRENT_SOURCE_DIR}/gnucash.pot' was not successfully created.")
+  ENDIF()
+
+
+  EXECUTE_PROCESS(
+          COMMAND ${CMAKE_COMMAND} -E copy gnucash.pot ${CMAKE_CURRENT_BINARY_DIR}
+          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+  )
+  EXECUTE_PROCESS(
+          COMMAND ${CMAKE_COMMAND} -E remove gnucash.pot
+          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+  )
+
+ENDIF()
+
+ADD_CUSTOM_TARGET(check-po
+        COMMAND ${CMAKE_COMMAND}
+           -D INTLTOOL_UPDATE=${INTLTOOL_UPDATE}
+           -D PO_DIR=${CMAKE_CURRENT_SOURCE_DIR}
+           -P check-po.cmake
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+)
diff --git a/po/check-po.cmake b/po/check-po.cmake
new file mode 100644
index 0000000..6a4dbd7
--- /dev/null
+++ b/po/check-po.cmake
@@ -0,0 +1,23 @@
+
+# Run intltool-update -m to check for missing files in POTFILES.in
+# We detect failure by looking for the presence of a 'missing' file.
+
+# Intltool returns a zero status whether or not the check failed.
+
+FILE(REMOVE ${PO_DIR}/missing)
+IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+  EXECUTE_PROCESS(
+          COMMAND ${CMAKE_COMMAND} -E env ${INTLTOOL_UPDATE} -m
+          WORKING_DIRECTORY ${PO_DIR}
+  )
+ELSE()
+  EXECUTE_PROCESS(
+          COMMAND ${INTLTOOL_UPDATE} -m
+          WORKING_DIRECTORY ${PO_DIR}
+          RESULT_VARIABLE UPDATE_RESULT
+  )
+  MESSAGE("UPDATE_RESULT = ${UPDATE_RESULT}")
+ENDIF()
+IF (EXISTS ${PO_DIR}/missing)
+  MESSAGE(FATAL_ERROR "POTFILES.in is missing files. See 'missing' in ${PO_DIR}")
+ENDIF()
diff --git a/po/glossary/CMakeLists.txt b/po/glossary/CMakeLists.txt
new file mode 100644
index 0000000..12e38e8
--- /dev/null
+++ b/po/glossary/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+SET_DIST_LIST(po_glossary_DIST CMakeLists.txt bg.po ca.po da.po de.po el.po es_NI-policy.txt es.po fr.po gnc-glossary.txt he.po
+        hu.po it.po nb.po nl.po pl.po pt_BR.po pt.po ru.po rw.po sk.po sv.po txt-to-pot.sh vi.po zh_CN.po zh_TW.po)
\ No newline at end of file
diff --git a/po/make-gnucash-pot.sh.in b/po/make-gnucash-pot.sh.in
new file mode 100644
index 0000000..00e134d
--- /dev/null
+++ b/po/make-gnucash-pot.sh.in
@@ -0,0 +1,7 @@
+#!/bin/sh
+INTLTOOL_EXTRACT=@INTLTOOL_EXTRACT@
+XGETTEXT=@XGETTEXT@
+INTLTOOL_UPDATE=@INTLTOOL_UPDATE@
+SOURCE_DIR=@CMAKE_CURRENT_SOURCE_DIR@
+PACKAGE=@PACKAGE@
+cd $SOURCE_DIR && $INTLTOOL_UPDATE --gettext-package $PACKAGE --pot
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2d0a310..4bd4845 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -131,14 +131,12 @@ ADD_DEFINITIONS (-DHAVE_CONFIG_H)
 SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CONFIG_H})
 
-SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_BINARY_DIR}/swig-runtime.h)
+IF (BUILDING_FROM_VCS)
+  SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_BINARY_DIR}/swig-runtime.h)
+ELSE()
+  SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_SOURCE_DIR}/swig-runtime.h)
+ENDIF()
 
-#ADD_CUSTOM_COMMAND (
-#  OUTPUT ${SWIG_RUNTIME_H}
-#  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
-#  COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
-#)
-# ############################################################
 
 SET(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_PREFIX}/share/gnucash/scm)
 SET(SCHEME_INSTALLED_CACHE_DIR ${CMAKE_INSTALL_PREFIX}/lib/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
@@ -148,42 +146,48 @@ ADD_SUBDIRECTORY (libqof)
 ADD_SUBDIRECTORY (core-utils)
 ADD_SUBDIRECTORY (gnc-module)
 ADD_SUBDIRECTORY (engine)
-ADD_SUBDIRECTORY (backend/xml)
+ADD_SUBDIRECTORY (backend)
 ADD_SUBDIRECTORY (app-utils)
 ADD_SUBDIRECTORY (import-export)
-IF (WITH_SQL)
-  ADD_SUBDIRECTORY (backend/dbi)
-  ADD_SUBDIRECTORY (backend/sql)
-ENDIF (WITH_SQL)
 
 IF (WITH_GNUCASH)
   ADD_SUBDIRECTORY (bin)
-  ADD_SUBDIRECTORY (business/business-ledger)
-  ADD_SUBDIRECTORY (business/business-gnome)
-  ADD_SUBDIRECTORY (doc/design)
+  ADD_SUBDIRECTORY (business)
+  ADD_SUBDIRECTORY (cmake_modules)
+  ADD_SUBDIRECTORY (debug)
+  ADD_SUBDIRECTORY (doc)
   ADD_SUBDIRECTORY (gnome)
   ADD_SUBDIRECTORY (gnome-utils)
   ADD_SUBDIRECTORY (gnome-search)
   ADD_SUBDIRECTORY (html)
-  ADD_SUBDIRECTORY (optional/python-bindings)
-  ADD_SUBDIRECTORY (plugins/bi_import)
-  ADD_SUBDIRECTORY (plugins/customer_import)
+  ADD_SUBDIRECTORY (optional)
+  ADD_SUBDIRECTORY (plugins)
   ADD_SUBDIRECTORY (pixmaps)
-IF (WITH_PYTHON)
   ADD_SUBDIRECTORY (python)
-ENDIF()
   ADD_SUBDIRECTORY (quotes)
-  ADD_SUBDIRECTORY (register/ledger-core)
-  ADD_SUBDIRECTORY (register/register-core)
-  ADD_SUBDIRECTORY (register/register-gnome)
+  ADD_SUBDIRECTORY (register)
   ADD_SUBDIRECTORY(report)
   ADD_SUBDIRECTORY (scm)
-  ADD_SUBDIRECTORY (tax/us)
+  ADD_SUBDIRECTORY (tax)
   ADD_SUBDIRECTORY (test-core)
 ENDIF (WITH_GNUCASH)
 
 IF (WITH_CUTECASH)
-  ADD_SUBDIRECTORY (optional/gtkmm)
   ADD_SUBDIRECTORY (gnc)
 ENDIF (WITH_CUTECASH)
 
+SET(src_EXTRA_DIST
+        base-typemaps.i
+        config.h.cmake.in
+        gnc-test-env.pl
+        guile-mappings.h
+        platform.h
+        README
+        README.modules)
+
+SET_LOCAL_DIST(src_DIST_local CMakeLists.txt Makefile.am ${src_EXTRA_DIST})
+
+SET(src_DIST ${src_DIST_local} ${app_utils_DIST} ${backend_DIST} ${bin_DIST} ${business_DIST} ${cmake_modules_DIST}
+             ${core_utils_DIST} ${debug_DIST} ${doc_DIST} ${engine_DIST} ${gnc_module_DIST} ${gnome_DIST} ${gnome_search_DIST}
+             ${gnome_utils_DIST} ${html_DIST} ${import_export_DIST} ${libqof_DIST} ${optional_DIST} ${plugins_DIST} ${pixmaps_DIST} ${python_DIST}
+             ${quotes_DIST} ${register_DIST} ${report_DIST} ${scm_DIST} ${tax_DIST} ${test_core_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/app-utils/CMakeLists.txt b/src/app-utils/CMakeLists.txt
index 62558c3..bda7847 100644
--- a/src/app-utils/CMakeLists.txt
+++ b/src/app-utils/CMakeLists.txt
@@ -36,10 +36,11 @@ SET (app_utils_HEADERS
 
 )
 
+
 IF (BUILDING_FROM_VCS)
   # Command to generate the swig-app-utils.c wrapper file
   SET (SWIG_APP_UTILS_GUILE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-app-utils-guile.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_APP_UTILS_GUILE_C} ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.i)
+  GNC_ADD_SWIG_COMMAND (swig-apputils-guile-c ${SWIG_APP_UTILS_GUILE_C} ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.i)
   SET (SWIG_APP_UTILS_PYTHON_C ${CMAKE_CURRENT_BINARY_DIR}/swig-app-utils-python.c)
   GNC_ADD_SWIG_PYTHON_COMMAND (swig-app-utils-python ${SWIG_APP_UTILS_PYTHON_C} ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.i)
 ELSE()
@@ -73,7 +74,6 @@ SET (app_utils_SOURCES
   gncmod-app-utils.c
   guile-util.c
   option-util.c
-  ${SWIG_APP_UTILS_GUILE_C}
 )
 
 SET_SOURCE_FILES_PROPERTIES (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
@@ -89,7 +89,8 @@ IF (WIN32)
   LIST(APPEND app_utils_ALL_INCLUDES ${HTMLHELP_INCLUDE_PATH})
 ENDIF()
 
-ADD_LIBRARY (gncmod-app-utils ${app_utils_ALL_SOURCES})
+
+ADD_LIBRARY (gncmod-app-utils ${app_utils_ALL_SOURCES} ${SWIG_APP_UTILS_GUILE_C})
 TARGET_LINK_LIBRARIES(gncmod-app-utils ${app_utils_ALL_LIBRARIES})
 
 TARGET_INCLUDE_DIRECTORIES (gncmod-app-utils
@@ -126,16 +127,20 @@ ENDIF()
 
 INSTALL(FILES ${app_utils_HEADERS} DESTINATION include/gnucash)
 
-FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
-FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
+IF (WITH_OFX)
+  FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
+ENDIF()
 
-SET(MIGRATABLE_PREFS_XML ${CMAKE_CURRENT_BINARY_DIR}/migratable-prefs.xml)
-IF (GNC_BUILD_AS_INSTALL)
-  SET(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
-  FILE(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
+IF (WITH_AQBANKING)
+  FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
 ENDIF()
 
+SET(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
+FILE(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
+
 CONFIGURE_FILE(migratable-prefs.xml.in ${MIGRATABLE_PREFS_XML})
+# This configure_file is to generate the file for autotools
+CONFIGURE_FILE(migratable-prefs.xml.in migratable-prefs.xml)
 
 INSTALL(FILES ${MIGRATABLE_PREFS_XML} DESTINATION share/gnucash)
 INSTALL(FILES make-prefs-migration-script.xsl DESTINATION share/gnucash)
@@ -207,4 +212,11 @@ GNC_ADD_SCHEME_TARGETS(scm-app-utils-3
   FALSE
 )
 
-ADD_CUSTOM_TARGET(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
\ No newline at end of file
+ADD_CUSTOM_TARGET(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
+
+
+SET_LOCAL_DIST(app_utils_DIST_local
+        ${app_utils_ALL_SOURCES} gettext.scm ${app_utils_SCHEME_1} ${app_utils_SCHEME_2} ${app_utils_SCHEME_3}
+        app-utils.i CMakeLists.txt gnc-help-utils.c Makefile.am
+        make-prefs-migration-script.xsl migratable-prefs.xml.in README)
+SET(app_utils_DIST ${app_utils_DIST_local} ${test_app_utils_DIST} PARENT_SCOPE)
diff --git a/src/app-utils/test/CMakeLists.txt b/src/app-utils/test/CMakeLists.txt
index 3b48ecc..b525b80 100644
--- a/src/app-utils/test/CMakeLists.txt
+++ b/src/app-utils/test/CMakeLists.txt
@@ -26,3 +26,8 @@ GNC_ADD_TEST_WITH_GUILE(test-scm-query-string test-scm-query-string.c
 ADD_APP_UTILS_TEST(test-sx test-sx.c)
 
 GNC_ADD_SCHEME_TEST(scm-test-load-module test-load-module.in)
+
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
+
+SET_DIST_LIST(test_app_utils_DIST CMakeLists.txt Makefile.am test-exp-parser.c test-link-module.c test-load-module.in
+        test-print-parse-amount.c test-print-queries.c test-scm-query-string.c test-sx.c)
\ No newline at end of file
diff --git a/src/backend/CMakeLists.txt b/src/backend/CMakeLists.txt
new file mode 100644
index 0000000..35ebf79
--- /dev/null
+++ b/src/backend/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+ADD_SUBDIRECTORY(xml)
+IF (WITH_SQL)
+  ADD_SUBDIRECTORY (dbi)
+  ADD_SUBDIRECTORY (sql)
+ENDIF (WITH_SQL)
+
+
+
+SET_LOCAL_DIST(backend_DIST_local CMakeLists.txt Makefile.am)
+SET(backend_DIST ${backend_DIST_local} ${backend_dbi_DIST} ${backend_sql_DIST} ${backend_xml_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/backend/dbi/CMakeLists.txt b/src/backend/dbi/CMakeLists.txt
index de96c05..1ed55eb 100644
--- a/src/backend/dbi/CMakeLists.txt
+++ b/src/backend/dbi/CMakeLists.txt
@@ -11,6 +11,10 @@ SET (backend_dbi_noinst_HEADERS
   gnc-backend-dbi.h gnc-backend-dbi-priv.h
 )
 
+SET_LOCAL_DIST(backend_dbi_DIST_local
+        ${backend_dbi_SOURCES} ${backend_dbi_noinst_HEADERS} CMakeLists.txt Makefile.am)
+SET(backend_dbi_DIST ${backend_dbi_DIST_local} ${test_dbi_backend_DIST} PARENT_SCOPE)
+
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
diff --git a/src/backend/dbi/test/CMakeLists.txt b/src/backend/dbi/test/CMakeLists.txt
index 0b64b14..6b16769 100644
--- a/src/backend/dbi/test/CMakeLists.txt
+++ b/src/backend/dbi/test/CMakeLists.txt
@@ -20,6 +20,10 @@ SET(test_dbi_backend_SOURCES
   test-dbi-stuff.c
 )
 
+SET(test_dbi_backend_HEADERS test-dbi-business-stuff.h test-dbi-stuff.h)
+
+SET_DIST_LIST(test_dbi_backend_DIST ${test_dbi_backend_SOURCES} ${test_dbi_backend_HEADERS} test-dbi.xml CMakeLists.txt Makefile.am)
+
 # This test does not work on Win32
 IF (NOT WIN32)
   GNC_ADD_TEST(test-backend-dbi "${test_dbi_backend_SOURCES}"
diff --git a/src/backend/sql/CMakeLists.txt b/src/backend/sql/CMakeLists.txt
index 077ed90..53a8bea 100644
--- a/src/backend/sql/CMakeLists.txt
+++ b/src/backend/sql/CMakeLists.txt
@@ -53,6 +53,9 @@ SET (backend_sql_noinst_HEADERS
   escape.h
 )
 
+SET_LOCAL_DIST(backend_sql_DIST_local ${backend_sql_SOURCES} ${backend_sql_noinst_HEADERS} CMakeLists.txt Makefile.am)
+SET(backend_sql_DIST ${backend_sql_DIST_local} ${test_backend_sql_DIST} PARENT_SCOPE)
+
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${gnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
diff --git a/src/backend/sql/test/CMakeLists.txt b/src/backend/sql/test/CMakeLists.txt
index 2d6a63f..a9cc357 100644
--- a/src/backend/sql/test/CMakeLists.txt
+++ b/src/backend/sql/test/CMakeLists.txt
@@ -8,8 +8,13 @@ SET(BACKEND_SQL_TEST_INCLUDE_DIRS
   ${GLIB2_INCLUDE_DIRS}
 )
 
+SET(test_backend_sql_SOURCES test-sqlbe.c utest-gnc-backend-sql.c)
+
 SET(BACKEND_SQL_TEST_LIBS gnc-backend-sql gncmod-engine gnc-qof test-core)
 
+SET_DIST_LIST(test_backend_sql_DIST ${test_backend_sql_SOURCES} CMakeLists.txt Makefile.am
+        test-column-types.c)
+
 # This test does not actually do anything.
 GNC_ADD_TEST(test-column-types test-column-types.c
    BACKEND_SQL_TEST_INCLUDE_DIRS BACKEND_SQL_TEST_LIBS
@@ -17,7 +22,7 @@ GNC_ADD_TEST(test-column-types test-column-types.c
 
 
 
-GNC_ADD_TEST(test-sqlbe "test-sqlbe.c;utest-gnc-backend-sql.c"
+GNC_ADD_TEST(test-sqlbe "${test_backend_sql_SOURCES}"
    BACKEND_SQL_TEST_INCLUDE_DIRS BACKEND_SQL_TEST_LIBS
 )
 TARGET_COMPILE_DEFINITIONS(test-sqlbe PRIVATE TESTPROG=test_sqlbe)
\ No newline at end of file
diff --git a/src/backend/xml/CMakeLists.txt b/src/backend/xml/CMakeLists.txt
index 4df0cef..769457c 100644
--- a/src/backend/xml/CMakeLists.txt
+++ b/src/backend/xml/CMakeLists.txt
@@ -2,10 +2,6 @@
 
 ADD_SUBDIRECTORY(test)
 
-# Command to generate the swig-engine.c wrapper file
-SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
-GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
-
 SET (backend_xml_utils_noinst_HEADERS
   gnc-backend-xml.h
   gnc-xml.h
@@ -71,6 +67,9 @@ SET (backend_xml_utils_SOURCES
   sixtp.c
 )
 
+SET_LOCAL_DIST(backend_xml_DIST_local ${backend_xml_utils_SOURCES} ${backend_xml_utils_noinst_HEADERS}
+        gnc-backend-xml.c CMakeLists.txt Makefile.am)
+SET(backend_xml_DIST ${backend_xml_DIST_local} ${test_backend_xml_DIST} PARENT_SCOPE)
 
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${backend_xml_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
diff --git a/src/backend/xml/test/CMakeLists.txt b/src/backend/xml/test/CMakeLists.txt
index d9e4c7c..10d0227 100644
--- a/src/backend/xml/test/CMakeLists.txt
+++ b/src/backend/xml/test/CMakeLists.txt
@@ -1,4 +1,5 @@
 # Common stuff
+ADD_SUBDIRECTORY(test-files)
 
 SET(XML_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/src/backend/xml
@@ -55,8 +56,18 @@ SET(test_backend_xml_module_SOURCES
   ${CMAKE_SOURCE_DIR}/src/backend/xml/gnc-pricedb-xml-v2.c
 )
 
+SET_LOCAL_DIST(test_backend_xml_DIST_local CMakeLists.txt grab-types.pl Makefile.am README test-date-converting.c
+        test-dom-converters1.c test-dom-parser1.c test-file-stuff.c test-file-stuff.h test-kvp-frames.c
+        test-load-backend.c test-load-example-account.c  test-load-xml2.c test-save-in-lang.c test-string-converters.c
+        test-xml2-is-file.c test-xml-account.c test-real-data.sh.in test-xml-commodity.c test-xml-pricedb.c
+        test-xml-transaction.c)
+SET(test_backend_xml_DIST ${test_backend_xml_DIST_local} ${test_backend_xml_test_files_DIST} PARENT_SCOPE)
+
 # The test test-dom-parser1.c is not run by Makefile.am
 
+# This line for autotools
+CONFIGURE_FILE(test-real-data.sh.in test-real-data.sh)
+
 ADD_XML_TEST(test-date-converting "${test_backend_xml_base_SOURCES};test-date-converting.c")
 ADD_XML_TEST(test-dom-converters1 "${test_backend_xml_base_SOURCES};test-dom-converters1.c")
 ADD_XML_TEST(test-kvp-frames      "${test_backend_xml_base_SOURCES};test-kvp-frames.c")
diff --git a/src/backend/xml/test/test-files/CMakeLists.txt b/src/backend/xml/test/test-files/CMakeLists.txt
new file mode 100644
index 0000000..c325fa5
--- /dev/null
+++ b/src/backend/xml/test/test-files/CMakeLists.txt
@@ -0,0 +1,6 @@
+
+ADD_SUBDIRECTORY(xml2)
+
+SET_LOCAL_DIST(test_backend_xml_test_files_DIST_local CMakeLists.txt Makefile.am)
+SET(test_backend_xml_test_files_DIST ${test_backend_xml_test_files_DIST_local} ${xml2_DIST} PARENT_SCOPE)
+
diff --git a/src/backend/xml/test/test-files/xml2/CMakeLists.txt b/src/backend/xml/test/test-files/xml2/CMakeLists.txt
new file mode 100644
index 0000000..a68999f
--- /dev/null
+++ b/src/backend/xml/test/test-files/xml2/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+SET_DIST_LIST(xml2_DIST abcall.gml2 abc.gml2 carols-data-file.gml2 cbb-export.gml2 CMakeLists.txt conrads-file.gml2
+        every.gml2 goonies-file.gml2 hierachical-data-file.gml2 Makefile.am Money95bank_fr.gml2
+        Money95invst.gml2 Money95mutual.gml2 Money95stocks.gml2 ms-money.gml2 pricedb1.gml2)
\ No newline at end of file
diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt
index bf109c5..9599994 100644
--- a/src/bin/CMakeLists.txt
+++ b/src/bin/CMakeLists.txt
@@ -39,10 +39,7 @@ INSTALL(TARGETS gnucash DESTINATION bin)
 
 # Generate the gnucash-env script
 SET(SCRIPT_LIST  "")
-SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
-IF (GNC_BUILD_AS_INSTALL)
-  SET(SCRIPT_OUTPUT_DIR ${BINDIR_BUILD})
-ENDIF()
+SET(SCRIPT_OUTPUT_DIR ${BINDIR_BUILD})
 
 FOREACH (script gnucash-env gnucash-make-guids)
   SET (GNUCASH_ENV_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${script})
@@ -63,11 +60,9 @@ ENDFOREACH(script)
 SET(TOP_SRC_DIR ${CMAKE_SOURCE_DIR})
 SET(GNUCASH_BIN_INSTALL_NAME "gnucash")
 
-SET(VALGRIND_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
-IF (GNC_BUILD_AS_INSTALL)
-  SET(VALGRIND_OUTDIR ${BINDIR_BUILD})
-ENDIF()
+SET(VALGRIND_OUTDIR ${BINDIR_BUILD})
 
+CONFIGURE_FILE(gnucash.rc.in gnucash.rc @ONLY NEWLINE_STYLE WIN32)
 GNC_CONFIGURE(gnucash-valgrind.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind)
 
 FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
@@ -93,9 +88,7 @@ STRING(CONCAT ENV_STRINGS ${ENV_STRINGS_LIST})
 STRING(CONFIGURE "${ENV_STRINGS}" ENV_STRINGS_CONF @ONLY)
 
 SET(ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment)
-IF (GNC_BUILD_AS_INSTALL)
-  SET(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
-ENDIF()
+SET(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
 
 FILE(WRITE ${ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
 FILE(WRITE ${BUILD_ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
@@ -115,21 +108,19 @@ IF (NOT(${DATADIR} STREQUAL "/usr/share") AND NOT(${DATADIR} STREQUAL "/usr/loca
   FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR};{XDG_DATA_DIRS}" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
 ENDIF()
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
+FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
 
-  FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
-  FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
+FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
 
-  FILE(COPY ${BUILD_ENV_FILE_OUT}
-    DESTINATION ${SYSCONFDIR_BUILD}/gnucash
-    FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-  )
-  FILE(RENAME
-    ${SYSCONFDIR_BUILD}/gnucash/environment.build
-    ${SYSCONFDIR_BUILD}/gnucash/environment
-  )
-ENDIF()
+FILE(COPY ${BUILD_ENV_FILE_OUT}
+  DESTINATION ${SYSCONFDIR_BUILD}/gnucash
+  FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+FILE(RENAME
+  ${SYSCONFDIR_BUILD}/gnucash/environment.build
+  ${SYSCONFDIR_BUILD}/gnucash/environment
+)
 
 SET(ENVIRONMENT_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
 FILE(COPY ${ENV_FILE_OUT}
@@ -137,11 +128,13 @@ FILE(COPY ${ENV_FILE_OUT}
   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
 )
 
-
-
 INSTALL(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION bin)
 INSTALL(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION etc/gnucash)
 
+SET_LOCAL_DIST(bin_DIST_local CMakeLists.txt environment.in generate-gnc-script gnucash-bin.c gnucash.rc.in gnucash-valgrind.in
+        Makefile.am)
+SET(bin_DIST ${bin_DIST_local} ${overrides_DIST} ${test_bin_DIST} PARENT_SCOPE)
+
 IF (WIN32)
   # Write out a command script for windows
   SET(lib_directories boost enchant libsoup mysql pgsql libxslt)
@@ -174,14 +167,12 @@ IF (WIN32)
   ENDFOREACH(line)
   FILE(APPEND ${CMD_FILE} "\nstart gnucash %*\n")
 
-  IF (GNC_BUILD_AS_INSTALL)
-    SET(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
-    FILE(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
-    FOREACH(line ${CMD_LINES})
-      FILE(APPEND ${BUILD_CMD_FILE} "${line}")
-    ENDFOREACH(line)
-    FILE(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
-  ENDIF()
+  SET(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
+  FILE(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
+  FOREACH(line ${CMD_LINES})
+     FILE(APPEND ${BUILD_CMD_FILE} "${line}")
+  ENDFOREACH(line)
+  FILE(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
 
   INSTALL(PROGRAMS ${CMD_FILE} DESTINATION bin)
 ENDIF(WIN32)
diff --git a/src/bin/overrides/CMakeLists.txt b/src/bin/overrides/CMakeLists.txt
index 371d313..3110352 100644
--- a/src/bin/overrides/CMakeLists.txt
+++ b/src/bin/overrides/CMakeLists.txt
@@ -7,15 +7,15 @@ SET(GUILE ${GUILE_EXECUTABLE})
 SET(GNC_SRCDIR ${CMAKE_SOURCE_DIR})
 SET(GNC_BUILDDIR ${CMAKE_BINARY_DIR})
 
+CONFIGURE_FILE(gnucash-make-guids.in gnucash-make-guids)
 CONFIGURE_FILE(gnucash-make-guids.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-make-guids)
 GNC_CONFIGURE(gnucash-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-env)
 GNC_CONFIGURE(guile.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/guile) #not installed
 GNC_CONFIGURE(gnucash-build-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-build-env)   # not installed
 
-SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
-IF (GNC_BUILD_AS_INSTALL)
-  SET(SCRIPT_OUTPUT_DIR ${LIBDIR_BUILD}exec/gnucash/overrides)
-ENDIF()
+SET_DIST_LIST(overrides_DIST CMakeLists.txt gnucash-build-env.in gnucash-env.in gnucash-make-guids.in guile.in Makefile.am)
+
+SET(SCRIPT_OUTPUT_DIR ${LIBDIR_BUILD}exec/gnucash/overrides)
 
 FOREACH(file gnucash-make-guids gnucash-env guile gnucash-build-env)
   FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${file}
diff --git a/src/bin/test/CMakeLists.txt b/src/bin/test/CMakeLists.txt
index 540e015..2ec82f0 100644
--- a/src/bin/test/CMakeLists.txt
+++ b/src/bin/test/CMakeLists.txt
@@ -1,3 +1,6 @@
+CONFIGURE_FILE(test-version.in test-version)
 
 ADD_TEST(NAME test-version
-         COMMAND ${CMAKE_BINARY_DIR}/bin/gnucash --version)
\ No newline at end of file
+         COMMAND ${CMAKE_BINARY_DIR}/bin/gnucash --version)
+
+SET_DIST_LIST(test_bin_DIST CMakeLists.txt Makefile.am test-version.in)
\ No newline at end of file
diff --git a/src/business/CMakeLists.txt b/src/business/CMakeLists.txt
new file mode 100644
index 0000000..3bf7f7d
--- /dev/null
+++ b/src/business/CMakeLists.txt
@@ -0,0 +1,5 @@
+ADD_SUBDIRECTORY(business-gnome)
+ADD_SUBDIRECTORY(business-ledger)
+
+SET_LOCAL_DIST(business_DIST_local CMakeLists.txt Makefile.am)
+SET(business_DIST ${business_DIST_local} ${business_gnome_DIST} ${business_ledger_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/business/business-gnome/CMakeLists.txt b/src/business/business-gnome/CMakeLists.txt
index e33571a..a52ff27 100644
--- a/src/business/business-gnome/CMakeLists.txt
+++ b/src/business/business-gnome/CMakeLists.txt
@@ -79,4 +79,9 @@ GNC_ADD_SCHEME_TARGETS(scm-business-gnome
   "${GUILE_LIBRARY_DIRS}"
   "${GUILE_DEPENDS}"
   FALSE
-)
\ No newline at end of file
+)
+SET_LOCAL_DIST(business_gnome_DIST_local CMakeLists.txt Makefile.am ${business_gnome_SOURCES} ${business_gnome_HEADERS}
+               ${business_gnome_noinst_HEADERS} ${gncmod_business_gnome_SCHEME})
+
+SET(business_gnome_DIST ${business_gnome_DIST_local} ${business_gnome_gschema_DIST}
+        ${business_gnome_gtkbuilder_DIST} ${business_gnome_ui_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/business/business-gnome/gschemas/CMakeLists.txt b/src/business/business-gnome/gschemas/CMakeLists.txt
index cabe172..3a88499 100644
--- a/src/business/business-gnome/gschemas/CMakeLists.txt
+++ b/src/business/business-gnome/gschemas/CMakeLists.txt
@@ -1,4 +1,6 @@
 
 SET(business_gnome_GSCHEMA org.gnucash.dialogs.business.gschema.xml)
 
-ADD_GSCHEMA_TARGETS(business-gnome-gschema "${business_gnome_GSCHEMA}")
\ No newline at end of file
+ADD_GSCHEMA_TARGETS(business-gnome-gschema "${business_gnome_GSCHEMA}")
+
+SET_DIST_LIST(business_gnome_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.business.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/business/business-gnome/gtkbuilder/CMakeLists.txt b/src/business/business-gnome/gtkbuilder/CMakeLists.txt
index 1d4d3d1..e1dd37e 100644
--- a/src/business/business-gnome/gtkbuilder/CMakeLists.txt
+++ b/src/business/business-gnome/gtkbuilder/CMakeLists.txt
@@ -1,12 +1,16 @@
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    DESTINATION share/gnucash
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
+  DESTINATION share/gnucash
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
+
+SET(business_gnome_GLADE business-options-gnome.glade business-prefs.glade dialog-billterms.glade dialog-choose-owner.glade
+        dialog-customer.glade dialog-date-close.glade dialog-employee.glade dialog-invoice.glade dialog-job.glade
+        dialog-order.glade dialog-payment.glade dialog-vendor.glade)
+
+SET_DIST_LIST(business_gnome_gtkbuilder_DIST CMakeLists.txt Makefile.am ${business_gnome_GLADE})
\ No newline at end of file
diff --git a/src/business/business-gnome/ui/CMakeLists.txt b/src/business/business-gnome/ui/CMakeLists.txt
index 6c9019d..0b0f1e9 100644
--- a/src/business/business-gnome/ui/CMakeLists.txt
+++ b/src/business/business-gnome/ui/CMakeLists.txt
@@ -1,12 +1,12 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    DESTINATION share/gnucash
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
+  DESTINATION share/gnucash
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
+
+SET(business_gnome_UI gnc-plugin-business-ui.xml gnc-plugin-page-invoice-ui.xml gnc-plugin-page-owner-tree-ui.xml)
+SET_DIST_LIST(business_gnome_ui_DIST CMakeLists.txt Makefile.am ${business_gnome_UI})
\ No newline at end of file
diff --git a/src/business/business-ledger/CMakeLists.txt b/src/business/business-ledger/CMakeLists.txt
index 6573f86..93ba7c0 100644
--- a/src/business/business-ledger/CMakeLists.txt
+++ b/src/business/business-ledger/CMakeLists.txt
@@ -32,4 +32,6 @@ INSTALL(TARGETS gnc-business-ledger
   LIBRARY DESTINATION lib
   ARCHIVE DESTINATION lib
   RUNTIME DESTINATION bin)
-# No headers to install
\ No newline at end of file
+# No headers to install
+
+SET_DIST_LIST(business_ledger_DIST CMakeLists.txt Makefile.am ${gnc_business_ledger_SOURCES} ${gnc_business_ledger_noinst_HEADERS})
diff --git a/src/cmake_modules/CMakeLists.txt b/src/cmake_modules/CMakeLists.txt
new file mode 100644
index 0000000..2a014b3
--- /dev/null
+++ b/src/cmake_modules/CMakeLists.txt
@@ -0,0 +1,6 @@
+
+SET(cmake_FILES GncAddGSchemaTargets.cmake GncAddSchemeTargets.cmake GncAddSwigCommand.cmake GncAddTest.cmake
+        GncConfigure.cmake GncFindPkgConfig.cmake MacroAddSourceFileCompileFlags.cmake MacroAppendForeach.cmake
+        MakeDist.cmake MakeDistFiles.cmake MakeDistCheck.cmake)
+
+SET_DIST_LIST(cmake_modules_DIST CMakeLists.txt COPYING-CMAKE-SCRIPTS.txt ${cmake_FILES})
\ No newline at end of file
diff --git a/src/cmake_modules/GncAddGSchemaTargets.cmake b/src/cmake_modules/GncAddGSchemaTargets.cmake
index b36b8cc..dbe2c9d 100644
--- a/src/cmake_modules/GncAddGSchemaTargets.cmake
+++ b/src/cmake_modules/GncAddGSchemaTargets.cmake
@@ -12,16 +12,14 @@ MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
     SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
   ENDIF()
   FOREACH(file ${_gschema_INPUTS})
-    GNC_CONFIGURE2(${file}.in.in ${file}.in)
+    GNC_CONFIGURE2(${file}-target ${file}.in.in ${file}.in)
     STRING(REPLACE ".xml" ".valid" file_no_xml ${file})
     SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file})
     SET(_BUILD_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
     SET(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
     LIST(APPEND _gschema_OUTPUTS ${_OUTPUT_FILE})
     LIST(APPEND _gschema_VALIDS ${_VALID_FILE})
-    IF (GNC_BUILD_AS_INSTALL)
-      LIST(APPEND _gschema_BUILDS ${_BUILD_FILE})
-    ENDIF()
+    LIST(APPEND _gschema_BUILDS ${_BUILD_FILE})
     ADD_CUSTOM_COMMAND(
         OUTPUT ${_OUTPUT_FILE}
         COMMAND ${CMAKE_COMMAND_TMP}
@@ -30,13 +28,11 @@ MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
         DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${file}.in
         MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in.in
     )
-    IF (GNC_BUILD_AS_INSTALL)
-      ADD_CUSTOM_COMMAND(
-        OUTPUT ${_BUILD_FILE}
-        COMMAND ${CMAKE_COMMAND} -E copy ${_OUTPUT_FILE} ${_BUILD_FILE}
-        DEPENDS ${_OUTPUT_FILE}
-      )
-    ENDIF()
+    ADD_CUSTOM_COMMAND(
+      OUTPUT ${_BUILD_FILE}
+      COMMAND ${CMAKE_COMMAND} -E copy ${_OUTPUT_FILE} ${_BUILD_FILE}
+      DEPENDS ${_OUTPUT_FILE}
+    )
     ADD_CUSTOM_COMMAND(
         OUTPUT ${_VALID_FILE}
         COMMAND ${CMAKE_COMMAND_TMP}
diff --git a/src/cmake_modules/GncAddSchemeTargets.cmake b/src/cmake_modules/GncAddSchemeTargets.cmake
index 4027729..052849a 100644
--- a/src/cmake_modules/GncAddSchemeTargets.cmake
+++ b/src/cmake_modules/GncAddSchemeTargets.cmake
@@ -16,9 +16,7 @@ MACRO(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR_IN _GUILE_MODULES
   ENDIF(WIN32)
   SET(MAKE_LINKS ${MAKE_LINKS_IN})
   SET(_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_DIR_IN})
-  IF(GNC_BUILD_AS_INSTALL)
-    SET(_OUTPUT_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR_IN})
-  ENDIF()
+  SET(_OUTPUT_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR_IN})
   FILE(MAKE_DIRECTORY ${_OUTPUT_DIR})
   # For guile 1, we simple link (or copy, for Windows) each source file to the dest directory
   IF(HAVE_GUILE1 OR MAKE_LINKS)
@@ -74,14 +72,12 @@ MACRO(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR_IN _GUILE_MODULES
     STRING(REPLACE ";" ":" _GUILE_LD_LIBRARY_PATH "${_GUILE_LD_LIBRARY_PATH}")
     STRING(REPLACE ";" ":" _GNC_MODULE_PATH "${_GNC_MODULE_PATH}")
 
-    IF(GNC_BUILD_AS_INSTALL)
-      SET(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/2.0)
-      SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR}:${DATADIR_BUILD}/gnucash/scm")
-      SET(_GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
-#      SET(_GNC_MODULE_PATH  "${LIBDIR_BUILD}/${CMAKE_BUILD_TYPE}:${LIBDIR_BUILD}/gnucash/${CMAKE_BUILD_TYPE}")
-      SET(_GNC_MODULE_PATH  "")
-      SET(_GUILE_LD_LIBRARY_PATH ${_GNC_MODULE_PATH})
-    ENDIF()
+    SET(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/2.0)
+    SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR}:${DATADIR_BUILD}/gnucash/scm")
+    SET(_GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
+#    SET(_GNC_MODULE_PATH  "${LIBDIR_BUILD}/${CMAKE_BUILD_TYPE}:${LIBDIR_BUILD}/gnucash/${CMAKE_BUILD_TYPE}")
+    SET(_GNC_MODULE_PATH  "")
+    SET(_GUILE_LD_LIBRARY_PATH ${_GNC_MODULE_PATH})
     IF (__DEBUG)
       MESSAGE("  ")
       MESSAGE("   GUILE_LOAD_PATH: ${_GUILE_LOAD_PATH}")
@@ -100,12 +96,8 @@ MACRO(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR_IN _GUILE_MODULES
       IF (_TMP_OUTPUT_DIR_IN)
         SET(output_file ${_OUTPUT_DIR_IN}/${basename}.go)
       ENDIF()
-      IF(GNC_BUILD_AS_INSTALL)
-        SET(output_file ${_GUILE_CACHE_DIR}/${output_file})
-        LIST(APPEND _TARGET_FILES ${output_file})
-      ELSE()
-        LIST(APPEND _TARGET_FILES ${CMAKE_CURRENT_BINARY_DIR}/${output_file})
-      ENDIF()
+      SET(output_file ${_GUILE_CACHE_DIR}/${output_file})
+      LIST(APPEND _TARGET_FILES ${output_file})
 
       SET(source_file_abs_path ${CMAKE_CURRENT_SOURCE_DIR}/${source_file})
       IF (IS_ABSOLUTE ${source_file})
diff --git a/src/cmake_modules/GncAddSwigCommand.cmake b/src/cmake_modules/GncAddSwigCommand.cmake
index 89f4c26..bfbe846 100644
--- a/src/cmake_modules/GncAddSwigCommand.cmake
+++ b/src/cmake_modules/GncAddSwigCommand.cmake
@@ -4,14 +4,16 @@
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
 
-MACRO (GNC_ADD_SWIG_COMMAND _target _input)
+MACRO (GNC_ADD_SWIG_COMMAND _target _output _input)
 
 ADD_CUSTOM_COMMAND (
-  OUTPUT ${_target}
+  OUTPUT ${_output}
   DEPENDS ${_input} ${CMAKE_SOURCE_DIR}/src/base-typemaps.i ${ARGN}
-COMMAND ${SWIG_EXECUTABLE} -guile ${SWIG_ARGS} -Linkage module -I${CMAKE_SOURCE_DIR}/src/libqof/qof -I${CMAKE_SOURCE_DIR}/src  -o ${_target} ${_input}
+COMMAND ${SWIG_EXECUTABLE} -guile ${SWIG_ARGS} -Linkage module -I${CMAKE_SOURCE_DIR}/src/libqof/qof -I${CMAKE_SOURCE_DIR}/src  -o ${_output} ${_input}
 )
 
+ADD_CUSTOM_TARGET(${_target} DEPENDS ${_output})
+
 ENDMACRO (GNC_ADD_SWIG_COMMAND)
 
 
diff --git a/src/cmake_modules/GncAddTest.cmake b/src/cmake_modules/GncAddTest.cmake
index 9692c5e..8807ee2 100644
--- a/src/cmake_modules/GncAddTest.cmake
+++ b/src/cmake_modules/GncAddTest.cmake
@@ -33,6 +33,7 @@ FUNCTION(GET_GUILE_ENV)
     STRING(REPLACE ";" ":" GUILE_LOAD_PATH "${guile_load_path}")
   ENDIF()
   LIST(APPEND env "GUILE_LOAD_PATH=${GUILE_LOAD_PATH}")
+  LIST(APPEND env "GUILE=${GUILE_EXECUTABLE}")
   SET(GUILE_ENV ${env} PARENT_SCOPE)
 ENDFUNCTION()
 
diff --git a/src/cmake_modules/GncConfigure.cmake b/src/cmake_modules/GncConfigure.cmake
index d7c1a27..5c566b2 100644
--- a/src/cmake_modules/GncConfigure.cmake
+++ b/src/cmake_modules/GncConfigure.cmake
@@ -12,7 +12,7 @@ MACRO (GNC_CONFIGURE _INPUT _OUTPUT)
 ENDMACRO()
 
 
-MACRO (GNC_CONFIGURE2 _INPUT _OUTPUT)
+MACRO (GNC_CONFIGURE2 _TARGET _INPUT _OUTPUT)
 
   SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
   FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
@@ -38,5 +38,7 @@ MACRO (GNC_CONFIGURE2 _INPUT _OUTPUT)
                              -D DST=${_OUTPUT_FILE}
                              -P ${_TMPDIR}/${_INPUT}.cmake
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT}
-  )
+    )
+
+  ADD_CUSTOM_TARGET(${_TARGET} DEPENDS ${_OUTPUT_FILE})
 ENDMACRO()
diff --git a/src/cmake_modules/MakeDist.cmake b/src/cmake_modules/MakeDist.cmake
new file mode 100644
index 0000000..e1f45a5
--- /dev/null
+++ b/src/cmake_modules/MakeDist.cmake
@@ -0,0 +1,207 @@
+# This file implements the process of making source distributio tarballs. It expects to find list in
+# 'dist_manifest.txt' of all of the files to be included in the distribution, EXCEPT those
+# files that are generated. The list of generated files is specified in MakeDistFiles.cmake in the
+# COPY_FROM_BUILD and COPY_FROM_BUILD_2 variables.
+#
+# Given all of these files, the procedure is to:
+# 1. Remove any existing dist directory and make a new one.
+# 2. Copy of all the files in dist_manifest.text, COPY_FROM_BUILD and COPY_FROM_BUILD_2
+#    into the dist directory.
+# 3. Run autogen.sh if build a dist from Git.
+# 4. Create the tarball and compress it with gzip and bzip2.
+# 5. Then remove the dist directory.
+
+include(${CMAKE_MODULE_PATH}/MakeDistFiles.cmake)
+
+FUNCTION(FIND_AUTOMAKE AUTOMAKE_VAR ACLOCAL_VAR AUTOMAKE_VERSION_VAR NEED_OVERRIDE_VAR)
+    FIND_PROGRAM(AUTOMAKE automake)
+    EXECUTE_PROCESS(
+            COMMAND ${AUTOMAKE} --version
+            RESULT_VARIABLE AUTOMAKE_RESULT
+            OUTPUT_VARIABLE AUTOMAKE_OUTPUT
+            ERROR_VARIABLE AUTOMAKE_ERROR
+    )
+
+    # GnuCash will not pass distcheck under automake 1.15+
+    # See if automake-1.11 is available. If so use, that
+    SET(AUTOMAKE_OK TRUE)
+    SET(NEED_OVERRIDE FALSE)
+    IF(${AUTOMAKE} STREQUAL AUTOMAKE-NOTFOUND)
+      SET(AUTOMAKE_OK FALSE)
+    ELSE()
+      STRING(REGEX REPLACE ".*automake \\(GNU automake\\) ([0-9]\\.[0-9]+).*" "\\1" AUTOMAKE_VERSION "${AUTOMAKE_OUTPUT}")
+
+      IF (${AUTOMAKE_VERSION} VERSION_GREATER "1.14")
+        SET(AUTOMAKE_OK FALSE)
+      ELSE()
+        FIND_PROGRAM(ACLOCAL aclocal)
+        IF(${ACLOCAL} STREQUAL ACLOCAL-NOTFOUND)
+            MESSAGE(FATAL_ERROR "Found ok version of automake, but can't find aclocal")
+        ENDIF()
+      ENDIF()
+    ENDIF()
+    IF (NOT AUTOMAKE_OK)
+        FIND_PROGRAM(AUTOMAKE11 automake-1.11)
+        IF (${AUTOMAKE11} STREQUAL AUTOMAKE11-NOTFOUND)
+            IF (${AUTOMAKE} STREQUAL AUTOMAKE-NOTFOUND)
+                MESSAGE(FATAL_ERROR "Can't find 'automake' or 'automake-1.11'")
+            ELSE()
+                MESSAGE("Automake is incompatible version 1.15+, but can't find automake-1.11")
+                MESSAGE("  You can set AUTOTOOLS_IN_DIST=OFF to exclude autotools support.")
+                MESSAGE(FATAL_ERROR "automake not compatible")
+            ENDIF()
+        ELSE()
+            SET(AUTOMAKE ${AUTOMAKE11})
+            SET(AUTOMAKE_VERSION 1.11)
+            SET(NEED_OVERRIDE TRUE)
+            FIND_PROGRAM(ACLOCAL aclocal-1.11)
+            IF(${ACLOCAL} STREQUAL ACLOCAL-NOTFOUND)
+                MESSAGE(FATAL_ERROR "Found automake-1.11, but not aclocal-1.11")
+            ENDIF()
+        ENDIF()
+    ENDIF()
+    SET(${AUTOMAKE_VAR} ${AUTOMAKE} PARENT_SCOPE)
+    SET(${ACLOCAL_VAR} ${ACLOCAL} PARENT_SCOPE)
+    SET(${AUTOMAKE_VERSION_VAR} ${AUTOMAKE_VERSION} PARENT_SCOPE)
+    SET(${NEED_OVERRIDE_VAR} ${NEED_OVERRIDE} PARENT_SCOPE)
+ENDFUNCTION()
+
+
+FUNCTION(MAKE_DIST PACKAGE_PREFIX GNUCASH_SOURCE_DIR BUILD_SOURCE_DIR BUILDING_FROM_VCS)
+
+    SET(CMAKE_COMMAND_TMP "")
+    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        SET(CMAKE_COMMAND_TMP ${CMAKE_COMMAND} -E env)
+    ENDIF()
+
+    # -- Remove any existing packaging directory.
+    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+
+    IF (EXISTS ${PACKAGE_PREFIX})
+        MESSAGE(FATAL_ERROR "Unable to remove existing dist directory \"${PACKAGE_PREFIX}\". Cannot continue.")
+    ENDIF()
+
+
+    # -- Copy in distributed files
+    IF(NOT EXISTS dist_manifest.txt)
+        message(FATAL_ERROR "Cannot find dist manifest: dist_manifest.txt")
+    ENDIF()
+
+    file(STRINGS dist_manifest.txt ALL_DIST)
+
+    FOREACH(file ${ALL_DIST})
+        IF(NOT EXISTS ${GNUCASH_SOURCE_DIR}/${file})
+            MESSAGE(FATAL_ERROR "Can't find dist file ${GNUCASH_SOURCE_DIR}/${file}")
+        ENDIF()
+        GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
+        FILE(MAKE_DIRECTORY ${PACKAGE_PREFIX}/${dir})
+        FILE(COPY ${GNUCASH_SOURCE_DIR}/${file} DESTINATION ${PACKAGE_PREFIX}/${dir})
+    ENDFOREACH()
+
+    # -- Copy in build products that are distributed.
+
+    FOREACH(file ${COPY_FROM_BUILD} ${COPY_FROM_BUILD_2})
+        EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_SOURCE_DIR}/${file} ${PACKAGE_PREFIX}/${file})
+        IF (NOT EXISTS ${PACKAGE_PREFIX}/${file})
+            MESSAGE(FATAL_ERROR "Copy of ${BUILD_SOURCE_DIR}/${file} to dist dir '${PACKAGE_PREFIX}' failed.")
+        ENDIF()
+    ENDFOREACH()
+
+
+    CMAKE_POLICY(SET CMP0012 NEW)
+
+    IF (${BUILDING_FROM_VCS} AND AUTOTOOLS_IN_DIST)
+        FIND_AUTOMAKE(AUTOMAKE ACLOCAL AUTOMAKE_VERSION NEED_OVERRIDE)
+        # -- Run autogen.sh to cause Makefile.in files to be created.
+        SET(CMAKE_COMMAND_AUTOTOOLS ${SHELL} -c)
+        IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+            SET(CMAKE_COMMAND_AUTOTOOLS ${CMAKE_COMMAND} -E env)
+        ENDIF()
+        IF (${NEED_OVERRIDE})
+          EXECUTE_PROCESS(
+                  COMMAND ${CMAKE_COMMAND_AUTOTOOLS} AUTOMAKE=${AUTOMAKE} ACLOCAL=${ACLOCAL} ./autogen.sh
+                  WORKING_DIRECTORY ${PACKAGE_PREFIX}
+                  RESULT_VARIABLE AUTOGEN_RESULT
+                  OUTPUT_VARIABLE AUTOGEN_OUTPUT
+          )
+        ELSE()
+            EXECUTE_PROCESS(
+                    COMMAND ${CMAKE_COMMAND_AUTOTOOLS} ./autogen.sh
+                    WORKING_DIRECTORY ${PACKAGE_PREFIX}
+                    RESULT_VARIABLE AUTOGEN_RESULT
+                    OUTPUT_VARIABLE AUTOGEN_OUTPUT
+            )
+        ENDIF()
+        IF(NOT ${AUTOGEN_RESULT} STREQUAL "0")
+            MESSAGE(FATAL_ERROR "autogen.sh step failed: ${AUTOGEN_RESULT}")
+        ENDIF()
+        # -- Remove autogen files as they are not distributed.
+
+        FILE(REMOVE ${PACKAGE_PREFIX}/autogen.sh)
+        FILE(REMOVE_RECURSE ${PACKAGE_PREFIX}/autom4te.cache)
+
+        # -- Autogen.sh creates some files a symbolic links that we turn into real files here.
+
+        IF (UNIX) # No symbolic links on Windows
+            SET(LINKS missing config.guess COPYING depcomp INSTALL install-sh config.sub compile)
+            IF(${AUTOMAKE_VERSION} VERSION_GREATER 1.11)
+                LIST(APPEND LINKS test-driver)
+            ENDIF()
+            FOREACH(link ${LINKS})
+                GET_FILENAME_COMPONENT(realpath ${PACKAGE_PREFIX}/${link} REALPATH)
+                FILE(REMOVE ${PACKAGE_PREFIX}/${link})
+                FILE(COPY ${realpath} DESTINATION ${PACKAGE_PREFIX})
+            ENDFOREACH(link)
+
+            FOREACH(link src/doc/design/mdate-sh src/doc/design/texinfo.tex)
+                GET_FILENAME_COMPONENT(dir ${link} DIRECTORY)
+                GET_FILENAME_COMPONENT(realpath ${PACKAGE_PREFIX}/${link} REALPATH)
+                FILE(REMOVE ${PACKAGE_PREFIX}/${link})
+                FILE(COPY ${realpath} DESTINATION ${PACKAGE_PREFIX}/${dir})
+            ENDFOREACH(link)
+        ENDIF(UNIX)
+
+    ENDIF()
+
+    # -- Create the tarball.
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${CMAKE_COMMAND} -E tar cf ${PACKAGE_PREFIX}.tar ${PACKAGE_PREFIX}
+            WORKING_DIRECTORY .
+            ERROR_MSG "tar command to create ${PACKAGE_PREFIX}.tar failed."
+    )
+
+    # -- Compress the tarball with gzip
+    EXECUTE_PROCESS(
+        COMMAND ${CMAKE_COMMAND} -E copy ${PACKAGE_PREFIX}.tar ${PACKAGE_PREFIX}.tar.save
+    )
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${CMAKE_COMMAND_TMP} gzip -f ${PACKAGE_PREFIX}.tar
+            WORKING_DIRECTORY .
+            ERROR_MSG "gzip command to create ${PACKAGE_PREFIX}.tar.gz failed."
+    )
+
+    # -- Compress the tarball with bzip2
+    EXECUTE_PROCESS(
+        COMMAND ${CMAKE_COMMAND} -E rename ${PACKAGE_PREFIX}.tar.save ${PACKAGE_PREFIX}.tar
+    )
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${CMAKE_COMMAND_TMP} bzip2 -f ${PACKAGE_PREFIX}.tar
+            WORKING_DIRECTORY .
+            ERROR_MSG "bzip2 command to create ${PACKAGE_PREFIX}.tar.bz2 failed."
+    )
+
+    # -- Clean up packaging directory.
+
+    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+
+    IF(EXISTS ${PACKAGE_PREFIX})
+        MESSAGE(WARNING "Could not remove packaging directory '${PACKAGE_PREFIX}'")
+    ENDIF()
+
+    # -- All done.
+
+    MESSAGE("\n\nDistributions ${PACKAGE_PREFIX}.tar.gz and ${PACKAGE_PREFIX}.tar.bz2 created.\n\n")
+ENDFUNCTION()
+
+MAKE_DIST(${PACKAGE_PREFIX} ${GNUCASH_SOURCE_DIR} ${BUILD_SOURCE_DIR} ${BUILDING_FROM_VCS})
diff --git a/src/cmake_modules/MakeDistCheck.cmake b/src/cmake_modules/MakeDistCheck.cmake
new file mode 100644
index 0000000..d1fd355
--- /dev/null
+++ b/src/cmake_modules/MakeDistCheck.cmake
@@ -0,0 +1,182 @@
+
+include(MakeDistFiles)
+
+FUNCTION(RUN_DIST_CHECK PACKAGE_PREFIX EXT)
+
+    SET(tarball ${PACKAGE_PREFIX}.tar${EXT})
+    IF (NOT EXISTS ${tarball})
+        MESSAGE(FATAL_ERROR "Can't find dist tarball '${tarball}'")
+    ENDIF()
+
+    # Remove the directory we're about to extract to
+    FILE(REMOVE_RECURSE ${PACKAGE_PREFIX})
+
+    # Untar the distribution we want to check
+    SET(TAR_OPTION "zxf")
+    IF (${EXT} STREQUAL ".bz2")
+        SET(TAR_OPTION "jxf")
+    ENDIF()
+        
+    SET(MY_CMAKE_COMMAND "")
+    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        SET(MY_CMAKE_COMMAND ${CMAKE_COMMAND} -E env)
+    ENDIF()
+
+    FIND_PROGRAM(NINJA_COMMAND NAMES ninja ninja-build)
+    IF (${NINJA_COMMAND} STREQUAL "NINJA_COMMAND-NOTFOUND")
+        MESSAGE(FATAL_ERROR "Can't find the 'ninja' or 'ninja-build' program.")
+    ENDIF ()
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${CMAKE_COMMAND} -E tar ${TAR_OPTION} ${tarball}
+            WORKING_DIRECTORY .
+            ERROR_MSG "Command to untar ${tarball} failed."
+    )
+
+    # Officially, I should make the contents of the untarred dist directory read-only,
+    # but that will cause the build to fail (intltool is unhappy).
+
+    # Create a build directory and configure the Cmake build
+
+    SET(BUILD_DIR "_cmake_build")
+    SET(INSTALL_DIR "_cmake_install")
+    FILE(REMOVE_RECURSE ${BUILD_DIR} ${INSTALL_DIR})
+
+    FILE(MAKE_DIRECTORY ${BUILD_DIR} ${INSTALL_DIR})
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${CMAKE_COMMAND} -G Ninja
+              -D CMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+              -D CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+              -D CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
+              -D CMAKE_INSTALL_PREFIX=../${INSTALL_DIR}
+              -D AUTOTOOLS_IN_DIST=${AUTOTOOLS_IN_DIST}
+              ../${PACKAGE_PREFIX}
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "CMake configure command failed."
+    )
+
+    # Run ninja in the build directory
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND}
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Ninja build failed."
+    )
+
+    # Run ninja install
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} install
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Ninja install failed."
+    )
+
+    # Run ninja check in the build directory
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} check
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Ninja check failed."
+    )
+
+    # Run ninja dist
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} ${NINJA_COMMAND} dist
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Ninja dist failed."
+    )
+
+    MESSAGE("distcheck complete.")
+
+ENDFUNCTION()
+
+FUNCTION(RUN_AUTOTOOLS_DIST_CHECK PACKAGE_PREFIX)
+    # We assume that the RUN_DIST_CHECK() function has been run so that we can
+    # use the untarred distribution created by that step.
+    SET(BUILD_DIR ${PACKAGE_PREFIX})
+    SET(INSTALL_DIR "_cmake_install_autotools")
+    FILE(REMOVE_RECURSE ${INSTALL_DIR})
+    FILE(MAKE_DIRECTORY ${INSTALL_DIR})
+
+    SET(MY_CMAKE_COMMAND "")
+    IF (${CMAKE_VERSION} VERSION_GREATER 3.1)
+        SET(MY_CMAKE_COMMAND ${CMAKE_COMMAND} -E env)
+    ENDIF()
+
+    IF(CMAKE_PREFIX_PATH)
+        EXECUTE_PROCESS_AND_CHECK_RESULT(
+                COMMAND ${MY_CMAKE_COMMAND}
+                    LDFLAGS=-L${CMAKE_PREFIX_PATH}/lib
+                    CFLAGS=-m32
+                    CPPFLAGS=-I${CMAKE_PREFIX_PATH}/include
+                    PATH=${CMAKE_PREFIX_PATH}/bin:$ENV{PATH}
+                    ./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/${INSTALL_DIR} --enable-compile-warnings
+                        --with-dbi-dbd-dir=${CMAKE_PREFIX_PATH}/lib/dbd
+                WORKING_DIRECTORY ${BUILD_DIR}
+                ERROR_MSG "Autotools 'configure' step failed."
+        )
+
+    ELSE()
+        EXECUTE_PROCESS_AND_CHECK_RESULT(
+                COMMAND ${MY_CMAKE_COMMAND}
+                ./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/${INSTALL_DIR} --enable-compile-warnings
+                WORKING_DIRECTORY ${BUILD_DIR}
+                ERROR_MSG "Autotools 'configure' step failed."
+        )
+    ENDIF()
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} make -j 4
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make' step failed."
+    )
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} make check
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make check' step failed."
+    )
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} make install
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make install' step failed."
+    )
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} make uninstall
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make uninstall' step failed."
+    )
+
+    EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND} make dist
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make dist' step failed."
+    )
+
+    IF (CMAKE_PREFIX_PATH)
+      EXECUTE_PROCESS_AND_CHECK_RESULT(
+            COMMAND ${MY_CMAKE_COMMAND}
+               LDFLAGS=-L${CMAKE_PREFIX_PATH}/lib
+               CFLAGS=-m32
+               CPPFLAGS=-I${CMAKE_PREFIX_PATH}/include
+               PATH=${CMAKE_PREFIX_PATH}/bin:$ENV{PATH}
+               DISTCHECK_CONFIGURE_FLAGS="--with-dbi-dbd-dir=${CMAKE_PREFIX_PATH}/lib/dbd" 
+                 make distcheck
+            WORKING_DIRECTORY ${BUILD_DIR}
+            ERROR_MSG "Autotools 'make distcheck' step failed."
+      )
+    ELSE()
+      EXECUTE_PROCESS_AND_CHECK_RESULT(
+              COMMAND ${MY_CMAKE_COMMAND} make distcheck
+              WORKING_DIRECTORY ${BUILD_DIR}
+              ERROR_MSG "Autotools 'make distcheck' step failed."
+      )
+    ENDIF()
+    MESSAGE("Autotools distcheck complete.")
+
+ENDFUNCTION()
+
+RUN_DIST_CHECK(${PACKAGE_PREFIX} .gz)
+IF (AUTOTOOLS_IN_DIST)
+  RUN_AUTOTOOLS_DIST_CHECK(${PACKAGE_PREFIX})
+ENDIF()
diff --git a/src/cmake_modules/MakeDistFiles.cmake b/src/cmake_modules/MakeDistFiles.cmake
new file mode 100644
index 0000000..c0fcb6a
--- /dev/null
+++ b/src/cmake_modules/MakeDistFiles.cmake
@@ -0,0 +1,124 @@
+
+IF (${CMAKE_VERSION} VERSION_LESS 3.3)
+    INCLUDE(CMakeParseArguments)
+ENDIF()
+
+
+FUNCTION(SET_LOCAL_DIST output)
+    SET(dist_files "")
+    FOREACH(file ${ARGN})
+        FILE(RELATIVE_PATH relative ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${file})
+        LIST(APPEND dist_files ${relative})
+    ENDFOREACH()
+    SET (${output} ${dist_files} PARENT_SCOPE)
+ENDFUNCTION()
+
+MACRO(SET_DIST_LIST output)
+    SET_LOCAL_DIST(${output}_TMP ${ARGN})
+    SET(${output} ${${output}_TMP} PARENT_SCOPE)
+ENDMACRO()
+
+FUNCTION(EXECUTE_PROCESS_AND_CHECK_RESULT)
+    cmake_parse_arguments(VARS "" "WORKING_DIRECTORY;ERROR_MSG" "COMMAND" ${ARGN})
+    EXECUTE_PROCESS(
+            COMMAND ${VARS_COMMAND}
+            WORKING_DIRECTORY ${VARS_WORKING_DIRECTORY}
+            RESULT_VARIABLE RESULT
+    )
+    IF (NOT "${RESULT}" STREQUAL "0")
+        MESSAGE(FATAL_ERROR ${VARS_ERROR_MSG})
+    ENDIF()
+ENDFUNCTION()
+
+
+# This is a list of files generated at build time that
+# should be copied into the dist tarball. An item in
+# this list should be a file, not a directory or glob.
+# File in this list become dependenices of the 'dist'
+# target.
+
+
+SET(COPY_FROM_BUILD
+  ChangeLog
+  src/app-utils/migratable-prefs.xml
+  src/app-utils/swig-app-utils-guile.c
+  src/app-utils/swig-app-utils-python.c
+  src/app-utils/test/test-load-module
+  src/backend/xml/test/test-real-data.sh
+  src/bin/gnucash.rc
+  src/bin/overrides/gnucash-make-guids
+  src/bin/test/test-version
+  src/core-utils/gnc-vcs-info.h
+  src/core-utils/swig-core-utils-guile.c
+  src/core-utils/swig-core-utils-python.c
+  src/doc/design/gnucash-design.info
+  src/engine/iso-4217-currencies.c
+  src/engine/swig-engine.c
+  src/engine/test/test-create-account
+  src/engine/test/test-scm-query-import
+  src/gnc-module/swig-gnc-module.c
+  src/gnc-module/test/mod-bar/swig-bar.c
+  src/gnc-module/test/mod-baz/swig-baz.c
+  src/gnc-module/test/mod-foo/swig-foo.c
+  src/gnc-module/test/test-gwrapped-c
+  src/gnc-module/test/test-load-deps
+  src/gnc-module/test/test-load-scm
+  src/gnc-module/test/test-scm-dynload
+  src/gnc-module/test/test-scm-init
+  src/gnc-module/test/test-scm-module
+  src/gnc-module/test/test-scm-multi
+  src/gnome/gnucash.desktop.in
+  src/gnome/swig-gnome.c
+  src/gnome-utils/gnc-warnings.c
+  src/gnome-utils/swig-gnome-utils.c
+  src/gnome-utils/test/test-load-module
+  src/html/swig-gnc-html.c
+  src/optional/python-bindings/gnucash_core.c
+  src/report/report-gnome/swig-report-gnome.c
+  src/report/report-gnome/test/test-load-module
+  src/report/report-system/swig-report-system.c
+  src/report/report-system/test/test-load-module
+  src/report/standard-reports/test/test-load-module
+  src/report/stylesheets/test/test-load-module
+  src/report/utility-reports/test/test-load-module
+  src/scm/build-config.scm
+  src/swig-runtime.h
+  src/test-core/swig-unittest-support-guile.c
+  src/test-core/swig-unittest-support-python.c
+)
+
+# This list is similiar to the COPY_FROM_BUILD list
+# above, except that we don't create an explicit
+# dependency on this for the 'dist' target. I need
+# to fix the creation of these files so that we
+# can add the as dependencies for 'dist'. These
+# file are not generated using CONFIGURE_FILE(),
+# so CMake does not realize these are generated files.
+
+# Items marked with GNC_CONFIGURE can be
+# properly generated when we drop autotools, because
+# then the source file can use the @XXX@ convention
+# instead of @-XXX-@
+
+SET(COPY_FROM_BUILD_2
+        doc/gnucash.1  # Uses GNC_CONFIGURE
+        packaging/gnucash.spec # Uses GNC_CONFIGURE
+        po/gnucash.pot
+        src/doc/design/stamp-vti
+        src/doc/design/version.texi
+        src/pixmaps/128x128/gnucash-icon.png
+        src/pixmaps/16x16/gnucash-icon.png
+        src/pixmaps/22x22/gnucash-icon.png
+        src/pixmaps/24x24/gnucash-icon.png
+        src/pixmaps/256x256/gnucash-icon.png
+        src/pixmaps/32x32/gnucash-icon.png
+        src/pixmaps/48x48/gnucash-icon.png
+        src/pixmaps/64x64/gnucash-icon.png
+        src/pixmaps/96x96/gnucash-icon.png
+        src/pixmaps/gnucash-icon-16x16.png
+        src/pixmaps/gnucash-icon-32x32.png
+        src/pixmaps/scalable/gnucash-icon.svg
+        src/optional/python-bindings/gnucash_core_c.py
+        src/test-core/unittest_support.py
+
+        )
\ No newline at end of file
diff --git a/src/core-utils/CMakeLists.txt b/src/core-utils/CMakeLists.txt
index 16fac5d..c48f7ee 100644
--- a/src/core-utils/CMakeLists.txt
+++ b/src/core-utils/CMakeLists.txt
@@ -4,7 +4,7 @@ ADD_SUBDIRECTORY(test)
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_CORE_UTILS_GUILE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-core-utils-guile.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_CORE_UTILS_GUILE_C} ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i)
+  GNC_ADD_SWIG_COMMAND (swig-core-utils-guile-c ${SWIG_CORE_UTILS_GUILE_C} ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i)
   SET (SWIG_CORE_UTILS_PYTHON_C ${CMAKE_CURRENT_BINARY_DIR}/swig-core-utils-python.c)
   GNC_ADD_SWIG_PYTHON_COMMAND (swig-core-utils-python ${SWIG_CORE_UTILS_PYTHON_C} ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i)
 ELSE()
@@ -31,12 +31,16 @@ SET (core_utils_SOURCES
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
-# Command to generate the swig-runtime.h header
-ADD_CUSTOM_COMMAND (
- OUTPUT ${SWIG_RUNTIME_H}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
- COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
-)
+IF (BUILDING_FROM_VCS)
+  # Command to generate the swig-runtime.h header
+  ADD_CUSTOM_COMMAND (
+    OUTPUT ${SWIG_RUNTIME_H}
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
+    COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
+  )
+ENDIF()
+
+ADD_CUSTOM_TARGET(swig-runtime-h DEPENDS ${SWIG_RUNTIME_H})
 
 # Add dependency on swig-runtime.h
 SET_SOURCE_FILES_PROPERTIES (gnc-guile-utils.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
@@ -83,11 +87,21 @@ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
   CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
 ")
 
-ADD_CUSTOM_TARGET(gnc-vcs-info ALL
-  ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
-                   -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
-                   -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
-)
+IF (${CMAKE_VERSION} VERSION_GREATER "3.1")
+  ADD_CUSTOM_TARGET(gnc-vcs-info ALL
+    BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
+    COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
+                     -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
+                     -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
+  )
+ELSE()
+  # BYPRODUCTS keyword not supported below 3.2
+  ADD_CUSTOM_TARGET(gnc-vcs-info ALL
+    COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
+                     -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
+                     -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
+  )
+ENDIF()
 
 ### Compile library
 
@@ -113,6 +127,9 @@ SET(core_utils_ALL_LIBRARIES gnc-qof ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT
 SET(core_utils_ALL_INCLUDES ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
                             ${GUILE_INCLUDE_DIRS} ${GTK_MAC_INCLUDE_DIRS})
 
+SET_LOCAL_DIST(core_utils_DIST_local ${core_utils_ALL_SOURCES} CMakeLists.txt Makefile.am core-utils.i core-utils.scm gncla-dir.h.in)
+SET(core_utils_DIST ${core_utils_DIST_local} ${test_core_utils_DIST} PARENT_SCOPE)
+
 IF (MAC_INTEGRATION)
   LIST(APPEND core_utils_ALL_LIBRARIES ${OSX_EXTRA_LIBRARIES})
 ENDIF()
diff --git a/src/core-utils/test/CMakeLists.txt b/src/core-utils/test/CMakeLists.txt
index c701343..697c66f 100644
--- a/src/core-utils/test/CMakeLists.txt
+++ b/src/core-utils/test/CMakeLists.txt
@@ -15,4 +15,6 @@ ENDMACRO()
 
 ADD_CORE_UTILS_TEST(test-gnc-glib-utils test-gnc-glib-utils.c)
 ADD_CORE_UTILS_TEST(test-gnc-uri-utils test-gnc-uri-utils.c)
-ADD_CORE_UTILS_TEST(test-resolve-file-path test-resolve-file-path.c)
\ No newline at end of file
+ADD_CORE_UTILS_TEST(test-resolve-file-path test-resolve-file-path.c)
+
+SET_DIST_LIST(test_core_utils_DIST CMakeLists.txt Makefile.am test-gnc-glib-utils.c test-gnc-uri-utils.c test-resolve-file-path.c)
\ No newline at end of file
diff --git a/src/core-utils/test/Makefile.am b/src/core-utils/test/Makefile.am
index 540fc05..c03d3b8 100644
--- a/src/core-utils/test/Makefile.am
+++ b/src/core-utils/test/Makefile.am
@@ -49,7 +49,7 @@ test_gnc_glib_utils_CFLAGS = \
         -I${top_srcdir}/${MODULEPATH} \
         ${GLIB_CFLAGS}
 
-EXTRA_DIST =
+EXTRA_DIST +=
 
 clean-local:
 	rm -f translog.*
diff --git a/src/debug/CMakeLists.txt b/src/debug/CMakeLists.txt
new file mode 100644
index 0000000..bfd13bf
--- /dev/null
+++ b/src/debug/CMakeLists.txt
@@ -0,0 +1,4 @@
+ADD_SUBDIRECTORY(valgrind)
+
+SET_LOCAL_DIST(debug_DIST_local CMakeLists.txt Makefile.am)
+SET(debug_DIST ${debug_DIST_local} ${valgrind_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/debug/valgrind/CMakeLists.txt b/src/debug/valgrind/CMakeLists.txt
new file mode 100644
index 0000000..9f5897e
--- /dev/null
+++ b/src/debug/valgrind/CMakeLists.txt
@@ -0,0 +1,11 @@
+SET(valgrind_FILES
+        valgrind-gdk.supp
+        valgrind-glib.supp
+        valgrind-gnucash.supp
+        valgrind-libfontconfig.supp
+        valgrind-libgda.supp
+        valgrind-libguile.supp
+        valgrind-x11.supp
+        )
+
+SET_DIST_LIST(valgrind_DIST CMakeLists.txt Makefile.am ${valgrind_FILES})
\ No newline at end of file
diff --git a/src/doc/CMakeLists.txt b/src/doc/CMakeLists.txt
new file mode 100644
index 0000000..19ffc16
--- /dev/null
+++ b/src/doc/CMakeLists.txt
@@ -0,0 +1,38 @@
+ADD_SUBDIRECTORY(design)
+ADD_SUBDIRECTORY(xml)
+
+SET(doc_FILES
+        backup.txt
+        books.txt
+        budget.txt
+#        business.txt
+        callgrind.txt
+        constderv.html
+#        constraints.txt
+        currencies.txt
+        doxygen.cfg.in
+        doxygen_main_page.c
+#        engine.txt
+        finderv.html
+        finutil.html
+#        g2-architecture.txt
+        generic-druid-framework.txt
+#        gnc-numeric-example.txt
+        guid.txt
+        loans.txt
+        lots.txt
+        multicurrency-discussion.txt
+#        prices.txt
+        python-bindings-doxygen.py
+        qif.txt
+        README
+#        sx.rst
+        tax.txt
+        TODO-schedxactions
+        TODO-sixtp
+        user-prefs-howto.txt
+        )
+
+SET_LOCAL_DIST(doc_DIST_local CMakeLists.txt Makefile.am ${doc_FILES})
+SET(doc_DIST ${doc_DIST_local} ${doc_design_DIST} ${doc_xml_DIST} PARENT_SCOPE)
+
diff --git a/src/doc/design/CMakeLists.txt b/src/doc/design/CMakeLists.txt
index 558cbb2..b47fbb0 100644
--- a/src/doc/design/CMakeLists.txt
+++ b/src/doc/design/CMakeLists.txt
@@ -28,11 +28,22 @@ SET(VERSION_TEXI_IN
 ")
 
 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.texi ${VERSION_TEXI_IN})
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/stamp-vti ${VERSION_TEXI_IN})
 
 FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" TEXI_BINARY_DIR)
 FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/gnucash-design.texi" TEXI_SOURCE_FILE)
 
-ADD_CUSTOM_TARGET(gnucash-design.texi ALL
-  COMMAND makeinfo -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
-  DEPENDS ${gnucash_design_TEXINFOS}
-)
+IF(${CMAKE_VERSION} VERSION_GREATER 3.1)
+  ADD_CUSTOM_TARGET(gnucash-design-info ALL
+    COMMAND makeinfo -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
+    BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/gnucash-design.info
+    DEPENDS ${gnucash_design_TEXINFOS}
+  )
+ELSE()
+  ADD_CUSTOM_TARGET(gnucash-design-info ALL
+    COMMAND makeinfo -I ${TEXI_BINARY_DIR} ${TEXI_SOURCE_FILE}
+    DEPENDS ${gnucash_design_TEXINFOS}
+  )
+ENDIF()
+
+SET_DIST_LIST(doc_design_DIST CMakeLists.txt Makefile.am gnucash-design.texi ${gnucash_design_TEXINFOS})
diff --git a/src/doc/xml/CMakeLists.txt b/src/doc/xml/CMakeLists.txt
new file mode 100644
index 0000000..0dca2d5
--- /dev/null
+++ b/src/doc/xml/CMakeLists.txt
@@ -0,0 +1,15 @@
+SET(doc_xml_FILES
+        account-v2.dtd
+        commodity-v2.dtd
+        defaults-v1.dtd
+#        gnucash-v2.rnc
+        io-gncxml-version1.dtd
+        io-gncxml-version2.dtd
+        preferences-v1.dtd
+        prices-v1.dtd
+        README
+        transactions-v2.dtd
+        types.dtd
+)
+
+SET_DIST_LIST(doc_xml_DIST CMakeLists.txt Makefile.am ${doc_xml_FILES})
\ No newline at end of file
diff --git a/src/engine/CMakeLists.txt b/src/engine/CMakeLists.txt
index 2f67b68..f401f8a 100644
--- a/src/engine/CMakeLists.txt
+++ b/src/engine/CMakeLists.txt
@@ -76,7 +76,7 @@ SET (engine_HEADERS
 IF (BUILDING_FROM_VCS)
   # Command to generate the swig-engine.c wrapper file
   SET (SWIG_ENGINE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-engine.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${engine_HEADERS})
+  GNC_ADD_SWIG_COMMAND (swig-engine-c ${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${engine_HEADERS})
 ELSE()
   SET (SWIG_ENGINE_C swig-engine.c)
 ENDIF()
@@ -88,7 +88,8 @@ ADD_CUSTOM_COMMAND (
   DEPENDS iso-4217-currencies.xml iso-currencies-to-c.xsl
   COMMAND
     ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
-)
+    )
+ADD_CUSTOM_TARGET(iso-4217-c DEPENDS ${ISO_4217_C})
 # Add dependency on iso-4217-currencies.c
 SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
 
@@ -127,7 +128,6 @@ SET (engine_SOURCES
   engine-helpers.c
   glib-helpers.c
   policy.c
-  ${SWIG_ENGINE_C}
   gncAddress.c
   gncBillTerm.c
   gncBusGuile.c
@@ -148,6 +148,7 @@ SET (engine_SOURCES
 ADD_LIBRARY	(gncmod-engine
   ${engine_SOURCES}
   ${engine_HEADERS}
+  ${SWIG_ENGINE_C}
   ${engine_noinst_HEADERS}
 )
 
@@ -215,3 +216,20 @@ GNC_ADD_SCHEME_TARGETS(scm-engine-1
 )
 
 ADD_CUSTOM_TARGET(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)
+
+SET(engine_EXTRA_DIST
+        business-core.i
+        design.txt
+        engine.i
+        engine-common.i
+        extensions.txt
+        iso-4217-currencies.xml
+        iso-currencies-to-c.xsl
+        kvp_doc.txt
+        README
+        README.query-api
+        SX-book-p.h
+        )
+SET_LOCAL_DIST(engine_DIST_local CMakeLists.txt Makefile.am ${engine_SOURCES} ${engine_HEADERS}
+                     ${engine_noinst_HEADERS} ${engine_SCHEME_0} ${engine_SCHEME_1} ${engine_EXTRA_DIST})
+SET(engine_DIST ${engine_DIST_local} ${engine_test_core_DIST} ${test_engine_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/engine/test-core/CMakeLists.txt b/src/engine/test-core/CMakeLists.txt
index d5b7790..75d2187 100644
--- a/src/engine/test-core/CMakeLists.txt
+++ b/src/engine/test-core/CMakeLists.txt
@@ -7,6 +7,7 @@ SET(libgncmod_test_engine_SOURCES
 ADD_LIBRARY(gncmod-test-engine STATIC ${libgncmod_test_engine_SOURCES})
 
 TARGET_INCLUDE_DIRECTORIES(gncmod-test-engine PRIVATE
+  ${CMAKE_PREFIX_PATH}/include
   ${GMODULE_INCLUDE_DIRS}
   ${CMAKE_SOURCE_DIR}/src/gnc-module
   ${CMAKE_SOURCE_DIR}/src/libqof/qof
@@ -14,4 +15,7 @@ TARGET_INCLUDE_DIRECTORIES(gncmod-test-engine PRIVATE
   ${CMAKE_SOURCE_DIR}/src
   ${CMAKE_SOURCE_DIR}/src/engine
   ${CMAKE_SOURCE_DIR}/src/test-core
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(engine_test_core_DIST CMakeLists.txt Makefile.am ${libgncmod_test_engine_SOURCES}
+        test-engine-stuff.h test-engine-strings.h)
diff --git a/src/engine/test/CMakeLists.txt b/src/engine/test/CMakeLists.txt
index d5be7e6..02129a7 100644
--- a/src/engine/test/CMakeLists.txt
+++ b/src/engine/test/CMakeLists.txt
@@ -16,6 +16,8 @@ MACRO(ADD_ENGINE_TEST _TARGET _SOURCE_FILES)
   GNC_ADD_TEST(${_TARGET} "${_SOURCE_FILES}" ENGINE_TEST_INCLUDE_DIRS ENGINE_TEST_LIBS)
 ENDMACRO()
 
+CONFIGURE_FILE(test-scm-query-import.in test-scm-query-import @ONLY)
+CONFIGURE_FILE(test-create-account.in test-create-account @ONLY)
 # Not via macro because of unique link requirements
 
 ADD_EXECUTABLE(test-link EXCLUDE_FROM_ALL test-link.c)
@@ -93,3 +95,54 @@ GNC_ADD_SCHEME_TARGETS(scm-test-engine
   "${GUILE_DEPENDS}"
   FALSE
 )
+
+SET(test_engine_SOURCES_DIST
+        test-account-object.c
+        test-address.c
+        test-business.c
+        test-commodities.c
+        test-customer.c
+        test-date.c
+        test-employee.c
+        test-engine.c
+        test-group-vs-book.c
+        test-guid.c
+        test-job.c
+        test-link.c
+        test-load-engine.c
+        test-lots.c
+        test-numeric.c
+        test-object.c
+        test-query.c
+        test-querynew.c
+        test-recurrence.c
+        test-scm-query.c
+        test-split-vs-account.c
+        test-transaction-reversal.c
+        test-transaction-voiding.c
+        test-vendor.c
+        utest-Account.c
+        utest-Budget.c
+        utest-Entry.c
+        utest-Invoice.c
+        utest-Split.c
+        utest-Transaction.c
+)
+
+SET(test_engine_SCHEME_DIST
+        test-account.scm
+        test-create-account.scm
+        test-extras.scm
+        test-scm-query-import.scm
+        test-split.scm
+        test-test-extras.scm
+)
+
+SET(test_engine_EXTRA_DIST
+        README
+        test-create-account.in
+        test-scm-query-import.in
+)
+
+SET_DIST_LIST(test_engine_DIST CMakeLists.txt Makefile.am
+        ${test_engine_SOURCES_DIST} ${test_engine_SCHEME_DIST} ${test_engine_EXTRA_DIST})
diff --git a/src/gnc-module/CMakeLists.txt b/src/gnc-module/CMakeLists.txt
index 0a89b6d..d1ded15 100644
--- a/src/gnc-module/CMakeLists.txt
+++ b/src/gnc-module/CMakeLists.txt
@@ -4,15 +4,12 @@ ADD_SUBDIRECTORY(test)
 IF (BUILDING_FROM_VCS)
   # Command to generate the swig-engine.c wrapper file
   SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
+  GNC_ADD_SWIG_COMMAND (swig-gnc-module-c ${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
 ELSE()
   SET (SWIG_GNC_MODULE_C swig-gnc-module.c)
 ENDIF()
 
-SET (gnc_module_SOURCES
-  gnc-module.c
-  ${SWIG_GNC_MODULE_C}
-)
+SET (gnc_module_SOURCES gnc-module.c)
 
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${gnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
@@ -25,6 +22,7 @@ SET (gnc_module_HEADERS
 ADD_LIBRARY	(gnc-module
   ${gnc_module_SOURCES}
   ${gnc_module_HEADERS}
+  ${SWIG_GNC_MODULE_C}
 )
 
 TARGET_LINK_LIBRARIES(gnc-module gnc-qof ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
@@ -62,3 +60,7 @@ GNC_ADD_SCHEME_TARGETS(scm-gnc-module
   "${GUILE_DEPENDS}"
   FALSE
 )
+
+SET_LOCAL_DIST(gnc_module_DIST_local CMakeLists.txt Makefile.am ${gnc_module_SOURCES} ${gnc_module_HEADERS}
+        gnc-module.i gnc-module.scm README)
+SET(gnc_module_DIST ${gnc_module_DIST_local} ${test_gnc_module_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/gnc-module/test/CMakeLists.txt b/src/gnc-module/test/CMakeLists.txt
index 8bbd424..9053cfc 100644
--- a/src/gnc-module/test/CMakeLists.txt
+++ b/src/gnc-module/test/CMakeLists.txt
@@ -65,8 +65,13 @@ GNC_ADD_TEST(test-dynload test-dynload.c
 )
 
 SET(GUILE ${GUILE_EXECUTABLE})
-CONFIGURE_FILE(test-gwrapped-c.in test-gwrapped-c)
-CONFIGURE_FILE(test-scm-module.in test-scm-module)
+CONFIGURE_FILE(test-gwrapped-c.in test-gwrapped-c @ONLY)
+CONFIGURE_FILE(test-scm-module.in test-scm-module @ONLY)
+CONFIGURE_FILE(test-load-deps.in test-load-deps @ONLY)
+CONFIGURE_FILE(test-load-scm.in test-load-scm @ONLY)
+CONFIGURE_FILE(test-scm-dynload.in test-scm-dynload @ONLY)
+CONFIGURE_FILE(test-scm-init.in test-scm-init @ONLY)
+CONFIGURE_FILE(test-scm-multi.in test-scm-multi @ONLY)
 
 FUNCTION(RUN_GUILE_SHELL_TEST _TARGET _SOURCE_FILE)
   GET_GUILE_ENV()
@@ -85,3 +90,26 @@ RUN_GUILE_SHELL_TEST(test-gwrapped-c ${CMAKE_CURRENT_BINARY_DIR}/test-gwrapped-c
 
 RUN_GUILE_SHELL_TEST(test-scm-module ${CMAKE_CURRENT_BINARY_DIR}/test-scm-module)
 
+SET(test_gnc_module_SOURCE_DIST
+  test-agedver.c
+  test-dynload.c
+  test-incompatdep.c
+  test-load-c.c
+  test-modsysver.c
+)
+
+SET(test_gnc_module_EXTRA_DIST
+  README
+  test-gwrapped-c.in
+  test-load-deps.in
+  test-load-scm.in
+  test-scm-dynload.in
+  test-scm-init.in
+  test-scm-module.in
+  test-scm-multi.in
+)
+
+SET_LOCAL_DIST(test_gnc_module_DIST_local CMakeLists.txt Makefile.am README ${test_gnc_module_SOURCE_DIST} ${test_gnc_module_EXTRA_DIST})
+
+SET(test_gnc_module_DIST ${test_gnc_module_DIST_local} ${misc_mods_DIST}
+                         ${mod_bar_DIST} ${mod_baz_DIST} ${mod_foo_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/gnc-module/test/misc-mods/CMakeLists.txt b/src/gnc-module/test/misc-mods/CMakeLists.txt
index 71f7ed1..973ee9b 100644
--- a/src/gnc-module/test/misc-mods/CMakeLists.txt
+++ b/src/gnc-module/test/misc-mods/CMakeLists.txt
@@ -11,4 +11,6 @@ ADD_LIBRARY(gncmod_futuremodsys  EXCLUDE_FROM_ALL futuremodsys.c)
 TARGET_LINK_LIBRARIES(gncmod_futuremodsys ${GLIB2_LDFLAGS})
 
 ADD_LIBRARY(gncmod_incompatdep  EXCLUDE_FROM_ALL incompatdep.c)
-TARGET_LINK_LIBRARIES(gncmod_incompatdep gnc-module ${GLIB2_LDFLAGS})
\ No newline at end of file
+TARGET_LINK_LIBRARIES(gncmod_incompatdep gnc-module ${GLIB2_LDFLAGS})
+
+SET_DIST_LIST(misc_mods_DIST CMakeLists.txt Makefile.am agedver.c futuremodsys.c incompatdep.c)
\ No newline at end of file
diff --git a/src/gnc-module/test/mod-bar/CMakeLists.txt b/src/gnc-module/test/mod-bar/CMakeLists.txt
index 202e6e3..47108b6 100644
--- a/src/gnc-module/test/mod-bar/CMakeLists.txt
+++ b/src/gnc-module/test/mod-bar/CMakeLists.txt
@@ -1,9 +1,9 @@
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_BAR_C ${CMAKE_CURRENT_BINARY_DIR}/swig-bar.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_BAR_C} ${CMAKE_CURRENT_SOURCE_DIR}/bar.i bar.h)
+  GNC_ADD_SWIG_COMMAND (swig-bar-c ${SWIG_BAR_C} ${CMAKE_CURRENT_SOURCE_DIR}/bar.i bar.h)
 ELSE()
-  SET (SWIG_BAR_C swig-bar.c)
+  SET (SWIG_BAR_C ${CMAKE_CURRENT_SOURCE_DIR}/swig-bar.c)
 ENDIF()
 
 ADD_LIBRARY(bar EXCLUDE_FROM_ALL bar.c bar.h)
@@ -20,3 +20,5 @@ TARGET_INCLUDE_DIRECTORIES(gncmodbar PRIVATE
   ${GLIB2_INCLUDE_DIRS}
   ${GUILE_INCLUDE_DIRS}
 )
+
+SET_DIST_LIST(mod_bar_DIST CMakeLists.txt Makefile.am bar.c gnucash/bar.scm bar.h bar.i gnc-mod-bar.c)
\ No newline at end of file
diff --git a/src/gnc-module/test/mod-baz/CMakeLists.txt b/src/gnc-module/test/mod-baz/CMakeLists.txt
index 0bd62ae..1dc2dc7 100644
--- a/src/gnc-module/test/mod-baz/CMakeLists.txt
+++ b/src/gnc-module/test/mod-baz/CMakeLists.txt
@@ -1,9 +1,9 @@
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_BAZ_C ${CMAKE_CURRENT_BINARY_DIR}/swig-baz.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_BAZ_C} ${CMAKE_CURRENT_SOURCE_DIR}/baz.i baz.h)
+  GNC_ADD_SWIG_COMMAND (swig-baz-c ${SWIG_BAZ_C} ${CMAKE_CURRENT_SOURCE_DIR}/baz.i baz.h)
 ELSE()
-  SET (SWIG_BAZ_C swig-baz.c)
+  SET (SWIG_BAZ_C ${CMAKE_CURRENT_SOURCE_DIR}/swig-baz.c)
 ENDIF()
 
 ADD_LIBRARY(baz EXCLUDE_FROM_ALL baz.c baz.h)
@@ -26,3 +26,5 @@ TARGET_INCLUDE_DIRECTORIES(gncmodbaz PRIVATE
   ${GLIB2_INCLUDE_DIRS}
   ${GUILE_INCLUDE_DIRS}
 )
+
+SET_DIST_LIST(mod_baz_DIST CMakeLists.txt Makefile.am baz.c gnucash/baz.scm baz.h baz.i gnc-mod-baz.c)
\ No newline at end of file
diff --git a/src/gnc-module/test/mod-foo/CMakeLists.txt b/src/gnc-module/test/mod-foo/CMakeLists.txt
index aa29036..fcd78f8 100644
--- a/src/gnc-module/test/mod-foo/CMakeLists.txt
+++ b/src/gnc-module/test/mod-foo/CMakeLists.txt
@@ -1,9 +1,9 @@
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_FOO_C ${CMAKE_CURRENT_BINARY_DIR}/swig-foo.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_FOO_C} ${CMAKE_CURRENT_SOURCE_DIR}/foo.i foo.h)
+  GNC_ADD_SWIG_COMMAND (swig-foo-c ${SWIG_FOO_C} ${CMAKE_CURRENT_SOURCE_DIR}/foo.i foo.h)
 ELSE()
-  SET (SWIG_FOO_C swig-foo.c)
+  SET (SWIG_FOO_C ${CMAKE_CURRENT_SOURCE_DIR}/swig-foo.c)
 ENDIF()
 
 ADD_LIBRARY(foo EXCLUDE_FROM_ALL foo.c foo.h)
@@ -20,3 +20,5 @@ TARGET_INCLUDE_DIRECTORIES(gncmodfoo PRIVATE
   ${GLIB2_INCLUDE_DIRS}
   ${GUILE_INCLUDE_DIRS}
 )
+
+SET_DIST_LIST(mod_foo_DIST CMakeLists.txt Makefile.am foo.i gnucash/foo.scm foo.c foo.h gnc-mod-foo.c)
\ No newline at end of file
diff --git a/src/gnome-search/CMakeLists.txt b/src/gnome-search/CMakeLists.txt
index bad46c5..5b9b42e 100644
--- a/src/gnome-search/CMakeLists.txt
+++ b/src/gnome-search/CMakeLists.txt
@@ -36,6 +36,10 @@ SET (gnome_search_noinst_HEADERS
 # Add dependency on config.h
 SET_SOURCE_FILES_PROPERTIES (${gnome_search_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
 
+SET_LOCAL_DIST(gnome_search_DIST_local CMakeLists.txt Makefile.am  dialog-search.glade ${gnome_search_SOURCES} ${gnome_search_HEADERS}
+        ${gnome_search_noinst_HEADERS})
+SET(gnome_search_DIST ${gnome_search_DIST_local} PARENT_SCOPE)
+
 ADD_LIBRARY (gncmod-gnome-search
     ${gnome_search_SOURCES}
     ${gnome_search_HEADERS}
diff --git a/src/gnome-utils/CMakeLists.txt b/src/gnome-utils/CMakeLists.txt
index abe2384..c19357e 100644
--- a/src/gnome-utils/CMakeLists.txt
+++ b/src/gnome-utils/CMakeLists.txt
@@ -7,7 +7,7 @@ ADD_SUBDIRECTORY(test)
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_GNOME_UTILS_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome-utils.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i)
+  GNC_ADD_SWIG_COMMAND (swig-gnome-utils-c ${SWIG_GNOME_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i)
 ELSE()
   SET (SWIG_GNOME_UTILS_C swig-gnome-utils.c)
 ENDIF()
@@ -32,6 +32,8 @@ ADD_CUSTOM_COMMAND(
     ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_H} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-h.xsl ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA}
 )
 
+ADD_CUSTOM_TARGET(gnc-warnings-c DEPENDS ${GNC_WARNINGS_C})
+
 SET (gnome_utils_SOURCES
   account-quickfill.c
   assistant-xml-encoding.c
@@ -106,15 +108,12 @@ SET (gnome_utils_SOURCES
   gnc-tree-view-split-reg.c
   gnc-tree-view-sx-list.c
   gnc-tree-view.c
-  ${GNC_WARNINGS_C}
   gnc-window.c
   gncmod-gnome-utils.c
   misc-gnome-utils.c
   tree-view-utils.c
   search-param.c
   print-session.c
-  ${SWIG_GNOME_UTILS_C}
-  swig-gnome-utils.c
   window-main-summarybar.c
 )
 
@@ -124,7 +123,6 @@ SET(gnome_utils_noinst_HEADERS
   gnc-gobject-utils.h
   gnc-gtk-utils.h
   search-param.h
-  ${GNC_WARNINGS_H}
 )
 
 SET (gnome_utils_HEADERS
@@ -203,9 +201,13 @@ SET (gnome_utils_HEADERS
   window-main-summarybar.h
 )
 
+
+
 ADD_LIBRARY (gncmod-gnome-utils
   ${gnome_utils_SOURCES}
   ${gnome_utils_HEADERS}
+  ${GNC_WARNINGS_C} ${GNC_WARNINGS_H}
+  ${SWIG_GNOME_UTILS_C}
   ${gnome_utils_noinst_HEADERS}
 )
 
@@ -266,4 +268,10 @@ GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-2
   FALSE
 )
 
-ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)
\ No newline at end of file
+ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)
+
+SET_LOCAL_DIST(gnome_utils_DIST_local CMakeLists.txt Makefile.am ${gnome_utils_SOURCES} ${gnome_utils_HEADERS}
+        ${gnome_utils_noinst_HEADERS} gnome-utils.scm gnome-utils.i gnc-menu-extensions.scm
+        make-gnc-warnings-c.xsl make-gnc-warnings-h.xsl)
+SET(gnome_utils_DIST ${gnome_utils_DIST_local} ${gnome_utils_gschema_DIST} ${test_gnome_utils_DIST}
+        ${gnome_utils_ui_DIST} ${gnome_utils_gtkbuilder_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/gnome-utils/gschemas/CMakeLists.txt b/src/gnome-utils/gschemas/CMakeLists.txt
index 376767d..7deac7e 100644
--- a/src/gnome-utils/gschemas/CMakeLists.txt
+++ b/src/gnome-utils/gschemas/CMakeLists.txt
@@ -1,4 +1,7 @@
 
 SET(gnome_utils_GSCHEMA org.gnucash.history.gschema.xml org.gnucash.warnings.gschema.xml)
 
-ADD_GSCHEMA_TARGETS(gnome-utils-gschema "${gnome_utils_GSCHEMA}")
\ No newline at end of file
+ADD_GSCHEMA_TARGETS(gnome-utils-gschema "${gnome_utils_GSCHEMA}")
+
+SET_DIST_LIST(gnome_utils_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.history.gschema.xml.in.in
+        org.gnucash.warnings.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/gnome-utils/gtkbuilder/CMakeLists.txt b/src/gnome-utils/gtkbuilder/CMakeLists.txt
index 168e5c2..524fdcd 100644
--- a/src/gnome-utils/gtkbuilder/CMakeLists.txt
+++ b/src/gnome-utils/gtkbuilder/CMakeLists.txt
@@ -1,11 +1,32 @@
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET(gnome_utils_GLADE
+        assistant-xml-encoding.glade
+        dialog-account.glade
+        dialog-book-close.glade
+        dialog-commodity.glade
+        dialog-file-access.glade
+        dialog-object-references.glade
+        dialog-options.glade
+        dialog-preferences.glade
+        dialog-query-view.glade
+        dialog-reset-warnings.glade
+        dialog-tax-table.glade
+        dialog-totd.glade
+        dialog-transfer.glade
+        dialog-userpass.glade
+        gnc-date-format.glade
+        gnc-frequency.glade
+        gnc-recurrence.glade
+        gnc-tree-view-owner.glade
+)
+
+SET_DIST_LIST(gnome_utils_gtkbuilder_DIST CMakeLists.txt Makefile.am ${gnome_utils_GLADE})
\ No newline at end of file
diff --git a/src/gnome-utils/test/CMakeLists.txt b/src/gnome-utils/test/CMakeLists.txt
index f3d241a..750df65 100644
--- a/src/gnome-utils/test/CMakeLists.txt
+++ b/src/gnome-utils/test/CMakeLists.txt
@@ -30,3 +30,7 @@ SET(GNOME_UTILS_GUI_TEST_LIBS
 #
 
 GNC_ADD_SCHEME_TEST(test-load-module-gnome-utils test-load-module.in)
+
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
+
+SET_DIST_LIST(test_gnome_utils_DIST CMakeLists.txt Makefile.am test-gnc-recurrence.c test-link-module.c test-load-module.in)
diff --git a/src/gnome-utils/ui/CMakeLists.txt b/src/gnome-utils/ui/CMakeLists.txt
index 6c9019d..cdf16ef 100644
--- a/src/gnome-utils/ui/CMakeLists.txt
+++ b/src/gnome-utils/ui/CMakeLists.txt
@@ -1,12 +1,20 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET(gnome_utils_ui_DIST_local
+        CMakeLists.txt
+        gnc-main-window-ui.xml
+        gnc-windows-menu-ui-quartz.xml
+        gnc-windows-menu-ui.xml
+        Makefile.am
+        osx_accel_map
+        )
+
+SET_DIST_LIST(gnome_utils_ui_DIST ${gnome_utils_ui_DIST_local})
diff --git a/src/gnome/CMakeLists.txt b/src/gnome/CMakeLists.txt
index f6ff0d6..c83a969 100644
--- a/src/gnome/CMakeLists.txt
+++ b/src/gnome/CMakeLists.txt
@@ -41,13 +41,13 @@ SET (gnc_gnome_noinst_HEADERS
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome.i ${gnc_gnome_HEADERS})
+  GNC_ADD_SWIG_COMMAND (swig-gnome-c ${SWIG_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome.i ${gnc_gnome_HEADERS})
 ELSE()
   SET (SWIG_GNOME_C swig-gnome.c)
 ENDIF()
 
 SET (gnc_gnome_SOURCES 
-  ${SWIG_GNOME_C}
+
   assistant-acct-period.c
   assistant-hierarchy.c
   assistant-loan.c
@@ -91,8 +91,7 @@ IF (WIN32)
   SET (gnc_gnome_SOURCES ${gnc_gnome_SOURCES} ${CMAKE_SOURCE_DIR}/lib/libc/strfmon.c)
 ENDIF(WIN32)
 
-ADD_LIBRARY (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS})
-
+ADD_LIBRARY (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS} ${SWIG_GNOME_C})
 TARGET_LINK_LIBRARIES(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-report-gnome gncmod-report-system
     gncmod-register-gnome gncmod-register-core gncmod-engine ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS})
 
@@ -154,3 +153,8 @@ ADD_CUSTOM_COMMAND(
 ADD_CUSTOM_TARGET(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
 
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION share/applications)
+
+SET_LOCAL_DIST(gnome_DIST_local
+        CMakeLists.txt Makefile.am gnome.i gnucash.appdata.xml.in gnucash.desktop.in.in
+        ${gnc_gnome_noinst_HEADERS} ${gnc_gnome_SOURCES})
+SET(gnome_DIST ${gnome_DIST_local} ${gnome_ui_DIST} ${gnome_gschema_DIST} ${gnome_gtkbuilder_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/gnome/gschemas/CMakeLists.txt b/src/gnome/gschemas/CMakeLists.txt
index b0ff4a1..05e8c82 100644
--- a/src/gnome/gschemas/CMakeLists.txt
+++ b/src/gnome/gschemas/CMakeLists.txt
@@ -16,4 +16,10 @@ SET(gnome_GSCHEMA
 # this issue will go away.
 
 
-ADD_GSCHEMA_TARGETS(gnome-gschema "${gnome_GSCHEMA}")
\ No newline at end of file
+ADD_GSCHEMA_TARGETS(gnome-gschema "${gnome_GSCHEMA}")
+
+SET(gnome_gschema_DIST_local "")
+FOREACH(file ${gnome_GSCHEMA})
+    LIST(APPEND gnome_gschema_DIST_local ${file}.in.in)
+ENDFOREACH()
+SET_DIST_LIST(gnome_gschema_DIST CMakeLists.txt Makefile.am ${gnome_gschema_DIST_local})
\ No newline at end of file
diff --git a/src/gnome/gtkbuilder/CMakeLists.txt b/src/gnome/gtkbuilder/CMakeLists.txt
index 025e0bf..bd39511 100644
--- a/src/gnome/gtkbuilder/CMakeLists.txt
+++ b/src/gnome/gtkbuilder/CMakeLists.txt
@@ -1,12 +1,32 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
+FILE(COPY .
     DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
         DESTINATION share/gnucash
         PATTERN Makefile.* EXCLUDE
         PATTERN CMakeLists.txt EXCLUDE)
+
+SET(gnome_GLADE
+        assistant-acct-period.glade
+        assistant-hierarchy.glade
+        assistant-loan.glade
+        assistant-stock-split.glade
+        dialog-commodities.glade
+        dialog-fincalc.glade
+        dialog-lot-viewer.glade
+        dialog-new-user.glade
+        dialog-price.glade
+        dialog-print-check.glade
+        dialog-progress.glade
+        dialog-sx.glade
+        dialog-tax-info.glade
+        gnc-plugin-page-budget.glade
+        gnc-plugin-page-register2.glade
+        gnc-plugin-page-register.glade
+        window-autoclear.glade
+        window-reconcile.glade
+)
+
+SET_DIST_LIST(gnome_gtkbuilder_DIST CMakeLists.txt Makefile.am ${gnome_GLADE})
\ No newline at end of file
diff --git a/src/gnome/ui/CMakeLists.txt b/src/gnome/ui/CMakeLists.txt
index 84f2356..3cef926 100644
--- a/src/gnome/ui/CMakeLists.txt
+++ b/src/gnome/ui/CMakeLists.txt
@@ -1,12 +1,34 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-          DESTINATION ${DATADIR_BUILD}/gnucash/ui
-          PATTERN Makefile.* EXCLUDE
-          PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+        DESTINATION ${DATADIR_BUILD}/gnucash/ui
+        PATTERN Makefile.* EXCLUDE
+        PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET(gnome_UI
+      gnc-plugin-account-tree-ui.xml
+      gnc-plugin-basic-commands-ui.xml
+      gnc-plugin-budget-ui.xml
+      gnc-plugin-file-history-ui.xml
+      gnc-plugin-page-account-tree2-ui.xml
+      gnc-plugin-page-account-tree-ui.xml
+      gnc-plugin-page-budget-ui.xml
+      gnc-plugin-page-register2-ui.xml
+      gnc-plugin-page-register-ui.xml
+      gnc-plugin-page-sx-list2-ui.xml
+      gnc-plugin-page-sx-list-ui.xml
+      gnc-plugin-page-sxregister-ui.xml
+      gnc-plugin-register22-ui.xml
+      gnc-plugin-register2-ui.xml
+      gnc-plugin-register-ui.xml
+      gnc-reconcile-window-ui.xml
+      gnc-sxed-to-create-window-ui.xml
+      gnc-sxed-window-ui-full.xml
+      gnc-sxed-window-ui.xml)
+
+SET_DIST_LIST(gnome_ui_DIST CMakeLists.txt Makefile.am ${gnome_UI})
+
+
diff --git a/src/html/CMakeLists.txt b/src/html/CMakeLists.txt
index da8c6e8..34feab4 100644
--- a/src/html/CMakeLists.txt
+++ b/src/html/CMakeLists.txt
@@ -11,7 +11,7 @@ SET (html_HEADERS
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_GNC_HTML_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-html.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_GNC_HTML_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-html.i ${gncmod_html_HEADERS})
+  GNC_ADD_SWIG_COMMAND (swig-gnc-html-c ${SWIG_GNC_HTML_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-html.i "${gncmod_html_HEADERS}")
 ELSE()
   SET (SWIG_GNC_HTML_C swig-gnc-html.c)
 ENDIF()
@@ -22,11 +22,13 @@ SET (html_SOURCES
   gnc-html-history.c
   gnc-html-factory.c
   gnc-html-webkit.c
-  ${SWIG_GNC_HTML_C}
 )
 
+SET_DIST_LIST(html_DIST CMakeLists.txt Makefile.am ${html_HEADERS} ${html_SOURCES} gnc-html.i)
+
 ADD_LIBRARY (gncmod-html
   ${html_SOURCES}
+  ${SWIG_GNC_HTML_C}
   ${html_HEADERS}
 )
 
@@ -44,4 +46,4 @@ INSTALL(TARGETS gncmod-html
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
 
-INSTALL(FILES ${html_HEADERS} DESTINATION include/gnucash)
\ No newline at end of file
+INSTALL(FILES ${html_HEADERS} DESTINATION include/gnucash)
diff --git a/src/import-export/CMakeLists.txt b/src/import-export/CMakeLists.txt
index 7496a35..7bb6ba4 100644
--- a/src/import-export/CMakeLists.txt
+++ b/src/import-export/CMakeLists.txt
@@ -3,16 +3,12 @@
 ADD_SUBDIRECTORY(test)
 
 # ############################################################
-IF (WITH_AQBANKING)
-  ADD_SUBDIRECTORY(aqb)
-ENDIF(WITH_AQBANKING)
+ADD_SUBDIRECTORY(aqb)
 ADD_SUBDIRECTORY(csv-exp)
 ADD_SUBDIRECTORY(csv-imp)
 ADD_SUBDIRECTORY(gschemas)
 ADD_SUBDIRECTORY(log-replay)
-IF (WITH_OFX)
-  ADD_SUBDIRECTORY(ofx)
-ENDIF(WITH_OFX)
+ADD_SUBDIRECTORY(ofx)
 ADD_SUBDIRECTORY(qif)
 ADD_SUBDIRECTORY(qif-imp)
 
@@ -77,7 +73,16 @@ SET(generic_import_GLADE dialog-import.glade)
 INSTALL(FILES ${generic_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
 
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${generic_import_GLADE}
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
+FILE(COPY ${generic_import_GLADE} DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+
+SET(generic_import_EXTRA_DIST generic-import-design.txt)
+
+SET_LOCAL_DIST(import_export_DIST_local CMakeLists.txt Makefile.am ${generic_import_SOURCES}
+        ${generic_import_HEADERS} ${generic_import_GLADE} ${generic_import_noinst_HEADERS}
+        ${generic_import_EXTRA_DIST})
+
+SET(import_export_DIST ${import_export_DIST_local} ${aqbanking_DIST}
+        ${csv_export_DIST} ${csv_import_DIST}
+        ${generic_import_gschema_DIST} ${log_report_DIST} ${ofx_DIST} ${qif_DIST} ${qif_import_DIST}
+        ${test_generic_import_DIST}
+        PARENT_SCOPE)
diff --git a/src/import-export/aqb/CMakeLists.txt b/src/import-export/aqb/CMakeLists.txt
index f695ac0..49ae8d7 100644
--- a/src/import-export/aqb/CMakeLists.txt
+++ b/src/import-export/aqb/CMakeLists.txt
@@ -37,42 +37,52 @@ SET (aqbanking_noinst_HEADERS
   gnc-plugin-aqbanking.h
 )
 
-ADD_LIBRARY (gncmod-aqbanking
-  ${aqbanking_SOURCES}
-  ${aqbanking_noinst_HEADERS}
+SET(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade)
+
+SET(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
+
+IF(WITH_AQBANKING)
+  ADD_LIBRARY (gncmod-aqbanking
+    ${aqbanking_SOURCES}
+    ${aqbanking_noinst_HEADERS}
   )
 
-SET(AQB_EXPORT_SYMBOLS "")
-IF (WIN32)
-  SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
-ENDIF()
 
-TARGET_LINK_LIBRARIES(gncmod-aqbanking gnc-gnome gncmod-gnome-utils gncmod-generic-import gncmod-register-core
-         gncmod-register-gnome gncmod-ledger-core gncmod-engine gnc-qof ${AQB_EXPORT_SYMBOLS} ${AQBANKING_LDFLAGS} ${GWENHYWFAR_LDFLAGS}
-         ${GWENGUI_GTK2_LDFLAGS} ${GNOME_LDFLAGS} ${KTOBLZCHECK_LDFLAGS})
+  SET(AQB_EXPORT_SYMBOLS "")
+  IF (WIN32)
+    SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
+  ENDIF()
+
+ TARGET_LINK_LIBRARIES(gncmod-aqbanking gnc-gnome gncmod-gnome-utils gncmod-generic-import gncmod-register-core
+           gncmod-register-gnome gncmod-ledger-core gncmod-engine gnc-qof ${AQB_EXPORT_SYMBOLS} ${AQBANKING_LDFLAGS} ${GWENHYWFAR_LDFLAGS}
+          ${GWENGUI_GTK2_LDFLAGS} ${GNOME_LDFLAGS} ${KTOBLZCHECK_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
+  TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-aqbanking PRIVATE ${AQBANKING_INCLUDE_DIRS}
-       ${GWENHYWFAR_INCLUDE_DIRS} ${KTOBLZCHECK_INCLUDE_DIRS})
+  TARGET_INCLUDE_DIRECTORIES(gncmod-aqbanking PRIVATE ${AQBANKING_INCLUDE_DIRS}
+         ${GWENHYWFAR_INCLUDE_DIRS} ${KTOBLZCHECK_INCLUDE_DIRS})
+
+  INSTALL(TARGETS gncmod-aqbanking
+    LIBRARY DESTINATION lib/gnucash
+    ARCHIVE DESTINATION lib/gnucash
+    RUNTIME DESTINATION bin)
 
-INSTALL(TARGETS gncmod-aqbanking
-  LIBRARY DESTINATION lib/gnucash
-  ARCHIVE DESTINATION lib/gnucash
-  RUNTIME DESTINATION bin)
 # No headers to install
 
-SET(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade)
 
-SET(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
 
-INSTALL(FILES ${aqbanking_GLADE} DESTINATION share/gnucash/gtkbuilder)
+  INSTALL(FILES ${aqbanking_GLADE} DESTINATION share/gnucash/gtkbuilder)
 
-INSTALL(FILES ${aqbanking_UI} DESTINATION share/gnucash/ui)
+  INSTALL(FILES ${aqbanking_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
   FILE(COPY ${aqbanking_UI}
     DESTINATION ${DATADIR_BUILD}/gnucash/ui)
   FILE(COPY ${aqbanking_GLADE}
     DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
\ No newline at end of file
+ENDIF(WITH_AQBANKING)
+
+SET_LOCAL_DIST(aqbanking_DIST_local CMakeLists.txt Makefile.am migratable-prefs-aqbanking.xml
+        ${aqbanking_SOURCES} ${aqbanking_noinst_HEADERS} ${aqbanking_EXTRA_DIST}
+        ${aqbanking_GLADE} ${aqbanking_UI})
+
+SET(aqbanking_DIST ${aqbanking_DIST_local} ${aqbanking_gschema_DIST} ${aqbanking_gschema_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/import-export/aqb/gschemas/CMakeLists.txt b/src/import-export/aqb/gschemas/CMakeLists.txt
index d2c036f..dce9c13 100644
--- a/src/import-export/aqb/gschemas/CMakeLists.txt
+++ b/src/import-export/aqb/gschemas/CMakeLists.txt
@@ -1,4 +1,7 @@
 
-SET(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
+IF (WITH_AQBANKING)
+  SET(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
+  ADD_GSCHEMA_TARGETS(aqb-gschema "${aqb_GSCHEMA}")
+ENDIF(WITH_AQBANKING)  
 
-ADD_GSCHEMA_TARGETS(aqb-gschema "${aqb_GSCHEMA}")
\ No newline at end of file
+SET_DIST_LIST(aqbanking_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.import.hbci.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/csv-exp/CMakeLists.txt b/src/import-export/csv-exp/CMakeLists.txt
index 5926d59..392a8fb 100644
--- a/src/import-export/csv-exp/CMakeLists.txt
+++ b/src/import-export/csv-exp/CMakeLists.txt
@@ -39,9 +39,13 @@ SET(csv_export_UI gnc-plugin-csv-export-ui.xml)
 
 INSTALL(FILES ${csv_export_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${csv_export_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-  FILE(COPY ${csv_export_GLADE}
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${csv_export_UI}
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+FILE(COPY ${csv_export_GLADE}
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+
+SET_LOCAL_DIST(csv_export_DIST_local CMakeLists.txt Makefile.am
+        ${csv_export_SOURCES} ${csv_export_noinst_HEADERS}
+        ${csv_export_GLADE} ${csv_export_UI})
+SET(csv_export_DIST ${csv_export_DIST_local} ${csv_exp_gschema_DIST} PARENT_SCOPE)
+
diff --git a/src/import-export/csv-exp/gschemas/CMakeLists.txt b/src/import-export/csv-exp/gschemas/CMakeLists.txt
index 95b32c0..a2e472c 100644
--- a/src/import-export/csv-exp/gschemas/CMakeLists.txt
+++ b/src/import-export/csv-exp/gschemas/CMakeLists.txt
@@ -3,3 +3,4 @@ SET(csv_exp_GSCHEMA org.gnucash.dialogs.export.csv.gschema.xml)
 
 ADD_GSCHEMA_TARGETS(csv-exp-gschema "${csv_exp_GSCHEMA}")
 
+SET_DIST_LIST(csv_exp_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.export.csv.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/csv-imp/CMakeLists.txt b/src/import-export/csv-imp/CMakeLists.txt
index c55f7e3..64b1a35 100644
--- a/src/import-export/csv-imp/CMakeLists.txt
+++ b/src/import-export/csv-imp/CMakeLists.txt
@@ -9,7 +9,6 @@ SET(csv_import_SOURCES
   csv-account-import.c
   gnc-csv-model.c
   gnc-csv-gnumeric-popup.c
-  ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.c
 )
 
 # Add dependency on config.h
@@ -22,10 +21,10 @@ SET(csv_import_noinst_HEADERS
   csv-account-import.h
   gnc-csv-model.h
   gnc-csv-gnumeric-popup.h
-  ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.h
 )
 
-ADD_LIBRARY(gncmod-csv-import ${csv_import_noinst_HEADERS} ${csv_import_SOURCES})
+ADD_LIBRARY(gncmod-csv-import ${csv_import_noinst_HEADERS} ${csv_import_SOURCES}
+        ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.h ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.c)
 
 TARGET_LINK_LIBRARIES(gncmod-csv-import ${GOFFICE_LDFLAGS} gncmod-generic-import gncmod-gnome-utils
                  gncmod-app-utils gncmod-engine gnc-core-utils gnc-module)
@@ -53,9 +52,12 @@ SET(csv_import_UI gnc-plugin-csv-import-ui.xml)
 
 INSTALL(FILES ${csv_import_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${csv_import_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-  FILE(COPY ${csv_import_GLADE}
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
+FILE(COPY ${csv_import_UI}
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+FILE(COPY ${csv_import_GLADE}
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+
+SET_LOCAL_DIST(csv_import_DIST_local CMakeLists.txt Makefile.am
+        ${csv_import_SOURCES} ${csv_import_noinst_HEADERS}
+        ${csv_import_GLADE} ${csv_import_UI})
+SET(csv_import_DIST ${csv_import_DIST_local} ${test_csv_import_DIST} ${csv_import_gschema_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/import-export/csv-imp/gschemas/CMakeLists.txt b/src/import-export/csv-imp/gschemas/CMakeLists.txt
index 3a7b23d..066ae60 100644
--- a/src/import-export/csv-imp/gschemas/CMakeLists.txt
+++ b/src/import-export/csv-imp/gschemas/CMakeLists.txt
@@ -1,3 +1,5 @@
 SET(csv_imp_GSCHEMA org.gnucash.dialogs.import.csv.gschema.xml)
 
-ADD_GSCHEMA_TARGETS(csv-imp-gschema "${csv_imp_GSCHEMA}")
\ No newline at end of file
+ADD_GSCHEMA_TARGETS(csv-imp-gschema "${csv_imp_GSCHEMA}")
+
+SET_DIST_LIST(csv_import_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.import.csv.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/csv-imp/test/CMakeLists.txt b/src/import-export/csv-imp/test/CMakeLists.txt
index c33f23b..ccf6a41 100644
--- a/src/import-export/csv-imp/test/CMakeLists.txt
+++ b/src/import-export/csv-imp/test/CMakeLists.txt
@@ -23,3 +23,4 @@ IF (NOT WIN32)
   )
 ENDIF()
 
+SET_DIST_LIST(test_csv_import_DIST CMakeLists.txt Makefile.am sample1.csv ${test_csv_imp_SOURCES})
\ No newline at end of file
diff --git a/src/import-export/csv-imp/test/Makefile.am b/src/import-export/csv-imp/test/Makefile.am
index 1061318..1a09dd7 100644
--- a/src/import-export/csv-imp/test/Makefile.am
+++ b/src/import-export/csv-imp/test/Makefile.am
@@ -91,7 +91,7 @@ TESTS_ENVIRONMENT = \
   G_DEBUG= \
   $(shell ${abs_top_srcdir}/src/gnc-test-env.pl --noexports ${GNC_TEST_DEPS})
 
-EXTRA_DIST= \
+EXTRA_DIST += \
   sample1.csv
 
 
diff --git a/src/import-export/gschemas/CMakeLists.txt b/src/import-export/gschemas/CMakeLists.txt
index 958269e..faf7c00 100644
--- a/src/import-export/gschemas/CMakeLists.txt
+++ b/src/import-export/gschemas/CMakeLists.txt
@@ -1,4 +1,6 @@
 
 SET(generic_import_GSCHEMA org.gnucash.dialogs.import.generic.gschema.xml)
 
-ADD_GSCHEMA_TARGETS(generic-import-gschema "${generic_import_GSCHEMA}")
\ No newline at end of file
+ADD_GSCHEMA_TARGETS(generic-import-gschema "${generic_import_GSCHEMA}")
+
+SET_DIST_LIST(generic_import_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.import.generic.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/log-replay/CMakeLists.txt b/src/import-export/log-replay/CMakeLists.txt
index 5d72b84..12cdbd4 100644
--- a/src/import-export/log-replay/CMakeLists.txt
+++ b/src/import-export/log-replay/CMakeLists.txt
@@ -30,7 +30,8 @@ SET(log_replay_UI gnc-plugin-log-replay-ui.xml)
 
 INSTALL(FILES ${log_replay_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${log_replay_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${log_replay_UI}
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+
+SET_DIST_LIST(log_report_DIST CMakeLists.txt Makefile.am
+        ${log_replay_SOURCES} ${log_replay_noinst_HEADERS} ${log_replay_UI})
\ No newline at end of file
diff --git a/src/import-export/ofx/CMakeLists.txt b/src/import-export/ofx/CMakeLists.txt
index 4ee34c7..0a5a0a2 100644
--- a/src/import-export/ofx/CMakeLists.txt
+++ b/src/import-export/ofx/CMakeLists.txt
@@ -17,26 +17,28 @@ SET(ofx_noinst_HEADERS
   gnc-plugin-ofx.h
 )
 
-ADD_LIBRARY(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
+SET(ofx_UI gnc-plugin-ofx-ui.xml)
+
+IF (WITH_OFX)
+  ADD_LIBRARY(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
 
-TARGET_LINK_LIBRARIES(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
+  TARGET_LINK_LIBRARIES(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
                     gncmod-gnome-utils gnc-qof ${LIBOFX_LDFLAGS})
 
-TARGET_COMPILE_DEFINITIONS(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
+  TARGET_COMPILE_DEFINITIONS(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
 
-TARGET_INCLUDE_DIRECTORIES(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
+  TARGET_INCLUDE_DIRECTORIES(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
 
-INSTALL(TARGETS gncmod-ofx
+  INSTALL(TARGETS gncmod-ofx
   LIBRARY DESTINATION lib/gnucash
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
 
-SET(ofx_UI gnc-plugin-ofx-ui.xml)
-
-INSTALL(FILES ${ofx_UI} DESTINATION share/gnucash/ui)
-
+  INSTALL(FILES ${ofx_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
   FILE(COPY ${ofx_UI}
     DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-ENDIF()
\ No newline at end of file
+ENDIF()
+
+SET_LOCAL_DIST(ofx_DIST_local CMakeLists.txt Makefile.am migratable-prefs-ofx.xml ${ofx_SOURCES} ${ofx_noinst_HEADERS} ${ofx_UI})
+SET(ofx_DIST ${ofx_DIST_local} ${test_ofx_DIST} ${ofx_gschema_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/import-export/ofx/gschemas/CMakeLists.txt b/src/import-export/ofx/gschemas/CMakeLists.txt
index 9f143ad..83a44a7 100644
--- a/src/import-export/ofx/gschemas/CMakeLists.txt
+++ b/src/import-export/ofx/gschemas/CMakeLists.txt
@@ -2,3 +2,5 @@
 set(ofx_GSCHEMA org.gnucash.dialogs.import.ofx.gschema.xml)
 
 ADD_GSCHEMA_TARGETS(ofx-gschema "${ofx_GSCHEMA}")
+
+SET_DIST_LIST(ofx_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.import.ofx.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/ofx/test/CMakeLists.txt b/src/import-export/ofx/test/CMakeLists.txt
index ac81789..7fec110 100644
--- a/src/import-export/ofx/test/CMakeLists.txt
+++ b/src/import-export/ofx/test/CMakeLists.txt
@@ -5,4 +5,6 @@ SET(OFX_TEST_INCLUDE_DIRS
 )
 SET(OFX_TEST_LIBS)
 
-GNC_ADD_TEST(test-link-ofx test-link.c OFX_TEST_INCLUDE_DIRS OFX_TEST_LIBS)
\ No newline at end of file
+GNC_ADD_TEST(test-link-ofx test-link.c OFX_TEST_INCLUDE_DIRS OFX_TEST_LIBS)
+
+SET_DIST_LIST(test_ofx_DIST CMakeLists.txt Makefile.am test-link.c)
\ No newline at end of file
diff --git a/src/import-export/qif-imp/CMakeLists.txt b/src/import-export/qif-imp/CMakeLists.txt
index 05bc16e..01f5c02 100644
--- a/src/import-export/qif-imp/CMakeLists.txt
+++ b/src/import-export/qif-imp/CMakeLists.txt
@@ -83,9 +83,11 @@ SET(qif_import_UI gnc-plugin-qif-import-ui.xml)
 
 INSTALL(FILES ${qif_import_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${qif_import_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-  FILE(COPY ${qif_import_GLADE}
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${qif_import_UI}
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+FILE(COPY ${qif_import_GLADE}
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+
+SET_LOCAL_DIST(qif_import_DIST_local CMakeLists.txt Makefile.am file-format.txt ${qif_import_SOURCES} ${qif_import_noinst_HEADERS}
+        ${qif_import_SCHEME} ${qif_import_SCHEME_2} ${qif_import_GLADE} ${qif_import_UI})
+SET(qif_import_DIST ${qif_import_DIST_local} ${test_qif_import_DIST} ${qif_import_gschema_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/import-export/qif-imp/gschemas/CMakeLists.txt b/src/import-export/qif-imp/gschemas/CMakeLists.txt
index aabed64..dbf8f53 100644
--- a/src/import-export/qif-imp/gschemas/CMakeLists.txt
+++ b/src/import-export/qif-imp/gschemas/CMakeLists.txt
@@ -2,3 +2,5 @@
 set(qif_imp_GSCHEMA org.gnucash.dialogs.import.qif.gschema.xml)
 
 ADD_GSCHEMA_TARGETS(qif-imp-gschema "${qif_imp_GSCHEMA}")
+
+SET_DIST_LIST(qif_import_gschema_DIST CMakeLists.txt Makefile.am org.gnucash.dialogs.import.qif.gschema.xml.in.in)
\ No newline at end of file
diff --git a/src/import-export/qif-imp/test/CMakeLists.txt b/src/import-export/qif-imp/test/CMakeLists.txt
index f502445..1db47e7 100644
--- a/src/import-export/qif-imp/test/CMakeLists.txt
+++ b/src/import-export/qif-imp/test/CMakeLists.txt
@@ -4,3 +4,5 @@ SET(QIF_IMP_TEST_INCLUDE_DIRS)
 SET(QIF_IMP_TEST_LIBS)
 
 GNC_ADD_TEST(test-link-qif-imp test-link.c QIF_IMP_TEST_INCLUDE_DIRS QIF_IMP_TEST_LIBS)
+
+SET_DIST_LIST(test_qif_import_DIST CMakeLists.txt Makefile.am test-link.c)
\ No newline at end of file
diff --git a/src/import-export/qif/CMakeLists.txt b/src/import-export/qif/CMakeLists.txt
index 6c9ee11..0178673 100644
--- a/src/import-export/qif/CMakeLists.txt
+++ b/src/import-export/qif/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 #Tests for this directory are not run.
-#ADD_SUBDIRECTORY(test)
+ADD_SUBDIRECTORY(test)
 
 SET(qif_SOURCES
   qif-context.c
@@ -34,3 +34,6 @@ INSTALL(TARGETS gncmod-qif
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
 # No headers to install.
+
+SET_LOCAL_DIST(qif_DIST_local CMakeLists.txt Makefile.am ${qif_SOURCES} ${qif_noinst_HEADERS})
+SET(qif_DIST ${qif_DIST_local} ${test_qif_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/import-export/qif/test/CMakeLists.txt b/src/import-export/qif/test/CMakeLists.txt
index 659f987..b5c2d48 100644
--- a/src/import-export/qif/test/CMakeLists.txt
+++ b/src/import-export/qif/test/CMakeLists.txt
@@ -8,6 +8,11 @@ SET(QIF_TEST_INCLUDE_DIRS
 )
 SET(QIF_TEST_LIBS gncmod-qif test-core)
 
-GNC_ADD_TEST(test-link-qif test-link.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS)
-GNC_ADD_TEST(test-qif test-qif.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS
-  GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files)
\ No newline at end of file
+IF (FALSE)
+  # Tests for this directory are not run.
+  GNC_ADD_TEST(test-link-qif test-link.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS)
+  GNC_ADD_TEST(test-qif test-qif.c QIF_TEST_INCLUDE_DIRS QIF_TEST_LIBS
+    GNC_TEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/test-files)
+ENDIF()
+
+SET_DIST_LIST(test_qif_DIST CMakeLists.txt Makefile.am test-link.c test-qif.c test-files/test-1-bank-txn.qif)
diff --git a/src/import-export/test/CMakeLists.txt b/src/import-export/test/CMakeLists.txt
index ca418f3..a81cdf3 100644
--- a/src/import-export/test/CMakeLists.txt
+++ b/src/import-export/test/CMakeLists.txt
@@ -22,3 +22,5 @@ GNC_ADD_TEST(test-link-generic-import test-link.c
 GNC_ADD_TEST(test-import-pending-matches test-import-pending-matches.c
   GENERIC_IMPORT_TEST_INCLUDE_DIRS GENERIC_IMPORT_TEST_LIBS
 )
+SET_DIST_LIST(test_generic_import_DIST CMakeLists.txt Makefile.am
+        test-link.c test-import-parse.c test-import-pending-matches.c)
diff --git a/src/libqof/CMakeLists.txt b/src/libqof/CMakeLists.txt
index 0928143..a72a88a 100644
--- a/src/libqof/CMakeLists.txt
+++ b/src/libqof/CMakeLists.txt
@@ -1,124 +1,6 @@
 # CMakeLists.txt for src/libqof
 
-ADD_SUBDIRECTORY(qof/test)
+ADD_SUBDIRECTORY(qof)
 
-SET (gnc_qof_HEADERS
-
-  qof/gnc-date-p.h
-  qof/gnc-date.h
-  qof/gnc-numeric.h
-  qof/guid.h
-  qof/kvp-util-p.h
-  qof/kvp-util.h
-  qof/kvp_frame.h
-  qof/qof.h
-  qof/qofbackend-p.h
-  qof/qofbackend.h
-  qof/qofbook.h
-  qof/qofbookslots.h
-  qof/qofchoice.h
-  qof/qofclass.h
-  qof/qofevent.h
-  qof/qofid-p.h
-  qof/qofid.h
-  qof/qofinstance-p.h
-  qof/qofinstance.h
-  qof/qoflog.h
-  qof/qofobject.h
-  qof/qofquery.h
-  qof/qofquerycore.h
-  qof/qofreference.h
-  qof/qofsession.h
-  qof/qof-string-cache.h
-  qof/qofutil.h
-  qof/qof-gobject.h
-
-)
-SET (gnc_qof_noinst_HEADERS
-  qof/md5.h
-  qof/qofbook-p.h
-  qof/qofclass-p.h
-  qof/qofevent-p.h
-  qof/qofmath128-p.h
-  qof/qofobject-p.h
-  qof/qofquery-p.h
-  qof/qofquerycore-p.h
-  qof/qofsession-p.h
-)
-
-SET (gnc_qof_SOURCES
-  qof/md5.c
-  qof/gnc-date.c
-  qof/gnc-numeric.c
-  qof/guid.c
-  qof/kvp-util.c
-  qof/kvp_frame.c
-  qof/qofbackend.c
-  qof/qofbook.c
-  qof/qofchoice.c
-  qof/qofclass.c
-  qof/qofevent.c
-  qof/qofid.c
-  qof/qofinstance.c
-  qof/qoflog.c
-  qof/qofobject.c
-  qof/qofquery.c
-  qof/qofquerycore.c
-  qof/qofreference.c
-  qof/qofsession.c
-  qof/qof-string-cache.c
-  qof/qofutil.c
-)
-
-IF (WIN32)
-  ADD_DEFINITIONS (-DOS_WIN32)
-  SET (gnc_qof_SOURCES ${gnc_qof_SOURCES}
-    qof/qof-win32.c
-	../../lib/libc/strptime.c
-	../../lib/libc/localtime_r.c
-	../../lib/libc/gmtime_r.c
-  )
-ENDIF (WIN32)
-
-# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${gnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-
-# Must compile md5.c without strict aliasing, otherwise function md5_finish_ctx
-# gets "dereferencing type-punned pointer will break strict-aliasing rules"
-SET_SOURCE_FILES_PROPERTIES (qof/md5.c PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
-
-ADD_LIBRARY	(gnc-qof
-  ${gnc_qof_SOURCES}
-  ${gnc_qof_HEADERS}
-  ${gnc_qof_noinst_HEADERS}
-)
-
-TARGET_LINK_LIBRARIES(gnc-qof ${Boost_DATE_TIME_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS})
-
-TARGET_COMPILE_DEFINITIONS (gnc-qof PRIVATE -DG_LOG_DOMAIN=\"qof\")
-
-TARGET_INCLUDE_DIRECTORIES (gnc-qof PUBLIC
-  ${CMAKE_BINARY_DIR}/src # for config.h
-  ${CMAKE_SOURCE_DIR}/src # for platform.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/qof
-  ${GLIB2_INCLUDE_DIRS}
-  ${LIBINTL_INCLUDE_PATH}
-  ${REGEX_INCLUDE_PATH}
-  ${CMAKE_SOURCE_DIR}/lib/libc # for strptime.h
-)
-
-INSTALL(TARGETS gnc-qof
-  LIBRARY DESTINATION lib
-  ARCHIVE DESTINATION lib
-  RUNTIME DESTINATION bin)
-INSTALL(FILES ${gnc_qof_HEADERS} DESTINATION include/gnucash)
-
-SET(qof_test_HEADERS
-    qof/kvp_frame.h
-    qof/qofbook.h
-    qof/qofinstance.h
-    qof/qofobject.h
-    qof/qofsession.h
-)
-
-INSTALL(FILES ${qof_test_HEADERS} DESTINATION libexec/gnucash/src/libqof/qof/test)
+SET_LOCAL_DIST(libqof_DIST_local CMakeLists.txt Makefile.am)
+SET(libqof_DIST ${libqof_DIST_local} ${qof_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/libqof/qof/CMakeLists.txt b/src/libqof/qof/CMakeLists.txt
new file mode 100644
index 0000000..6274238
--- /dev/null
+++ b/src/libqof/qof/CMakeLists.txt
@@ -0,0 +1,129 @@
+ADD_SUBDIRECTORY(test)
+
+SET (gnc_qof_HEADERS
+  gnc-date-p.h
+  gnc-date.h
+  gnc-numeric.h
+  guid.h
+  kvp-util-p.h
+  kvp-util.h
+  kvp_frame.h
+  qof.h
+  qofbackend-p.h
+  qofbackend.h
+  qofbook.h
+  qofbookslots.h
+  qofchoice.h
+  qofclass.h
+  qofevent.h
+  qofid-p.h
+  qofid.h
+  qofinstance-p.h
+  qofinstance.h
+  qoflog.h
+  qofobject.h
+  qofquery.h
+  qofquerycore.h
+  qofreference.h
+  qofsession.h
+  qof-string-cache.h
+  qofutil.h
+  qof-gobject.h
+)
+SET (gnc_qof_noinst_HEADERS
+  md5.h
+  qofbook-p.h
+  qofclass-p.h
+  qofevent-p.h
+  qofmath128-p.h
+  qofobject-p.h
+  qofquery-p.h
+  qofquerycore-p.h
+  qofsession-p.h
+)
+
+SET (gnc_qof_SOURCES
+  md5.c
+  gnc-date.c
+  gnc-numeric.c
+  guid.c
+  kvp-util.c
+  kvp_frame.c
+  qofbackend.c
+  qofbook.c
+  qofchoice.c
+  qofclass.c
+  qofevent.c
+  qofid.c
+  qofinstance.c
+  qoflog.c
+  qofobject.c
+  qofquery.c
+  qofquerycore.c
+  qofreference.c
+  qofsession.c
+  qof-string-cache.c
+  qofutil.c
+)
+
+IF (WIN32)
+  ADD_DEFINITIONS (-DOS_WIN32)
+  SET (gnc_qof_SOURCES ${gnc_qof_SOURCES}
+    qof-win32.c
+	../../../lib/libc/strptime.c
+	../../../lib/libc/localtime_r.c
+	../../../lib/libc/gmtime_r.c
+  )
+ENDIF (WIN32)
+
+SET(gnc_qof_EXTRA_DIST
+		qofmath128.c
+		qof-win32.c
+		)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${gnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+# Must compile md5.c without strict aliasing, otherwise function md5_finish_ctx
+# gets "dereferencing type-punned pointer will break strict-aliasing rules"
+SET_SOURCE_FILES_PROPERTIES (md5.c PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+
+ADD_LIBRARY	(gnc-qof
+  ${gnc_qof_SOURCES}
+  ${gnc_qof_HEADERS}
+  ${gnc_qof_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gnc-qof ${Boost_DATE_TIME_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} -lm)
+
+TARGET_COMPILE_DEFINITIONS (gnc-qof PRIVATE -DG_LOG_DOMAIN=\"qof\")
+
+TARGET_INCLUDE_DIRECTORIES (gnc-qof PUBLIC
+  ${CMAKE_BINARY_DIR}/src # for config.h
+  ${CMAKE_SOURCE_DIR}/src # for platform.h
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${GLIB2_INCLUDE_DIRS}
+  ${LIBINTL_INCLUDE_PATH}
+  ${REGEX_INCLUDE_PATH}
+  ${CMAKE_SOURCE_DIR}/lib/libc # for strptime.h
+)
+
+INSTALL(TARGETS gnc-qof
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib
+  RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${gnc_qof_HEADERS} DESTINATION include/gnucash/qof)
+
+SET(qof_test_HEADERS
+    kvp_frame.h
+    qofbook.h
+    qofinstance.h
+    qofobject.h
+    qofsession.h
+)
+
+INSTALL(FILES ${qof_test_HEADERS} DESTINATION libexec/gnucash/src/libqof/qof/test)
+
+SET_LOCAL_DIST(qof_DIST_local CMakeLists.txt Makefile.am ${gnc_qof_EXTRA_DIST} ${gnc_qof_HEADERS} ${gnc_qof_noinst_HEADERS} ${gnc_qof_SOURCES})
+SET(qof_DIST ${qof_DIST_local} ${test_qof_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/libqof/qof/test/CMakeLists.txt b/src/libqof/qof/test/CMakeLists.txt
index 51b0f49..99f76d6 100644
--- a/src/libqof/qof/test/CMakeLists.txt
+++ b/src/libqof/qof/test/CMakeLists.txt
@@ -19,13 +19,16 @@ SET(test_qof_SOURCES
   test-qofobject.c
   test-qofsession.c
   test-qof-string-cache.c
-  ${CMAKE_SOURCE_DIR}/src/test-core/unittest-support.c
 )
 
 # This test does not on Win32. Worse, it causes a dialog box to
 # pop up due to an assertion. This interferes with running the tests
 # unattended.
 IF (NOT WIN32)
-  GNC_ADD_TEST(test-qof "${test_qof_SOURCES}" TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
+  SET(SOURCES ${test_qof_SOURCES} ${CMAKE_SOURCE_DIR}/src/test-core/unittest-support.c)
+  GNC_ADD_TEST(test-qof "${SOURCES}"
+          TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
   TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
 ENDIF()
+
+SET_DIST_LIST(test_qof_DIST CMakeLists.txt Makefile.am ${test_qof_SOURCES})
diff --git a/src/optional/CMakeLists.txt b/src/optional/CMakeLists.txt
new file mode 100644
index 0000000..3fe88da
--- /dev/null
+++ b/src/optional/CMakeLists.txt
@@ -0,0 +1,5 @@
+ADD_SUBDIRECTORY(python-bindings)
+ADD_SUBDIRECTORY(gtkmm)
+
+SET_LOCAL_DIST(optional_DIST_local CMakeLists.txt Makefile.am)
+SET(optional_DIST ${optional_DIST_local} ${gtkmm_DIST} ${python_bindings_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/optional/gtkmm/CMakeLists.txt b/src/optional/gtkmm/CMakeLists.txt
index 1503a1a..b3a3958 100644
--- a/src/optional/gtkmm/CMakeLists.txt
+++ b/src/optional/gtkmm/CMakeLists.txt
@@ -1,4 +1,7 @@
 # CMakeLists.txt for src/optional/gtkmm
+#ADD_SUBDIRECTORY(gncmm)
+ADD_SUBDIRECTORY(test)
+
 
 ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.gtkmm\")
 
@@ -44,7 +47,18 @@ SET (libgncmod_gtkmm_SOURCES
   gncmm/wrap_init.cpp
 )
 
-ADD_LIBRARY (libgncmod-gtkmm
-  ${libgncmod_gtkmm_SOURCES}
-  ${libgncmod_gtkmm_HEADERS}
+SET(gnc_plugin_SOURCES gnc-plugin-gtkmm.cpp gncmod-gtkmm.cpp)
+SET(gnc_plugin_noinst_SOURCES gnc-plugin-gtkmm.hpp)
+SET(gnc_plugin_UI gnc-plugin-gtkmm-ui.xml)
+
+IF (WITH_CUTECASH)
+  ADD_LIBRARY (libgncmod-gtkmm
+    ${libgncmod_gtkmm_SOURCES}
+    ${libgncmod_gtkmm_HEADERS}
   )
+ENDIF()
+
+SET_LOCAL_DIST(gtkmm_DIST_local CMakeLists.txt Makefile.am
+        ${libgncmod_gtkmm_SOURCES} ${libgncmod_gtkmm_HEADERS}
+        ${gnc_plugin_SOURCES} ${gnc_plugin_noinst_SOURCES} ${gnc_plugin_UI})
+SET(gtkmm_DIST ${gtkmm_DIST_local} ${test_gtkmm_DIST} PARENT_SCOPE)
diff --git a/src/optional/gtkmm/test/CMakeLists.txt b/src/optional/gtkmm/test/CMakeLists.txt
new file mode 100644
index 0000000..eec21b2
--- /dev/null
+++ b/src/optional/gtkmm/test/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+SET_DIST_LIST(test_gtkmm_DIST CMakeLists.txt Makefile.am test-book.cpp test-gtkmm.cpp)
diff --git a/src/optional/python-bindings/CMakeLists.txt b/src/optional/python-bindings/CMakeLists.txt
index 69df126..93682fb 100644
--- a/src/optional/python-bindings/CMakeLists.txt
+++ b/src/optional/python-bindings/CMakeLists.txt
@@ -1,4 +1,5 @@
-
+ADD_SUBDIRECTORY(example_scripts)
+ADD_SUBDIRECTORY(tests)
 
 IF (BUILDING_FROM_VCS)
   SET(SWIG_FILES ${CMAKE_CURRENT_SOURCE_DIR}/gnucash_core.i ${CMAKE_CURRENT_SOURCE_DIR}/timespec.i)
@@ -101,3 +102,18 @@ IF(WITH_PYTHON)
   )
 
 ENDIF()
+
+SET(python_bindings_DATA
+        __init__.py
+        function_class.py
+        gnucash_business.py
+        gnucash_core.i
+        gnucash_core.py
+        sqlite3test.c
+        timespec.i)
+
+SET_LOCAL_DIST(python_bindings_DIST_local CMakeLists.txt Makefile.am ${python_bindings_DATA})
+
+SET(python_bindings_DIST ${python_bindings_DIST_local} ${test_python_bindings_DIST} ${example_scripts_DIST} PARENT_SCOPE)
+
+
diff --git a/src/optional/python-bindings/example_scripts/CMakeLists.txt b/src/optional/python-bindings/example_scripts/CMakeLists.txt
new file mode 100644
index 0000000..f8eba83
--- /dev/null
+++ b/src/optional/python-bindings/example_scripts/CMakeLists.txt
@@ -0,0 +1,21 @@
+
+SET(example_scripts_DATA
+        account_analysis.py
+        change_tax_code.py
+        Invoice.tex
+        latex_invoices.py
+        new_book_with_opening_balances.py
+        simple_book.py
+        simple_business_create.py
+        simple_invoice_insert.py
+        simple_session.py
+        simple_sqlite_create.py
+        simple_test.py
+        test_imbalance_transaction.py
+        rest-api/gnucash_rest.py
+        rest-api/gnucash_simple.py
+        rest-api/README
+        )
+
+SET_LOCAL_DIST(example_scripts_DIST_local CMakeLists.txt ${example_scripts_DATA})
+SET(example_scripts_DIST ${example_scripts_DIST_local} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/optional/python-bindings/tests/CMakeLists.txt b/src/optional/python-bindings/tests/CMakeLists.txt
new file mode 100644
index 0000000..e3074d0
--- /dev/null
+++ b/src/optional/python-bindings/tests/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+SET(test_python_bindings_DATA
+        runTests.py.in
+        test_account.py
+        test_book.py
+        test_business.py
+        test_split.py
+        test_transaction.py)
+
+SET_DIST_LIST(test_python_bindings_DIST CMakeLists.txt Makefile.am ${test_python_bindings_DATA})
\ No newline at end of file
diff --git a/src/pixmaps/CMakeLists.txt b/src/pixmaps/CMakeLists.txt
index 2f0fb27..285f177 100644
--- a/src/pixmaps/CMakeLists.txt
+++ b/src/pixmaps/CMakeLists.txt
@@ -4,116 +4,195 @@ INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION share/gnucash
         PATTERN CMakeLists.txt EXCLUDE
 )
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-     DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
-     PATTERN Makefile.* EXCLUDE
-     PATTERN CMakeLists.txt EXCLUDE
-  )
-ENDIF()
+
+FILE(COPY .
+   DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
+   PATTERN Makefile.* EXCLUDE
+   PATTERN CMakeLists.txt EXCLUDE
+)
+
 
 FOREACH(dir 256x256 128x128 96x96 64x64 48x48)
   INSTALL(
       FILES ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
       RENAME gnucash-icon.png
       DESTINATION share/icons/hicolor/${dir}/apps)
-  IF(GNC_BUILD_AS_INSTALL)    
-    FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
-         DESTINATION ${DATADIR_BUILD}/icons/hicolor/${dir}/apps/gnucash-icon-${dir}.png)
+
+  FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
+       DESTINATION ${DATADIR_BUILD}/icons/hicolor/${dir}/apps/gnucash-icon-${dir}.png)
+
+  IF (BUILDING_FROM_VCS)
+    FILE(MAKE_DIRECTORY ${dir})
+    FILE(COPY gnucash-icon-${dir}.png DESTINATION ${dir})
+    FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/${dir}/gnucash-icon-${dir}.png
+                ${CMAKE_CURRENT_BINARY_DIR}/${dir}/gnucash-icon.png)
   ENDIF()
 ENDFOREACH(dir)
 
+IF (BUILDING_FROM_VCS)
+  FILE(MAKE_DIRECTORY 16x16 22x22 24x24 32x32 scalable)
+
+   # 16x16
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png DESTINATION 16x16)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/16x16/gnucash.png
+              ${CMAKE_CURRENT_BINARY_DIR}/16x16/gnucash-icon.png)
+
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png DESTINATION .)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/gnucash.png
+              ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-16x16.png)
+	    
+	    
+  # 22x22	    
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png DESTINATION 22x22)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/22x22/gnucash-22x22.png
+              ${CMAKE_CURRENT_BINARY_DIR}/22x22/gnucash-icon.png)
+
+  # 24x24	    
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png DESTINATION 24x24)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/24x24/gnucash-24x24.png
+              ${CMAKE_CURRENT_BINARY_DIR}/24x24/gnucash-icon.png)
+
+  # 32x32
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png DESTINATION 32x32)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/32x32/gnucash.png
+              ${CMAKE_CURRENT_BINARY_DIR}/32x32/gnucash-icon.png)
+  
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png DESTINATION .)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/gnucash.png
+              ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-32x32.png)
+
+
+  # scalable
+  FILE(COPY ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg DESTINATION scalable)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/scalable/gnucash.svg
+              ${CMAKE_CURRENT_BINARY_DIR}/scalable/gnucash-icon.svg)
+  
+ELSE()
+  FILE(MAKE_DIRECTORY 16x16 22x22 24x24 32x32 scalable)
+  
+  FILE(COPY 16x16/gnucash-icon.png DESTINATION 16x16)
+
+  FILE(COPY 22x22/gnucash-icon.png DESTINATION 22x22)
+  FILE(COPY 24x24/gnucash-icon.png DESTINATION 24x24)
+  FILE(COPY 32x32/gnucash-icon.png DESTINATION 32x32)
+  FILE(COPY 32x32/gnucash-icon.png DESTINATION .)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon.png ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-32x32.png)
+  FILE(COPY 16x16/gnucash-icon.png DESTINATION .)
+  FILE(RENAME ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon.png ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-16x16.png)
+  FILE(COPY scalable/gnucash-icon.svg DESTINATION scalable)
+ENDIF()
+
+
+#-------
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/32x32/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/icons/hicolor/32x32/apps)
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/22x22/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/icons/hicolor/22x22/apps)
+   
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/24x24/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/icons/hicolor/24x24/apps)
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/16x16/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/icons/hicolor/16x16/apps)
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/scalable/gnucash-icon.svg
+     DESTINATION ${DATADIR_BUILD}/icons/hicolor/scalable/apps)
+  
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/16x16/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps)
+
+FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon.png
+        ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-16x16.png)
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/32x32/gnucash-icon.png
+     DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps)
+
+FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon.png
+${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-32x32.png)
+
+
+#------------------------
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
-    RENAME gnucash-icon.png
-    DESTINATION share/icons/hicolor/32x32/apps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/32x32/gnucash-icon.png
+        DESTINATION share/icons/hicolor/32x32/apps
 )
 
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
-    RENAME gnucash-icon.png
-    DESTINATION share/icons/hicolor/22x22/apps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/22x22/gnucash-icon.png
+        DESTINATION share/icons/hicolor/22x22/apps
 )
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
-    RENAME gnucash-icon.png
-    DESTINATION share/icons/hicolor/24x24/apps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/24x24/gnucash-icon.png
+        DESTINATION share/icons/hicolor/24x24/apps
 )
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
-    RENAME gnucash-icon.png
-    DESTINATION share/icons/hicolor/16x16/apps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/16x16/gnucash-icon.png
+        DESTINATION share/icons/hicolor/16x16/apps
 )
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
-    RENAME gnucash-icon.svg
-    DESTINATION share/icons/hicolor/scalable/apps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/scalable/gnucash-icon.svg
+        DESTINATION share/icons/hicolor/scalable/apps
 )
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
-    RENAME gnucash-icon-16x16.png
-    DESTINATION share/gnucash/pixmaps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-16x16.png
+        DESTINATION share/gnucash/pixmaps
 )
 INSTALL(
-    FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
-    RENAME gnucash-icon-32x32.png
-    DESTINATION share/gnucash/pixmaps
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash-icon-32x32.png
+        DESTINATION share/gnucash/pixmaps
 )
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
-    DESTINATION ${DATADIR_BUILD}/icons/hicolor/32x32/apps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash.png
-    ${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash-icon.png
-    )
-
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
-    DESTINATION ${DATADIR_BUILD}/icons/hicolor/22x22/apps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-22x22.png
-    ${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-icon.png
-    )
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
-    DESTINATION ${DATADIR_BUILD}/icons/hicolor/24x24/apps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-24x24.png
-    ${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-icon.png
-  )
-
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
-    DESTINATION ${DATADIR_BUILD}/icons/hicolor/16x16/apps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash.png
-    ${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash-icon.png
-  )
-
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
-    DESTINATION ${DATADIR_BUILD}/icons/hicolor/scalable/apps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash.svg
-    ${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash-icon.svg
-  )
-
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
-    DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
-              ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-16x16.png
-  )
-
-  FILE(
-    COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
-    DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
-  )
-  FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
-    ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-32x32.png
-  )
-
-ENDIF()
\ No newline at end of file
+SET(gncpixmap_DATA
+        gnc-account-16.png
+        gnc-account-delete-16.png
+        gnc-account-delete.png
+        gnc-account-edit-16.png
+        gnc-account-edit.png
+        gnc-account-new-16.png
+        gnc-account-new.png
+        gnc-account-open-16.png
+        gnc-account-open.png
+        gnc-account.png
+        gnc-account-report-16.png
+        gnc-account-report.png
+        gnc-gnome-pdf-16.png
+        gnc-gnome-pdf-24.png
+        gnc-invoice-16.png
+        gnc-invoice-duplicate-16.png
+        gnc-invoice-duplicate.png
+        gnc-invoice-edit-16.png
+        gnc-invoice-edit.png
+        gnc-invoice-new-16.png
+        gnc-invoice-new.png
+        gnc-invoice-pay-16.png
+        gnc-invoice-pay.png
+        gnc-invoice.png
+        gnc-invoice-post-16.png
+        gnc-invoice-post.png
+        gnc-invoice-unpost-16.png
+        gnc-invoice-unpost.png
+        gnc-jumpto-16.png
+        gnc-jumpto.png
+        gnc-split-trans-16.png
+        gnc-split-trans.png
+        gnc-sx-new-16.png
+        gnc-sx-new.png
+        gnc-transfer-16.png
+        gnc-transfer.png
+        gnucash-icon-128x128.png
+        gnucash-icon-256x256.png
+        gnucash-icon-48x48.png
+        gnucash-icon-48x48.bmp
+        gnucash-icon-64x64.png
+        gnucash-icon-96x96.png
+        gnucash-icon.ico
+        gnucash_splash.png
+        stock_split_title.png
+        stock_split_watermark.png
+)
+
+SET_LOCAL_DIST(pixmaps_DIST_local CMakeLists.txt Makefile.am ${gncpixmap_DATA})
+SET(pixmaps_DIST ${pixmaps_DIST_local} PARENT_SCOPE)
+
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
new file mode 100644
index 0000000..5c18ad8
--- /dev/null
+++ b/src/plugins/CMakeLists.txt
@@ -0,0 +1,7 @@
+ADD_SUBDIRECTORY(bi_import)
+ADD_SUBDIRECTORY(customer_import)
+ADD_SUBDIRECTORY(example)
+
+
+SET_LOCAL_DIST(plugins_DIST_local CMakeLists.txt Makefile.am)
+SET(plugins_DIST ${plugins_DIST_local} ${bi_import_DIST} ${customer_import_DIST} ${example_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/plugins/bi_import/CMakeLists.txt b/src/plugins/bi_import/CMakeLists.txt
index dc837ae..95afc72 100644
--- a/src/plugins/bi_import/CMakeLists.txt
+++ b/src/plugins/bi_import/CMakeLists.txt
@@ -41,3 +41,5 @@ INSTALL(TARGETS gncmod-bi_import
   RUNTIME DESTINATION bin)
 # No headers to install.
 
+SET_LOCAL_DIST(bi_import_DIST_local CMakeLists.txt Makefile.am README ${bi_import_SOURCES} ${bi_import_noinst_HEADERS})
+SET(bi_import_DIST ${bi_import_DIST_local} ${bi_import_ui_DIST} ${bi_import_glade_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/plugins/bi_import/gtkbuilder/CMakeLists.txt b/src/plugins/bi_import/gtkbuilder/CMakeLists.txt
index 168e5c2..33d3b37 100644
--- a/src/plugins/bi_import/gtkbuilder/CMakeLists.txt
+++ b/src/plugins/bi_import/gtkbuilder/CMakeLists.txt
@@ -1,11 +1,13 @@
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
+
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET_DIST_LIST(bi_import_glade_DIST CMakeLists.txt Makefile.am dialog-bi-import-gui.glade)
\ No newline at end of file
diff --git a/src/plugins/bi_import/ui/CMakeLists.txt b/src/plugins/bi_import/ui/CMakeLists.txt
index 6c9019d..1a6569a 100644
--- a/src/plugins/bi_import/ui/CMakeLists.txt
+++ b/src/plugins/bi_import/ui/CMakeLists.txt
@@ -1,12 +1,11 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui
-    PATTERN Makefile.* EXCLUDE
-    PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui
+  PATTERN Makefile.* EXCLUDE
+  PATTERN CMakeLists.txt EXCLUDE)
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET_DIST_LIST(bi_import_ui_DIST CMakeLists.txt Makefile.am gnc-plugin-bi-import-ui.xml)
diff --git a/src/plugins/customer_import/CMakeLists.txt b/src/plugins/customer_import/CMakeLists.txt
index 75a8c58..0d8fe0d 100644
--- a/src/plugins/customer_import/CMakeLists.txt
+++ b/src/plugins/customer_import/CMakeLists.txt
@@ -29,4 +29,7 @@ INSTALL(TARGETS gncmod-customer_import
   LIBRARY DESTINATION lib/gnucash
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
-# No headers to install.
\ No newline at end of file
+# No headers to install.
+
+SET_LOCAL_DIST(customer_import_DIST_local CMakeLists.txt Makefile.am ${customer_import_SOURCES} ${customer_import_noinst_HEADERS})
+SET(customer_import_DIST ${customer_import_DIST_local} ${customer_import_glade_DIST} ${customer_import_ui_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/plugins/customer_import/gtkbuilder/CMakeLists.txt b/src/plugins/customer_import/gtkbuilder/CMakeLists.txt
index 1d4d3d1..0f9b152 100644
--- a/src/plugins/customer_import/gtkbuilder/CMakeLists.txt
+++ b/src/plugins/customer_import/gtkbuilder/CMakeLists.txt
@@ -1,12 +1,11 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET_DIST_LIST(customer_import_glade_DIST CMakeLists.txt Makefile.am dialog-customer-import-gui.glade)
diff --git a/src/plugins/customer_import/ui/CMakeLists.txt b/src/plugins/customer_import/ui/CMakeLists.txt
index 6c9019d..c70156e 100644
--- a/src/plugins/customer_import/ui/CMakeLists.txt
+++ b/src/plugins/customer_import/ui/CMakeLists.txt
@@ -1,12 +1,11 @@
-
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY .
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui
+FILE(COPY .
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
-ENDIF()
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     DESTINATION share/gnucash
     PATTERN Makefile.* EXCLUDE
     PATTERN CMakeLists.txt EXCLUDE)
+
+SET_DIST_LIST(customer_import_ui_DIST CMakeLists.txt Makefile.am gnc-plugin-customer_import-ui.xml)
\ No newline at end of file
diff --git a/src/plugins/example/CMakeLists.txt b/src/plugins/example/CMakeLists.txt
new file mode 100644
index 0000000..5df1ddb
--- /dev/null
+++ b/src/plugins/example/CMakeLists.txt
@@ -0,0 +1,8 @@
+ADD_SUBDIRECTORY(glade)
+ADD_SUBDIRECTORY(ui)
+
+SET(example_SOURCES gnc-plugin.example.c gncmod-example.c)
+SET(example_noinst_HEADERS gnc-plugin.example.h)
+
+SET_LOCAL_DIST(example_DIST_local CMakeLists.txt Makefile.am ${example_SOURCES} ${example_noinst_HEADERS})
+SET(example_DIST ${example_DIST_local} ${example_glade_DIST} ${example_ui_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/plugins/example/glade/CMakeLists.txt b/src/plugins/example/glade/CMakeLists.txt
new file mode 100644
index 0000000..9a85c37
--- /dev/null
+++ b/src/plugins/example/glade/CMakeLists.txt
@@ -0,0 +1 @@
+SET_DIST_LIST(example_glade_DIST CMakeLists.txt Makefile.am)
\ No newline at end of file
diff --git a/src/plugins/example/ui/CMakeLists.txt b/src/plugins/example/ui/CMakeLists.txt
new file mode 100644
index 0000000..2e9d808
--- /dev/null
+++ b/src/plugins/example/ui/CMakeLists.txt
@@ -0,0 +1 @@
+SET_DIST_LIST(example_ui_DIST CMakeLists.txt Makefile.am gnc-plugin-example-ui.xml)
diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt
index 727a377..6698f3f 100644
--- a/src/python/CMakeLists.txt
+++ b/src/python/CMakeLists.txt
@@ -1,17 +1,24 @@
-# handle pycons directory
+ADD_SUBDIRECTORY(pycons)
 
 SET(gncmod_python_SOURCES gncmod-python.c)
 
-ADD_LIBRARY(gncmod-python ${gncmod_python_SOURCES})
-TARGET_LINK_LIBRARIES(gncmod-python gnc-module gnc-core-utils-python gncmod-app-utils-python
+IF (WITH_PYTHON)
+
+  ADD_LIBRARY(gncmod-python ${gncmod_python_SOURCES})
+  TARGET_LINK_LIBRARIES(gncmod-python gnc-module gnc-core-utils-python gncmod-app-utils-python
    ${PYTHON_LIBRARIES} ${GLIB_LIBS})   # ${PYTHON_EXTRA_LIBS}
-TARGET_INCLUDE_DIRECTORIES(gncmod-python
-  PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/core_utils ${CMAKE_SOURCE_DIR}/gnc-module ${PYTHON_INCLUDE_DIR})
-TARGET_COMPILE_OPTIONS(gncmod-python PRIVATE -DG_LOG_DOMAIN=\"gnc.python\")
-INSTALL(TARGETS gncmod-python
-  LIBRARY DESTINATION lib/gnucash
-  ARCHIVE DESTINATION lib/gnucash
-  RUNTIME DESTINATION bin
-)
+  TARGET_INCLUDE_DIRECTORIES(gncmod-python
+    PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/core_utils ${CMAKE_SOURCE_DIR}/gnc-module ${PYTHON_INCLUDE_DIR})
+  TARGET_COMPILE_OPTIONS(gncmod-python PRIVATE -DG_LOG_DOMAIN=\"gnc.python\")
+  INSTALL(TARGETS gncmod-python
+    LIBRARY DESTINATION lib/gnucash
+    ARCHIVE DESTINATION lib/gnucash
+    RUNTIME DESTINATION bin
+  )
+
+  INSTALL(FILES init.py DESTINATION share/python)
+ENDIF(WITH_PYTHON)
+
+SET_LOCAL_DIST(python_DIST_local CMakeLists.txt Makefile.am gncmod-python.c init.py)
+SET(python_DIST ${python_DIST_local} ${pycons_DIST} PARENT_SCOPE)
 
-INSTALL(FILES init.py DESTINATION share/python)
\ No newline at end of file
diff --git a/src/python/pycons/CMakeLists.txt b/src/python/pycons/CMakeLists.txt
new file mode 100644
index 0000000..3beb27a
--- /dev/null
+++ b/src/python/pycons/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+
+SET(pycons_DATA
+        __init__.py
+        console.py
+        ishell.py
+        pycons
+        setup.py
+        shell.py
+        simple_plot.py
+)
+
+SET_DIST_LIST(pycons_DIST CMakeLists.txt Makefile.am ${pycons_DATA})
\ No newline at end of file
diff --git a/src/quotes/CMakeLists.txt b/src/quotes/CMakeLists.txt
index 1c5b33d..ed2ced8 100644
--- a/src/quotes/CMakeLists.txt
+++ b/src/quotes/CMakeLists.txt
@@ -12,18 +12,16 @@ FILE(WRITE ${_TMPDIR}/copy_with_perms.cmake
 SET(_BIN_FILES "")
 FOREACH(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
   STRING(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
-  GNC_CONFIGURE2(${file} ${_OUTPUT_FILE_NAME})
+  GNC_CONFIGURE2(${file}-target ${file} ${_OUTPUT_FILE_NAME})
   SET(_ABS_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE_NAME})
   LIST(APPEND _BIN_FILES ${_ABS_OUTPUT_FILE})
-  IF (GNC_BUILD_AS_INSTALL)
-    ADD_CUSTOM_COMMAND(
-      OUTPUT ${_ABS_OUTPUT_FILE}
-      APPEND
-      COMMAND ${CMAKE_COMMAND} -D SRC=${_ABS_OUTPUT_FILE}
-                               -D DST=${BINDIR_BUILD}
-                               -P ${_TMPDIR}/copy_with_perms.cmake
-    )
-  ENDIF()
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${_ABS_OUTPUT_FILE}
+    APPEND
+    COMMAND ${CMAKE_COMMAND} -D SRC=${_ABS_OUTPUT_FILE}
+                             -D DST=${BINDIR_BUILD}
+                             -P ${_TMPDIR}/copy_with_perms.cmake
+  )
 ENDFOREACH(file)
 
 SET(CMAKE_COMMAND_TMP "")
@@ -45,10 +43,11 @@ FOREACH(file gnc-fq-dump gnc-fq-helper)
   )
 ENDFOREACH(file)
 
-# I don't bother copying the man pages for GNC_BUILD_AS_INSTALL. I probably should for completeness.
 
 ADD_CUSTOM_TARGET(quotes-man ALL DEPENDS ${_MAN_FILES})
 ADD_CUSTOM_TARGET(quotes-bin ALL DEPENDS gnc-fq-check gnc-fq-update)
 INSTALL(FILES ${_MAN_FILES} DESTINATION share/man/man1)
 INSTALL(PROGRAMS ${_BIN_FILES} DESTINATION bin)
 
+SET_DIST_LIST(quotes_DIST CMakeLists.txt gnc-fq-check.in gnc-fq-dump gnc-fq-helper.in gnc-fq-update.in
+        gnc-value-portfolio Makefile.am Quote_example.pl README)
diff --git a/src/register/CMakeLists.txt b/src/register/CMakeLists.txt
new file mode 100644
index 0000000..ae7f53a
--- /dev/null
+++ b/src/register/CMakeLists.txt
@@ -0,0 +1,6 @@
+ADD_SUBDIRECTORY(ledger-core)
+ADD_SUBDIRECTORY(register-core)
+ADD_SUBDIRECTORY(register-gnome)
+
+SET_LOCAL_DIST(register_DIST_local CMakeLists.txt Makefile.am)
+SET(register_DIST ${register_DIST_local} ${ledger_core_DIST} ${register_core_DIST} ${register_gnome_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/register/ledger-core/CMakeLists.txt b/src/register/ledger-core/CMakeLists.txt
index 6e629df..0c607fb 100644
--- a/src/register/ledger-core/CMakeLists.txt
+++ b/src/register/ledger-core/CMakeLists.txt
@@ -41,4 +41,7 @@ INSTALL(TARGETS gncmod-ledger-core
   LIBRARY DESTINATION lib/gnucash
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
-# No headers to install
\ No newline at end of file
+# No headers to install
+
+SET_LOCAL_DIST(ledger_core_DIST_local CMakeLists.txt Makefile.am ${ledger_core_SOURCES} ${ledger_core_HEADERS})
+SET(ledger_core_DIST ${ledger_core_DIST_local} ${test_ledger_core_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/register/ledger-core/test/CMakeLists.txt b/src/register/ledger-core/test/CMakeLists.txt
index 1ec9b92..a6500d9 100644
--- a/src/register/ledger-core/test/CMakeLists.txt
+++ b/src/register/ledger-core/test/CMakeLists.txt
@@ -4,4 +4,6 @@ SET(LEDGER_CORE_TEST_LIBS)
 
 GNC_ADD_TEST(test-link-module-ledger-core test-link-module.c
   LEDGER_CORE_TEST_INCLUDE_DIRS LEDGER_CORE_TEST_LIBS
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(test_ledger_core_DIST CMakeLists.txt Makefile.am test-link-module.c)
\ No newline at end of file
diff --git a/src/register/register-core/CMakeLists.txt b/src/register/register-core/CMakeLists.txt
index bfdae12..145198b 100644
--- a/src/register/register-core/CMakeLists.txt
+++ b/src/register/register-core/CMakeLists.txt
@@ -56,4 +56,8 @@ INSTALL(TARGETS gncmod-register-core
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
 
-INSTALL(FILES ${register_core_HEADERS} DESTINATION include/gnucash)
\ No newline at end of file
+INSTALL(FILES ${register_core_HEADERS} DESTINATION include/gnucash)
+
+SET_LOCAL_DIST(register_core_DIST_local CMakeLists.txt Makefile.am README ${register_core_SOURCES} ${register_core_HEADERS})
+
+SET(register_core_DIST ${register_core_DIST_local} ${test_register_core_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/register/register-core/test/CMakeLists.txt b/src/register/register-core/test/CMakeLists.txt
index 4bf1f05..79c43a0 100644
--- a/src/register/register-core/test/CMakeLists.txt
+++ b/src/register/register-core/test/CMakeLists.txt
@@ -4,4 +4,6 @@ SET(REGISTER_CORE_TEST_LIBS)
 
 GNC_ADD_TEST(test-link-module-register-core test-link-module.c
   REGISTER_CORE_TEST_INCLUDE_DIRS REGISTER_CORE_TEST_LIBS
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(test_register_core_DIST CMakeLists.txt Makefile.am test-link-module.c)
\ No newline at end of file
diff --git a/src/register/register-gnome/CMakeLists.txt b/src/register/register-gnome/CMakeLists.txt
index 3c4d222..dbbd08d 100644
--- a/src/register/register-gnome/CMakeLists.txt
+++ b/src/register/register-gnome/CMakeLists.txt
@@ -56,4 +56,8 @@ INSTALL(TARGETS gncmod-register-gnome
   LIBRARY DESTINATION lib/gnucash
   ARCHIVE DESTINATION lib/gnucash
   RUNTIME DESTINATION bin)
-# No headers to install
\ No newline at end of file
+# No headers to install
+
+SET_LOCAL_DIST(register_gnome_DIST_local CMakeLists.txt Makefile.am ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
+
+SET(register_gnome_DIST ${register_gnome_DIST_local} ${test_register_gnome_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/register/register-gnome/test/CMakeLists.txt b/src/register/register-gnome/test/CMakeLists.txt
index 38251b8..6268ae3 100644
--- a/src/register/register-gnome/test/CMakeLists.txt
+++ b/src/register/register-gnome/test/CMakeLists.txt
@@ -3,5 +3,7 @@ SET(REGISTER_GNOME_TEST_INCLUDE_DIRS "")
 SET(REGISTER_GNOME_TEST_LIBS)
 
 GNC_ADD_TEST(test-link-module-register-gnome test-link-module.c
-REGISTER_GNOME_TEST_INCLUDE_DIRS REGISTER_GNOME_TEST_LIBS
-)
\ No newline at end of file
+  REGISTER_GNOME_TEST_INCLUDE_DIRS REGISTER_GNOME_TEST_LIBS
+)
+
+SET_DIST_LIST(test_register_gnome_DIST CMakeLists.txt Makefile.am test-link-module.c)
\ No newline at end of file
diff --git a/src/report/CMakeLists.txt b/src/report/CMakeLists.txt
index cb57c20..4e188d3 100644
--- a/src/report/CMakeLists.txt
+++ b/src/report/CMakeLists.txt
@@ -1,10 +1,13 @@
 
 ADD_SUBDIRECTORY(business-reports)
 ADD_SUBDIRECTORY(jqplot)
-ADD_SUBDIRECTORY(locale-specific/us)
+ADD_SUBDIRECTORY(locale-specific)
 ADD_SUBDIRECTORY(report-gnome)
 ADD_SUBDIRECTORY(report-system)
 ADD_SUBDIRECTORY(standard-reports)
 ADD_SUBDIRECTORY(stylesheets)
 ADD_SUBDIRECTORY(utility-reports)
 
+SET_LOCAL_DIST(report_DIST_local CMakeLists.txt Makefile.am)
+SET(report_DIST ${report_DIST_local} ${business_reports_DIST} ${jqplot_DIST} ${locale_specific_DIST} ${report_gnome_DIST} ${report_system_DIST}
+                ${standard_reports_DIST} ${stylesheets_DIST} ${utility_reports_DIST}  PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/report/business-reports/CMakeLists.txt b/src/report/business-reports/CMakeLists.txt
index a03e16f..d96c947 100644
--- a/src/report/business-reports/CMakeLists.txt
+++ b/src/report/business-reports/CMakeLists.txt
@@ -40,4 +40,6 @@ GNC_ADD_SCHEME_TARGETS(scm-business-reports
   TRUE
 )
 
-INSTALL(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
\ No newline at end of file
+INSTALL(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
+
+SET_DIST_LIST(business_reports_DIST CMakeLists.txt Makefile.am ${business_reports_SCHEME} ${business_reports_DATA})
\ No newline at end of file
diff --git a/src/report/jqplot/CMakeLists.txt b/src/report/jqplot/CMakeLists.txt
index b168ce1..504bb3a 100644
--- a/src/report/jqplot/CMakeLists.txt
+++ b/src/report/jqplot/CMakeLists.txt
@@ -30,4 +30,6 @@ SET(gncjqplot_DATA
   plugins/jqplot.trendline.js
 )
 
-INSTALL(FILES ${gncjqplot_DATA} DESTINATION share/gnucash/jqplot)
\ No newline at end of file
+INSTALL(FILES ${gncjqplot_DATA} DESTINATION share/gnucash/jqplot)
+
+SET_DIST_LIST(jqplot_DIST CMakeLists.txt Makefile.am jquery.js ${gncjqplot_DATA})
\ No newline at end of file
diff --git a/src/report/locale-specific/CMakeLists.txt b/src/report/locale-specific/CMakeLists.txt
new file mode 100644
index 0000000..160fed9
--- /dev/null
+++ b/src/report/locale-specific/CMakeLists.txt
@@ -0,0 +1,4 @@
+ADD_SUBDIRECTORY(us)
+
+SET_LOCAL_DIST(locale_specific_DIST_local CMakeLists.txt Makefile.am)
+SET(locale_specific_DIST ${locale_specific_DIST_local} ${locale_specific_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/report/locale-specific/us/CMakeLists.txt b/src/report/locale-specific/us/CMakeLists.txt
index 2cd1e47..a9a2c39 100644
--- a/src/report/locale-specific/us/CMakeLists.txt
+++ b/src/report/locale-specific/us/CMakeLists.txt
@@ -51,4 +51,9 @@ GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-2
   "${GUILE_LIBRARY_DIRS}"
   "scm-report-locale-specific-1;${GUILE_DEPENDS}"
   FALSE
-)
\ No newline at end of file
+)
+
+SET_LOCAL_DIST(locale_specific_us_DIST_local CMakeLists.txt Makefile.am
+        ${locale_reports_us_SOURCES} ${gncmod_local_reports_us_SCHEME_1} ${gncmod_local_reports_us_SCHEME_2})
+
+SET(locale_specific_us_DIST ${locale_specific_us_DIST_local} ${test_locale_specific_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/report/locale-specific/us/test/CMakeLists.txt b/src/report/locale-specific/us/test/CMakeLists.txt
index 72cab04..f4d351c 100644
--- a/src/report/locale-specific/us/test/CMakeLists.txt
+++ b/src/report/locale-specific/us/test/CMakeLists.txt
@@ -8,4 +8,6 @@ GNC_ADD_TEST(test-link-module-report-locale-specific-us test-link-module.c
 # This test not run in the autotools build.
 #GNC_ADD_SCHEME_TEST(test-load-module-report-locale-specific-us
 #  test-load-module.in
-#)
\ No newline at end of file
+#)
+
+SET_DIST_LIST(test_locale_specific_us_DIST CMakeLists.txt Makefile.am test-link-module.c test-load-module.in)
\ No newline at end of file
diff --git a/src/report/report-gnome/CMakeLists.txt b/src/report/report-gnome/CMakeLists.txt
index c9abbeb..e63f631 100644
--- a/src/report/report-gnome/CMakeLists.txt
+++ b/src/report/report-gnome/CMakeLists.txt
@@ -10,13 +10,12 @@ SET (report_gnome_HEADERS
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_REPORT_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-gnome.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-gnome.i ${report_gnome_HEADERS})
+  GNC_ADD_SWIG_COMMAND (swig-report-gnome-c ${SWIG_REPORT_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-gnome.i ${report_gnome_HEADERS})
 ELSE()
   SET (SWIG_REPORT_GNOME_C swig-report-gnome.c)
 ENDIF()
 
 SET (report_gnome_SOURCES
-  ${SWIG_REPORT_GNOME_C}
   dialog-report-column-view.c
   dialog-custom-report.c
   dialog-report-style-sheet.c
@@ -28,6 +27,7 @@ SET (report_gnome_SOURCES
 ADD_LIBRARY (gncmod-report-gnome
   ${report_gnome_SOURCES}
   ${report_gnome_HEADERS}
+  ${SWIG_REPORT_GNOME_C}
 )
 TARGET_LINK_LIBRARIES(gncmod-report-gnome gncmod-report-system gncmod-html gncmod-gnome-utils
       gnc-qof ${GUILE_LDFLAGS} ${GTK2_LDFLAGS})
@@ -73,9 +73,9 @@ SET(report_gnome_UI gnc-plugin-page-report-ui.xml)
 
 INSTALL(FILES ${report_gnome_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${report_gnome_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-  FILE(COPY ${report_gnome_GLADE}
-    DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${report_gnome_UI} DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+FILE(COPY ${report_gnome_GLADE} DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+
+SET_LOCAL_DIST(report_gnome_DIST_local CMakeLists.txt Makefile.am report-gnome.i ${report_gnome_HEADERS} ${report_gnome_SOURCES}
+        ${report_gnome_SCHEME} ${report_gnome_GLADE} ${report_gnome_UI})
+SET(report_gnome_DIST ${report_gnome_DIST_local} ${test_report_gnome_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/report/report-gnome/test/CMakeLists.txt b/src/report/report-gnome/test/CMakeLists.txt
index 29f7dd0..fbed244 100644
--- a/src/report/report-gnome/test/CMakeLists.txt
+++ b/src/report/report-gnome/test/CMakeLists.txt
@@ -11,4 +11,9 @@ GNC_ADD_TEST_WITH_GUILE(test-link-module-report-gnome test-link-module.c
 
 GNC_ADD_SCHEME_TEST(test-load-module-report-gnome
   test-load-module.in
-)
\ No newline at end of file
+)
+
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
+
+SET_DIST_LIST(test_report_gnome_DIST CMakeLists.txt Makefile.am test-link-module.c test-load-module.in)
+
diff --git a/src/report/report-system/CMakeLists.txt b/src/report/report-system/CMakeLists.txt
index d064026..cfea5c7 100644
--- a/src/report/report-system/CMakeLists.txt
+++ b/src/report/report-system/CMakeLists.txt
@@ -6,14 +6,13 @@ SET (report_system_HEADERS
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_REPORT_SYSTEM_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-system.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_SYSTEM_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS})
+  GNC_ADD_SWIG_COMMAND (swig-report-system-c ${SWIG_REPORT_SYSTEM_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS})
 ELSE()
   SET (SWIG_REPORT_SYSTEM_C swig-report-system.c)
 ENDIF()
 
 
 SET (report_system_SOURCES
-  ${SWIG_REPORT_SYSTEM_C}
   gncmod-report-system.c
   gnc-report.c
 )  
@@ -21,6 +20,7 @@ SET (report_system_SOURCES
 ADD_LIBRARY (gncmod-report-system
   ${report_system_SOURCES}
   ${report_system_HEADERS}
+  ${SWIG_REPORT_SYSTEM_C}
 )
 
 TARGET_COMPILE_DEFINITIONS(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
@@ -111,3 +111,8 @@ GNC_ADD_SCHEME_TARGETS(scm-report-system-3
   FALSE
 )
 
+SET_LOCAL_DIST(report_system_DIST_local CMakeLists.txt Makefile.am report-system.i
+        ${report_system_HEADERS} ${report_system_SOURCES} ${report_system_SCHEME} ${report_system_SCHEME_1}
+        ${report_system_SCHEME_2} ${report_system_SCHEME_3})
+
+SET(report_system_DIST ${report_system_DIST_local} ${test_report_system_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/report/report-system/test/CMakeLists.txt b/src/report/report-system/test/CMakeLists.txt
index f04e7c7..42bea2a 100644
--- a/src/report/report-system/test/CMakeLists.txt
+++ b/src/report/report-system/test/CMakeLists.txt
@@ -1,3 +1,4 @@
+
 SET(REPORT_SYSTEM_TEST_INCLUDE_DIRS
   ${CMAKE_SOURCE_DIR}/src/gnc-module
   ${GUILE_INCLUDE_DIRS}
@@ -23,4 +24,9 @@ GNC_ADD_SCHEME_TARGETS(scm-test-report-system
   ""
   "scm-gnc-module;scm-test-engine;scm-report-system-3"
   FALSE
-)
\ No newline at end of file
+)
+
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
+
+SET_DIST_LIST(test_report_system_DIST CMakeLists.txt Makefile.am test-collectors.scm test-extras.scm test-link-module.c
+        test-load-module.in test-report-utilities.scm test-list-extras.scm)
\ No newline at end of file
diff --git a/src/report/standard-reports/CMakeLists.txt b/src/report/standard-reports/CMakeLists.txt
index 57f667b..56a4d5e 100644
--- a/src/report/standard-reports/CMakeLists.txt
+++ b/src/report/standard-reports/CMakeLists.txt
@@ -83,4 +83,7 @@ FILE(MAKE_DIRECTORY ${STD_RPT_DIR})
 FILE(COPY standard-reports.scm DESTINATION ${STD_RPT_DIR})
 
 FILE(MAKE_DIRECTORY ${STD_RPT_DIR}/standard-reports)
-FILE(COPY ${standard_reports_SCHEME_2} DESTINATION ${STD_RPT_DIR}/standard-reports)
\ No newline at end of file
+FILE(COPY ${standard_reports_SCHEME_2} DESTINATION ${STD_RPT_DIR}/standard-reports)
+
+SET_LOCAL_DIST(standard_reports_DIST_local CMakeLists.txt Makefile.am ${standard_reports_SOURCES} ${standard_reports_SCHEME} ${standard_reports_SCHEME_2})
+SET(standard_reports_DIST ${standard_reports_DIST_local} ${test_standard_reports_DIST} PARENT_SCOPE)
diff --git a/src/report/standard-reports/test/CMakeLists.txt b/src/report/standard-reports/test/CMakeLists.txt
index d754176..a54d495 100644
--- a/src/report/standard-reports/test/CMakeLists.txt
+++ b/src/report/standard-reports/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
 GNC_ADD_SCHEME_TEST(test-cash-flow test-cash-flow.scm)
 GNC_ADD_SCHEME_TEST(test-standard-category-report test-standard-category-report.scm)
 GNC_ADD_SCHEME_TEST(test-standard-net-barchart test-standard-net-barchart.scm)
@@ -19,4 +19,8 @@ GNC_ADD_SCHEME_TARGETS(scm-test-standard-reports
   ""
   "scm-gnc-module;scm-test-report-system"
   FALSE
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(test_standard_reports_DIST CMakeLists.txt Makefile.am ${scm_test_standard_reports_SOURCES}
+        test-load-module.in test-cash-flow.scm test-standard-category-report.scm test-standard-net-barchart.scm
+        test-standard-net-linechart.scm)
diff --git a/src/report/stylesheets/CMakeLists.txt b/src/report/stylesheets/CMakeLists.txt
index 585309c..bb17c31 100644
--- a/src/report/stylesheets/CMakeLists.txt
+++ b/src/report/stylesheets/CMakeLists.txt
@@ -5,7 +5,7 @@ SET(stylesheets_SOURCES
   gncmod-stylesheets.c
 )
 
-SET(stylesheet_noinst_HEADERS
+SET(stylesheets_noinst_HEADERS
   gnc-plugin-stylesheets.h
 )
 
@@ -74,7 +74,11 @@ SET(stylesheets_UI gnc-plugin-stylesheets-ui.xml)
 
 INSTALL(FILES ${stylesheets_UI} DESTINATION share/gnucash/ui)
 
-IF (GNC_BUILD_AS_INSTALL)
-  FILE(COPY ${stylesheets_UI}
-    DESTINATION ${DATADIR_BUILD}/gnucash/ui)
-ENDIF()
\ No newline at end of file
+FILE(COPY ${stylesheets_UI}
+  DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+
+SET_LOCAL_DIST(stylesheets_DIST_local CMakeLists.txt Makefile.am
+        ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS}
+        ${stylesheets_SCHEME_1} ${stylesheets_SCHEME_2}  ${stylesheets_UI})
+
+SET(stylesheets_DIST ${stylesheets_DIST_local} ${test_stylesheets_DIST} PARENT_SCOPE)
diff --git a/src/report/stylesheets/test/CMakeLists.txt b/src/report/stylesheets/test/CMakeLists.txt
index 89b5db4..bcf97c1 100644
--- a/src/report/stylesheets/test/CMakeLists.txt
+++ b/src/report/stylesheets/test/CMakeLists.txt
@@ -1,4 +1,6 @@
-
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
 GNC_ADD_SCHEME_TEST(test-load-module-report-stylesheets
   test-load-module.in
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(test_stylesheets_DIST CMakeLists.txt Makefile.am test-load-module.in)
\ No newline at end of file
diff --git a/src/report/utility-reports/CMakeLists.txt b/src/report/utility-reports/CMakeLists.txt
index b8857f2..3caa0c3 100644
--- a/src/report/utility-reports/CMakeLists.txt
+++ b/src/report/utility-reports/CMakeLists.txt
@@ -52,4 +52,6 @@ GNC_ADD_SCHEME_TARGETS(scm-utility-reports
   TRUE
 )
 
-
+SET_LOCAL_DIST(utility_reports_DIST_local CMakeLists.txt Makefile.am
+        ${utility_reports_SOURCES} ${utility_reports_SCHEME})
+SET(utility_reports_DIST ${utility_reports_DIST_local} ${test_utility_reports_DIST} PARENT_SCOPE)
diff --git a/src/report/utility-reports/test/CMakeLists.txt b/src/report/utility-reports/test/CMakeLists.txt
index 540abb9..15ff2fd 100644
--- a/src/report/utility-reports/test/CMakeLists.txt
+++ b/src/report/utility-reports/test/CMakeLists.txt
@@ -1,4 +1,6 @@
-
+CONFIGURE_FILE(test-load-module.in test-load-module @ONLY)
 GNC_ADD_SCHEME_TEST(test-load-module-report-utility-reports
   test-load-module.in
-)
\ No newline at end of file
+)
+
+SET_DIST_LIST(test_utility_reports_DIST CMakeLists.txt Makefile.am test-load-module.in)
\ No newline at end of file
diff --git a/src/scm/CMakeLists.txt b/src/scm/CMakeLists.txt
index 5cd7fe0..2d29179 100644
--- a/src/scm/CMakeLists.txt
+++ b/src/scm/CMakeLists.txt
@@ -17,7 +17,7 @@ SET (scm_SCHEME_4
 IF (HAVE_GUILE1)
   GNC_CONFIGURE(build-config.scm.in build-config.scm)
 ELSE()
-  GNC_CONFIGURE2(build-config.scm.in build-config.scm)
+  GNC_CONFIGURE2(build-config-scm build-config.scm.in build-config.scm)
 ENDIF()
 
 # CONFIGURE_FILE(build-config.scm.in ${BUILD_CONFIG_SCM})
@@ -63,4 +63,8 @@ ADD_CUSTOM_TARGET(scm-scm ALL DEPENDS scm-scm-3 scm-scm-2 scm-scm-1 scm-scm-0 sc
 
 INSTALL(FILES config DESTINATION etc/gnucash)
 
+SET_LOCAL_DIST(scm_DIST_local config CMakeLists.txt Makefile.am fin.scm string.scm build-config.scm.in substring-search.scm
+                              xml-generator.scm main.scm price-quotes.scm printf.scm ${scm_SCHEME_4})
+SET(scm_DIST ${scm_DIST_local} ${scm_gnumeric_DIST} PARENT_SCOPE)
+
 
diff --git a/src/scm/gnumeric/CMakeLists.txt b/src/scm/gnumeric/CMakeLists.txt
index 7c38667..e262e9d 100644
--- a/src/scm/gnumeric/CMakeLists.txt
+++ b/src/scm/gnumeric/CMakeLists.txt
@@ -17,3 +17,5 @@ GNC_ADD_SCHEME_TARGETS(scm-gnumeric
   "${GUILE_DEPENDS}"
   FALSE
 )
+
+SET_DIST_LIST(scm_gnumeric_DIST CMakeLists.txt Makefile.am ${gnumeric_SCHEME})
diff --git a/src/tax/CMakeLists.txt b/src/tax/CMakeLists.txt
new file mode 100644
index 0000000..1622215
--- /dev/null
+++ b/src/tax/CMakeLists.txt
@@ -0,0 +1,5 @@
+
+ADD_SUBDIRECTORY(us)
+
+SET_LOCAL_DIST(tax_DIST_local CMakeLists.txt Makefile.am)
+SET(tax_DIST ${tax_DIST_local} ${tax_us_DIST} PARENT_SCOPE)
\ No newline at end of file
diff --git a/src/tax/us/CMakeLists.txt b/src/tax/us/CMakeLists.txt
index fe4eec7..bf3f5fb 100644
--- a/src/tax/us/CMakeLists.txt
+++ b/src/tax/us/CMakeLists.txt
@@ -46,5 +46,6 @@ GNC_ADD_SCHEME_TARGETS(scm-tax-us-2
   FALSE
   )
 
-
+SET_LOCAL_DIST(tax_us_DIST_local CMakeLists.txt Makefile.am ${tax_us_SOURCES} ${gncmod_tax_us_SCHEME_1} ${gncmod_tax_us_SCHEME_2})
+SET(tax_us_DIST ${tax_us_DIST_local} ${test_tax_us_DIST} PARENT_SCOPE)
 
diff --git a/src/tax/us/test/CMakeLists.txt b/src/tax/us/test/CMakeLists.txt
index 60fe2c7..df3d867 100644
--- a/src/tax/us/test/CMakeLists.txt
+++ b/src/tax/us/test/CMakeLists.txt
@@ -7,3 +7,5 @@ GNC_ADD_TEST(test-link-module-tax-us test-link-module.c
 
 # This test not run in autotools build.
 #GNC_ADD_SCHEME_TEST(test-load-module-tax-us test-load-module.in)
+
+SET_DIST_LIST(test_tax_us_DIST CMakeLists.txt Makefile.am test-link-module.c test-load-module.in)
\ No newline at end of file
diff --git a/src/test-core/CMakeLists.txt b/src/test-core/CMakeLists.txt
index 496a147..3304054 100644
--- a/src/test-core/CMakeLists.txt
+++ b/src/test-core/CMakeLists.txt
@@ -19,6 +19,9 @@ INCLUDE_DIRECTORIES(
   ${GUILE_INCLUDE_DIRS}
 )
 
+SET_DIST_LIST(test_core_DIST ${test_core_SOURCES} ${test_core_noinst_HEADERS} CMakeLists.txt
+        Makefile.am unittest-support.i unittest-support.scm)
+
 ADD_LIBRARY(test-core STATIC ${test_core_SOURCES} ${test_core_noinst_HEADERS})
 TARGET_LINK_LIBRARIES(test-core gncmod-engine gnc-qof ${GLIB2_LDFLAGS})
 IF (UNIX)
@@ -27,7 +30,7 @@ ENDIF()
 
 IF (BUILDING_FROM_VCS)
   SET (SWIG_UNITTEST_SUPPORT_GUILE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-unittest-support-guile.c)
-  GNC_ADD_SWIG_COMMAND (${SWIG_UNITTEST_SUPPORT_GUILE_C}
+  GNC_ADD_SWIG_COMMAND (swig-unittest-support-guile-c ${SWIG_UNITTEST_SUPPORT_GUILE_C}
       ${CMAKE_CURRENT_SOURCE_DIR}/unittest-support.i ${test_core_HEADERS})
   SET (SWIG_UNITTEST_SUPPORT_PYTHON_C ${CMAKE_CURRENT_BINARY_DIR}/swig-unittest-support-python.c)
   GNC_ADD_SWIG_PYTHON_COMMAND (swig-unittest-support-python ${SWIG_UNITTEST_SUPPORT_PYTHON_C} ${CMAKE_CURRENT_SOURCE_DIR}/unittest-support.i)
diff --git a/test-templates/CMakeLists.txt b/test-templates/CMakeLists.txt
new file mode 100644
index 0000000..40558a1
--- /dev/null
+++ b/test-templates/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+SET_DIST_LIST(test_templates_DIST CMakeLists.txt Makefile.am Makefile.decl)
\ No newline at end of file
diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt
new file mode 100644
index 0000000..a428f41
--- /dev/null
+++ b/util/CMakeLists.txt
@@ -0,0 +1,2 @@
+
+SET_DIST_LIST(util_DIST gnc-vcs-info guile.c CMakeLists.txt)
\ No newline at end of file



Summary of changes:
 CMakeLists.txt                                     | 260 ++++++++++++++-------
 accounts/C/CMakeLists.txt                          |  25 ++
 accounts/CMakeLists.txt                            |  73 +++---
 accounts/cs/CMakeLists.txt                         |  21 ++
 accounts/da/CMakeLists.txt                         |  10 +
 accounts/de_AT/CMakeLists.txt                      |  15 ++
 accounts/de_CH/CMakeLists.txt                      |  12 +
 accounts/de_DE/CMakeLists.txt                      |  20 ++
 accounts/el_GR/CMakeLists.txt                      |   9 +
 accounts/en_GB/CMakeLists.txt                      |  23 ++
 accounts/es_ES/CMakeLists.txt                      |  21 ++
 accounts/es_MX/CMakeLists.txt                      |  22 ++
 accounts/fi_FI/CMakeLists.txt                      |   9 +
 accounts/fr_CA/CMakeLists.txt                      |  21 ++
 accounts/fr_CH/CMakeLists.txt                      |  22 ++
 accounts/fr_FR/CMakeLists.txt                      |  22 ++
 accounts/hu_HU/CMakeLists.txt                      |  24 ++
 accounts/it/CMakeLists.txt                         |  19 ++
 accounts/ja/CMakeLists.txt                         |  24 ++
 accounts/ko/CMakeLists.txt                         |  22 ++
 accounts/lt/CMakeLists.txt                         |   6 +
 accounts/lv/CMakeLists.txt                         |  22 ++
 accounts/nb/CMakeLists.txt                         |  23 ++
 accounts/nl/CMakeLists.txt                         |   9 +
 accounts/pl/CMakeLists.txt                         |  22 ++
 accounts/pt_BR/CMakeLists.txt                      |  22 ++
 accounts/pt_PT/CMakeLists.txt                      |  21 ++
 accounts/ru/CMakeLists.txt                         |  11 +
 accounts/sk/CMakeLists.txt                         |  22 ++
 accounts/sv_AX/CMakeLists.txt                      |  10 +
 accounts/sv_FI/CMakeLists.txt                      |   9 +
 accounts/sv_SE/CMakeLists.txt                      |   8 +
 accounts/tr_TR/CMakeLists.txt                      |  14 ++
 accounts/zh_CN/CMakeLists.txt                      |  22 ++
 accounts/zh_HK/CMakeLists.txt                      |   6 +
 accounts/zh_TW/CMakeLists.txt                      |   6 +
 checks/CMakeLists.txt                              |   6 +-
 cmake/CMakeLists.txt                               |  41 ++--
 cmake/README_CMAKE.txt                             |  40 ++--
 cmake/cmake_uninstall.cmake.in                     |  23 ++
 doc/CMakeLists.txt                                 |  32 +--
 doc/examples/CMakeLists.txt                        |   2 +
 lib/CMakeLists.txt                                 |   5 +
 lib/libc/CMakeLists.txt                            |   4 +
 lib/stf/CMakeLists.txt                             |   1 +
 macros/CMakeLists.txt                              |   3 +
 packaging/CMakeLists.txt                           |   2 +
 po/CMakeLists.txt                                  | 189 +++++++++++++--
 po/check-po.cmake                                  |  23 ++
 po/glossary/CMakeLists.txt                         |   3 +
 po/make-gnucash-pot.sh.in                          |   7 +
 src/CMakeLists.txt                                 |  54 +++--
 src/app-utils/CMakeLists.txt                       |  32 ++-
 src/app-utils/test/CMakeLists.txt                  |   5 +
 src/backend/CMakeLists.txt                         |  11 +
 src/backend/dbi/CMakeLists.txt                     |   4 +
 src/backend/dbi/test/CMakeLists.txt                |   4 +
 src/backend/sql/CMakeLists.txt                     |   3 +
 src/backend/sql/test/CMakeLists.txt                |   7 +-
 src/backend/xml/CMakeLists.txt                     |   7 +-
 src/backend/xml/test/CMakeLists.txt                |  11 +
 src/backend/xml/test/test-files/CMakeLists.txt     |   6 +
 .../xml/test/test-files/xml2/CMakeLists.txt        |   4 +
 src/bin/CMakeLists.txt                             |  59 ++---
 src/bin/overrides/CMakeLists.txt                   |   8 +-
 src/bin/test/CMakeLists.txt                        |   5 +-
 src/business/CMakeLists.txt                        |   5 +
 src/business/business-gnome/CMakeLists.txt         |   7 +-
 .../business-gnome/gschemas/CMakeLists.txt         |   4 +-
 .../business-gnome/gtkbuilder/CMakeLists.txt       |  22 +-
 src/business/business-gnome/ui/CMakeLists.txt      |  20 +-
 src/business/business-ledger/CMakeLists.txt        |   4 +-
 src/cmake_modules/CMakeLists.txt                   |   6 +
 src/cmake_modules/GncAddGSchemaTargets.cmake       |  18 +-
 src/cmake_modules/GncAddSchemeTargets.cmake        |  26 +--
 src/cmake_modules/GncAddSwigCommand.cmake          |   8 +-
 src/cmake_modules/GncAddTest.cmake                 |   1 +
 src/cmake_modules/GncConfigure.cmake               |   6 +-
 src/cmake_modules/MakeDist.cmake                   | 207 ++++++++++++++++
 src/cmake_modules/MakeDistCheck.cmake              | 158 +++++++++++++
 src/cmake_modules/MakeDistFiles.cmake              | 124 ++++++++++
 src/core-utils/CMakeLists.txt                      |  41 +++-
 src/core-utils/test/CMakeLists.txt                 |   4 +-
 src/core-utils/test/Makefile.am                    |   2 +-
 src/debug/CMakeLists.txt                           |   4 +
 src/debug/valgrind/CMakeLists.txt                  |  11 +
 src/doc/CMakeLists.txt                             |  38 +++
 src/doc/design/CMakeLists.txt                      |  19 +-
 src/doc/xml/CMakeLists.txt                         |  15 ++
 src/engine/CMakeLists.txt                          |  24 +-
 src/engine/test-core/CMakeLists.txt                |   6 +-
 src/engine/test/CMakeLists.txt                     |  53 +++++
 src/gnc-module/CMakeLists.txt                      |  12 +-
 src/gnc-module/test/CMakeLists.txt                 |  32 ++-
 src/gnc-module/test/misc-mods/CMakeLists.txt       |   4 +-
 src/gnc-module/test/mod-bar/CMakeLists.txt         |   6 +-
 src/gnc-module/test/mod-baz/CMakeLists.txt         |   6 +-
 src/gnc-module/test/mod-foo/CMakeLists.txt         |   6 +-
 src/gnome-search/CMakeLists.txt                    |   4 +
 src/gnome-utils/CMakeLists.txt                     |  20 +-
 src/gnome-utils/gschemas/CMakeLists.txt            |   5 +-
 src/gnome-utils/gtkbuilder/CMakeLists.txt          |  33 ++-
 src/gnome-utils/test/CMakeLists.txt                |   4 +
 src/gnome-utils/ui/CMakeLists.txt                  |  22 +-
 src/gnome/CMakeLists.txt                           |  12 +-
 src/gnome/gschemas/CMakeLists.txt                  |   8 +-
 src/gnome/gtkbuilder/CMakeLists.txt                |  28 ++-
 src/gnome/ui/CMakeLists.txt                        |  36 ++-
 src/html/CMakeLists.txt                            |   8 +-
 src/import-export/CMakeLists.txt                   |  25 +-
 src/import-export/aqb/CMakeLists.txt               |  56 +++--
 src/import-export/aqb/gschemas/CMakeLists.txt      |   7 +-
 src/import-export/csv-exp/CMakeLists.txt           |  16 +-
 src/import-export/csv-exp/gschemas/CMakeLists.txt  |   1 +
 src/import-export/csv-imp/CMakeLists.txt           |  20 +-
 src/import-export/csv-imp/gschemas/CMakeLists.txt  |   4 +-
 src/import-export/csv-imp/test/CMakeLists.txt      |   1 +
 src/import-export/csv-imp/test/Makefile.am         |   2 +-
 src/import-export/gschemas/CMakeLists.txt          |   4 +-
 src/import-export/log-replay/CMakeLists.txt        |   9 +-
 src/import-export/ofx/CMakeLists.txt               |  24 +-
 src/import-export/ofx/gschemas/CMakeLists.txt      |   2 +
 src/import-export/ofx/test/CMakeLists.txt          |   4 +-
 src/import-export/qif-imp/CMakeLists.txt           |  14 +-
 src/import-export/qif-imp/gschemas/CMakeLists.txt  |   2 +
 src/import-export/qif-imp/test/CMakeLists.txt      |   2 +
 src/import-export/qif/CMakeLists.txt               |   5 +-
 src/import-export/qif/test/CMakeLists.txt          |  11 +-
 src/import-export/test/CMakeLists.txt              |   2 +
 src/libqof/CMakeLists.txt                          | 124 +---------
 src/libqof/qof/CMakeLists.txt                      | 129 ++++++++++
 src/libqof/qof/test/CMakeLists.txt                 |   7 +-
 src/optional/CMakeLists.txt                        |   5 +
 src/optional/gtkmm/CMakeLists.txt                  |  20 +-
 src/optional/gtkmm/test/CMakeLists.txt             |   2 +
 src/optional/python-bindings/CMakeLists.txt        |  18 +-
 .../python-bindings/example_scripts/CMakeLists.txt |  21 ++
 src/optional/python-bindings/tests/CMakeLists.txt  |  10 +
 src/pixmaps/CMakeLists.txt                         | 255 +++++++++++++-------
 src/plugins/CMakeLists.txt                         |   7 +
 src/plugins/bi_import/CMakeLists.txt               |   2 +
 src/plugins/bi_import/gtkbuilder/CMakeLists.txt    |  14 +-
 src/plugins/bi_import/ui/CMakeLists.txt            |  13 +-
 src/plugins/customer_import/CMakeLists.txt         |   5 +-
 .../customer_import/gtkbuilder/CMakeLists.txt      |   9 +-
 src/plugins/customer_import/ui/CMakeLists.txt      |   9 +-
 src/plugins/example/CMakeLists.txt                 |   8 +
 src/plugins/example/glade/CMakeLists.txt           |   1 +
 src/plugins/example/ui/CMakeLists.txt              |   1 +
 src/python/CMakeLists.txt                          |  31 ++-
 src/python/pycons/CMakeLists.txt                   |  13 ++
 src/quotes/CMakeLists.txt                          |  21 +-
 src/register/CMakeLists.txt                        |   6 +
 src/register/ledger-core/CMakeLists.txt            |   5 +-
 src/register/ledger-core/test/CMakeLists.txt       |   4 +-
 src/register/register-core/CMakeLists.txt          |   6 +-
 src/register/register-core/test/CMakeLists.txt     |   4 +-
 src/register/register-gnome/CMakeLists.txt         |   6 +-
 src/register/register-gnome/test/CMakeLists.txt    |   6 +-
 src/report/CMakeLists.txt                          |   5 +-
 src/report/business-reports/CMakeLists.txt         |   4 +-
 src/report/jqplot/CMakeLists.txt                   |   4 +-
 src/report/locale-specific/CMakeLists.txt          |   4 +
 src/report/locale-specific/us/CMakeLists.txt       |   7 +-
 src/report/locale-specific/us/test/CMakeLists.txt  |   4 +-
 src/report/report-gnome/CMakeLists.txt             |  16 +-
 src/report/report-gnome/test/CMakeLists.txt        |   7 +-
 src/report/report-system/CMakeLists.txt            |   9 +-
 src/report/report-system/test/CMakeLists.txt       |   8 +-
 src/report/standard-reports/CMakeLists.txt         |   5 +-
 src/report/standard-reports/test/CMakeLists.txt    |   8 +-
 src/report/stylesheets/CMakeLists.txt              |  14 +-
 src/report/stylesheets/test/CMakeLists.txt         |   6 +-
 src/report/utility-reports/CMakeLists.txt          |   4 +-
 src/report/utility-reports/test/CMakeLists.txt     |   6 +-
 src/scm/CMakeLists.txt                             |   6 +-
 src/scm/gnumeric/CMakeLists.txt                    |   2 +
 src/tax/CMakeLists.txt                             |   5 +
 src/tax/us/CMakeLists.txt                          |   3 +-
 src/tax/us/test/CMakeLists.txt                     |   2 +
 src/test-core/CMakeLists.txt                       |   5 +-
 test-templates/CMakeLists.txt                      |   2 +
 util/CMakeLists.txt                                |   2 +
 183 files changed, 2935 insertions(+), 763 deletions(-)
 create mode 100644 accounts/C/CMakeLists.txt
 create mode 100644 accounts/cs/CMakeLists.txt
 create mode 100644 accounts/da/CMakeLists.txt
 create mode 100644 accounts/de_AT/CMakeLists.txt
 create mode 100644 accounts/de_CH/CMakeLists.txt
 create mode 100644 accounts/de_DE/CMakeLists.txt
 create mode 100644 accounts/el_GR/CMakeLists.txt
 create mode 100644 accounts/en_GB/CMakeLists.txt
 create mode 100644 accounts/es_ES/CMakeLists.txt
 create mode 100644 accounts/es_MX/CMakeLists.txt
 create mode 100644 accounts/fi_FI/CMakeLists.txt
 create mode 100644 accounts/fr_CA/CMakeLists.txt
 create mode 100644 accounts/fr_CH/CMakeLists.txt
 create mode 100644 accounts/fr_FR/CMakeLists.txt
 create mode 100644 accounts/hu_HU/CMakeLists.txt
 create mode 100644 accounts/it/CMakeLists.txt
 create mode 100644 accounts/ja/CMakeLists.txt
 create mode 100644 accounts/ko/CMakeLists.txt
 create mode 100644 accounts/lt/CMakeLists.txt
 create mode 100644 accounts/lv/CMakeLists.txt
 create mode 100644 accounts/nb/CMakeLists.txt
 create mode 100644 accounts/nl/CMakeLists.txt
 create mode 100644 accounts/pl/CMakeLists.txt
 create mode 100644 accounts/pt_BR/CMakeLists.txt
 create mode 100644 accounts/pt_PT/CMakeLists.txt
 create mode 100644 accounts/ru/CMakeLists.txt
 create mode 100644 accounts/sk/CMakeLists.txt
 create mode 100644 accounts/sv_AX/CMakeLists.txt
 create mode 100644 accounts/sv_FI/CMakeLists.txt
 create mode 100644 accounts/sv_SE/CMakeLists.txt
 create mode 100644 accounts/tr_TR/CMakeLists.txt
 create mode 100644 accounts/zh_CN/CMakeLists.txt
 create mode 100644 accounts/zh_HK/CMakeLists.txt
 create mode 100644 accounts/zh_TW/CMakeLists.txt
 create mode 100644 cmake/cmake_uninstall.cmake.in
 create mode 100644 lib/CMakeLists.txt
 create mode 100644 lib/libc/CMakeLists.txt
 create mode 100644 lib/stf/CMakeLists.txt
 create mode 100644 macros/CMakeLists.txt
 create mode 100644 po/check-po.cmake
 create mode 100644 po/glossary/CMakeLists.txt
 create mode 100644 po/make-gnucash-pot.sh.in
 create mode 100644 src/backend/CMakeLists.txt
 create mode 100644 src/backend/xml/test/test-files/CMakeLists.txt
 create mode 100644 src/backend/xml/test/test-files/xml2/CMakeLists.txt
 create mode 100644 src/business/CMakeLists.txt
 create mode 100644 src/cmake_modules/CMakeLists.txt
 create mode 100644 src/cmake_modules/MakeDist.cmake
 create mode 100644 src/cmake_modules/MakeDistCheck.cmake
 create mode 100644 src/cmake_modules/MakeDistFiles.cmake
 create mode 100644 src/debug/CMakeLists.txt
 create mode 100644 src/debug/valgrind/CMakeLists.txt
 create mode 100644 src/doc/CMakeLists.txt
 create mode 100644 src/doc/xml/CMakeLists.txt
 create mode 100644 src/libqof/qof/CMakeLists.txt
 create mode 100644 src/optional/CMakeLists.txt
 create mode 100644 src/optional/gtkmm/test/CMakeLists.txt
 create mode 100644 src/optional/python-bindings/example_scripts/CMakeLists.txt
 create mode 100644 src/optional/python-bindings/tests/CMakeLists.txt
 create mode 100644 src/plugins/CMakeLists.txt
 create mode 100644 src/plugins/example/CMakeLists.txt
 create mode 100644 src/plugins/example/glade/CMakeLists.txt
 create mode 100644 src/plugins/example/ui/CMakeLists.txt
 create mode 100644 src/python/pycons/CMakeLists.txt
 create mode 100644 src/register/CMakeLists.txt
 create mode 100644 src/report/locale-specific/CMakeLists.txt
 create mode 100644 src/tax/CMakeLists.txt
 create mode 100644 test-templates/CMakeLists.txt
 create mode 100644 util/CMakeLists.txt



More information about the gnucash-changes mailing list