diff --git a/ground/gcs/copydata.pro b/ground/gcs/copydata.pro
index ab43eb464..957b81363 100644
--- a/ground/gcs/copydata.pro
+++ b/ground/gcs/copydata.pro
@@ -14,7 +14,6 @@ equals(copyqt, 1) {
                   libQt5Svg.so.5 \
                   libQt5Test.so.5 \
                   libQt5Xml.so.5 \
-                  libQt5Declarative.so.5 \
                   libQt5XmlPatterns.so.5 \
                   libQt5Script.so.5 \
                   libQt5Concurrent.so.5 \
@@ -27,10 +26,12 @@ equals(copyqt, 1) {
                   libQt5Qml.so.5 \
                   libQt5DBus.so.5 \
                   libQt5QuickParticles.so.5 \
+                  libQt5XcbQpa.so.5 \
+                  libQt5X11Extras.so.5 \
                   libqgsttools_p.so.1 \
-                  libicui18n.so.53 \
-                  libicuuc.so.53 \
-                  libicudata.so.53
+                  libicui18n.so.54 \
+                  libicuuc.so.54 \
+                  libicudata.so.54
         for(lib, QT_LIBS) {
             addCopyFileTarget($${lib},$$[QT_INSTALL_LIBS],$${GCS_QT_LIBRARY_PATH})
         }
@@ -45,6 +46,7 @@ equals(copyqt, 1) {
                      mediaservice/libgstaudiodecoder.so \
                      mediaservice/libgstmediaplayer.so \
                      platforms/libqxcb.so \
+                     xcbglintegrations/libqxcb-glx-integration.so \
                      sqldrivers/libqsqlite.so
     }
 
@@ -62,7 +64,6 @@ equals(copyqt, 1) {
                   Qt5Svg$${DS}.dll \
                   Qt5Test$${DS}.dll \
                   Qt5Xml$${DS}.dll \
-                  Qt5Declarative$${DS}.dll \
                   Qt5XmlPatterns$${DS}.dll \
                   Qt5Script$${DS}.dll \
                   Qt5Concurrent$${DS}.dll \
@@ -73,9 +74,9 @@ equals(copyqt, 1) {
                   Qt5Quick$${DS}.dll \
                   Qt5QuickWidgets$${DS}.dll \
                   Qt5Qml$${DS}.dll \
-                  icuin53.dll \
-                  icudt53.dll \
-                  icuuc53.dll
+                  icuin54.dll \
+                  icudt54.dll \
+                  icuuc54.dll
         # it is more robust to take the following DLLs from Qt rather than from MinGW
         QT_DLLS += libgcc_s_dw2-1.dll \
                    libstdc++-6.dll \
diff --git a/ground/gcs/src/app/main.cpp b/ground/gcs/src/app/main.cpp
index f13bcec76..c8260c953 100644
--- a/ground/gcs/src/app/main.cpp
+++ b/ground/gcs/src/app/main.cpp
@@ -285,6 +285,11 @@ void mainMessageOutput(QtMsgType type, const QMessageLogContext &context, const
     case QtDebugMsg:
         out << "DBG: ";
         break;
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
+    case QtInfoMsg:
+        out << "INF: ";
+        break;
+#endif
     case QtWarningMsg:
         out << "WRN: ";
         break;
diff --git a/ground/gcs/src/libs/libs.pro b/ground/gcs/src/libs/libs.pro
index ae82bc9db..f3ff6213c 100644
--- a/ground/gcs/src/libs/libs.pro
+++ b/ground/gcs/src/libs/libs.pro
@@ -7,7 +7,6 @@ SUBDIRS = \
     qtconcurrent \
     aggregation \
     extensionsystem \
-    glc_lib \
     utils \
     opmapcontrol \
     qwt \
diff --git a/ground/gcs/src/libs/osgearth/osgearth.pro b/ground/gcs/src/libs/osgearth/osgearth.pro
index f8c3e4423..4ee5a7dc2 100644
--- a/ground/gcs/src/libs/osgearth/osgearth.pro
+++ b/ground/gcs/src/libs/osgearth/osgearth.pro
@@ -74,16 +74,18 @@ linux {
     }
 
     LIBS +=-lOpenThreads
-    LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText -losgQt
-    LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt
+    LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText
+    LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation
+    LIBS += -losgQt -losgEarthQt
 }
 
 macx {
     LIBS += -L$$OSG_SDK_DIR/lib
 
     LIBS += -lOpenThreads
-    LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText -losgQt
-    LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt
+    LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText
+    LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation
+    LIBS += -losgQt -losgEarthQt
 }
 
 win32 {
@@ -91,13 +93,15 @@ win32 {
 
     CONFIG(release, debug|release) {
         LIBS += -lOpenThreads
-        LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText -losgQt
-        LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation -losgEarthQt
+        LIBS += -losg -losgUtil -losgDB -losgGA -losgViewer -losgText
+        LIBS += -losgEarth -losgEarthUtil -losgEarthFeatures -losgEarthSymbology -losgEarthAnnotation
+        LIBS += -losgQt -losgEarthQt
     }
     CONFIG(debug, debug|release) {
         LIBS += -lOpenThreadsd
-        LIBS += -losgd -losgUtild -losgDBd -losgGAd -losgViewerd -losgTextd -losgQtd
-        LIBS += -losgEarthd -losgEarthUtild -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthAnnotationd -losgEarthQtd
+        LIBS += -losgd -losgUtild -losgDBd -losgGAd -losgViewerd -losgTextd
+        LIBS += -losgEarthd -losgEarthUtild -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthAnnotationd
+        LIBS += -losgQtd -losgEarthQtd
     }
 }
 
diff --git a/ground/gcs/src/libs/utils/winutils.cpp b/ground/gcs/src/libs/utils/winutils.cpp
index 67dba1bb6..3c5510a97 100644
--- a/ground/gcs/src/libs/utils/winutils.cpp
+++ b/ground/gcs/src/libs/utils/winutils.cpp
@@ -30,10 +30,6 @@
 #include <windows.h>
 
 #include <QtCore/QString>
-#include <QtCore/QVector>
-#include <QtCore/QDebug>
-#include <QtCore/QLibrary>
-#include <QtCore/QTextStream>
 
 namespace Utils {
 QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error)
@@ -53,60 +49,4 @@ QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error)
     }
     return rc;
 }
-
-QTCREATOR_UTILS_EXPORT QString winGetDLLVersion(WinDLLVersionType t,
-                                                const QString &name,
-                                                QString *errorMessage)
-{
-    // Resolve required symbols from the version.dll
-    typedef DWORD (APIENTRY * GetFileVersionInfoSizeProtoType)(LPCTSTR, LPDWORD);
-    typedef BOOL (APIENTRY * GetFileVersionInfoWProtoType)(LPCWSTR, DWORD, DWORD, LPVOID);
-    typedef BOOL (APIENTRY * VerQueryValueWProtoType)(const LPVOID, LPWSTR lpSubBlock, LPVOID, PUINT);
-
-    const char *versionDLLC = "version.dll";
-    QLibrary versionLib(QLatin1String(versionDLLC), 0);
-    if (!versionLib.load()) {
-        *errorMessage = QString::fromLatin1("Unable load %1: %2").arg(QLatin1String(versionDLLC), versionLib.errorString());
-        return QString();
-    }
-    // MinGW requires old-style casts
-    GetFileVersionInfoSizeProtoType getFileVersionInfoSizeW = (GetFileVersionInfoSizeProtoType)(versionLib.resolve("GetFileVersionInfoSizeW"));
-    GetFileVersionInfoWProtoType getFileVersionInfoW = (GetFileVersionInfoWProtoType)(versionLib.resolve("GetFileVersionInfoW"));
-    VerQueryValueWProtoType verQueryValueW = (VerQueryValueWProtoType)(versionLib.resolve("VerQueryValueW"));
-    if (!getFileVersionInfoSizeW || !getFileVersionInfoW || !verQueryValueW) {
-        *errorMessage = QString::fromLatin1("Unable to resolve all required symbols in  %1").arg(QLatin1String(versionDLLC));
-        return QString();
-    }
-
-    // Now go ahead, read version info resource
-    DWORD dummy = 0;
-    const LPCTSTR fileName = reinterpret_cast<LPCTSTR>(name.utf16()); // MinGWsy
-    const DWORD infoSize   = (*getFileVersionInfoSizeW)(fileName, &dummy);
-    if (infoSize == 0) {
-        *errorMessage = QString::fromLatin1("Unable to determine the size of the version information of %1: %2").arg(name, winErrorMessage(GetLastError()));
-        return QString();
-    }
-    QByteArray dataV(infoSize + 1, '\0');
-    char *data = dataV.data();
-    if (!(*getFileVersionInfoW)(fileName, dummy, infoSize, data)) {
-        *errorMessage = QString::fromLatin1("Unable to determine the version information of %1: %2").arg(name, winErrorMessage(GetLastError()));
-        return QString();
-    }
-    VS_FIXEDFILEINFO *versionInfo;
-    UINT len = 0;
-    if (!(*verQueryValueW)(data, TEXT("\\"), &versionInfo, &len)) {
-        *errorMessage = QString::fromLatin1("Unable to determine version string of %1: %2").arg(name, winErrorMessage(GetLastError()));
-        return QString();
-    }
-    QString rc;
-    switch (t) {
-    case WinDLLFileVersion:
-        QTextStream(&rc) << HIWORD(versionInfo->dwFileVersionMS) << '.' << LOWORD(versionInfo->dwFileVersionMS);
-        break;
-    case WinDLLProductVersion:
-        QTextStream(&rc) << HIWORD(versionInfo->dwProductVersionMS) << '.' << LOWORD(versionInfo->dwProductVersionMS);
-        break;
-    }
-    return rc;
-}
 } // namespace Utils
diff --git a/ground/gcs/src/libs/utils/winutils.h b/ground/gcs/src/libs/utils/winutils.h
index 7d268e011..f49c044b3 100644
--- a/ground/gcs/src/libs/utils/winutils.h
+++ b/ground/gcs/src/libs/utils/winutils.h
@@ -39,11 +39,5 @@ namespace Utils {
 // Helper to format a Windows error message, taking the
 // code as returned by the GetLastError()-API.
 QTCREATOR_UTILS_EXPORT QString winErrorMessage(unsigned long error);
-
-// Determine a DLL version
-enum WinDLLVersionType { WinDLLFileVersion, WinDLLProductVersion };
-QTCREATOR_UTILS_EXPORT QString winGetDLLVersion(WinDLLVersionType t,
-                                                const QString &name,
-                                                QString *errorMessage);
 } // namespace Utils
 #endif // WINUTILS_H
diff --git a/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp b/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp
index 1958f3d0e..11c417d78 100644
--- a/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp
+++ b/ground/gcs/src/plugins/debuggadget/debuggadgetwidget.cpp
@@ -52,6 +52,12 @@ void DebugGadgetWidget::customMessageHandler(QtMsgType type, const QMessageLogCo
         txt   = QString("Debug: %1").arg(msg);
         color = Qt::black;
         break;
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
+    case QtInfoMsg:
+        txt   = QString("Info: %1").arg(msg);
+        color = Qt::blue;
+        break;
+#endif
     case QtWarningMsg:
         txt   = QString("Warning: %1").arg(msg);
         color = Qt::red;
diff --git a/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp b/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp
index e1c39084b..3c3ad4c67 100644
--- a/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp
+++ b/ground/gcs/src/plugins/hitl/aerosimrc/src/qdebughandler.cpp
@@ -29,6 +29,7 @@
 
 void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
 {
+    Q_UNUSED(context);
     static bool firstRun = true;
     QString txt;
 
@@ -36,6 +37,11 @@ void myQDebugHandler(QtMsgType type, const QMessageLogContext &context, const QS
     case QtDebugMsg:
         txt = QString("Debug: %1").arg(msg);
         break;
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0))
+    case QtInfoMsg:
+        txt = QString("Info: %1").arg(msg);
+        break;
+#endif
     case QtWarningMsg:
         txt = QString("Warning: %1").arg(msg);
         break;
diff --git a/ground/gcs/src/plugins/plugins.pro b/ground/gcs/src/plugins/plugins.pro
index 7ed82023c..07a7fc71f 100644
--- a/ground/gcs/src/plugins/plugins.pro
+++ b/ground/gcs/src/plugins/plugins.pro
@@ -77,12 +77,6 @@ plugin_uavobjectbrowser.depends = plugin_coreplugin
 plugin_uavobjectbrowser.depends += plugin_uavobjects
 SUBDIRS += plugin_uavobjectbrowser
 
-# ModelView UAVGadget
-plugin_modelview.subdir = modelview
-plugin_modelview.depends = plugin_coreplugin
-plugin_modelview.depends += plugin_uavobjects
-SUBDIRS += plugin_modelview
-
 #Qt 4.8.0 / phonon may crash on Mac, fixed in Qt 4.8.1, QTBUG-23128
 macx:contains(QT_VERSION, ^4\\.8\\.0): CONFIG += disable_notify_plugin
 
diff --git a/make/tool_install/qt-install.qs b/make/tool_install/qt-install.qs
new file mode 100644
index 000000000..7987ee533
--- /dev/null
+++ b/make/tool_install/qt-install.qs
@@ -0,0 +1,253 @@
+/*
+silent installer script
+
+known not work with Qt 5.5.1 and QtIFW 2.0.2
+
+known issues:
+- silent but not headless (QtIFW 2.0.3 should support installer.setSilent(true))
+- cannot disable forced components (QtCreator, ...)
+ - cannot disable virtual components (doc, examples, ...)
+ - cannot disable shortcuts creation
+ - if user presses the 'Show Details' button then the installer does not end automatically
+*/
+function Controller()
+{
+    console.log("*** Silent Installer ***");
+    console.log("Installing on " + installer.value("os"));
+    //installer.setSilent(true);
+
+    var qtInstallTargetDir = installer.environmentVariable("QT_INSTALL_TARGET_DIR");
+    if (qtInstallTargetDir == "") {
+        qtInstallTargetDir = installer.environmentVariable("PWD") + "/tools/qt-5.5.1";
+        console.log("Environment variable QT_INSTALL_TARGET_DIR not set, using default " + qtInstallTargetDir);
+    }
+    installer.setValue("TargetDir", qtInstallTargetDir);
+    console.log("Installing to " + installer.value("TargetDir"));
+
+    installer.autoRejectMessageBoxes();
+    installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);
+    installer.setMessageBoxAutomaticAnswer("stopProcessesForUpdates", QMessageBox.Ignore);
+
+    // pages that are not visible are actually removed from the wizard
+    // some pages must not be removed otherwise the installer starts to mishbehave
+    installer.setDefaultPageVisible(QInstaller.Welcome, false);
+    installer.setDefaultPageVisible(QInstaller.Credentials, false); // QInstaller.Credentials is 0... so this is a NOP!
+    //installer.setDefaultPageVisible(QInstaller.Introduction, false); // Fails to skip Credentials if Introduction is removed?
+    installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
+    //installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
+    //installer.setDefaultPageVisible(QInstaller.LicenseAgreementCheck, false);
+    //installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
+    installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
+    //installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
+    installer.setDefaultPageVisible(QInstaller.FinishedPage, false);
+
+    installer.componentAdded.connect(onComponentAdded);
+    installer.aboutCalculateComponentsToInstall.connect(onAboutCalculateComponentsToInstall);
+    installer.finishedCalculateComponentsToInstall.connect(onFinishedCalculateComponentsToInstall);
+}
+
+// installer callbacks
+
+onComponentAdded = function(component)
+{
+    console.log("Component added: " + component.name);
+    dumpComponents();
+}
+
+onAboutCalculateComponentsToInstall = function()
+{
+    console.log("onAboutCalculateComponentsToInstall");
+    //dumpComponents();
+}
+
+onFinishedCalculateComponentsToInstall = function()
+{
+    console.log("onFinishedCalculateComponentsToInstall");
+    //dumpComponents();
+}
+
+// page callbacks
+// used to setup wizard pages and move the wizard forward
+
+Controller.prototype.WelcomePageCallback = function()
+{
+    logCallback();
+
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.CredentialsPageCallback = function()
+{
+    logCallback();
+
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.IntroductionPageCallback = function()
+{
+    logCallback();
+
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ComponentSelectionPageCallback = function()
+{
+    logCallback();
+
+    var page = gui.currentPageWidget();
+    page.deselectAll()
+    if (installer.value("os") == "win") {
+        selectComponent(page, "qt.55.win32_mingw492");
+        selectComponent(page, "qt.tools.win32_mingw492");
+    }
+    else if (installer.value("os") == "x11") {
+        selectComponent(page, "qt.55.gcc");
+        selectComponent(page, "qt.55.gcc_64");
+    }
+    else if (installer.value("os") == "mac") {
+        selectComponent(page, "qt.55.clang_64");
+    }
+    selectComponent(page, "qt.55.qtquickcontrols");
+    selectComponent(page, "qt.55.qtscript");
+
+    //installer.componentByName("qt.tools.qtcreator").setValue("ForcedInstallation", "false");
+
+    gui.clickButton(buttons.NextButton);
+}
+
+
+function selectComponent(page, name)
+{
+    component = installer.componentByName(name);
+    if (component) {
+        console.log("component " + name + " : " + component);
+        page.selectComponent(name);
+    }
+    else  {
+        console.log("Failed to find component " + name + "!");
+    }
+}
+
+Controller.prototype.LicenseAgreementPageCallback = function()
+{
+    logCallback();
+
+    setChecked("AcceptLicenseRadioButton", true);
+
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.StartMenuDirectoryPageCallback = function()
+{
+    logCallback();
+
+    gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.PerformInstallationPageCallback = function()
+{
+    logCallback();
+
+    // show details and hide button
+    click("DetailsButton");
+    setVisible("DetailsButton", false);
+
+    // showing details will disable automated page switch, so re-enable it
+    installer.setAutomatedPageSwitchEnabled(true);
+}
+
+Controller.prototype.FinishedPageCallback = function()
+{
+    logCallback();
+
+    setChecked("launchQtCreatorCheckBox", false);
+
+    gui.clickButton(buttons.FinishButton);
+}
+
+// utilities
+
+function logCallback()
+{
+    var page = gui.currentPageWidget();
+    console.log(">>> " + page.objectName + "Callback");
+}
+
+function dumpComponents()
+{
+    dumpComponentsArray(installer.components());
+}
+
+function dumpComponentsArray(components)
+{
+    var arrayLength = components.length;
+    for (var i = 0; i < arrayLength; i++) {
+        dumpComponent(components[i]);
+    }
+}
+
+function dumpComponent(component)
+{
+    console.log(component.name + " (" + component.displayName + ")");
+    console.log("  Virtual: " + component.value("Virtual", "false"));
+    console.log("  ForcedInstallation: " + component.value("ForcedInstallation", "false"));
+    console.log("  Default: " + component.default);
+    console.log("  Enabled: " + component.enabled);
+}
+
+// UI utilities
+
+function click(name)
+{
+    var page = gui.currentPageWidget();
+    var button = gui.findChild(page, name);
+    if (button) {
+        console.log("button " + name + " : " + button);
+        button.click();
+    }
+    else {
+        console.log("Failed to find button " + name + "!");
+    }
+}
+
+function setVisible(name, visible)
+{
+    var page = gui.currentPageWidget();
+    var button = gui.findChild(page, name);
+    if (button) {
+        console.log("button " + name + " : " + button);
+        button.visible = visible;
+        console.log("button " + name + " visible : " + button.visible);
+    }
+    else {
+        console.log("Failed to find button " + name + "!");
+    }
+}
+
+function setEnabled(name, enabled)
+{
+    var page = gui.currentPageWidget();
+    var button = gui.findChild(page, name);
+    if (button) {
+        console.log("button " + name + " : " + button);
+        button.enabled = enabled;
+        console.log("button " + name + " enabled : " + button.enabled);
+    }
+    else {
+        console.log("Failed to find button " + name + "!");
+    }
+}
+
+function setChecked(name, checked)
+{
+    var page = gui.currentPageWidget();
+    var button = gui.findChild(page, name);
+    if (button) {
+        console.log("button " + name + " : " + button);
+        button.checked = checked;
+        console.log("button " + name + " checked : " + button.checked);
+    }
+    else {
+        console.log("Failed to find button " + name + "!");
+    }
+}
diff --git a/make/tools.mk b/make/tools.mk
index ea5ee97a9..dfefe7ab5 100644
--- a/make/tools.mk
+++ b/make/tools.mk
@@ -88,32 +88,31 @@ $(TOOL_REMOVE_TARGETS):
 
 ifeq ($(UNAME), Linux)
     ifeq ($(ARCH), x86_64)
-        QT_SDK_URL  := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x64-5.4.1.run
-        QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x64-5.4.1.run.md5
-        QT_SDK_ARCH := gcc_64
-        OSG_URL        := http://librepilot.github.io/tools/osg-3.4-linux-x64-qt-5.4.1.tar.gz
+        QT_SDK_URL     := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run
+        QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.run.md5
+        QT_SDK_ARCH    := gcc_64
+        OSG_URL        := http://librepilot.github.io/tools/osg-3.4-linux-x64-qt-5.5.1.tar.gz
     else
-        QT_SDK_URL  := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x86-5.4.1.run
-        QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-linux-x86-5.4.1.run.md5
-        QT_SDK_ARCH := gcc
-        OSG_URL        := http://librepilot.github.io/tools/osg-3.4-linux-x86-qt-5.4.1.tar.gz
+        QT_SDK_URL     := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x86-5.5.1.run
+        QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x86-5.5.1.run.md5
+        QT_SDK_ARCH    := gcc
+        OSG_URL        := http://librepilot.github.io/tools/osg-3.4-linux-x86-qt-5.5.1.tar.gz
     endif
     UNCRUSTIFY_URL := http://librepilot.github.io/tools/uncrustify-0.60.tar.gz
     DOXYGEN_URL    := http://librepilot.github.io/tools/doxygen-1.8.3.1.src.tar.gz
 else ifeq ($(UNAME), Darwin)
-    QT_SDK_URL  := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-mac-x64-clang-5.4.1.dmg
-    QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-mac-x64-clang-5.4.1.dmg.md5
-    QT_SDK_ARCH := clang_64
-    QT_SDK_MAINTENANCE_TOOL := /Volumes/qt-opensource-mac-x64-clang-5.4.1/qt-opensource-mac-x64-clang-5.4.1.app/Contents/MacOS/qt-opensource-mac-x64-clang-5.4.1
-    QT_SDK_MOUNT_DIR := /Volumes/qt-opensource-mac-x64-clang-5.4.1
-    QT_SDK_INSTALLER_DAT := /Volumes/qt-opensource-mac-x64-clang-5.4.1/qt-opensource-mac-x64-clang-5.4.1.app/Contents/Resources/installer.dat
+    QT_SDK_URL     := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg
+    QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg.md5
+    QT_SDK_ARCH    := clang_64
+    QT_SDK_MOUNT_DIR        := /Volumes/qt-opensource-mac-x64-clang-5.5.1
+    QT_SDK_MAINTENANCE_TOOL := /Volumes/qt-opensource-mac-x64-clang-5.5.1/qt-opensource-mac-x64-clang-5.5.1.app/Contents/MacOS/qt-opensource-mac-x64-clang-5.5.1
     UNCRUSTIFY_URL := http://librepilot.github.io/tools/uncrustify-0.60.tar.gz
     DOXYGEN_URL    := http://librepilot.github.io/tools/doxygen-1.8.3.1.src.tar.gz
-    OSG_URL        :=
+    OSG_URL        := http://librepilot.github.io/tools/osg-3.4-clang_64-qt-5.5.1.tar.gz
 else ifeq ($(UNAME), Windows)
-    QT_SDK_URL     := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe
-    QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.4/5.4.1/qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe.md5
-    QT_SDK_ARCH    := mingw491_32
+    QT_SDK_URL     := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe
+    QT_SDK_MD5_URL := http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe.md5
+    QT_SDK_ARCH    := mingw492_32
     NSIS_URL       := http://librepilot.github.io/tools/nsis-2.46-unicode.tar.bz2
     SDL_URL        := http://librepilot.github.io/tools/SDL-devel-1.2.15-mingw32.tar.gz
     OPENSSL_URL    := http://librepilot.github.io/tools/openssl-1.0.1e-win32.tar.bz2
@@ -123,14 +122,14 @@ else ifeq ($(UNAME), Windows)
     CMAKE_URL      := http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.zip
     CMAKE_MD5_URL  := http://librepilot.github.io/tools/cmake-2.8.12.2-win32-x86.zip.md5
     MSYS_URL       := http://librepilot.github.io/tools/MSYS-1.0.11.zip
-    OSG_URL        := http://librepilot.github.io/tools/osg-3.4-mingw491_32-qt-5.4.1.tar.gz
+    OSG_URL        := http://librepilot.github.io/tools/osg-3.4-mingw492_32-qt-5.5.1.tar.gz
 endif
 
 GTEST_URL := http://librepilot.github.io/tools/gtest-1.6.0.zip
 CCACHE_URL     := http://samba.org/ftp/ccache/ccache-3.2.2.tar.bz2
 CCACHE_MD5_URL := http://librepilot.github.io/tools/ccache-3.2.2.tar.bz2.md5
 
-QT_SDK_DIR     := $(TOOLS_DIR)/qt-5.4.1
+QT_SDK_DIR     := $(TOOLS_DIR)/qt-5.5.1
 UNCRUSTIFY_DIR := $(TOOLS_DIR)/uncrustify-0.60
 DOXYGEN_DIR    := $(TOOLS_DIR)/doxygen-1.8.3.1
 GTEST_DIR      := $(TOOLS_DIR)/gtest-1.6.0
@@ -139,12 +138,12 @@ OSG_TOOLS_DIR  := $(TOOLS_DIR)
 
 ifeq ($(UNAME), Linux)
     ifeq ($(ARCH), x86_64)
-        OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x64-qt-5.4.1
+        OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x64-qt-5.5.1
     else
-        OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x86-qt-5.4.1
+        OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-linux-x86-qt-5.5.1
     endif
 else ifeq ($(UNAME), Darwin)
-    OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-clang_64-qt-5.4.1
+    OSG_SDK_DIR := $(OSG_TOOLS_DIR)/osg-3.4-clang_64-qt-5.5.1
 else ifeq ($(UNAME), Windows)
     MINGW_DIR    := $(QT_SDK_DIR)/Tools/$(QT_SDK_ARCH)
     # When changing PYTHON_DIR, you must also update it in ground/gcs/src/python.pri
@@ -156,7 +155,7 @@ else ifeq ($(UNAME), Windows)
     MESAWIN_DIR  := $(TOOLS_DIR)/mesawin
     CMAKE_DIR    := $(TOOLS_DIR)/cmake-2.8.12.2-win32-x86
     MSYS_DIR     := $(TOOLS_DIR)/msys
-    OSG_SDK_DIR  := $(OSG_TOOLS_DIR)/osg-3.4-mingw491_32-qt-5.4.1
+    OSG_SDK_DIR  := $(OSG_TOOLS_DIR)/osg-3.4-mingw492_32-qt-5.5.1
 endif
 
 QT_SDK_PREFIX := $(QT_SDK_DIR)
@@ -395,207 +394,6 @@ $(1)_distclean:
 
 endef
 
-##############################
-#
-# Windows QT install template
-#  $(1) = tool temp extract/build directory
-#  $(2) = tool install directory
-#  $(3) = tool distribution URL
-#  $(4) = tool distribution .md5 URL
-#  $(5) = tool distribution file
-#  $(6) = QT architecture
-#  $(7) = optional extra build recipes template
-#  $(8) = optional extra clean recipes template
-#
-##############################
-
-define WIN_QT_INSTALL_TEMPLATE
-
-.PHONY: $(addprefix qt_sdk_, install clean distclean)
-
-qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR)
-	$(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \
-		$(ECHO) $(MSG_NOTICE) "Missing 7zip. Run ./make/scripts/win_sdk_install.sh [<OpenPilot tools dir>] to get it." && \
-		exit 1; \
-	fi
-	$(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)")
-# Explode .run file into install packages
-	@$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1))
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(1)))
-	$(V1) chmod +x $(DL_DIR)/$(5)
-	$(V1) $(DL_DIR)/$(5) --dump-binary-data -o  $(1)
-# Extract packages under tool directory
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(2)))
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0qt5_essentials.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0i686-4.9.1-release-posix-dwarf-rt_v3-rev2-runtime.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0icu_53_1_mingw_builds_4_9_1_posix_dwarf_32.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.win32_mingw491/5.4.1-0qt5_addons.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.tools.win32_mingw491/4.9.1-2i686-4.9.1-release-posix-dwarf-rt_v3-rev2.7z" | grep -v Extracting
-# Run patcher
-	@$(ECHO)
-	@$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX))
-	$(V1) $(CD) $(QT_SDK_PREFIX)
-	$(V1) $(DL_DIR)/$(5) --runoperation QtPatch windows $(QT_SDK_PREFIX) qt5
-
-# Execute post build templates
-	$(7)
-
-# Clean up temporary files
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-
-qt_sdk_clean:
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)")
-	$(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)"
-
-	$(8)
-
-qt_sdk_distclean:
-	@$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5))
-	$(V1) [ ! -f "$(DL_DIR)/$(5)" ]     || $(RM) "$(DL_DIR)/$(5)"
-	$(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5"
-
-endef
-
-##############################
-#
-# Linux QT install template
-#  $(1) = tool temp extract/build directory
-#  $(2) = tool install directory
-#  $(3) = tool distribution URL
-#  $(4) = tool distribution .md5 URL
-#  $(5) = tool distribution file
-#  $(6) = QT architecture
-#  $(7) = optional extra build recipes template
-#  $(8) = optional extra clean recipes template
-#
-##############################
-
-define LINUX_QT_INSTALL_TEMPLATE
-
-.PHONY: $(addprefix qt_sdk_, install clean distclean)
-
-qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR)
-	$(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \
-		$(ECHO) $(MSG_NOTICE) "Please install the p7zip for your distribution. i.e.: sudo apt-get install p7zip-full" && \
-		exit 1; \
-	fi
-	$(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)")
-# Explode .run file into install packages
-	@$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1))
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(1)))
-	$(V1) chmod +x $(DL_DIR)/$(5)
-	$(V1) $(DL_DIR)/$(5) --dump-binary-data -o  $(1)
-# Extract packages under tool directory
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(2)))
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_essentials.7z" | grep -v Extracting
-	$(V1) if [ -f "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_64.7z" ]; then $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_64.7z" | grep -v Extracting; fi
-	$(V1) if [ -f "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_32.7z" ]; then $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0icu_53_1_ubuntu_11_10_32.7z" | grep -v Extracting; fi
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_addons.7z" | grep -v Extracting
-# Run patcher
-	@$(ECHO)
-	@$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX))
-	$(V1) $(CD) $(QT_SDK_PREFIX)
-	$(V1) $(DL_DIR)/$(5) --runoperation QtPatch linux $(QT_SDK_PREFIX) qt5
-
-# Execute post build templates
-	$(7)
-
-# Clean up temporary files
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-
-qt_sdk_clean:
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)")
-	$(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)"
-
-	$(8)
-
-qt_sdk_distclean:
-	@$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5))
-	$(V1) [ ! -f "$(DL_DIR)/$(5)" ]     || $(RM) "$(DL_DIR)/$(5)"
-	$(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5"
-
-endef
-
-##############################
-#
-# Mac QT install template
-#  $(1) = tool temp extract/build directory
-#  $(2) = tool install directory
-#  $(3) = tool distribution URL
-#  $(4) = tool distribution .md5 URL
-#  $(5) = tool distribution file
-#  $(6) = QT architecture
-#  $(7) = optional extra build recipes template
-#  $(8) = optional extra clean recipes template
-#
-##############################
-
-define MAC_QT_INSTALL_TEMPLATE
-
-.PHONY: $(addprefix qt_sdk_, install clean distclean)
-
-qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR)
-	$(V1) if ! $(SEVENZIP) >/dev/null 2>&1; then \
-		$(ECHO) $(MSG_NOTICE) "Please install the p7zip for your distribution. i.e.: brew install p7zip." && \
-		exit 1; \
-	fi
-	$(call DOWNLOAD_TEMPLATE,$(3),$(5),"$(4)")
-# Mount .dmg file
-	$(V1) hdiutil attach -nobrowse $(DL_DIR)/$(5)
-# Explode .dmg file into install packages
-	@$(ECHO) $(MSG_EXTRACTING) $$(call toprel, $(1))
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(1)))
-	$(V1) $(QT_SDK_MAINTENANCE_TOOL) --dump-binary-data -i $(QT_SDK_INSTALLER_DAT) -o $(1)
-# Extract packages under tool directory
-	$(V1) $(MKDIR) -p $$(call toprel, $(dir $(2)))
-	#$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.readme/1.0.0-0qt-project-url.7z" | grep -v Extracting
-	#$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt/5.4.1ThirdPartySoftware_Listing.7z" | grep -v Extracting
-	#$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.readme/1.0.0-0readme.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_essentials.7z" | grep -v Extracting
-#	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6).essentials/5.4.1icu_path_patcher.sh.7z" | grep -v Extracting
-	$(V1) $(SEVENZIP) -y -o$(2) x "$(1)/qt.54.$(6)/5.4.1-0qt5_addons.7z" | grep -v Extracting
-
-
-# go to OpenPilot/tools/5.4/gcc_64 and call patcher.sh
-	@$(ECHO)
-	@$(ECHO) "Running patcher in" $$(call toprel, $(QT_SDK_PREFIX))
-	$(V1) $(CD) $(QT_SDK_PREFIX)
-#	$(V1) "$(QT_SDK_PREFIX)/patcher.sh" $(QT_SDK_PREFIX)
-# call qmake patcher
-	@$(ECHO) "Executing QtPatch in" $$(call toprel, $(QT_SDK_PREFIX))
-	$(V1) $(QT_SDK_MAINTENANCE_TOOL) --runoperation QtPatch mac $(QT_SDK_PREFIX) qt5
-
-#Unmount the .dmg file
-	$(V1) hdiutil detach $(QT_SDK_MOUNT_DIR)
-
-# Execute post build templates
-	$(7)
-
-# Clean up temporary files
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-
-qt_sdk_clean:
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
-	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
-	@$(ECHO) $(MSG_CLEANING) $$(call toprel, "$(2)")
-	$(V1) [ ! -d "$(2)" ] || $(RM) -rf "$(2)"
-
-	$(8)
-
-qt_sdk_distclean:
-	@$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(5))
-	$(V1) [ ! -f "$(DL_DIR)/$(5)" ]     || $(RM) "$(DL_DIR)/$(5)"
-	$(V1) [ ! -f "$(DL_DIR)/$(5).md5" ] || $(RM) "$(DL_DIR)/$(5).md5"
-
-endef
-
 ##############################
 #
 # ARM SDK
