From 13ef97f5802842ff7e533ec6d14f4ead1c051c72 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 9 Sep 2005 03:14:28 +0000 Subject: QTE by Allan Clark Bug 391 --- package/Config.in | 1 + package/qte/Config.in | 262 +++++++++++++++++++++ package/qte/qte.mk | 251 ++++++++++++++++++++ .../qte/qtopia-2.1.1-no-programinvocation.patch | 24 ++ 4 files changed, 538 insertions(+) create mode 100644 package/qte/Config.in create mode 100644 package/qte/qte.mk create mode 100644 package/qte/qtopia-2.1.1-no-programinvocation.patch diff --git a/package/Config.in b/package/Config.in index 091e0571f..588abdc0e 100644 --- a/package/Config.in +++ b/package/Config.in @@ -92,6 +92,7 @@ source "package/portmap/Config.in" source "package/pppd/Config.in" source "package/procps/Config.in" source "package/python/Config.in" +source "package/qte/Config.in" source "package/raidtools/Config.in" source "package/readline/Config.in" source "package/rsync/Config.in" diff --git a/package/qte/Config.in b/package/qte/Config.in new file mode 100644 index 000000000..d523ccf8d --- /dev/null +++ b/package/qte/Config.in @@ -0,0 +1,262 @@ +config BR2_PACKAGE_QTE + bool "Qt/E" + default n + select BR2_INSTALL_LIBSTDCPP + select BR2_PTHREADS_NATIVE + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBPNG + help + Trolltech's Qt/Embedded, which offers the same APIs used in building desktop applications tailored to a smaller footprint. + + http://trolltech.com/ + + Only tested with threading on, PACKAGE_JPEG, PACKAGE_LIBPNG, but remove those if you like. + + +config BR2_PACKAGE_QTE_COMMERCIAL_USERNAME + string "Qt/E Commercial License Username" + default "" + depends BR2_PACKAGE_QTE + help + Commercial users can download their source directly by providing a username. I do not mean this to be a political or economic statement, just a convenience function + + +config BR2_PACKAGE_QTE_COMMERCIAL_PASSWORD + string "Qt/E Commercial License Password" + default "" + depends BR2_PACKAGE_QTE + help + Commercial users can download their source directly by providing a password. I do not mean this to be a political or economic statement, just a convenience function + + +choice + prompt "Qt/E Version" + default BR2_QTE_VERSION_2_3_11 + depends BR2_PACKAGE_QTE + help + Select the version of Qt/E you wish to use. + + config BR2_QTE_VERSION_2_3_8 + bool "Qt/E 2.3.8" + + config BR2_QTE_VERSION_2_3_9 + bool "Qt/E 2.3.9" + + config BR2_QTE_VERSION_2_3_10 + bool "Qt/E 2.3.10" + + config BR2_QTE_VERSION_2_3_11 + bool "Qt/E 2.3.11" + +endchoice + +config BR2_QTE_VERSION + string + default "2.3.8" if BR2_QTE_VERSION_2_3_8 + default "2.3.9" if BR2_QTE_VERSION_2_3_9 + default "2.3.10" if BR2_QTE_VERSION_2_3_10 + default "2.3.11" if BR2_QTE_VERSION_2_3_11 + + +config BR2_PACKAGE_QTE_QVFB + bool "QVfb" + default n + depends BR2_PACKAGE_QTE + help + Trolltech provides a Virtual Framebuffer used to simulate the embedded device during development + + http://trolltech.com/ + +choice + prompt "QVfb Version" + default BR2_QTE_QVFB_VERSION_2_3_2 + depends BR2_PACKAGE_QTE_QVFB + help + Select the version of QVfb you wish to use. + + config BR2_QTE_QVFB_VERSION_2_3_2 + bool "QVfb 2.3.2" + + config BR2_QTE_QVFB_VERSION_2_3_9 + bool "QVfb 2.3.9" + +endchoice + +config BR2_QTE_QVFB_VERSION + string + default "2.3.2" if BR2_QTE_QVFB_VERSION_2_3_2 + default "2.3.9" if BR2_QTE_QVFB_VERSION_2_3_9 + + + +config BR2_PACKAGE_QTE_QT3 + bool "Qt/E-3.3.x for Qtopia build" + default n + depends BR2_PACKAGE_QTE_QTOPIA + help + Qtopia requires a Qt/E version >= 3.3.0; when using a Qt/E-2.3.x on the runtime, Qtopia still needs a Qt/E-3.3.x codebase to build + + http://trolltech.com/ + +choice + prompt "QT/E v3 Version" + default BR2_QTE_QT3_VERSION_3_3_4 + depends BR2_PACKAGE_QTE_QT3 + help + Select the version of QVfb you wish to use. + + config BR2_QTE_QT3_VERSION_3_3_4 + bool "Qt/E 3.3.4" + + config BR2_QTE_QT3_VERSION_3_3_3 + bool "Qt/E 3.3.3" + +endchoice + +config BR2_QTE_QT3_VERSION + string + default "3.3.4" if BR2_QTE_QT3_VERSION_3_3_4 + default "3.3.3" if BR2_QTE_QT3_VERSION_3_3_3 + + +config BR2_PACKAGE_QTE_QTOPIA + bool "Qtopia" + default n + depends BR2_PACKAGE_QTE + help + Qtopia defines some more advanced components used for mobile devices + + http://trolltech.com/ + +choice + prompt "Qtopia Version" + default BR2_QTE_QTOPIA_VERSION_2_1_2 + depends BR2_PACKAGE_QTE_QTOPIA + help + Select the version of Qtopia you wish to use. + + config BR2_QTE_QTOPIA_VERSION_2_1_1 + bool "Qtopia 2.1.1" + + config BR2_QTE_QTOPIA_VERSION_2_1_2 + bool "Qtopia 2.1.2" + +endchoice + +config BR2_QTE_QTOPIA_VERSION + string + default "2.1.1" if BR2_QTE_QTOPIA_VERSION_2_1_1 + default "2.1.2" if BR2_QTE_QTOPIA_VERSION_2_1_2 + +config BR2_QTE_TMAKE_VERSION + string + default "1.13" + +# generated from: +# ls ~/src/buildroot/build_arm/qt-2.3.10/configs/*-static|cut -c56-|sed -e 's/-static//g'|\ +# awk '{BR="BR2_QTE_CROSS_"toupper($1); gsub("-","_",BR); gsub("+","P",BR); printf"\tconfig %s\n\t\tbool \"%s\"\n\n",BR,$1}' + +choice + prompt "Qt/E Cross-Compiler Target Platform" + default BR2_QTE_CROSS_LINUX_ARM_GPP + depends BR2_PACKAGE_QTE + help + Select the Qt cross-platform string for your build + + config BR2_QTE_CROSS_CYGWIN_ARM_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-cygwin-arm-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "cygwin-arm-g++" + + config BR2_QTE_CROSS_CYGWIN_IPAQ_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-cygwin-ipaq-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "cygwin-ipaq-g++" + + config BR2_QTE_CROSS_CYGWIN_SHARP_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-cygwin-sharp-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "cygwin-sharp-g++" + + config BR2_QTE_CROSS_FREEBSD_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-freebsd-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "freebsd-g++" + + config BR2_QTE_CROSS_LINUX_ARM_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-linux-arm-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "linux-arm-g++" + + config BR2_QTE_CROSS_LINUX_CASSIOPEIA_GPP + bool "linux-cassiopeia-g++" + + config BR2_QTE_CROSS_LINUX_GENERIC_GPP + bool "linux-generic-g++" + + config BR2_QTE_CROSS_LINUX_INNOVATOR_GPP + bool "linux-innovator-g++" + + config BR2_QTE_CROSS_LINUX_IPAQ_GPP + bool "linux-ipaq-g++" + + config BR2_QTE_CROSS_LINUX_KOALA_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-linux-koala-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "linux-koala-g++" + + config BR2_QTE_CROSS_LINUX_MIPS_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-linux-mips-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "linux-mips-g++" + + config BR2_QTE_CROSS_LINUX_SH3_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-linux-sh3-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "linux-sh3-g++" + + config BR2_QTE_CROSS_LINUX_SHARP_GPP + bool "linux-sharp-g++" + + config BR2_QTE_CROSS_LINUX_X86_GPP + bool "linux-x86-g++" + + config BR2_QTE_CROSS_QNX_RTP_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-qnx-rtp-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "qnx-rtp-g++" + + config BR2_QTE_CROSS_SOLARIS_GPP + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-solaris-g++.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "solaris-g++" + + config BR2_QTE_CROSS_WIN32_MSVC + # qtopia-phone does not have this platform in qtopia-phone-2.1.1/src/libraries/qtopia/custom-win32-msvc.{cpp,h} + depends !BR2_PACKAGE_QTE_QTOPIA + bool "win32-msvc" + +endchoice + +config BR2_QTE_CROSS_PLATFORM + string +# generated from: +# ls ~/src/buildroot/build_arm/qt-2.3.10/configs/*-static|cut -c56-|sed -e 's/-static//g'|\ +# awk '{BR="BR2_QTE_CROSS_"toupper($1); gsub("-","_",BR); gsub("+","P",BR); printf"\tdefault \"%s\"\tif %s\n",$1,BR}' + default "cygwin-arm-g++" if BR2_QTE_CROSS_CYGWIN_ARM_GPP + default "cygwin-ipaq-g++" if BR2_QTE_CROSS_CYGWIN_IPAQ_GPP + default "cygwin-sharp-g++" if BR2_QTE_CROSS_CYGWIN_SHARP_GPP + default "freebsd-g++" if BR2_QTE_CROSS_FREEBSD_GPP + default "linux-arm-g++" if BR2_QTE_CROSS_LINUX_ARM_GPP + default "linux-cassiopeia-g++" if BR2_QTE_CROSS_LINUX_CASSIOPEIA_GPP + default "linux-generic-g++" if BR2_QTE_CROSS_LINUX_GENERIC_GPP + default "linux-innovator-g++" if BR2_QTE_CROSS_LINUX_INNOVATOR_GPP + default "linux-ipaq-g++" if BR2_QTE_CROSS_LINUX_IPAQ_GPP + default "linux-koala-g++" if BR2_QTE_CROSS_LINUX_KOALA_GPP + default "linux-mips-g++" if BR2_QTE_CROSS_LINUX_MIPS_GPP + default "linux-sh3-g++" if BR2_QTE_CROSS_LINUX_SH3_GPP + default "linux-sharp-g++" if BR2_QTE_CROSS_LINUX_SHARP_GPP + default "linux-x86-g++" if BR2_QTE_CROSS_LINUX_X86_GPP + default "qnx-rtp-g++" if BR2_QTE_CROSS_QNX_RTP_GPP + default "solaris-g++" if BR2_QTE_CROSS_SOLARIS_GPP + default "win32-msvc" if BR2_QTE_CROSS_WIN32_MSVC diff --git a/package/qte/qte.mk b/package/qte/qte.mk new file mode 100644 index 000000000..a17758afc --- /dev/null +++ b/package/qte/qte.mk @@ -0,0 +1,251 @@ +############################################################# +# +# qte: Qt/E build, includes Qt/E-2, QVfb, and Qtopia-2 +# +############################################################# +BR2_QTE_C_QTE_VERSION:=$(shell echo $(BR2_QTE_VERSION)| sed -e 's/"//g') +BR2_QTE_C_QT3_VERSION:=$(shell echo $(BR2_QTE_QT3_VERSION)| sed -e 's/"//g') +BR2_QTE_C_QVFB_VERSION:=$(shell echo $(BR2_QTE_QVFB_VERSION)| sed -e 's/"//g') +BR2_QTE_C_QTOPIA_VERSION:=$(shell echo $(BR2_QTE_QTOPIA_VERSION)| sed -e 's/"//g') +BR2_QTE_C_TMAKE_VERSION:=$(shell echo $(BR2_QTE_TMAKE_VERSION)| sed -e 's/"//g') +BR2_QTE_C_USERNAME:=$(shell echo $(BR2_PACKAGE_QTE_COMMERCIAL_USERNAME)| sed -e 's/"//g') +BR2_QTE_C_PASSWORD:=$(shell echo $(BR2_PACKAGE_QTE_COMMERCIAL_PASSWORD)| sed -e 's/"//g') +QTE_QTE_SOURCE:=qt-embedded-$(BR2_QTE_C_QTE_VERSION)-commercial.tar.gz +QTE_QT3_SOURCE:=qt-$(BR2_QTE_C_QT3_VERSION)-commercial.tar.gz +QTE_TMAKE_SOURCE:=tmake-$(BR2_QTE_C_TMAKE_VERSION).tar.gz +QTE_QVFB_SOURCE:=qt-x11-$(BR2_QTE_C_QVFB_VERSION)-commercial.tar.gz +QTE_QTOPIA_SOURCE:=qtopia-phone-source-$(BR2_QTE_C_QTOPIA_VERSION).tar.gz +QTE_SITE:=http://$(BR2_QTE_C_USERNAME):$(BR2_QTE_C_PASSWORD)@dist.trolltech.com/$(BR2_QTE_C_USERNAME) +QTE_QTE_DIR:=$(BUILD_DIR)/qt-$(BR2_QTE_C_QTE_VERSION) +QTE_QT3_DIR:=$(BUILD_DIR)/qt-$(BR2_QTE_C_QT3_VERSION) +QTE_TMAKE_DIR:=$(BUILD_DIR)/tmake-$(BR2_QTE_C_TMAKE_VERSION) +QTE_QVFB_DIR:=$(BUILD_DIR)/qt-$(BR2_QTE_C_QVFB_VERSION) +QTE_QTOPIA_DIR:=$(BUILD_DIR)/qtopia-phone-$(BR2_QTE_C_QTOPIA_VERSION) + +QTE_CAT:=zcat +TMAKE:=$(QTE_TMAKE_DIR)/bin/tmake +QTE_UIC_BINARY:=bin/uic +QTE_QVFB_BINARY:=bin/qvfb +QTE_QTE_LIB:=$(QTE_QTE_DIR)/lib/libqte-mt.so.$(BR2_QTE_C_QTE_VERSION) +#QTE_QTE_LIB:=$(TARGET_DIR)/lib/libqte-mt.so.$(BR2_QTE_C_QTE_VERSION) +QTE_QTOPIA_FILE:=$(QTE_QTOPIA_DIR)/bin/qpe +QTE_QTOPIA_IFILE:=$(QTE_QTOPIA_DIR)/opt/Qtopia/bin/qpe + +#export QT2DIR=$(pwd)/qt-2.3.2 +#export QT3DIR=$(pwd)/qt-%{qt_version} +#export QTEDIR=$(pwd)/qt-%{qte_version} +#export QPEDIR=$(pwd) + +############################################################# +# +# Calculate configure options... scary eventually, trivial now +# +# currently only tested with threading +# FIXME: I should use the staging directory here, but I don't yet. +# +############################################################# +# I choose to make the link in libqte so that the linking later is trivial -- a user may choose to use -luuid, or not, and it'll just work. +# ...since libqte* needs -luuid anyhow... +QTE_QTE_CONFIGURE:=-no-xft -L$(E2FSPROGS_DIR)/lib -luuid +QTE_QVFB_CONFIGURE:=-no-xft +QTE_QTOPIA_CONFIGURE:= +QTE_QT3_CONFIGURE:= + +ifeq ($(BR2_PTHREADS_NATIVE),y) +QTE_QTE_CONFIGURE:=$(QTE_QTE_CONFIGURE) -thread +QTE_QVFB_CONFIGURE:=$(QTE_QVFB_CONFIGURE) -thread +QTE_QTOPIA_CONFIGURE:=$(QTE_QTOPIA_CONFIGURE) -thread +QTE_QT3_CONFIGURE:=$(QTE_QT3_CONFIGURE) -thread +endif + +ifeq ($(BR2_PACKAGE_JPEG),y) +QTE_QTE_CONFIGURE:=$(QTE_QTE_CONFIGURE) -system-jpeg +#FIXME: Do I need an else on this? +endif + +ifeq ($(BR2_PACKAGE_LIBPNG),y) +QTE_QTE_CONFIGURE:=$(QTE_QTE_CONFIGURE) -system-libpng +else +QTE_QTE_CONFIGURE:=$(QTE_QTE_CONFIGURE) -qt-libpng +endif + +# as of 2005-08-17's snapshot, uClibc's pthread does NOT support pthread_yield, which is needed +# for ffmpeg's qtopia-phone-2.1.1/src/3rdparty/plugins/codecs/libffmpeg/mediapacketbuffer.h:230 +# (also called at line 232). ...so we have to disable ffmpeg +QTE_QTOPIA_CONFIGURE:=$(QTE_QTOPIA_CONFIGURE) -without-libffmpeg + +QTE_QTOPIA_CONFIGURE:=$(QTE_QTOPIA_CONFIGURE) -L $(E2FSPROGS_DIR)/lib -I $(E2FSPROGS_DIR)/lib -luuid + +############################################################# +# +# Build portion +# +############################################################# + +ifneq ($(BR2_QTE_C_QTE_VERSION),$(BR2_QTE_C_QT3_VERSION)) +$(DL_DIR)/$(QTE_QT3_SOURCE): + $(WGET) -P $(DL_DIR) $(QTE_SITE)/$(@F) +endif + +$(DL_DIR)/$(QTE_QTE_SOURCE) $(DL_DIR)/$(QTE_QVFB_SOURCE) $(DL_DIR)/$(QTE_QTOPIA_SOURCE): + $(WGET) -P $(DL_DIR) $(QTE_SITE)/$(@F) + +$(QTE_TMAKE_DIR)/.unpacked: $(DL_DIR)/$(QTE_TMAKE_SOURCE) + $(QTE_CAT) $(DL_DIR)/$(QTE_TMAKE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $@ + +ifneq ($(BR2_QTE_C_QTE_VERSION),$(BR2_QTE_C_QT3_VERSION)) + $(QTE_QT3_DIR)/.unpacked: $(DL_DIR)/$(QTE_QT3_SOURCE) + $(QTE_CAT) $(DL_DIR)/$(QTE_QT3_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $@ +endif + + $(QTE_QTE_DIR)/.unpacked: $(DL_DIR)/$(QTE_QTE_SOURCE) + $(QTE_CAT) $(DL_DIR)/$(QTE_QTE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $@ + +$(QTE_QVFB_DIR)/.unpacked: $(DL_DIR)/$(QTE_QVFB_SOURCE) + $(QTE_CAT) $(DL_DIR)/$(QTE_QVFB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $@ + +$(QTE_QTOPIA_DIR)/.unpacked: $(DL_DIR)/$(QTE_QTOPIA_SOURCE) + $(QTE_CAT) $(DL_DIR)/$(QTE_QTOPIA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + # Allow patches -- copy from busybox usage of kernel patcher + toolchain/patch-kernel.sh $(@D) package/qte qtopia-$(BR2_QTE_C_QTOPIA_VERSION)-\*.patch + touch $@ + + +# currently, this assumes that Qtopis is always involved. The dependency fails and the cp is wrong if Qtopis is not selected. +# I'll fix that later. +$(QTE_QTE_DIR)/.configured: $(QTE_QTE_DIR)/.unpacked $(QTE_TMAKE_DIR)/.unpacked $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) $(QTE_QTE_DIR)/$(QTE_QVFB_BINARY) $(QTE_QTOPIA_DIR)/.unpacked + cp $(QTE_QTOPIA_DIR)/src/qt/qconfig-qpe.h $(QTE_QTE_DIR)/src/tools/ + (cd $(@D); export QTDIR=`pwd`; export TMAKEPATH=$(QTE_TMAKE_DIR)/lib/qws/linux-x86-g++; export PATH=$(STAGING_DIR)/bin:$$QTDIR/bin:$$PATH; export LD_LIBRARY_PATH=$$QTDIR/lib:$$LD_LIBRARY_PATH; echo 'yes' | \ + $(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD=$(HOSTCC) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + $(QTE_QTE_CONFIGURE) -qconfig qpe -keypad-mode -qvfb -depths 4,8,16,32 -xplatform $(BR2_QTE_CROSS_PLATFORM) \ + ); + touch $@ + +ifneq ($(BR2_QTE_C_QTE_VERSION),$(BR2_QTE_C_QT3_VERSION)) +# this is a host-side build, so we don't use any staging dir stuff, nor any TARGET_CONFIGURE_OPTS +$(QTE_QT3_DIR)/.configured: $(QTE_QT3_DIR)/.unpacked $(QTE_TMAKE_DIR)/.unpacked + (cd $(@D); export QTDIR=`pwd`; export TMAKEPATH=$(QTE_TMAKE_DIR)/lib/qws/linux-x86-g++; export PATH=$$QTDIR/bin:$$PATH; export LD_LIBRARY_PATH=$$QTDIR/lib:$$LD_LIBRARY_PATH; echo 'yes' | \ + CC_FOR_BUILD=$(HOSTCC) \ + ./configure \ + -fast $(QTE_QT3_CONFIGURE) \ + ); + touch $@ +endif + +$(QTE_QVFB_DIR)/.configured: $(QTE_QVFB_DIR)/.unpacked $(QTE_TMAKE_DIR)/.unpacked + (cd $(@D); export QTDIR=`pwd`; export TMAKEPATH=$(QTE_TMAKE_DIR)/lib/linux-g++; export $$QTDIR/bin:$$PATH; export LD_LIBRARY_PATH=$$QTDIR/lib:$$LD_LIBRARY_PATH; echo 'yes' | \ + $(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD=$(HOSTCC) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + $(QTE_QVFB_CONFIGURE) \ + ); + touch $@ + +# --edition {other} +# This has some kooky logic. Qtopia requires a Qt <= 3.3.0 to build, yet we like to use s Qt-2.3.x for size constraints on an embedded device +# This target depends on both $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) **and** $(QTE_QT3_DIR)/.configured. if BR2_QTE_C_QTE_VERSION == BR2_QTE_C_QT3_VERSION, +# then it really depends on $(QTE_QTE_DIR)/.configured, which $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) needs, so it's redundant. If QTE is 3.3.0 or later, +# then BR2_QTE_C_QTE_VERSION != BR2_QTE_C_QT3_VERSION, then we need to unpack the other Qt/E, so this dependency is not redundant. + +$(QTE_QTOPIA_DIR)/.configured: $(QTE_QTOPIA_DIR)/.unpacked $(QTE_TMAKE_DIR)/.unpacked $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) $(QTE_QTE_DIR)/$(QTE_QVFB_BINARY) $(QTE_QT3_DIR)/.configured + (cd $(@D); export QTDIR=$(QTE_QTE_DIR); export QPEDIR=$(QTE_QTOPIA_DIR); export PATH=$(STAGING_DIR)/bin:$$QTDIR/bin:$$PATH; QT3DIR=$(QTE_QTE_DIR); echo 'yes' | \ + $(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD=$(HOSTCC) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + $(QTE_QTOPIA_CONFIGURE) --edition phone -no-qtopiadesktop -dqt $(QTE_QT3_DIR) -arch generic -displaysize 160-240 -languages en_US \ + -platform linux-g++ -qvfb -xplatform $(BR2_QTE_CROSS_PLATFORM) \ + ); + touch $@ + +# there is no build for tmake, only unpack +$(TMAKE): $(QTE_TMAKE_DIR)/.unpacked + +# This must NOT use TARGET_CC -- it is a host-side tool +$(QTE_QVFB_DIR)/.make: $(QTE_QVFB_DIR)/.configured $(TMAKE) + #$(TARGET_CONFIGURE_OPTS) + export QTDIR=$(QTE_QVFB_DIR); export PATH=$$QTDIR/bin:$$PATH; \ + $(MAKE) -C $(QTE_QVFB_DIR) src-moc + touch $@ + +$(QTE_QTE_DIR)/$(QTE_UIC_BINARY): $(QTE_QVFB_DIR)/.make $(QTE_QTE_DIR)/.unpacked + export QTDIR=$(QTE_QVFB_DIR); export PATH=$$QTDIR/bin:$$PATH; \ + $(MAKE) -C $(QTE_QVFB_DIR)/tools/designer/uic + test -d $(@D) || install -dm 0755 $(@D) + install -m 0755 $(QTE_QVFB_DIR)/bin/$(@F) $@ + +ifneq ($(BR2_QTE_C_QTE_VERSION),$(BR2_QTE_C_QT3_VERSION)) +$(QTE_QT3_DIR)/.make: $(QTE_QT3_DIR)/.unpacked + ( export QTDIR=$(QTE_QT3_DIR); export PATH=$$QTDIR/bin:$$PATH; export LD_LIBRARY_PATH=$$QTDIR/lib:$$LD_LIBRARY_PATH; \ + $(MAKE) -C $(QTE_QT3_DIR) sub-src && \ + $(MAKE) -C $(QTE_QT3_DIR)/tools/linguist/lrelease \ + $(MAKE) -C $(QTE_QT3_DIR)/tools/linguist/lupdate \ + $(MAKE) -C $(QTE_QT3_DIR)/tools/designer/uilib \ + $(MAKE) -C $(QTE_QT3_DIR)/tools/designer/uic + ); + touch $@ +endif + +$(QTE_QTE_DIR)/$(QTE_QVFB_BINARY): $(QTE_QVFB_DIR)/.make $(QTE_QTE_DIR)/.unpacked $(TMAKE) + (cd $(QTE_QVFB_DIR)/tools/qvfb && TMAKEPATH=$(QTE_TMAKE_DIR)/lib/linux-g++ $(TMAKE) -o Makefile qvfb.pro) + #$(TARGET_CONFIGURE_OPTS) + export QTDIR=$(QTE_QVFB_DIR); export PATH=$$QTDIR/bin:$$PATH; \ + $(MAKE) -C $(QTE_QVFB_DIR)/tools/qvfb + test -d $(@D) || install -dm 0755 $(@D) + install -m 0755 $(QTE_QVFB_DIR)/tools/qvfb/$(@F) $@ + +$(QTE_QTE_DIR)/src-mt.mk: $(QTE_QTE_DIR)/.configured + # I don't like the src-mk that gets built, so blow it away. Too many includes to override yet + echo "SHELL=/bin/sh" > $@ + echo "" >> $@ + echo "src-mt:" >> $@ + echo " cd src; "'$$(MAKE)'" 'QT_THREAD_SUFFIX=-mt' 'QT_LFLAGS_MT="'$$$$(SYSCONF_LFLAGS_THREAD)'" "'$$$$(SYSCONF_LIBS_THREAD)'"' 'QT_CXX_MT="'$$$$(SYSCONF_CXXFLAGS_THREAD)'" -DQT_THREAD_SUPPORT' 'QT_C_MT="'$$$$(SYSCONF_CFLAGS_THREAD)'" -DQT_THREAD_SUPPORT'" >> $@ + +$(QTE_QTE_LIB): $(QTE_QTE_DIR)/src-mt.mk + export QTDIR=$(QTE_QTE_DIR); export QPEDIR=$(QTE_QTOPIA_DIR); export PATH=$(STAGING_DIR)/bin:$$QTDIR/bin:$$PATH; \ + $(TARGET_CONFIGURE_OPTS) $(MAKE) $(TARGET_CC) -C $(QTE_QTE_DIR) src-mt + $(TARGET_CONFIGURE_OPTS) $(MAKE) $(TARGET_CC) DESTDIR=$(TARGET_DIR)/lib -C $(QTE_QTE_DIR) src-mt + # ... and make sure it actually built... grrr... make deep-deep-deep makefile recursion for this habit + test -f $@ + +$(QTE_QTOPIA_FILE): $(QTE_QTOPIA_DIR)/.configured + export QTDIR=$(QTE_QT3_DIR); export QPEDIR=$(QTE_QTOPIA_DIR); export PATH=$(STAGING_DIR)/bin:$$QTDIR/bin:$$PATH; \ + $(TARGET_CONFIGURE_OPTS) $(MAKE) CC=$(TARGET_CC) -C $(QTE_QTOPIA_DIR) + +$(QTE_QTOPIA_IFILE): $(QTE_QTOPIA_FILE) + export QTDIR=$(QTE_QT3_DIR); export QPEDIR=$(QTE_QTOPIA_DIR); export PATH=$(STAGING_DIR)/bin:$$QTDIR/bin:$$PATH; \ + $(TARGET_CONFIGURE_OPTS) $(MAKE) CC=$(TARGET_CC) -C $(QTE_QTOPIA_DIR) install PREFIX=$(TARGET_DIR) + + +qte:: $(QTE_QTE_LIB) + +ifeq ($(strip $(BR2_PACKAGE_QTE_QTOPIA)),y) +qte:: $(QTE_QTOPIA_IFILE) +endif + +# kinda no-op right now, these are built anyhow +ifeq ($(strip $(BR2_PACKAGE_QTE_QVFB)),y) +qte:: $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) $(QTE_QTE_DIR)/$(QTE_QVFB_BINARY) +endif + +qte-clean: + rm -f $(QTE_QTE_DIR)/$(QTE_UIC_BINARY) $(QTE_QTE_DIR)/$(QTE_QVFB_BINARY) $(QTE_QTE_LIB) $(QTE_QTOPIA_FILE) + -$(MAKE) -C $(QTE_QTE_DIR) clean + -$(MAKE) -C $(QTE_QVFB_DIR) clean + -$(MAKE) -C $(QTE_QTOPIA_DIR) clean + +qte-dirclean: + rm -rf $(QTE_QTE_DIR) $(QTE_QVFB_DIR) $(QTE_QTOPIA_DIR) +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_QTE)),y) +TARGETS+=qte +endif diff --git a/package/qte/qtopia-2.1.1-no-programinvocation.patch b/package/qte/qtopia-2.1.1-no-programinvocation.patch new file mode 100644 index 000000000..ec3cccd76 --- /dev/null +++ b/package/qte/qtopia-2.1.1-no-programinvocation.patch @@ -0,0 +1,24 @@ +Qtopia includes a hard-coded config.h file that must have been built by ./configure at some point in its life. +Nevertheless, this file now conflicts with what uClibc provides, so we need to patch it for some more sane +Operation. This change is required for rsync, the only thing I found using program_invocation_short_name + +diff -cr qtopia-phone-2.1.1/src/3rdparty/libraries/rsync/config_linux.h qtopia-phone-2.1.1-orig/src/3rdparty/libraries/rsync/config_linux.h +*** qtopia-phone-2.1.1/src/3rdparty/libraries/rsync/config_linux.h 2005-08-18 23:23:00.000000000 +0800 +--- qtopia-phone-2.1.1/src/3rdparty/libraries/rsync/config_linux.h 2005-08-18 23:05:17.000000000 +0800 +*************** +*** 23,29 **** + #define _GNU_SOURCE 1 + + /* GNU extension of saving argv[0] to program_invocation_short_name */ +! #define HAVE_PROGRAM_INVOCATION_NAME 1 + + /* Define to a replacement type if intmax_t is not a builtin, or in + sys/types.h or stdlib.h or stddef.h */ +--- 23,29 ---- + #define _GNU_SOURCE 1 + + /* GNU extension of saving argv[0] to program_invocation_short_name */ +! /* #undef HAVE_PROGRAM_INVOCATION_NAME */ + + /* Define to a replacement type if intmax_t is not a builtin, or in + sys/types.h or stdlib.h or stddef.h */ -- cgit v1.2.3