qt4-x11: first attempt on 4.3
authorMichael Krelin <hacker@klever.net>
Sun, 3 Jun 2007 17:20:10 +0000 (17:20 +0000)
committerMichael Krelin <hacker@klever.net>
Sun, 3 Jun 2007 17:20:10 +0000 (17:20 +0000)
packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty [new file with mode: 0644]
packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch [new file with mode: 0644]
packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch [new file with mode: 0644]
packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch [new file with mode: 0644]
packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch [new file with mode: 0644]
packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch [new file with mode: 0644]
packages/qt/qt4-x11-free_4.3.0.bb [new file with mode: 0644]

diff --git a/packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty b/packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch b/packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch
new file mode 100644 (file)
index 0000000..42f7b55
--- /dev/null
@@ -0,0 +1,174 @@
+From 64210fec17ab819f21769e3e82bb26e9f2ccfdb4 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sun, 3 Jun 2007 18:30:37 +0200
+Subject: [PATCH] cross compile
+
+---
+ configure |  137 ++----------------------------------------------------------
+ 1 files changed, 5 insertions(+), 132 deletions(-)
+
+diff --git a/configure b/configure
+index 6b3ccd2..b3c2a52 100755
+--- a/configure
++++ b/configure
+@@ -733,7 +733,7 @@ while [ "$#" -gt 0 ]; do
+             UNKNOWN_ARG=yes
+         fi
+         ;;
+-    -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-mysql_config)
++    -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-mysql_config|-crossarch)
+         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+         shift
+         VAL="$1"
+@@ -1109,6 +1109,9 @@ while [ "$#" -gt 0 ]; do
+     xplatform)
+         XPLATFORM="$VAL"
+         ;;
++    crossarch)
++        CROSSARCH="$VAL"
++        ;;
+     debug-and-release)
+         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+             CFG_DEBUG_RELEASE="$VAL"
+@@ -2092,137 +2095,7 @@ if [ "$OPT_VERBOSE" = "yes" ]; then
+     echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
+ fi
+-if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
+-    case "$CFG_EMBEDDED" in
+-    x86)
+-        ARCH=i386
+-        ;;
+-    x86_64)
+-        ARCH=x86_64
+-        ;;
+-    ipaq|sharp)
+-        ARCH=arm
+-        ;;
+-    *)
+-        ARCH="$CFG_EMBEDDED"
+-        ;;
+-    esac
+-else
+-    case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
+-    IRIX*:*:*)
+-        ARCH=`uname -p`
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    SGI ($ARCH)"
+-        fi
+-        ;;
+-    SunOS:5*:*)
+-        case "$UNAME_MACHINE" in
+-      sun4u*|sun4v*)
+-            if [ "$OPT_VERBOSE" = "yes" ]; then
+-                echo "    Sun SPARC (sparc)"
+-            fi
+-            ARCH=sparc
+-            ;;
+-        i86pc)
+-          case "$PLATFORM" in
+-          *-64)
+-                if [ "$OPT_VERBOSE" = "yes" ]; then
+-                  echo "    64-bit AMD 80x86 (x86_64)"
+-                fi
+-                ARCH=x86_64
+-                ;;
+-          *)
+-                if [ "$OPT_VERBOSE" = "yes" ]; then
+-                  echo "    32-bit Intel 80x86 (i386)"
+-                fi
+-                ARCH=i386
+-                ;;
+-            esac
+-        esac
+-        ;;
+-    Darwin:*:*)
+-        case "$UNAME_MACHINE" in
+-            Power?Macintosh)
+-                if [ "$OPT_VERBOSE" = "yes" ]; then
+-                    echo "    32-bit Apple PowerPC (powerpc)"
+-                fi
+-                ;;
+-            x86)
+-                if [ "$OPT_VERBOSE" = "yes" ]; then
+-                    echo "    32-bit Intel 80x86 (i386)"
+-                fi
+-                ;;
+-        esac
+-        ARCH=macosx
+-        ;;
+-    AIX:*:00????????00)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-        echo "    64-bit IBM PowerPC (powerpc)"
+-        fi
+-        ARCH=powerpc
+-        ;;
+-    HP-UX:*:9000*)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    HP PA-RISC (parisc)"
+-        fi
+-        ARCH=parisc
+-        ;;
+-    *:*:i?86)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    32-bit Intel 80x86 (i386)"
+-        fi
+-        ARCH=i386
+-        ;;
+-    *:*:x86_64|*:*:amd64)
+-        if [ "$PLATFORM" = "linux-g++-32" ]; then
+-            if [ "$OPT_VERBOSE" = "yes" ]; then
+-                echo "    32 bit on 64-bit AMD 80x86 (i386)"
+-            fi
+-            ARCH=i386
+-        else
+-            if [ "$OPT_VERBOSE" = "yes" ]; then
+-                echo "    64-bit AMD 80x86 (x86_64)"
+-            fi
+-            ARCH=x86_64
+-        fi
+-        ;;
+-    *:*:ppc)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    32-bit PowerPC (powerpc)"
+-        fi
+-        ARCH=powerpc
+-        ;;
+-    *:*:ppc64)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    64-bit PowerPC (powerpc)"
+-        fi
+-        ARCH=powerpc
+-        ;;
+-    *:*:s390*)
+-      if [ "$OPT_VERBOSE" = "yes" ]; then
+-          echo "    IBM S/390 (s390)"
+-      fi
+-      ARCH=s390
+-      ;;
+-    *:*:*)
+-        if [ "$OPT_VERBOSE" = "yes" ]; then
+-            echo "    Trying '$UNAME_MACHINE'..."
+-        fi
+-        ARCH="$UNAME_MACHINE"
+-        ;;
+-    esac
+-fi
+-
+-if [ -d "$relpath/src/corelib/arch/$ARCH" ]; then
+-    if [ "$OPT_VERBOSE" = "yes" ]; then
+-        echo "    '$ARCH' is supported"
+-    fi
+-else
+-    if [ "$OPT_VERBOSE" = "yes" ]; then
+-        echo "    '$ARCH' is unsupported, using 'generic'"
+-    fi
+-    ARCH=generic
+-fi
++ARCH="$CROSSARCH"
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+         echo "System architecture: '$ARCH'"
+-- 
+1.5.0.7
+
diff --git a/packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch b/packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch
new file mode 100644 (file)
index 0000000..e479a64
--- /dev/null
@@ -0,0 +1,25 @@
+From acfeb18aa94bad6b2066e91cd15570889baaa252 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sat, 2 Jun 2007 16:04:01 +0200
+Subject: [PATCH] fix resinit declaration
+
+---
+ src/qt3support/network/q3dns.cpp |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/qt3support/network/q3dns.cpp b/src/qt3support/network/q3dns.cpp
+index 9bc7b16..bfc333e 100644
+--- a/src/qt3support/network/q3dns.cpp
++++ b/src/qt3support/network/q3dns.cpp
+@@ -30,7 +30,7 @@
+ # include <netinet/in.h>
+ # include <arpa/nameser.h>
+ # include <resolv.h>
+-extern "C" int res_init();
++extern "C" int res_init() throw();
+ #endif
+ // POSIX Large File Support redefines open -> open64
+-- 
+1.5.0.7
+
diff --git a/packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch b/packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch
new file mode 100644 (file)
index 0000000..5412c90
--- /dev/null
@@ -0,0 +1,25 @@
+From 03cbda241413e4ae727b2a92ff452162aa7ad440 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sat, 2 Jun 2007 16:06:01 +0200
+Subject: [PATCH] no tools
+
+---
+ src/src.pro |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/src.pro b/src/src.pro
+index 6e08180..957d3dc 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -3,7 +3,7 @@ TEMPLATE = subdirs
+ # this order is important
+ unset(SRC_SUBDIRS)
+ win32:SRC_SUBDIRS += src_winmain
+-SRC_SUBDIRS += src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_gui src_sql src_network src_svg src_script
++SRC_SUBDIRS += src_corelib src_xml src_gui src_sql src_network src_svg src_script
+ contains(QT_CONFIG, opengl): SRC_SUBDIRS += src_opengl
+ contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
+ !cross_compile {
+-- 
+1.5.0.7
+
diff --git a/packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch b/packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch
new file mode 100644 (file)
index 0000000..359f6df
--- /dev/null
@@ -0,0 +1,25 @@
+From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sat, 2 Jun 2007 16:06:59 +0200
+Subject: [PATCH] no qmake
+
+---
+ configure |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index b3c2a52..1901e57 100755
+--- a/configure
++++ b/configure
+@@ -3271,7 +3271,7 @@ END {
+ }
+ # build qmake
+-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
++if false; then ###[ '!' -f "$outpath/bin/qmake" ];
+     echo "Creating qmake. Please wait..."
+     OLD_QCONFIG_H=
+-- 
+1.5.0.7
+
diff --git a/packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch b/packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch
new file mode 100644 (file)
index 0000000..9369269
--- /dev/null
@@ -0,0 +1,123 @@
+From aa0377910cfd8d0fce6bdc9355994a4e267b1696 Mon Sep 17 00:00:00 2001
+From: Michael Krelin <hacker@klever.net>
+Date: Sat, 2 Jun 2007 16:39:58 +0200
+Subject: [PATCH] fix mkspecs
+
+---
+ mkspecs/common/g++.conf   |   18 +++++++++---------
+ mkspecs/common/linux.conf |   26 +++++++++++++-------------
+ 2 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/mkspecs/common/g++.conf b/mkspecs/common/g++.conf
+index f5a5c8e..4007c7e 100644
+--- a/mkspecs/common/g++.conf
++++ b/mkspecs/common/g++.conf
+@@ -2,12 +2,12 @@
+ # qmake configuration for common gcc
+ #
+-QMAKE_CC              = gcc
+-QMAKE_CFLAGS          += -pipe
++QMAKE_CC              = $(OE_QMAKE_CC)
++QMAKE_CFLAGS          += -pipe $(OE_QMAKE_CFLAGS)
+ QMAKE_CFLAGS_DEPS     += -M
+ QMAKE_CFLAGS_WARN_ON  += -Wall -W
+ QMAKE_CFLAGS_WARN_OFF += -w
+-QMAKE_CFLAGS_RELEASE  += -O2
++QMAKE_CFLAGS_RELEASE  += -O2 
+ QMAKE_CFLAGS_DEBUG    += -g
+ QMAKE_CFLAGS_SHLIB    += -fPIC
+ QMAKE_CFLAGS_STATIC_LIB       += -fPIC
+@@ -16,8 +16,8 @@ QMAKE_CFLAGS_HIDESYMS   += -fvisibility=hidden
+ QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
+-QMAKE_CXX             = g++
+-QMAKE_CXXFLAGS                += $$QMAKE_CFLAGS
++QMAKE_CXX             = $(OE_QMAKE_CXX)
++QMAKE_CXXFLAGS                += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS)
+ QMAKE_CXXFLAGS_DEPS   += $$QMAKE_CFLAGS_DEPS
+ QMAKE_CXXFLAGS_WARN_ON        += $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_CXXFLAGS_WARN_OFF       += $$QMAKE_CFLAGS_WARN_OFF
+@@ -30,9 +30,9 @@ QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
+ QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+ QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-QMAKE_LINK            = g++
+-QMAKE_LINK_SHLIB      = g++
+-QMAKE_LFLAGS          +=
++QMAKE_LINK            = $(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB      = $(OE_QMAKE_LINK)
++QMAKE_LFLAGS          += $(OE_QMAKE_LDFLAGS)
+ QMAKE_LFLAGS_RELEASE  +=
+ QMAKE_LFLAGS_DEBUG    +=
+ QMAKE_LFLAGS_APP      +=
+@@ -40,7 +40,7 @@ QMAKE_LFLAGS_SHLIB   += -shared
+ QMAKE_LFLAGS_PLUGIN   += $$QMAKE_LFLAGS_SHLIB
+ QMAKE_LFLAGS_SONAME   += -Wl,-soname,
+ QMAKE_LFLAGS_THREAD   +=
+-QMAKE_RPATH           = -Wl,-rpath,
++QMAKE_RPATH           = -Wl,-rpath-link,
+ QMAKE_PCH_OUTPUT_EXT    = .gch
+diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
+index 3796a87..52acf16 100644
+--- a/mkspecs/common/linux.conf
++++ b/mkspecs/common/linux.conf
+@@ -7,26 +7,26 @@ QMAKE_CXXFLAGS_THREAD        += $$QMAKE_CFLAGS_THREAD
+ QMAKE_INCDIR          =
+ QMAKE_LIBDIR          =
+-QMAKE_INCDIR_X11      = /usr/X11R6/include
+-QMAKE_LIBDIR_X11      = /usr/X11R6/lib
+-QMAKE_INCDIR_QT       = $$[QT_INSTALL_HEADERS]
+-QMAKE_LIBDIR_QT       = $$[QT_INSTALL_LIBS]
+-QMAKE_INCDIR_OPENGL   = /usr/X11R6/include
+-QMAKE_LIBDIR_OPENGL   = /usr/X11R6/lib
++QMAKE_INCDIR_X11      = 
++QMAKE_LIBDIR_X11      = 
++QMAKE_INCDIR_QT       = $(OE_QMAKE_INCDIR_QT)
++QMAKE_LIBDIR_QT       = $(OE_QMAKE_LIBDIR_QT)
++QMAKE_INCDIR_OPENGL   = 
++QMAKE_LIBDIR_OPENGL   = 
+ QMAKE_LIBS            =
+ QMAKE_LIBS_DYNLOAD    = -ldl
+-QMAKE_LIBS_X11        = -lXext -lX11 -lm
+-QMAKE_LIBS_X11SM      = -lSM -lICE
++QMAKE_LIBS_X11        = $(OE_QMAKE_LIBS_X11)
++QMAKE_LIBS_X11SM      = $(OE_QMAKE_LIBS_X11SM)
+ QMAKE_LIBS_NIS        = -lnsl
+ QMAKE_LIBS_OPENGL     = -lGLU -lGL
+ QMAKE_LIBS_OPENGL_QT  = -lGL
+ QMAKE_LIBS_THREAD     = -lpthread
+-QMAKE_MOC             = $$[QT_INSTALL_BINS]/moc
+-QMAKE_UIC             = $$[QT_INSTALL_BINS]/uic
++QMAKE_MOC             = $(OE_QMAKE_MOC)
++QMAKE_UIC             = $(OE_QMAKE_UIC)
+-QMAKE_AR              = ar cqs
++QMAKE_AR              = $(OE_QMAKE_AR) cqs
+ QMAKE_RANLIB          =
+ QMAKE_TAR             = tar -cf
+@@ -38,11 +38,11 @@ QMAKE_COPY_DIR        = $(COPY) -r
+ QMAKE_MOVE            = mv -f
+ QMAKE_DEL_FILE        = rm -f
+ QMAKE_DEL_DIR         = rmdir
+-QMAKE_STRIP           = strip
++QMAKE_STRIP           = $(OE_QMAKE_STRIP)
+ QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+ QMAKE_CHK_DIR_EXISTS  = test -d
+ QMAKE_MKDIR           = mkdir -p
+ QMAKE_INSTALL_FILE    = install -m 644 -p
+ QMAKE_INSTALL_PROGRAM = install -m 755 -p
+-include(unix.conf)
+\ No newline at end of file
++include(unix.conf)
+-- 
+1.5.0.7
+
diff --git a/packages/qt/qt4-x11-free_4.3.0.bb b/packages/qt/qt4-x11-free_4.3.0.bb
new file mode 100644 (file)
index 0000000..ee4f8e4
--- /dev/null
@@ -0,0 +1,168 @@
+SECTION = "x11/libs"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+LICENSE = "GPL QPL"
+DEPENDS = "uicmoc4-native qmake2-native freetype jpeg virtual/libx11 xft libxext libxrender libxrandr libxcursor dbus"
+PROVIDES = "qt4x11"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz \
+           file://0001-cross-compile.patch;patch=1 \
+           file://0002-fix-resinit-declaration.patch;patch=1 \
+           file://0003-no-tools.patch;patch=1 \
+           file://0004-no-qmake.patch;patch=1 \
+           file://0005-fix-mkspecs.patch;patch=1"
+S = "${WORKDIR}/qt-x11-opensource-src-${PV}"
+
+PARALLEL_MAKE = ""
+
+inherit qmake-base qt4x11 pkgconfig
+
+export QTDIR = "${S}"
+STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4"
+EXTRA_OEMAKE = "-e"
+
+def qt_arch(d):
+       import bb, re
+       arch = bb.data.getVar('TARGET_ARCH', d, 1)
+       if re.match("^i.86$", arch):
+               arch = "x86"
+       elif re.match("^arm.*", arch):
+               arch = "arm"
+       elif arch == "x86_64":
+               arch = "x86"
+       elif arch == "mipsel":
+               arch = "mips"
+       return arch
+
+QT_ARCH := "${@qt_arch(d)}"
+
+# FIXME:
+# * add missing options
+QT_CONFIG_FLAGS = "-release -shared -qt-zlib -system-libjpeg -no-nas-sound -no-sm -no-libmng -qt-libpng -no-gif -no-xinerama \
+                   -no-tablet -no-xkb -no-nis -no-cups -no-opengl \
+                   -no-sse -no-sse2 -no-mmx -no-3dnow \
+                   -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \
+                  -qdbus \
+                   -verbose -stl -no-accessibility"
+
+EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake2 -after DEFINES+=QT_NO_XIM INCPATH+=${STAGING_INCDIR} \
+             INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
+             QMAKESPEC="${QMAKESPEC}" LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
+             AR="${TARGET_PREFIX}ar cqs" \
+             MOC="${STAGING_BINDIR_NATIVE}/moc4" UIC="${STAGING_BINDIR_NATIVE}/uic4" MAKE="make -e"'
+
+do_configure() {
+       echo "DEFINES -= QT_NO_CAST_TO_ASCII" >>src/qbase.pri
+       echo "DEFINES += QT_NO_XIM" >>src/qbase.pri
+       unset QMAKESPEC
+       ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
+       ln -sf ./linux-g++ mkspecs/linux-gnueabi-g++
+       #export QMAKESPEC="linux-oe-g++"
+       #rm -rf ./mkspecs
+       #ln -sf ${QMAKE_MKSPEC_PATH} ./mkspecs
+       echo yes | ./configure -prefix / -platform ${TARGET_OS}-g++ -crossarch ${QT_ARCH} ${QT_CONFIG_FLAGS} -fast \
+               -L${STAGING_LIBDIR} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/mysql
+}
+
+# FIXME: Might want to compile the cross tools for the -dev packages as well...
+do_compile() {
+       unset CFLAGS CXXFLAGS
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${S}/bin/rcc
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${S}/bin/moc
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${S}/bin/uic
+
+       oe_runmake ${EXTRA_ENV}
+
+       # FIXME: this is not the way to go, I think.
+       for pc in ${S}/lib/*.pc ; do
+               sed -i \
+                       -e 's,-L${S}/lib,,g' \
+                       -e 's,^moc_location=.*,^moc_location=${TARGING_BINDIR}/moc4,g' \
+                       -e 's,^uic_location=.*,^moc_location=${TARGING_BINDIR}/uic4,g' \
+                       $pc
+       done
+}
+
+PARTS = "3Support AssistantClient Core DBus Designer DesignerComponents Gui Network Script Sql Svg Test Xml"
+
+do_stage() {
+       oe_runmake install INSTALL_ROOT=/
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${STAGING_QT_DIR}/bin/rcc
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${STAGING_QT_DIR}/bin/moc
+       install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${STAGING_QT_DIR}/bin/uic
+}
+
+# FIXME: Might want to call oe_runmake install INSTALL_ROOT=${D}/${prefix} as well...
+# FIXME: Might want to install everything into ${libdir}/qt4/* to match the usual packing...
+do_install() {
+       install -d ${D}${libdir}
+       install -d ${D}${bindir}
+       install -d ${D}${includedir}
+       for part in ${PARTS}
+       do
+               oe_libinstall -so -C lib libQt$part ${D}${libdir}
+       done
+       oe_libinstall -a -C lib libQtUiTools ${STAGING_QT_DIR}
+       cp -pPR include/* ${D}${includedir}
+       cp -pPR plugins ${D}${libdir}
+       cp -pPR bin/* ${D}${bindir}
+
+       install -d ${D}${bindir}/qt4-examples
+       for binary in `find examples -perm 0755 -type f`
+       do
+               install -m 0755 $binary ${D}${bindir}/qt4-examples/
+       done
+       install -d ${D}${bindir}/qt4-demos
+       for binary in `find demos -perm 0755 -type f`
+       do
+               install -m 0755 $binary ${D}${bindir}/qt4-demos/
+       done
+}
+
+QTPACKAGES = "libqtcore4 libqtgui4 libqtnetwork4 libqtsql4 libqtsvg4 libqttest4 libqtxml4 \
+             libqtdesigner4 libqtdesignercomponents4 libqt3support4 \
+            libqtassistantclient4 libqtscript4 libqtdbus4 \
+             qt4-assistant qt4-common qt4-designer qt4-demos qt4-examples qt4-linguist \
+            qt4-pixeltool qt4-dbus \
+             qt4-plugins-accessible qt4-plugins-codecs qt4-plugins-designer qt4-plugins-imageformats qt4-plugins-sqldrivers \
+            qt4-plugins-inputmethods qt4-plugins-iconengines"
+PACKAGES += "${QTPACKAGES}"
+
+ALLOW_EMPTY = "1"
+FILES_${PN} = ""
+RDEPENDS_${PN} = "${QTPACKAGES}"
+
+FILES_libqtcore4               = "${libdir}/libQtCore.so.*"
+FILES_libqtgui4                = "${libdir}/libQtGui.so.*"
+FILES_libqtnetwork4            = "${libdir}/libQtNetwork.so.*"
+FILES_libqtsql4                = "${libdir}/libQtSql.so.*"
+FILES_libqtsvg4                = "${libdir}/libQtSvg.so.*"
+FILES_libqttest4               = "${libdir}/libQtTest.so.*"
+FILES_libqtxml4                = "${libdir}/libQtXml.so.*"
+FILES_libqtdesigner4           = "${libdir}/libQtDesigner.so.*"
+FILES_libqtdesignercomponents4 = "${libdir}/libQtDesignerComponents.so.*"
+FILES_libqt3support4           = "${libdir}/libQt3Support.so.*"
+FILES_libqtassistantclient4    = "${libdir}/libQtAssistantClient.so.*"
+FILES_libqtscript4            = "${libdir}/libQtScript.so.*"
+FILES_libqtdbus4              = "${libdir}/libQtDBus.so.*"
+
+FILES_qt4-plugins-accessible   = "${libdir}/plugins/accessible/*.so"
+FILES_qt4-plugins-codecs       = "${libdir}/plugins/codecs/*.so"
+FILES_qt4-plugins-designer     = "${libdir}/plugins/designer/*.so"
+FILES_qt4-plugins-imageformats = "${libdir}/plugins/imageformats/*.so"
+FILES_qt4-plugins-sqldrivers   = "${libdir}/plugins/sqldrivers/*.so"
+FILES_qt4-plugins-inputmethods = "${libdir}/plugins/inputmethods/*.so"
+FILES_qt4-plugins-iconengines  = "${libdir}/plugins/iconengines/*.so"
+
+FILES_qt4-assistant            = "${bindir}/*assistant*"
+FILES_qt4-designer             = "${bindir}/*designer*"
+FILES_qt4-linguist             = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/qm2ts"
+FILES_qt4-pixeltool           = "${bindir}/pixeltool"
+FILES_qt4-dbus                = "${bindir}/qdbus ${bindir}/qdbusxml2cpp ${bindir}/qdbuscpp2xml ${bindir}/qdbusviewer"
+
+FILES_qt4-common               = "${bindir}/qtconfig"
+FILES_qt4-examples             = "${bindir}/qt4-examples/*"
+FILES_qt4-demos                = "${bindir}/qtdemo ${bindir}/qt4-demos/*"
+
+FILES_${PN}-dev               += "${bindir}/rcc ${bindir}/uic* ${bindir}/moc ${bindir}/qmake ${bindir}/syncqt \
+                                  ${bindir}/qt3to4 ${bindir}/findtr"