diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6b6931f..8f2f0dc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,36 +76,8 @@
   endif()
 endif()
 
-set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION})
-
-if(NOT TARGET dist AND NOT TARGET distcheck)
-  add_custom_target(dist
-    COMMAND git config tar.tar.xz.command "xz -c"
-    COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.gz HEAD
-    COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.xz HEAD
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
-    )
-  add_custom_target(distcheck
-    COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest 2>/dev/null || true
-    COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
-    COMMAND ${CMAKE_COMMAND} -E tar xf ${ARCHIVE_NAME}.tar.gz
-    COMMAND chmod -R u-w ${ARCHIVE_NAME}
-    COMMAND mkdir ${ARCHIVE_NAME}-build
-    COMMAND mkdir ${ARCHIVE_NAME}-dest
-    COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${ARCHIVE_NAME}-dest ${ARCHIVE_NAME} -B ${ARCHIVE_NAME}-build
-    COMMAND make -C ${ARCHIVE_NAME}-build -j4
-    COMMAND make -C ${ARCHIVE_NAME}-build test
-    COMMAND make -C ${ARCHIVE_NAME}-build install
-    #  COMMAND make -C ${ARCHIVE_NAME}-build uninstall
-    #  COMMAND if [ `find ${ARCHIVE_NAME}-dest ! -type d | wc -l` -ne 0 ]; then echo leftover files in ${ARCHIVE_NAME}-dest; false; fi
-    COMMAND make -C ${ARCHIVE_NAME}-build clean
-    COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
-    COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
-    COMMAND echo "${ARCHIVE_NAME}.tar.gz is ready for distribution."
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
-    )
-  add_dependencies(distcheck dist)
-endif()
+include(Dist)
+Dist(${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION})
 
 #ADD_CUSTOM_TARGET(uninstall
 #  COMMAND cat ${PROJECT_BINARY_DIR}/install_manifest.txt | xargs rm
diff --git a/cmake/Dist.cmake b/cmake/Dist.cmake
new file mode 100644
index 0000000..5ec0172
--- /dev/null
+++ b/cmake/Dist.cmake
@@ -0,0 +1,54 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file LICENSE.
+
+#[=======================================================================[.rst:
+Dist
+-------
+
+Provide ``dist`` and ``distcheck`` targets similar to
+autoconf/automake functionality.
+
+The ``dist`` target creates tarballs of the project in ``.tar.gz`` and
+``.tar.xz`` formats.
+
+The ``distcheck`` target extracts one of created tarballs, builds the
+software using its defaults, and runs the tests.
+
+Both targets use Unix shell commands.
+
+The Dist target takes one argument, the file name (before the extension).
+
+The ``distcheck`` target creates (and removes) ``${ARCHIVE_NAME}-build``
+and ``${ARCHIVE_NAME}-dest``.
+
+#]=======================================================================]
+function(Dist ARCHIVE_NAME)
+  if(NOT TARGET dist AND NOT TARGET distcheck)
+    add_custom_target(dist
+      COMMAND git config tar.tar.xz.command "xz -c"
+      COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.gz HEAD
+      COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.xz HEAD
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+      )
+    add_custom_target(distcheck
+      COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest 2>/dev/null || true
+      COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+      COMMAND ${CMAKE_COMMAND} -E tar xf ${ARCHIVE_NAME}.tar.gz
+      COMMAND chmod -R u-w ${ARCHIVE_NAME}
+      COMMAND mkdir ${ARCHIVE_NAME}-build
+      COMMAND mkdir ${ARCHIVE_NAME}-dest
+      COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${ARCHIVE_NAME}-dest ${ARCHIVE_NAME} -B ${ARCHIVE_NAME}-build
+      COMMAND make -C ${ARCHIVE_NAME}-build -j4
+      COMMAND make -C ${ARCHIVE_NAME}-build test
+      COMMAND make -C ${ARCHIVE_NAME}-build install
+      #  COMMAND make -C ${ARCHIVE_NAME}-build uninstall
+      #  COMMAND if [ `find ${ARCHIVE_NAME}-dest ! -type d | wc -l` -ne 0 ]; then echo leftover files in ${ARCHIVE_NAME}-dest; false; fi
+      COMMAND make -C ${ARCHIVE_NAME}-build clean
+      COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+      COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+      COMMAND echo "${ARCHIVE_NAME}.tar.gz is ready for distribution."
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+      )
+    add_dependencies(distcheck dist)
+  endif()
+endfunction()
