diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2009-03-31 14:29:30 +0000 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2009-03-31 14:29:30 +0000 |
commit | 0a88002e643aacf2f6822d8944659c0a028d5eb8 (patch) | |
tree | 2eee47cbf2738aa0587b5d3d25845d7130b5d9b4 | |
parent | 3c154928410dba2c77cfe58b84a4899b621bc9a2 (diff) | |
download | buildroot-novena-0a88002e643aacf2f6822d8944659c0a028d5eb8.tar.gz buildroot-novena-0a88002e643aacf2f6822d8944659c0a028d5eb8.zip |
qtopia4: make qmake.conf handling more robust (fixes build for x86/x86_64/ppc)
qmake.conf needs to be tweaked to make QT use the correct toolchain for
building, but the current approach relies on the fact that the selected
platform qmake.conf has QMAKE_{CC,CXX,LINK,LINK_SHLIB,AR,OBJCOPY,RANLIB,STRIP}
lines that are then adapted to the correct settings.
This is true for some configs (namely arm and avr32), but not for others -
Causing the build to fail (or build for the host).
Instead add a QTOPIA4_QMAKE_SET macro which removes any existing lines
and add the correct lines to the qmake.conf, so it works no matter if the
platform provides them or not.
-rw-r--r-- | package/qtopia4/qtopia4.mk | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/package/qtopia4/qtopia4.mk b/package/qtopia4/qtopia4.mk index 3f46c13d2..9ae065fad 100644 --- a/package/qtopia4/qtopia4.mk +++ b/package/qtopia4/qtopia4.mk @@ -327,6 +327,21 @@ QTOPIA4_QMAKE_CONF:=$(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA # Variable for other Qt applications to use QTOPIA4_QMAKE:=$(STAGING_DIR)/usr/bin/qmake -spec qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++ +################################################################################ +# QTOPIA4_QMAKE_SET -- helper macro to set QMAKE_<variable> = <value> in +# QTOPIA_QMAKE_CONF. Will remove existing variable declaration if available. +# +# Argument 1 is the variable name (without QMAKE_) +# Argument 2 is the value to set variable to +# +# E.G. use like this: +# $(call QTOPIA4_QMAKE_SET,variable,value) +################################################################################ +define QTOPIA4_QMAKE_SET + $(SED) '/QMAKE_$(1)/d' $(QTOPIA4_QMAKE_CONF) + $(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(QTOPIA4_QMAKE_CONF) +endef + $(DL_DIR)/$(QTOPIA4_SOURCE): $(call DOWNLOAD,$(QTOPIA4_SITE),$(QTOPIA4_SOURCE)) @@ -346,16 +361,15 @@ ifneq ($(BR2_INET_IPV6),y) $(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(QTOPIA4_TARGET_DIR)/configure endif $(SED) 's/^CFG_XINERAMA=auto/CFG_XINERAMA=no/' $(QTOPIA4_TARGET_DIR)/configure - #$(SED) 's,-O2,$(TARGET_CFLAGS),' $(QTOPIA4_QMAKE_CONF) # Fix compiler path - $(SED) '\,QMAKE_CC[ ]*=, c\QMAKE_CC = $(TARGET_CC)' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_CXX[ ]*=, c\QMAKE_CXX = $(TARGET_CXX)' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_LINK[ ]*=, c\QMAKE_LINK = $(TARGET_CXX)' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_LINK_SHLIB[ ]*=, c\QMAKE_LINK_SHLIB = $(TARGET_CXX)' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_AR[ ]*=, c\QMAKE_AR = $(TARGET_AR) cqs' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_RANLIB[ ]*=, c\QMAKE_RANLIB = $(TARGET_RANLIB)' $(QTOPIA4_QMAKE_CONF) - $(SED) '\,QMAKE_STRIP[ ]*=, c\QMAKE_STRIP = $(TARGET_STRIP)' $(QTOPIA4_QMAKE_CONF) - + $(call QTOPIA4_QMAKE_SET,CC,$(TARGET_CC)) + $(call QTOPIA4_QMAKE_SET,CXX,$(TARGET_CXX)) + $(call QTOPIA4_QMAKE_SET,LINK,$(TARGET_CXX)) + $(call QTOPIA4_QMAKE_SET,LINK_SHLIB,$(TARGET_CXX)) + $(call QTOPIA4_QMAKE_SET,AR,$(TARGET_AR)) + $(call QTOPIA4_QMAKE_SET,OBJCOPY,$(TARGET_OBJCOPY)) + $(call QTOPIA4_QMAKE_SET,RANLIB,$(TARGET_RANLIB)) + $(call QTOPIA4_QMAKE_SET,STRIP,$(TARGET_STRIP)) -[ -f $(QTOPIA4_QCONFIG_FILE) ] && cp $(QTOPIA4_QCONFIG_FILE) \ $(QTOPIA4_TARGET_DIR)/$(QTOPIA4_QCONFIG_FILE_LOCATION) # Qt doesn't use PKG_CONFIG, it searches for pkg-config with 'which'. |