diff --git a/mechanisms/CMakeLists.txt b/mechanisms/CMakeLists.txt
index 6adde6a6b304bc58cff5530dc9d8709adb312ef4..d7ad64000dfbc0e7946e1f87529a58b4d4106368 100644
--- a/mechanisms/CMakeLists.txt
+++ b/mechanisms/CMakeLists.txt
@@ -9,6 +9,12 @@ if(USE_OPTIMIZED_KERNELS) # generate optimized kernels
     set(modcc_flags ${modcc_flags} -O)
 endif()
 
+# make path for the kernels that will be generated by modcc
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/multicore)
+if(WITH_CUDA)
+    file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/gpu)
+endif()
+
 # generate source for each mechanism
 foreach(mech ${mechanisms})
     set(mod "${CMAKE_CURRENT_SOURCE_DIR}/mod/${mech}.mod")