Commit 13ef97f5 authored by Mike Frysinger's avatar Mike Frysinger
Browse files

QTE by Allan Clark Bug 391

parent 5bc1f0c3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"

package/qte/Config.in

0 → 100644
+262 −0
Original line number Diff line number Diff line
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

package/qte/qte.mk

0 → 100644
+251 −0
Original line number Diff line number Diff line
#############################################################
#
# 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
+24 −0
Original line number Diff line number Diff line
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 */