diff --git a/programs/psa/CMakeLists.txt b/programs/psa/CMakeLists.txt
index 01bd687..c5d0d28 100644
--- a/programs/psa/CMakeLists.txt
+++ b/programs/psa/CMakeLists.txt
@@ -4,20 +4,24 @@
     psa_constant_names
 )
 
-add_custom_command(
-    OUTPUT
-        ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c
-    COMMAND
-        ${PYTHON}
+if(DEV_MODE)
+    add_custom_command(
+        OUTPUT
+            ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c
+        COMMAND
+            ${PYTHON}
+                ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_psa_constants.py
+                ${CMAKE_CURRENT_BINARY_DIR}
+        WORKING_DIRECTORY
+            ${CMAKE_CURRENT_SOURCE_DIR}/../..
+        DEPENDS
             ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_psa_constants.py
-            ${CMAKE_CURRENT_BINARY_DIR}
-    WORKING_DIRECTORY
-        ${CMAKE_CURRENT_SOURCE_DIR}/../..
-    DEPENDS
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_psa_constants.py
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_values.h
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_extra.h
-)
+            ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_values.h
+            ${CMAKE_CURRENT_SOURCE_DIR}/../../include/psa/crypto_extra.h
+    )
+else()
+    link_to_source(psa_constant_names_generated.c)
+endif()
 
 foreach(exe IN LISTS executables)
     add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
@@ -26,9 +30,11 @@
 endforeach()
 
 target_include_directories(psa_constant_names PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
-add_custom_target(generate_psa_constant_names_generated_c
-    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c)
-add_dependencies(psa_constant_names generate_psa_constant_names_generated_c)
+if(DEV_MODE)
+    add_custom_target(generate_psa_constant_names_generated_c
+        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/psa_constant_names_generated.c)
+    add_dependencies(psa_constant_names generate_psa_constant_names_generated_c)
+endif()
 
 install(TARGETS ${executables}
         DESTINATION "bin"
diff --git a/programs/ssl/CMakeLists.txt b/programs/ssl/CMakeLists.txt
index a14e264..e8d2865 100644
--- a/programs/ssl/CMakeLists.txt
+++ b/programs/ssl/CMakeLists.txt
@@ -18,14 +18,16 @@
     ssl_server2
 )
 
-# Inform CMake the the following file will be generated as part of the build
-# process, so it doesn't complain that it doesn't exist yet. Starting from
-# CMake 3.20, this will no longer be necessary as CMake will automatically
-# propagate this information accross the tree, for now it's only visible
-# inside the same directory, so we need to propagate manually.
-set_source_files_properties(
-    ${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c
-    PROPERTIES GENERATED TRUE)
+if(DEV_MODE)
+    # Inform CMake the the following file will be generated as part of the build
+    # process, so it doesn't complain that it doesn't exist yet. Starting from
+    # CMake 3.20, this will no longer be necessary as CMake will automatically
+    # propagate this information accross the tree, for now it's only visible
+    # inside the same directory, so we need to propagate manually.
+    set_source_files_properties(
+        ${CMAKE_CURRENT_BINARY_DIR}/../test/query_config.c
+        PROPERTIES GENERATED TRUE)
+endif()
 
 foreach(exe IN LISTS executables)
     set(extra_sources "")
@@ -40,7 +42,9 @@
     target_link_libraries(${exe} ${libs})
     target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
     if(exe STREQUAL "ssl_client2" OR exe STREQUAL "ssl_server2")
-        add_dependencies(${exe} generate_query_config_c)
+        if(DEV_MODE)
+            add_dependencies(${exe} generate_query_config_c)
+        endif()
         target_include_directories(${exe}
             PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../test)
     endif()
diff --git a/programs/test/CMakeLists.txt b/programs/test/CMakeLists.txt
index 8193124..053b03c 100644
--- a/programs/test/CMakeLists.txt
+++ b/programs/test/CMakeLists.txt
@@ -27,26 +27,30 @@
     target_link_libraries(cpp_dummy_build ${mbedcrypto_target})
 endif()
 
-find_package(Perl REQUIRED)
+if(DEV_MODE)
+    find_package(Perl REQUIRED)
 
-add_custom_command(
-    OUTPUT
-        ${CMAKE_CURRENT_BINARY_DIR}/query_config.c
-    COMMAND
-        ${PERL}
+    add_custom_command(
+        OUTPUT
+            ${CMAKE_CURRENT_BINARY_DIR}/query_config.c
+        COMMAND
+            ${PERL}
+                ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
+                ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
+                ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
+                ${CMAKE_CURRENT_BINARY_DIR}/query_config.c
+        DEPENDS
             ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
             ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
             ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
-            ${CMAKE_CURRENT_BINARY_DIR}/query_config.c
-    DEPENDS
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
-        ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
-)
-# this file will also be used in anoter directory, so create a target, see
-# https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-can-i-add-a-dependency-to-a-source-file-which-is-generated-in-a-subdirectory
-add_custom_target(generate_query_config_c
-    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/query_config.c)
+    )
+    # this file will also be used in anoter directory, so create a target, see
+    # https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-can-i-add-a-dependency-to-a-source-file-which-is-generated-in-a-subdirectory
+    add_custom_target(generate_query_config_c
+        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/query_config.c)
+else()
+    link_to_source(query_config.c)
+endif()
 
 foreach(exe IN LISTS executables_libs executables_mbedcrypto)
     set(extra_sources "")
