# 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
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
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)" \
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
$(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