diff --git a/bin/bin.pro b/bin/bin.pro
index 5f17ff9fd58aef4d5d0bb2a0faad0c7c0f3a3f48..cf3d061ff5a235c2241989636682a41017eb2011 100644
--- a/bin/bin.pro
+++ b/bin/bin.pro
@@ -1,5 +1,8 @@
 TEMPLATE = app
 TARGET = qtcreator.sh
+
+include(../qtcreator.pri)
+
 OBJECTS_DIR =
 
 PRE_TARGETDEPS = $$PWD/qtcreator.sh
@@ -10,7 +13,7 @@ CONFIG -= qt separate_debug_info gdb_dwarf_index
 
 QMAKE_CLEAN = qtcreator.sh
 
-target.path  = $$QTC_PREFIX/bin
+target.path  = $$INSTALL_BIN_PATH
 INSTALLS    += target
 
 DISTFILES = $$PWD/qtcreator.sh
diff --git a/doc/doc.pri b/doc/doc.pri
index 550f60a3a95a6a38aa2674eb84a87fcdbd7333e3..d04712aba6aa3c49de1a57922d70da5bd6548ee2 100644
--- a/doc/doc.pri
+++ b/doc/doc.pri
@@ -68,12 +68,12 @@ dev_qch_docs.depends += dev_html_docs
 
 !macx {
     inst_qch_docs.files = $$QCH_FILE
-    inst_qch_docs.path = $$QTC_PREFIX/share/doc/qtcreator
+    inst_qch_docs.path = $$INSTALL_DOC_PATH
     inst_qch_docs.CONFIG += no_check_exist no_default_install
     INSTALLS += inst_qch_docs
 
     inst_dev_qch_docs.files = $$DEV_QCH_FILE
-    inst_dev_qch_docs.path = $$QTC_PREFIX/share/doc/qtcreator
+    inst_dev_qch_docs.path = $$INSTALL_DOC_PATH
     inst_dev_qch_docs.CONFIG += no_check_exist no_default_install
     INSTALLS += inst_dev_qch_docs
 
diff --git a/qtcreator.pri b/qtcreator.pri
index 8d0dae6a3d13012d253f541e4dcdb011f28ecdbf..c34143803c9cac8b6d93f3a3076c17f323ad3717 100644
--- a/qtcreator.pri
+++ b/qtcreator.pri
@@ -96,6 +96,16 @@ macx {
     else: \
         IDE_LIBEXEC_PATH = $$IDE_BUILD_TREE/libexec/qtcreator
     !isEqual(IDE_SOURCE_TREE, $$IDE_BUILD_TREE):copydata = 1
+
+    INSTALL_LIBRARY_PATH = $$QTC_PREFIX/$$IDE_LIBRARY_BASENAME/qtcreator
+    INSTALL_PLUGIN_PATH  = $$INSTALL_LIBRARY_PATH/plugins
+    win32: \
+        INSTALL_LIBEXEC_PATH = $$QTC_PREFIX/bin
+    else: \
+        INSTALL_LIBEXEC_PATH = $$QTC_PREFIX/libexec/qtcreator
+    INSTALL_DATA_PATH    = $$QTC_PREFIX/share/qtcreator
+    INSTALL_DOC_PATH     = $$QTC_PREFIX/share/doc/qtcreator
+    INSTALL_BIN_PATH     = $$QTC_PREFIX/bin
 }
 
 INCLUDEPATH += \
diff --git a/qtcreator.pro b/qtcreator.pro
index 3078c34be1bddca1deacc73686dfddc463abf69f..941b517ed64218fbf63775258183c37a3712bded 100644
--- a/qtcreator.pro
+++ b/qtcreator.pro
@@ -38,32 +38,32 @@ exists(src/shared/qbs/qbs.pro) {
     cache(QBSLIBDIR)
     QBS_INSTALL_PREFIX = $${QTC_PREFIX}
     cache(QBS_INSTALL_PREFIX)
-    QBS_LIB_INSTALL_DIR = $${QTC_PREFIX}/$${IDE_LIBRARY_BASENAME}/qtcreator
+    QBS_LIB_INSTALL_DIR = $$INSTALL_LIBRARY_PATH
     cache(QBS_LIB_INSTALL_DIR)
     QBS_RESOURCES_BUILD_DIR = $${IDE_DATA_PATH}/qbs
     cache(QBS_RESOURCES_BUILD_DIR)
-    QBS_RESOURCES_INSTALL_DIR = $${QTC_PREFIX}/share/qtcreator/qbs
+    QBS_RESOURCES_INSTALL_DIR = $$INSTALL_DATA_PATH/qbs
     cache(QBS_RESOURCES_INSTALL_DIR)
     macx {
         QBS_PLUGINS_BUILD_DIR = $${IDE_PLUGIN_PATH}
         QBS_APPS_RPATH_DIR = @loader_path/../Frameworks
     } else {
-        QBS_PLUGINS_BUILD_DIR = $${IDE_BUILD_TREE}/$${IDE_LIBRARY_BASENAME}/qtcreator/plugins
+        QBS_PLUGINS_BUILD_DIR = $$IDE_PLUGIN_PATH
         QBS_APPS_RPATH_DIR = \$\$ORIGIN/../$$IDE_LIBRARY_BASENAME/qtcreator
     }
     cache(QBS_PLUGINS_BUILD_DIR)
     cache(QBS_APPS_RPATH_DIR)
-    QBS_PLUGINS_INSTALL_DIR = $${QTC_PREFIX}/$${IDE_LIBRARY_BASENAME}/qtcreator/plugins
+    QBS_PLUGINS_INSTALL_DIR = $$INSTALL_PLUGIN_PATH
     cache(QBS_PLUGINS_INSTALL_DIR)
     QBS_LIBRARY_DIRNAME = $${IDE_LIBRARY_BASENAME}
     cache(QBS_LIBRARY_DIRNAME)
     QBS_APPS_DESTDIR = $${IDE_BIN_PATH}
     cache(QBS_APPS_DESTDIR)
-    QBS_APPS_INSTALL_DIR = $${QTC_PREFIX}/bin
+    QBS_APPS_INSTALL_DIR = $$INSTALL_BIN_PATH
     cache(QBS_APPS_INSTALL_DIR)
     QBS_LIBEXEC_DESTDIR = $${IDE_LIBEXEC_PATH}
     cache(QBS_LIBEXEC_DESTDIR)
-    QBS_LIBEXEC_INSTALL_DIR = $${QTC_PREFIX}/bin
+    QBS_LIBEXEC_INSTALL_DIR = $$INSTALL_LIBEXEC_PATH
     cache(QBS_LIBEXEC_INSTALL_DIR)
     QBS_RELATIVE_LIBEXEC_PATH = $$relative_path($$QBS_LIBEXEC_DESTDIR, $$QBS_APPS_DESTDIR)
     isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH = .
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pri b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pri
index e150f62ee551f3ca6ad8796c79252c00c963ef71..996f6c1295430f051e17dc28c7116b269c0dd665 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pri
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppet.pri
@@ -30,6 +30,6 @@ osx {
     CONFIG -= app_bundle
     QMAKE_LFLAGS += -Wl,-sectcreate,__TEXT,__info_plist,$$system_quote($$PWD/Info.plist)
 } else {
-    target.path  = $$QTC_PREFIX/$$relative_path($$IDE_LIBEXEC_PATH, $$IDE_BUILD_TREE)
+    target.path  = $$INSTALL_LIBEXEC_PATH
     INSTALLS    += target
 }
diff --git a/share/qtcreator/static.pri b/share/qtcreator/static.pri
index 6cea5a804a3c3882cc41655a24117b5bdf90f9de..63807050f0b27a429d59510c051ee4992b4b2861 100644
--- a/share/qtcreator/static.pri
+++ b/share/qtcreator/static.pri
@@ -33,7 +33,7 @@ defineReplace(stripStaticBase) {
     !osx {
         static.files = $$STATIC_FILES
         static.base = $$STATIC_BASE
-        static.path = $$QTC_PREFIX/share/qtcreator
+        static.path = $$INSTALL_DATA_PATH
         INSTALLS += static
     }
 }
diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro
index f51f6eef4fd62639383c8ec7a3e334c347ab638a..10cf26cc990f429fdd00f60bb70637ca0468ce9c 100644
--- a/share/qtcreator/static.pro
+++ b/share/qtcreator/static.pro
@@ -102,7 +102,7 @@ QMAKE_EXTRA_COMPILERS += unconditionalCopy2build
 !macx {
     for(data_dir, DATA_DIRS) {
         eval($${data_dir}.files = $$IDE_DATA_PATH/$$data_dir)
-        eval($${data_dir}.path = $$QTC_PREFIX/share/qtcreator)
+        eval($${data_dir}.path = $$INSTALL_DATA_PATH)
         eval($${data_dir}.CONFIG += no_check_exist)
         INSTALLS += $$data_dir
     }
diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro
index f3ce85cc7a726b929983765140cf192eabf74aa6..839e736ce666e81007165bf0957ffd0cf41a8828 100644
--- a/share/qtcreator/translations/translations.pro
+++ b/share/qtcreator/translations/translations.pro
@@ -142,6 +142,6 @@ isEmpty(vcproj) {
 }
 
 qmfiles.files = $$prependAll(LANGUAGES, $$OUT_PWD/qtcreator_,.qm)
-qmfiles.path = $$QTC_PREFIX/share/qtcreator/translations
+qmfiles.path = $$INSTALL_DATA_PATH/translations
 qmfiles.CONFIG += no_check_exist
 INSTALLS += qmfiles
diff --git a/src/app/app.pro b/src/app/app.pro
index 64feb63a61928d125a263efa03cfe084c5c41a7d..496d2ebe35c9ce27c996a15090b3f60744259ccd 100644
--- a/src/app/app.pro
+++ b/src/app/app.pro
@@ -20,7 +20,7 @@ QT_BREAKPAD_ROOT_PATH = $$(QT_BREAKPAD_ROOT_PATH)
 }
 win32 {
     RC_FILE = qtcreator.rc
-    target.path = $$QTC_PREFIX/bin
+    target.path = $$INSTALL_BIN_PATH
     INSTALLS += target
 } else:macx {
     LIBS += -framework CoreFoundation
@@ -32,7 +32,7 @@ win32 {
     info.output = $$IDE_BIN_PATH/../Info.plist
     QMAKE_SUBSTITUTES = info
 } else {
-    target.path  = $$QTC_PREFIX/bin
+    target.path  = $$INSTALL_BIN_PATH
     INSTALLS    += target
 }
 
diff --git a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
index 5ae2f9deef379c356f296046e1b5b9624acf6793..b0bf0d1a710d54c465bce8a0446f873b9145d755 100644
--- a/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
+++ b/src/libs/qtcreatorcdbext/qtcreatorcdbext.pro
@@ -97,6 +97,6 @@ HEADERS += extensioncontext.h \
     knowntype.h \
     symbolgroupnode.h
 
-target.path = $$QTC_PREFIX/lib/$${DIRNAME}
+target.path = $$QTC_PREFIX/lib/$${DIRNAME} # TODO this should go to INSTALL_LIBRARY_PATH/$${DIRNAME}
 
 INSTALLS += target
diff --git a/src/libs/utils/process_ctrlc_stub.pro b/src/libs/utils/process_ctrlc_stub.pro
index 67ff146ac6f79d4051d4eee4b7328383c641301b..e79973aa3568f4864b17a7a7b7f96b6494ebba31 100644
--- a/src/libs/utils/process_ctrlc_stub.pro
+++ b/src/libs/utils/process_ctrlc_stub.pro
@@ -17,5 +17,5 @@ build_all:!build_pass {
     CONFIG += release
 }
 
-target.path  = $$QTC_PREFIX/$$relative_path($$IDE_LIBEXEC_PATH, $$IDE_BUILD_TREE)
+target.path  = $$INSTALL_LIBEXEC_PATH
 INSTALLS    += target
diff --git a/src/libs/utils/process_stub.pro b/src/libs/utils/process_stub.pro
index c261577fd2efe980eadb87b733e2262a4683aa3c..2db5358883f3bb44aa1beb31ad5171cd8c6896ac 100644
--- a/src/libs/utils/process_stub.pro
+++ b/src/libs/utils/process_stub.pro
@@ -20,5 +20,5 @@ unix {
     LIBS += -lshell32
 }
 
-target.path  = $$QTC_PREFIX/$$relative_path($$IDE_LIBEXEC_PATH, $$IDE_BUILD_TREE)
+target.path  = $$INSTALL_LIBEXEC_PATH
 INSTALLS    += target
diff --git a/src/plugins/qmldesigner/plugindestdir.pri b/src/plugins/qmldesigner/plugindestdir.pri
index c67bb10b51d46864adfe4e857511fa4498dfee30..c02c8d28f8cf348fa66cb7323396b965b66a1c30 100644
--- a/src/plugins/qmldesigner/plugindestdir.pri
+++ b/src/plugins/qmldesigner/plugindestdir.pri
@@ -2,6 +2,6 @@ macx {
   DESTDIR = $$IDE_PLUGIN_PATH/QmlDesigner
 } else {
   DESTDIR = $$IDE_PLUGIN_PATH/qmldesigner
-  target.path  = $$QTC_PREFIX/$$IDE_LIBRARY_BASENAME/qtcreator/plugins/qmldesigner
+  target.path  = $$INSTALL_PLUGIN_PATH/qmldesigner
   INSTALLS    += target
 }
diff --git a/src/qtcreatorlibrary.pri b/src/qtcreatorlibrary.pri
index 700f5b495a6052f2fa96928b80d075909c3da13a..cbd4c5fb1c08b936df34990379b1331e8bfb95bb 100644
--- a/src/qtcreatorlibrary.pri
+++ b/src/qtcreatorlibrary.pri
@@ -24,10 +24,10 @@ contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
 
 !macx {
     win32 {
-        dlltarget.path = $$QTC_PREFIX/bin
+        dlltarget.path = $$INSTALL_BIN_PATH
         INSTALLS += dlltarget
     } else {
-        target.path = $$QTC_PREFIX/$$IDE_LIBRARY_BASENAME/qtcreator
+        target.path = $$INSTALL_LIBRARY_PATH
         INSTALLS += target
     }
 }
diff --git a/src/qtcreatorplugin.pri b/src/qtcreatorplugin.pri
index 0f57dfc88a9b66dab0463854959f8d0ebdaafeb7..e30cdaae1827d5035066c55526193e7f92295bcb 100644
--- a/src/qtcreatorplugin.pri
+++ b/src/qtcreatorplugin.pri
@@ -94,7 +94,7 @@ CONFIG += plugin plugin_with_soname
 linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
 
 !macx {
-    target.path = $$QTC_PREFIX/$$IDE_LIBRARY_BASENAME/qtcreator/plugins
+    target.path = $$INSTALL_PLUGIN_PATH
     INSTALLS += target
 }
 
diff --git a/src/qtcreatortool.pri b/src/qtcreatortool.pri
index 2d33df626cd4dc2d5342bf5826c3798842185f53..ac00786bbed06c17305d8da48fe05876df38822d 100644
--- a/src/qtcreatortool.pri
+++ b/src/qtcreatortool.pri
@@ -16,5 +16,5 @@ osx {
 }
 include(rpath.pri)
 
-target.path = $$QTC_PREFIX/$$relative_path($$IDE_LIBEXEC_PATH, $$IDE_BUILD_TREE)
+target.path  = $$INSTALL_LIBEXEC_PATH
 INSTALLS += target