diff --git a/demos/brunel_example/CMakeLists.txt b/demos/brunel_example/CMakeLists.txt
index 4fa2d495f18d02d03e78cb3a49b503cd8736db1f..8f60f4e61c9f5655b2408adbb876e51c13af786b 100644
--- a/demos/brunel_example/CMakeLists.txt
+++ b/demos/brunel_example/CMakeLists.txt
@@ -22,13 +22,9 @@
 get_filename_component(NEST_DIR ${with-nest} DIRECTORY)
 
 set(SCRIPT_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/run_sim.sh")
-file(GENERATE
-    OUTPUT ${SCRIPT_FILENAME}
-    CONTENT
-"source ${NEST_DIR}/nest_vars.sh
-LD_LIBRARY_PATH=$NEST_MODULE_PATH:$LD_LIBRARY_PATH ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/nest_sim.py"
-  )
-message("${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
-execute_process(
-  COMMAND "chmod" "+x" ${SCRIPT_FILENAME}
-)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run_sim.sh.in ${SCRIPT_FILENAME})
+file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/brunel_example.py ${CMAKE_CURRENT_SOURCE_DIR}/nest_sim.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+add_custom_target(brunel_example ALL chmod "+x" "run_sim.sh"
+  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  DEPENDS ${SCRIPT_FILENAME} ${CMAKE_CURRENT_BINARY_DIR}/brunel_example.py ${CMAKE_CURRENT_SOURCE_DIR}/nest_sim.py)
diff --git a/demos/brunel_example/run_sim.sh.in b/demos/brunel_example/run_sim.sh.in
new file mode 100644
index 0000000000000000000000000000000000000000..4ce4dd2b4a1963b434be5e484798e2645f8cbba1
--- /dev/null
+++ b/demos/brunel_example/run_sim.sh.in
@@ -0,0 +1,2 @@
+source ${NEST_DIR}/nest_vars.sh
+LD_LIBRARY_PATH=$NEST_MODULE_PATH:$LD_LIBRARY_PATH ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/nest_sim.py
\ No newline at end of file