diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 2c32049..67b2be4 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -1,15 +1,17 @@
 # This file installs the scripts from this directory that may be used in other 
 # projects.  See README.txt in this directory for documentation.
 
+include(GNUInstallDirs)
+
 # Set the install directory depending on the platform so it will be found by
 # find_package(GTSAMCMakeTools)
 if(WIN32 AND NOT CYGWIN)
 	set(SCRIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/CMake")
 else()
-	set(SCRIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake")
+	set(SCRIPT_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake")
 endif()
 
 # Install scripts
 install(FILES
   GTSAMCMakeToolsConfig.cmake
   Config.cmake.in
diff --git a/cmake/GtsamMakeConfigFile.cmake b/cmake/GtsamMakeConfigFile.cmake
index 91cb98a..6a9643c 100644
--- a/cmake/GtsamMakeConfigFile.cmake
+++ b/cmake/GtsamMakeConfigFile.cmake
@@ -1,16 +1,18 @@
 # Writes a config file
 
+include(GNUInstallDirs)
+
 set(GTSAM_CONFIG_TEMPLATE_PATH ${CMAKE_CURRENT_LIST_DIR})
 
 function(GtsamMakeConfigFile PACKAGE_NAME)
 
 	if(WIN32 AND NOT CYGWIN)
 		set(DEF_INSTALL_CMAKE_DIR CMake)
 	else()
-		set(DEF_INSTALL_CMAKE_DIR lib/cmake/${PACKAGE_NAME})
+		set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PACKAGE_NAME})
 	endif()
 
 	# Configure extra file
 	if(NOT "${ARGV1}" STREQUAL "")
 		get_filename_component(name "${ARGV1}" NAME_WE)
 		set(EXTRA_FILE "${name}.cmake")
