1diff --git a/CMakeLists.txt b/CMakeLists.txt
2index a3d3013cedcd..b298d6ef04af 100644
3--- a/CMakeLists.txt
4+++ b/CMakeLists.txt
5@@ -275,15 +275,21 @@ if (CMAKE_BUILD_TYPE AND
6 message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
7 endif()
8
9+include(GNUInstallDirs)
10+
11 set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
12
13-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
14+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
15+ "Path for binary subdirectory (defaults to 'bin')")
16 mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
17
18 set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
19 "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
20 mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
21
22+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
23+ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
24+
25 # They are used as destination of target generators.
26 set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
27 set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
28@@ -531,9 +537,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
29 option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
30 option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
31
32-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
33+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
34 CACHE STRING "Doxygen-generated HTML documentation install directory")
35-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
36+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
37 CACHE STRING "OCamldoc-generated HTML documentation install directory")
38
39 option (LLVM_BUILD_EXTERNAL_COMPILER_RT
40@@ -966,7 +972,7 @@ endif()
41
42 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
43 install(DIRECTORY include/llvm include/llvm-c
44- DESTINATION include
45+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
46 COMPONENT llvm-headers
47 FILES_MATCHING
48 PATTERN "*.def"
49@@ -978,7 +984,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
50 )
51
52 install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
53- DESTINATION include
54+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
55 COMPONENT llvm-headers
56 FILES_MATCHING
57 PATTERN "*.def"
58diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
59index c0f90ba7068d..d656156ff9c8 100644
60--- a/cmake/modules/AddLLVM.cmake
61+++ b/cmake/modules/AddLLVM.cmake
62@@ -638,11 +638,11 @@ macro(add_llvm_library name)
63 else()
64 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LTO" OR
65 (LLVM_LINK_LLVM_DYLIB AND ${name} STREQUAL "LLVM"))
66- set(install_dir lib${LLVM_LIBDIR_SUFFIX})
67+ set(install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
68 if(ARG_SHARED OR BUILD_SHARED_LIBS)
69 if(WIN32 OR CYGWIN OR MINGW)
70 set(install_type RUNTIME)
71- set(install_dir bin)
72+ set(install_dir ${CMAKE_INSTALL_BINDIR})
73 else()
74 set(install_type LIBRARY)
75 endif()
76@@ -684,9 +684,9 @@ macro(add_llvm_loadable_module name)
77 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
78 if(WIN32 OR CYGWIN)
79 # DLL platform
80- set(dlldir "bin")
81+ set(dlldir "${CMAKE_INSTALL_BINDIR}")
82 else()
83- set(dlldir "lib${LLVM_LIBDIR_SUFFIX}")
84+ set(dlldir "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
85 endif()
86
87 if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
88@@ -698,7 +698,7 @@ macro(add_llvm_loadable_module name)
89 install(TARGETS ${name}
90 ${export_to_llvmexports}
91 LIBRARY DESTINATION ${dlldir}
92- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
93+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
94 endif()
95 set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
96 endif()
97@@ -912,7 +912,7 @@ macro(add_llvm_example name)
98 endif()
99 add_llvm_executable(${name} ${ARGN})
100 if( LLVM_BUILD_EXAMPLES )
101- install(TARGETS ${name} RUNTIME DESTINATION examples)
102+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
103 endif()
104 set_target_properties(${name} PROPERTIES FOLDER "Examples")
105 endmacro(add_llvm_example name)
106@@ -1430,7 +1430,7 @@ function(llvm_install_library_symlink name dest type)
107 set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
108 set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
109
110- set(output_dir lib${LLVM_LIBDIR_SUFFIX})
111+ set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
112 if(WIN32 AND "${type}" STREQUAL "SHARED")
113 set(output_dir bin)
114 endif()
115@@ -1446,7 +1446,7 @@ function(llvm_install_library_symlink name dest type)
116 endif()
117 endfunction()
118
119-function(llvm_install_symlink name dest)
120+function(llvm_install_symlink name dest output_dir)
121 cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
122 foreach(path ${CMAKE_MODULE_PATH})
123 if(EXISTS ${path}/LLVMInstallSymlink.cmake)
124@@ -1469,7 +1469,7 @@ function(llvm_install_symlink name dest)
125 set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
126
127 install(SCRIPT ${INSTALL_SYMLINK}
128- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
129+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
130 COMPONENT ${component})
131
132 if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
133@@ -1551,7 +1551,8 @@ function(add_llvm_tool_symlink link_name target)
134 endif()
135
136 if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
137- llvm_install_symlink(${link_name} ${target})
138+ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
139+ llvm_install_symlink(${link_name} ${target} ${output_dir})
140 endif()
141 endif()
142 endfunction()
143@@ -1635,9 +1636,9 @@ function(llvm_setup_rpath name)
144
145 if (APPLE)
146 set(_install_name_dir INSTALL_NAME_DIR "@rpath")
147- set(_install_rpath "@loader_path/../lib" ${extra_libdir})
148+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}" ${extra_libdir})
149 elseif(UNIX)
150- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
151+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
152 if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
153 set_property(TARGET ${name} APPEND_STRING PROPERTY
154 LINK_FLAGS " -Wl,-z,origin ")
155diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
156index 02bab6846376..eff26adb2efc 100644
157--- a/cmake/modules/AddOCaml.cmake
158+++ b/cmake/modules/AddOCaml.cmake
159@@ -140,9 +140,9 @@ function(add_ocaml_library name)
160 endforeach()
161
162 if( APPLE )
163- set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
164+ set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
165 elseif( UNIX )
166- set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
167+ set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
168 endif()
169 list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
170
171diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
172index 22e3dcb776aa..ba77b9c195e2 100644
173--- a/cmake/modules/AddSphinxTarget.cmake
174+++ b/cmake/modules/AddSphinxTarget.cmake
175@@ -73,7 +73,7 @@ function (add_sphinx_target builder project)
176
177 elseif (builder STREQUAL html)
178 string(TOUPPER "${project}" project_upper)
179- set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
180+ set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
181 CACHE STRING "HTML documentation install directory for ${project}")
182
183 # '/.' indicates: copy the contents of the directory directly into
184diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
185index 6c316a2f04fb..129c0995059c 100644
186--- a/cmake/modules/CMakeLists.txt
187+++ b/cmake/modules/CMakeLists.txt
188@@ -1,4 +1,4 @@
189-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
190+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
191 set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
192
193 # First for users who use an installed LLVM, create the LLVMExports.cmake file.
194@@ -90,11 +90,11 @@ foreach(p ${_count})
195 set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
196 get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
197 endforeach(p)
198-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
199-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
200+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
201+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
202 set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
203 set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
204-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
205+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
206 set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake")
207 set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}")
208 configure_file(
209diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
210index 1a04de931ff7..1c5ea4200635 100644
211--- a/cmake/modules/LLVMInstallSymlink.cmake
212+++ b/cmake/modules/LLVMInstallSymlink.cmake
213@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
214 set(LINK_OR_COPY copy)
215 endif()
216
217- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
218+ set(bindir "${DESTDIR}${outdir}/")
219
220 message("Creating ${name}")
221
222diff --git a/docs/CMake.rst b/docs/CMake.rst
223index cbcadc212498..a3da96546f43 100644
224--- a/docs/CMake.rst
225+++ b/docs/CMake.rst
226@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
227 **LLVM_LIBDIR_SUFFIX**:STRING
228 Extra suffix to append to the directory where libraries are to be
229 installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
230- to install libraries to ``/usr/lib64``.
231+ to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
232
233 **CMAKE_C_FLAGS**:STRING
234 Extra flags to use when compiling C source files.
235@@ -473,8 +473,8 @@ LLVM-specific variables
236
237 **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
238 The path to install Doxygen-generated HTML documentation to. This path can
239- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
240- `share/doc/llvm/doxygen-html`.
241+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
242+ `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
243
244 **LLVM_ENABLE_SPHINX**:BOOL
245 If specified, CMake will search for the ``sphinx-build`` executable and will make
246@@ -505,13 +505,33 @@ LLVM-specific variables
247
248 **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
249 The path to install Sphinx-generated HTML documentation to. This path can
250- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
251- `share/doc/llvm/html`.
252+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
253+ `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
254
255 **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
256 The path to install OCamldoc-generated HTML documentation to. This path can
257- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
258- `share/doc/llvm/ocaml-html`.
259+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
260+ `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
261+
262+**CMAKE_INSTALL_BINDIR**:STRING
263+ The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
264+ Defaults to `bin`.
265+
266+**CMAKE_INSTALL_LIBDIR**:STRING
267+ The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
268+ Defaults to `lib`.
269+
270+**CMAKE_INSTALL_INCLUDEDIR**:STRING
271+ The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
272+ Defaults to `include`.
273+
274+**CMAKE_INSTALL_DOCDIR**:STRING
275+ The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
276+ Defaults to `share/doc`.
277+
278+**CMAKE_INSTALL_MANDIR**:STRING
279+ The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
280+ Defaults to `share/man`.
281
282 **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
283 OS X Only: If enabled CMake will generate a target named
284@@ -676,9 +696,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
285
286 This file is available in two different locations.
287
288-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
289- ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
290- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
291+* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
292+ ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
293+ installed as part of an installed version of LLVM. This is typically
294+ ``cmake/llvm/`` within the lib directory. On Linux, this is typically
295+ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
296
297 * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
298 ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
299diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
300index 1d5ca3ba92b0..026f5453c1da 100644
301--- a/include/llvm/CMakeLists.txt
302+++ b/include/llvm/CMakeLists.txt
303@@ -4,5 +4,5 @@ add_subdirectory(Support)
304 # If we're doing an out-of-tree build, copy a module map for generated
305 # header files into the build area.
306 if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
307- configure_file(module.modulemap.build module.modulemap COPYONLY)
308+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
309 endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
310diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
311index f201e1f7bff0..4582ed556a02 100644
312--- a/tools/llvm-config/BuildVariables.inc.in
313+++ b/tools/llvm-config/BuildVariables.inc.in
314@@ -24,6 +24,10 @@
315 #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
316 #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
317 #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
318+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
319+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
320+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
321+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
322 #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
323 #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
324 #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
325diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
326index 892adc3b9dd8..cabe7fcc630f 100644
327--- a/tools/llvm-config/llvm-config.cpp
328+++ b/tools/llvm-config/llvm-config.cpp
329@@ -333,12 +333,26 @@ int main(int argc, char **argv) {
330 ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
331 } else {
332 ActivePrefix = CurrentExecPrefix;
333- ActiveIncludeDir = ActivePrefix + "/include";
334- SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
335- sys::fs::make_absolute(ActivePrefix, path);
336- ActiveBinDir = path.str();
337- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
338- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
339+ {
340+ SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
341+ sys::fs::make_absolute(ActivePrefix, path);
342+ ActiveIncludeDir = std::string(path.str());
343+ }
344+ {
345+ SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
346+ sys::fs::make_absolute(ActivePrefix, path);
347+ ActiveBinDir = std::string(path.str());
348+ }
349+ {
350+ SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
351+ sys::fs::make_absolute(ActivePrefix, path);
352+ ActiveLibDir = std::string(path.str());
353+ }
354+ {
355+ SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
356+ sys::fs::make_absolute(ActivePrefix, path);
357+ ActiveCMakeDir = std::string(path.str());
358+ }
359 ActiveIncludeOption = "-I" + ActiveIncludeDir;
360 }
361
362diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
363index 6e913519a809..85641eef721f 100644
364--- a/tools/lto/CMakeLists.txt
365+++ b/tools/lto/CMakeLists.txt
366@@ -19,7 +19,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
367 add_llvm_library(LTO SHARED ${SOURCES} DEPENDS intrinsics_gen)
368
369 install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
370- DESTINATION include/llvm-c
371+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
372 COMPONENT LTO)
373
374 if (APPLE)
375diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
376index 19b606933082..27b9f71b3d79 100644
377--- a/tools/opt-viewer/CMakeLists.txt
378+++ b/tools/opt-viewer/CMakeLists.txt
379@@ -8,6 +8,6 @@ set (files
380
381 foreach (file ${files})
382 install(PROGRAMS ${file}
383- DESTINATION share/opt-viewer
384+ DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
385 COMPONENT opt-viewer)
386 endforeach (file)