qt5base: also build for host
[feed/video.git] / frameworks / qt5base / files / qmake.mk
index 3018b70205756030b368cbc8281ca6b4aaeff6dd..3feabc6b04a9993c16a2693a373b2b25947f0d3a 100644 (file)
@@ -37,7 +37,7 @@
 #    objects on the target platform. Tihs behaviour wasn't observed so far, however 
 #    one might use the QT_INSTALL_* variables for some weird reason during runtime.
 
-
+# for target builds (STAGING_DIR)
 QT_EXTPREFIX:=$(STAGING_DIR)/$(CONFIGURE_PREFIX)
 QT_SYSROOT:=
 QT_INSTALL_CONFIGURATION:=/etc/qt5
@@ -56,6 +56,7 @@ QT_INSTALL_IMPORTS:=$(QT_INSTALL_ARCHDATA)/imports
 QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml
 QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples
 QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES)
+# for host builds defined in target project files (STAGING_DIR)/host
 QT_HOST_EXTPREFIX:=$(STAGING_DIR)/host
 QT_HOST_PREFIX:=$(QT_HOST_EXTPREFIX)
 QT_HOST_DATA:=$(QT_HOST_PREFIX)/share
@@ -68,6 +69,11 @@ QMAKE_XSPEC:=linux-openwrt-g++
 PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR)
 PKG_INSTALL_DIR:=$(PKG_INSTALL_DIR_ROOT)/$(STAGING_DIR)
 
+# for target independant host builds (STAGING_DIR_HOST)
+HOST_INSTALL_DIR_ROOT:=$(HOST_INSTALL_DIR)
+HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR_HOST)
+#HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR)
+
 define Build/Configure/Default
        TARGET_CROSS="$(TARGET_CROSS)" \
        TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
@@ -75,18 +81,35 @@ define Build/Configure/Default
        TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
        qmake \
                -o $(PKG_BUILD_DIR)/$(MAKE_PATH)/Makefile \
-               $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1),$(PKG_NAME)).pro
+               $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
+endef
+
+define Host/Configure/Default
+       qmake_host \
+               -o $(HOST_BUILD_DIR)/$(MAKE_PATH)/Makefile \
+               $(HOST_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
 endef
 
-# we need to pass everything to $(MAKE) as well, as Makefiles may invoke qmake once again for creating further Makefiles
+# We need to pass all qmake related variables to $(MAKE) as well, as (generated) Makefiles may invoke qmake once again for creating further Makefiles.
+# Actually we'd also like to pass $MAKE_VARS and $MAKE_FLAGS to also make ordinary non-qmake generated Makefiles calling toolchain executables
+# like $CC/$CXX/.. work, however this would interfere with qmake generated Makefiles, since they expect variables being set differently.
+# For example qmake generated Makefiles expect $AR to also contain ar's arguments, while ordinary Makefiles don't.
+# Until we find a way to disginguish both kinds of Makefiles, we will neglect ordinary Makefiles calling toolchain executables.
+# Mixing qmake generated and ordinary Makfiles - both calling toolchain executables - is probably a very rare case anyway.
 define Build/Compile/Default
-       +$(MAKE_VARS) \
-       TARGET_CROSS="$(TARGET_CROSS)" \
+       +TARGET_CROSS="$(TARGET_CROSS)" \
        TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
        TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
        TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
                $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
-                       $(MAKE_FLAGS) \
+                       $(1)
+endef
+
+define Host/Compile/Default
+       +TARGET_CFLAGS="$(HOST_CPPFLAGS) $(HOST_CFLAGS)" \
+       TARGET_CXXFLAGS="$(HOST_CPPFLAGS) $(HOST_CXXFLAGS)" \
+       TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
+               $(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
                        $(1)
 endef
 
@@ -96,6 +119,12 @@ define Build/Install/Default
                        $(1) install
 endef
 
+define Host/Install/Default
+       INSTALL_ROOT="$(HOST_INSTALL_DIR_ROOT)" \
+               $(MAKE) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
+                       $(1) install
+endef
+
 define Build/Install/HostFiles
        $(INSTALL_DIR) \
                $(1)/host