@@ -623,6 +421,84 @@ define ARM_GCC_VERSION_CHECK_TEMPLATE
 	fi
 endef
 
+##############################
+#
+# Qt install template
+#  $(1) = tool install directory
+#  $(2) = tool distribution URL
+#  $(3) = tool distribution .md5 URL
+#  $(4) = tool distribution file
+#  $(5) = Qt architecture
+#  $(6) = optional extra build recipes template
+#  $(7) = optional extra clean recipes template
+#
+##############################
+
+define QT_INSTALL_TEMPLATE
+
+.PHONY: $(addprefix qt_sdk_, install clean distclean)
+
+qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR)
+	$(call DOWNLOAD_TEMPLATE,$(2),$(4),"$(3)")
+# Silently install Qt under tools directory
+	@$(ECHO) $(MSG_EXTRACTING) $(4) to $$(call toprel, $(1))
+	$(V1) ( export QT_INSTALL_TARGET_DIR=$(1) && \
+		chmod +x $(DL_DIR)/$(4) && \
+		$(DL_DIR)/$(4) --script $(ROOT_DIR)/make/tool_install/qt-install.qs ; \
+	)
+# Execute post build templates
+	$(6)
+
+qt_sdk_clean:
+	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
+	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
+	$(7)
+
+qt_sdk_distclean:
+	@$(ECHO) $(MSG_DISTCLEANING) $$(call toprel, $(DL_DIR)/$(4))
+	$(V1) [ ! -f "$(DL_DIR)/$(4)" ]     || $(RM) "$(DL_DIR)/$(4)"
+	$(V1) [ ! -f "$(DL_DIR)/$(4).md5" ] || $(RM) "$(DL_DIR)/$(4).md5"
+
+endef
+
+##############################
+#
+# Mac QT install template
+#  $(1) = tool install directory
+#  $(2) = tool distribution URL
+#  $(3) = tool distribution .md5 URL
+#  $(4) = tool distribution file
+#  $(5) = QT architecture
+#  $(6) = optional extra build recipes template
+#  $(7) = optional extra clean recipes template
+#
+##############################
+
+define MAC_QT_INSTALL_TEMPLATE
+
+.PHONY: $(addprefix qt_sdk_, install clean distclean)
+
+qt_sdk_install: qt_sdk_clean | $(DL_DIR) $(TOOLS_DIR)
+	$(call DOWNLOAD_TEMPLATE,$(2),$(4),"$(3)")
+# Mount .dmg file
+	$(V1) hdiutil attach -nobrowse $(DL_DIR)/$(4)
+# Silently install Qt under tools directory
+	@$(ECHO) $(MSG_EXTRACTING) $(4) to $$(call toprel, $(1))
+	$(V1) ( export QT_INSTALL_TARGET_DIR=$(1) && \
+		$(QT_SDK_MAINTENANCE_TOOL) --script $(ROOT_DIR)/make/tool_install/qt-install.qs ; \
+	)
+# Unmount the .dmg file
+	$(V1) hdiutil detach $(QT_SDK_MOUNT_DIR)
+# Execute post build templates
+	$(6)
+
+qt_sdk_clean:
+	@$(ECHO) $(MSG_CLEANING) $$(call toprel, $(1))
+	$(V1) [ ! -d "$(1)" ] || $(RM) -rf "$(1)"
+	$(7)
+
+endef
+
 ##############################
 #
 # Qt SDK
