This discussion is archived
3 Replies Latest reply: Jul 9, 2013 3:44 AM by user12982757 RSS

Qt QMake is missing - Solaris 11 and Solaris Studio 12.3

912516 Newbie
Currently Being Moderated
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 Pro
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated

    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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points