diff --git a/modules/fluka/CMakeLists.txt b/modules/fluka/CMakeLists.txt
index 8c9c17fb44805efad2a301bc822c34a0a02632a8..d760442bfb08a6e62a8a455dea7ce3d5a5574740 100644
--- a/modules/fluka/CMakeLists.txt
+++ b/modules/fluka/CMakeLists.txt
@@ -1,15 +1,19 @@
 set(C8_FLUKALIB CACHE STRING "path to libflukahp.a")
 
-if (DEFINED C8_FLUKALIB)
+if (EXISTS "${C8_FLUKALIB}")
     set (input_dir ${PROJECT_SOURCE_DIR}/src/modules/fluka)
     
     # we remove flrndm_.o from the original libflukahp.a and save the result as libflukahp-norndm.a
-    add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libflukahp-norndm.a COMMAND ${input_dir}/strip_flukahp.sh ${C8_FLUKALIB} ${CMAKE_BINARY_DIR})
-    add_custom_target(generate_libfluka-norndm DEPENDS ${CMAKE_BINARY_DIR}/libflukahp-norndm.a)
+    add_custom_command(
+        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a
+        COMMAND ${input_dir}/strip_flukahp.sh ${C8_FLUKALIB} ${CMAKE_CURRENT_BINARY_DIR}
+    )
+    add_custom_target(generate_libfluka-norndm DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a)
 
     add_library(flukahp-norndm STATIC IMPORTED)
     add_dependencies(flukahp-norndm generate_libfluka-norndm)
-    set_property(TARGET flukahp-norndm PROPERTY IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/libflukahp-norndm.a)
+    set_property(TARGET flukahp-norndm PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/libflukahp-norndm.a)
+
     find_library(MATH_LIBRARY m)
     target_link_libraries(flukahp-norndm INTERFACE gfortran ${MATH_LIBRARY})
     target_include_directories (flukahp-norndm INTERFACE
@@ -29,12 +33,6 @@ if (DEFINED C8_FLUKALIB)
       $<INSTALL_INTERFACE:include/corsika_modules/fluka>
       )
     
-    set_target_properties (
-      fluka
-      PROPERTIES
-      POSITION_INDEPENDENT_CODE 1
-      )
-    
     install (
       FILES
       fluka.hpp
@@ -51,4 +49,6 @@ if (DEFINED C8_FLUKALIB)
     # add fluka to corsika8 build
     add_dependencies (CORSIKA8 fluka)
     target_link_libraries (CORSIKA8 INTERFACE fluka)
+else()
+    message("C8_FLUKALIB not set/invalid, building without FLUKA support")
 endif()
diff --git a/src/modules/fluka/strip_flukahp.sh b/src/modules/fluka/strip_flukahp.sh
index 0599ca987cbdcce74d48f11278fc560e03719b61..61367bce13ef35c14991de0473cd75fa7cfe4926 100755
--- a/src/modules/fluka/strip_flukahp.sh
+++ b/src/modules/fluka/strip_flukahp.sh
@@ -14,6 +14,11 @@
 flukalibOrig="$1"
 target="$2"
 
+if [ ! -r "$flukalibOrig" ]; then
+    echo "\"$flukalibOrig\" not readable" 1>&2
+    exit 1
+fi
+
 tmpdir=`mktemp -d fluka_objectsXXXXXX`
 
 echo "extracting objects from $1 into `realpath $tmpdir`..."
diff --git a/tests/modules/CMakeLists.txt b/tests/modules/CMakeLists.txt
index a677ff5812d43036d76521d8613ea8a9e9b7b405..16a0e66f0d34824f0ed173a5a66a759999dab17f 100644
--- a/tests/modules/CMakeLists.txt
+++ b/tests/modules/CMakeLists.txt
@@ -17,7 +17,7 @@ set (test_modules_sources
   testSophia.cpp
 )
   
-if (DEFINED C8_FLUKALIB)
+if (EXISTS "${C8_FLUKALIB}")
     list(APPEND test_modules_sources "testFluka.cpp")
 endif()