@@ -631,30 +507,19 @@ endef
 
 ifeq ($(UNAME), Windows)
 
-QT_SDK_PREFIX := $(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH)
+QT_SDK_PREFIX := $(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH)
 
-# This additional configuration step should not be necessary
-# but it is needed as a workaround to https://bugreports.qt-project.org/browse/QTBUG-33254
-define QT_SDK_CONFIGURE_TEMPLATE
-	@$(ECHO) $(MSG_CONFIGURING) $(call toprel, $(QT_SDK_DIR))
-	$(V1) $(ECHO) $(QUOTE)[Paths]$(QUOTE) > $(QT_SDK_PREFIX)/bin/qt.conf
-	$(V1) $(ECHO) $(QUOTE)Prefix = $(QT_SDK_PREFIX)$(QUOTE) >> $(QT_SDK_PREFIX)/bin/qt.conf
-endef
-
-QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD
-    $(eval $(call WIN_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH),$(QT_SDK_CONFIGURE_TEMPLATE)))
+    $(eval $(call QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH)))
 
 else ifeq ($(UNAME), Linux)
 
-QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH)"
-QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD
-    $(eval $(call LINUX_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH)))
+QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH)"
+    $(eval $(call QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH)))
 
 else ifeq ($(UNAME), Darwin)
 
-QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.4/$(QT_SDK_ARCH)"
-QT_BUILD_DIR := $(BUILD_DIR)/QT_BUILD
-    $(eval $(call MAC_QT_INSTALL_TEMPLATE,$(QT_BUILD_DIR),$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH)))
+QT_SDK_PREFIX := "$(QT_SDK_DIR)/5.5/$(QT_SDK_ARCH)"
+    $(eval $(call MAC_QT_INSTALL_TEMPLATE,$(QT_SDK_DIR),$(QT_SDK_URL),$(QT_SDK_MD5_URL),$(notdir $(QT_SDK_URL)),$(QT_SDK_ARCH)))
 
 else
 
@@ -663,7 +528,7 @@ QT_SDK_PREFIX := $(QT_SDK_DIR)
 .PHONY: qt_sdk_install
 qt_sdk_install:
 	@$(ECHO) $(MSG_NOTICE) --------------------------------------------------------
-	@$(ECHO) $(MSG_NOTICE) Please install native Qt 5.4.x SDK using package manager
+	@$(ECHO) $(MSG_NOTICE) Please install native Qt 5.5.x SDK using package manager
 	@$(ECHO) $(MSG_NOTICE) --------------------------------------------------------
 
 .PHONY: qt_sdk_clean