diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2760ff05d598d7a7693c156d32a37bfde9240d11..86bd6f78cf4ba6d419ac0242d088aa54cca6a8cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -96,6 +96,15 @@ set(VALIDATION_DATA_DIR "${CMAKE_SOURCE_DIR}/validation/data" CACHE PATH "locati
 # Whether to build validation data at all
 set(BUILD_VALIDATION_DATA ON CACHE BOOL "generate validation data")
 
+# Whether to attempt to use julia to build validation data
+find_program(JULIA_BIN julia)
+if(JULIA_BIN STREQUAL "JULIA_BIN-NOTFOUND")
+    message(STATUS "julia not found; will not automatically build validation data sets from julia scripts")
+    set(BUILD_JULIA_VALIDATION_DATA FALSE)
+else()
+    set(BUILD_JULIA_VALIDATION_DATA TRUE)
+endif()
+
 # Whether to attempt to use nrniv to build validation data
 # (if we find nrniv, do)
 find_program(NRNIV_BIN nrniv)
diff --git a/validation/ref/numeric/CMakeLists.txt b/validation/ref/numeric/CMakeLists.txt
index 68dc379216190d25ecf29aefb352a189d3913803..ddb5001fb9888b6a207043219db6a9bd11de2c69 100644
--- a/validation/ref/numeric/CMakeLists.txt
+++ b/validation/ref/numeric/CMakeLists.txt
@@ -1,11 +1,13 @@
 # note: function add_validation_data defined in validation/CMakeLists.txt
 
-add_validation_data(
-    OUTPUT numeric_soma.json
-    DEPENDS numeric_soma.jl HHChannels.jl
-    COMMAND julia numeric_soma.jl)
+if(BUILD_JULIA_VALIDATION_DATA)
+    add_validation_data(
+        OUTPUT numeric_soma.json
+        DEPENDS numeric_soma.jl HHChannels.jl
+        COMMAND ${JULIA_BIN} numeric_soma.jl)
 
-add_validation_data(
-    OUTPUT numeric_rallpack1.json
-    DEPENDS numeric_rallpack1.jl PassiveCable.jl
-    COMMAND julia numeric_rallpack1.jl)
+    add_validation_data(
+        OUTPUT numeric_rallpack1.json
+        DEPENDS numeric_rallpack1.jl PassiveCable.jl
+        COMMAND ${JULIA_BIN} numeric_rallpack1.jl)
+endif()