diff --git a/cmake/PugsDoc.cmake b/cmake/PugsDoc.cmake
index 7a5694f096503b0c977c6961de863fe7e39bb551..827faed475046f98d12bc5731e61a67ee9f2af59 100644
--- a/cmake/PugsDoc.cmake
+++ b/cmake/PugsDoc.cmake
@@ -20,12 +20,24 @@ if (EMACS)
 
   set(ORG_GENERATOR_FILES
     "${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el"
-    "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el"
-    "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el"
     "${PUGS_SOURCE_DIR}/doc/lisp/share/pugs.el"
     "${PUGS_SOURCE_DIR}/doc/lisp/share/ob-pugs.el"
   )
 
+  add_custom_command(
+    OUTPUT "${PUGS_SOURCE_DIR}/doc/elpa"
+    COMMAND
+    ${CMAKE_COMMAND} -E env
+    PUGS=${PUGS_BINARY_DIR}/pugs
+    HOME=${PUGS_SOURCE_DIR}/doc/lisp
+    PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
+    PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
+    ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el
+    DEPENDS ${ORG_GENERATOR_FILES}
+  )
+
+  add_custom_target(pugsdoc-download-elpa DEPENDS "${PUGS_SOURCE_DIR}/doc/elpa")
+
   add_custom_command(
     OUTPUT "${PUGS_BINARY_DIR}/doc/userdoc.html"
     COMMAND
@@ -35,7 +47,7 @@ if (EMACS)
     PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
     PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
     ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el
-    DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" pugs pugsdoc-dir ${ORG_GENERATOR_FILES}
+    DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el" pugs pugsdoc-dir pugsdoc-download-elpa
     WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc
     COMMENT "Built user documentation in doc/userdoc.html"
     VERBATIM)
@@ -55,7 +67,7 @@ if (EMACS)
       PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR}
       PUGS_BINARY_DIR=${PUGS_BINARY_DIR}
       ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el
-      DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" pugs pugsdoc-dir  ${ORG_GENERATOR_FILES}
+      DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el" pugs pugsdoc-dir pugsdoc-download-elpa
       WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc
       COMMENT "Built user documentation in doc/userdoc.pdf"
       VERBATIM)