3 Replies Latest reply: Jul 9, 2013 5:44 AM by user12982757 RSS

    Qt QMake is missing - Solaris 11 and Solaris Studio 12.3

    912516
      OS: Oracle Solaris 11 - http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html

      Development tools: Solaris Studio 12.3 - http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html


      Hi, I want to make Qt desktop applications for Oracle Solaris 11, and Solaris Studio supports Qt projects. However the binary QMake is missing.

      Is it available somewhere?

      Thank you a lot.

      Edited by: 909513 on Jan 22, 2012 6:05 PM

      Edited by: 909513 on Jan 22, 2012 6:06 PM
        • 1. Re: Qt QMake is missing - Solaris 11 and Solaris Studio 12.3
          Steve.Clamage-Oracle
          Qmake is part of Qt, not part of Oracle Solaris Studio. I suggest you ask in a Qt forum or support channel.
          You can start here:
          http://developer.qt.nokia.com/
          • 2. Re: Qt QMake is missing - Solaris 11 and Solaris Studio 12.3
            user13277775
            there are multiple projects that build Qt:

            1. SFE :
            http://pkgbuild.sourceforge.net/spec-files-extra/
            http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/
            binary packages at http://sfe.opencsw.org/sfe/en/catalog.shtml (this one's built with gcc)

            2. KDE-solaris :
            http://techbase.kde.org/Projects/KDE_on_Solaris/OpenSolaris
            http://solaris.bionicmutton.org/hg/kde4-specs-470
            binary packages at http://solaris.bionicmutton.org/pkg/kde4.7.3repo (built with Studio) (this location is changing frequently)

            Also building qt from sources using ./configure && gmake && gmake install should just work
            • 3. Re: Qt QMake is missing - Solaris 11 and Solaris Studio 12.3
              user12982757

              Here's what I used to compile up (I think) 90%+ of Qt 4.8.4. The configure step creates qmake and the compile rolls along until it hits a lot of non standard C++ code. But you get qmake out of it. The tarball is the latest snapshot of the 4.8.x git tree.

               

              Caveat: It's being built using Sun Studio 12.3 and the stdcxx library from my package site, along with a bunch of dependant packages from there. I never got Qt 4.8.4 to finish compiling with webkit, the 3rdparty/javascriptcore/JavaScriptCore/* files are truly awful non compliant code and error out every step of the compile. Sigh.

               

              Good luck

               

              ================================================================================

              qt 4.8.2013.06.24

                  https://qt.gitorious.org/qt/qt/trees/4.8

               

                  Compile stdcxx 4.2.1    Done

                  Compile dbus 1.7.2      Done

                  Compile libmng 1.0.10   Skipped

               

                  setenv CC "cc"

                  setenv CXX "CC"

              or

                  setenv CC "cc -xtarget=ultra -m64 -xcode=pic32"

                  setenv CXX "CC -xtarget=ultra -m64 -xcode=pic32"


                  setenv LDFLAGS "-L/usr/local/lib -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4"

                  setenv CFLAGS "-I/usr/local/include -DUSE_SYSTEM_MALLOC"

                  setenv CXXFLAGS "-I/usr/local/include -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4 -DUSE_SYSTEM_MALLOC"

                  setenv LINK "${CXX} -I/usr/local/include -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4"

                  setenv AR "${CXX} -I/usr/local/include -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4 -xar -o"

                  setenv CC "${CC} ${CFLAGS}"

                  setenv CXX "${CXX} ${CXXFLAGS}"

               

                  cd /var/tmp

                  rm -rf qt-qt

                  gunzip -c /usr/local/src/graphics/qt-4.8.2013.06.24.tar.gz | gtar -xvf -

                  cd qt-qt

                  /bin/perl -pe 's#/bin/sh#/bin/bash#'                              -i configure

                  /bin/perl -pe 's#OPT_CONFIRM_LICENSE=no#OPT_CONFIRM_LICENSE=yes#' -i configure

                  /bin/perl -pe 's#^QMAKE_INCDIR\s+=.*#QMAKE_INCDIR=/usr/local/include#'         -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe 's#^QMAKE_LIBDIR\s+=.*#QMAKE_LIBDIR=/usr/local/lib#'             -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe 's#^QMAKE_INCDIR_X11\s+=.*#QMAKE_INCDIR_X11=/usr/local/include#' -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe 's#^QMAKE_LIBDIR_X11\s+=.*#QMAKE_LIBDIR_X11=/usr/local/lib#'     -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe "s#^QMAKE_CC\s+=.*#QMAKE_CC=${CC}#"                              -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe "s#^QMAKE_CXX\s+=.*#QMAKE_CXX=${CXX}#"                           -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe "s#^QMAKE_LINK\s+=.*#QMAKE_LINK=${LINK}#"                        -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe "s#^QMAKE_LINK_SHLIB\s+=.*#QMAKE_LINK_SHLIB=${LINK}#"            -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe "s#^QMAKE_AR\s+=.*#QMAKE_AR=${AR} #"                             -i mkspecs/solaris-cc/qmake.conf

                  /bin/perl -pe 's#canBuildWebKit=\"no\"#canBuildWebKit=\"yes\"#'                -i configure

                  /bin/perl -pe 's#canBuildQtConcurrent=\"no\"#canBuildQtConcurrent=\"yes\"#'    -i configure

              ./configure -prefix /usr/local \
              -qpa xcb \
              -release \
              -opensource \
              -shared \
              -no-fast \
              -largefile \
              -no-system-proxies \
              -exceptions \
              -accessibility \
              -stl \
              -qt-sql-sqlite \
              -system-sqlite \
              -no-qt3support \
              -xmlpatterns \
              -multimedia \
              -audio-backend \
              -no-phonon \
              -phonon-backend \
              -svg \
              -webkit \
              -x11 \
              -no-javascript-jit \
              -script \
              -no-scripttools \
              -declarative \
              -platform solaris-cc \
              -no-mmx \
              -no-3dnow \
              -no-sse \
              -no-sse2 \
              -no-sse3 \
              -no-sse4.1 \
              -no-sse4.2 \
              -no-avx \
              -no-neon \
              -system-zlib \
              -system-libtiff \
              -system-libpng \
              -no-libmng \
              -system-libjpeg \
              -openssl \
              -nomake tests \
              -R /usr/local/lib \
              -I /usr/local/include \
              -L /usr/local/lib \
              -verbose \
              -no-cups \
              -iconv \
              -no-gtkstyle \
              -no-nas-sound \
              -sm \
              -xshape \
              -no-xvideo \
              -xsync \
              -xinerama \
              -xcursor \
              -xfixes \
              -no-xrandr \
              -xrender \
              -mitshm \
              -fontconfig \
              -no-xinput \
              -xkb \
              -no-glib \
              -confirm-license \
              -system-freetype

               

               

                  foreach file (3rdparty/javascriptcore/JavaScriptCore/runtime/* 3rdparty/javascriptcore/JavaScriptCore/runtime/* 3rdparty/javascriptcore/JavaScriptCore/API/*)

                      perl -pe 's#ENABLE\(GLIB_SUPPORT\)#0#' -i $file

                      perl -pe 's#OS\(DARWIN\)#0#' -i $file

                      perl -pe 's#OS\(WINCE\)#0#' -i $file

                      perl -pe 's#OS\(WINDOWS\)#0#' -i $file

                      perl -pe 's#OS\(SYMBIAN\)#0#' -i $file

                      perl -pe 's#OS\(OPENBSD\)#0#' -i $file

                      perl -pe 's#OS\(QNX\)#0#' -i $file

                      perl -pe 's#OS\(ANDROID\)#0#' -i $file

                      perl -pe 's#OS\(RVCT\)#0#' -i $file

                      perl -pe 's#OS\(FREEBSD\)#0#' -i $file

                      perl -pe 's#OS\(HAIKU\)#0#' -i $file

                      perl -pe 's#OS\(NETBSD\)#0#' -i $file

                      perl -pe 's#OS\(MAC_OS_X\)#0#' -i $file

                      perl -pe 's#OS\(IOS\)#0#' -i $file

                      perl -pe 's#OS\(AIX\)#0#' -i $file

                      perl -pe 's#OS\(LINUX\)#0#' -i $file

                      perl -pe 's#OS\(UNIX\)#1#' -i $file

                      perl -pe 's#OS\(SOLARIS\)#1#' -i $file

                      perl -pe 's#PLATFORM\(BREWMP\)#0#' -i $file

                      perl -pe 's#PLATFORM\(MAC\)#0#' -i $file

                      perl -pe 's#PLATFORM\(WIN\)#0#' -i $file

                      perl -pe 's#PLATFORM\(CHROMIUM\)#0#' -i $file

                      perl -pe 's#PLATFORM\(WX\)#0#' -i $file

                      perl -pe 's#PLATFORM\(GTK\)#0#' -i $file

                      perl -pe 's#COMPILER\(MSVC\)#0#' -i $file

                      perl -pe 's#COMPILER\(MINGW\)#0#' -i $file

                      perl -pe 's#COMPILER\(GCC\)#0#' -i $file

                  end

                  perl -pe '($. == 28) && s/^/#include "DateConversion.h"\n#include "DateInstance.h"/' -i 3rdparty/javascriptcore/JavaScriptCore/runtime/DateInstanceCache.h

                  foreach file (3rdparty/javascriptcore/JavaScriptCore/runtime/*)

                      perl -pe 's#JS_EXPORTDATA#__declspec(dllexport)#' -i $file

                  end

                  gmake

               

              If you get this far you'll hit the dodgy code, but you'll have a qmake binary made. You can remove the -webkit option and it'll actually build qt I believe, but alas I need webkit

               

              ta,

              Mark