diff --git a/CMakeLists.txt b/CMakeLists.txt
index a74a5c0c22f4d1234a21066ea4140a18124c3586..41cfb3e8e819545347195e88c1da61a041d3c698 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -105,6 +105,7 @@ add_definitions(-DBOOST_TEST_DYN_LINK)
 
 # FCL's own include dir should be at the front of the include path
 include_directories(BEFORE "include")
+include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
 
 if(PKG_CONFIG_FOUND)
   pkg_check_modules(CCD ccd)
@@ -133,15 +134,16 @@ link_directories(${CCD_LIBRARY_DIRS})
 add_subdirectory(include/fcl)
 add_subdirectory(src)
 
-set(pkg_conf_file "${CMAKE_CURRENT_SOURCE_DIR}/fcl.pc")
-configure_file("${pkg_conf_file}.in" "${pkg_conf_file}" @ONLY)
+set(pkg_conf_file_in "${CMAKE_CURRENT_SOURCE_DIR}/fcl.pc.in")
+set(pkg_conf_file_out "${CMAKE_CURRENT_BINARY_DIR}/fcl.pc")
+configure_file("${pkg_conf_file_in}" "${pkg_conf_file_out}" @ONLY)
 
 install(DIRECTORY include/ DESTINATION include
   FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx"
   PATTERN ".DS_Store" EXCLUDE
 )
 
-install(FILES "${pkg_conf_file}" DESTINATION lib/pkgconfig/ COMPONENT pkgconfig)
+install(FILES "${pkg_conf_file_out}" DESTINATION lib/pkgconfig/ COMPONENT pkgconfig)
 
 
 enable_testing()
diff --git a/include/fcl/CMakeLists.txt b/include/fcl/CMakeLists.txt
index 000228617d8508e36450ce1c93943d5b4f4e33ec..eeba55a1abac7002f8e4686d74496ee7afe4a9f7 100644
--- a/include/fcl/CMakeLists.txt
+++ b/include/fcl/CMakeLists.txt
@@ -1,2 +1,4 @@
-file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" VERSION_DIR)
-configure_file("${VERSION_DIR}/config.h.in" "${VERSION_DIR}/config.h")
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" FCL_CONFIG_IN_DIR)
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" FCL_CONFIG_OUT_DIR)
+configure_file("${FCL_CONFIG_IN_DIR}/config.h.in" "${FCL_CONFIG_OUT_DIR}/config.h")
+install(FILES "${FCL_CONFIG_OUT_DIR}/config.h" DESTINATION include/fcl)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index f684fcd61ec46d3e7bd860f7127b1b53360decd1..ed7e36e54032ea388c0cb71766d0fe7bb21ff5a8 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -10,14 +10,17 @@ macro(add_fcl_test test_name)
 endmacro(add_fcl_test)
 
 # configure location of resources
-file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/fcl_resources" TEST_RESOURCES_DIR)
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/fcl_resources" TEST_RESOURCES_SRC_DIR)
+file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/fcl_resources" TEST_RESOURCES_BIN_DIR)
 if(WIN32)
     # Correct directory separator for Windows
-    string(REPLACE "\\" "\\\\" TEST_RESOURCES_DIR ${TEST_RESOURCES_DIR})
+    string(REPLACE "\\" "\\\\" TEST_RESOURCES_SRC_DIR ${TEST_RESOURCES_SRC_DIR})
+    string(REPLACE "\\" "\\\\" TEST_RESOURCES_BIN_DIR ${TEST_RESOURCES_BIN_DIR})
 endif(WIN32)
-configure_file("${TEST_RESOURCES_DIR}/config.h.in" "${TEST_RESOURCES_DIR}/config.h")
+configure_file("${TEST_RESOURCES_SRC_DIR}/config.h.in" "${TEST_RESOURCES_BIN_DIR}/config.h")
 
 include_directories(.)
+include_directories("${CMAKE_CURRENT_BINARY_DIR}")
 
 add_fcl_test(test_fcl_collision test_fcl_collision.cpp test_fcl_utility.cpp)
 add_fcl_test(test_fcl_distance test_fcl_distance.cpp test_fcl_utility.cpp)
diff --git a/test/fcl_resources/config.h.in b/test/fcl_resources/config.h.in
index 1f8e8cf69d347b5c33bbce4754154dc10ec6cf0d..8486bd250b3b87c205b759b0de1a77667dbccb2c 100644
--- a/test/fcl_resources/config.h.in
+++ b/test/fcl_resources/config.h.in
@@ -37,5 +37,5 @@
 #ifndef FCL_TEST_RESOURCES_CONFIG_
 #define FCL_TEST_RESOURCES_CONFIG_
 
-#define TEST_RESOURCES_DIR "@TEST_RESOURCES_DIR@"
+#define TEST_RESOURCES_DIR "@TEST_RESOURCES_SRC_DIR@"
 #endif