COMPONENT_TARGETS = $(HARDWARE_INTEL_PC32)
COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
COMPONENT_TARGETS += $(HARDWARE_CB1X)
COMPONENT_TARGETS += $(HARDWARE_CB2X)
COMPONENT_TARGETS += $(HARDWARE_CB3X)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
COMPONENT_TARGETS += $(HARDWARE_POIN2)
COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
COMPONENT_TARGETS += $(HARDWARE_M201)
COMPONENT_TARGETS += $(HARDWARE_MXV)
COMPONENT_TARGETS += $(HARDWARE_P201)
COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
COMPONENT_TARGETS += $(HARDWARE_P212)
COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
COMPONENT_TARGETS += $(HARDWARE_Q201)
COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
COMPONENT_TARGETS += $(HARDWARE_CI20)
COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
COMPONENT_TARGETS += $(HARDWARE_S824L)
COMPONENT_TARGETS += $(HARDWARE_VESNIN)
COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
NEED_ABS_PATH = true
COMPONENT_IS_3PP = true
include ../../../../build-system/constants.mk
SOURCE_REQUIRES = sources/packages/x/qt5
ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
REQUIRES = dev/gcc/12.2.0
endif
REQUIRES += net/ca-certificates/20211220
REQUIRES += X11/app/desktop-file-utils/0.26
REQUIRES += X11/libs/hicolor-icon-theme/0.17
REQUIRES += X11/app/xdg-utils/1.1.3
REQUIRES += X11/libs/libinput/1.22.1
REQUIRES += X11/libs/libxkbcommon/1.5.0
REQUIRES += libs/tslib/1.22
REQUIRES += libs/md4c/0.4.8
REQUIRES += media/alsa-lib/1.2.8
REQUIRES += X11/media/pulseaudio/16.1
REQUIRES += X11/app/dbus-x11-launch/1.13.18
REQUIRES += X11/libs/sdl/sdl2/2.26.3
REQUIRES += libs/libmng/2.0.3
REQUIRES += libs/icu4c/73.1
REQUIRES += media/libvpx/1.12.0
REQUIRES += libs/assimp/5.2.5
REQUIRES += X11/app/cups/2.4.2
REQUIRES += app/fontconfig/2.13.95
REQUIRES += X11/X.org/lib/libXaw/1.0.14
REQUIRES += X11/X.org/lib/libXcursor/1.2.1
REQUIRES += X11/X.org/lib/libXi/1.8
REQUIRES += X11/X.org/lib/libXinerama/1.1.5
REQUIRES += X11/X.org/lib/libXrandr/1.5.3
REQUIRES += X11/X.org/lib/libXv/1.0.12
REQUIRES += X11/X.org/lib/libxkbfile/1.1.2
REQUIRES += X11/X.org/xcb/xcb-util-cursor/0.1.4
REQUIRES += X11/X.org/xcb/xcb-util-keysyms/0.4.1
REQUIRES += X11/X.org/xcb/xcb-util-wm/0.4.2
REQUIRES += X11/libs/gstreamer/1.22.0
REQUIRES += X11/libs/gst-plugins-base/1.22.0
REQUIRES += X11/libs/at-spi2-core/2.47.1
REQUIRES += app/sqlite/3.39.4.0
REQUIRES += app/postgresql/14.1
REQUIRES += app/mariadb/10.6.5
REQUIRES += libs/libiodbc/3.52.14
REQUIRES += libs/botan/2.19.3
REQUIRES += X11/libs/opengl-collection
# ======= __END_OF_REQUIRES__ =======
version = 5.15.8
tar_xz_archive = $(SRC_PACKAGE_PATH)/packages/x/qt5/qt-everywhere-src-$(version).tar.xz
SRC_ARCHIVE = $(tar_xz_archive)
SRC_DIR = $(TARGET_BUILD_DIR)/qt-everywhere-src-$(version)
src_dir_name = qt-everywhere-src-$(version)
doc_dir_name = qt5-$(version)
src_done = $(TARGET_BUILD_DIR)/.source_done
profile_dir = $(CURDIR)/profile.d
applications_dir = $(CURDIR)/applications
PATCHES = PATCHES
build_target = $(TARGET_BUILD_DIR)/.build_done
install_target = $(TARGET_BUILD_DIR)/.install_done
####### Targets
PKG_GROUP = xlibs
#
# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
#
QT5_PKG_NAME = qt5
QT5_PKG_VERSION = 5.15.8
QT5_PKG_ARCH = $(PKGARCH)
QT5_PKG_DISTRO_NAME = $(DISTRO_NAME)
QT5_PKG_DISTRO_VERSION = $(DISTRO_VERSION)
QT5_PKG_GROUP = $(PKG_GROUP)
### |---handy-ruler-------------------------------|
QT5_PKG_SHORT_DESCRIPTION = graphical user interface toolkit
QT5_PKG_URL = $(BUG_URL)
QT5_PKG_LICENSE = GPLv3
QT5_PKG_DESCRIPTION_FILE = $(TARGET_BUILD_DIR)/$(QT5_PKG_NAME)-pkg-description
QT5_PKG_DESCRIPTION_FILE_IN = $(QT5_PKG_NAME)-pkg-description.in
QT5_PKG_INSTALL_SCRIPT = $(QT5_PKG_NAME)-pkg-install.sh
QT5_PKG = $(CURDIR)/$(TARGET_BUILD_DIR)/$(QT5_PKG_NAME)-package
pkg_basename = $(QT5_PKG_NAME)-$(QT5_PKG_VERSION)-$(QT5_PKG_ARCH)-$(QT5_PKG_DISTRO_NAME)-$(QT5_PKG_DISTRO_VERSION)
pkg_archive = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
pkg_signature = $(call sign-name,$(pkg_archive))
pkg_description = $(call desc-name,$(pkg_archive))
products = $(call pkg-files,$(pkg_archive))
BUILD_TARGETS = $(build_target)
BUILD_TARGETS += $(install_target)
PRODUCT_TARGETS = $(products)
ROOTFS_TARGETS = $(pkg_archive)
include ../../../../build-system/core.mk
env_sysroot = INSTALL_ROOT=$(QT5_PKG)
JOBS := $(shell echo 'if( $(NUMPROCS) > 2) { $(NUMPROCS) / 2 } else { 1 }' | bc)
QT5_JOBS := -j$(JOBS) -l$(JOBS)
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_A1X_GLIBC) $(TOOLCHAIN_A2X_GLIBC) \
$(TOOLCHAIN_H3_GLIBC) $(TOOLCHAIN_RK328X_GLIBC) \
$(TOOLCHAIN_S8XX_GLIBC) $(TOOLCHAIN_IMX6_GLIBC) \
$(TOOLCHAIN_AM335X_GLIBC) $(TOOLCHAIN_OMAP543X_GLIBC)),)
ARCH = arm
ABI = gnueabihf
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_H5_GLIBC) $(TOOLCHAIN_RK33XX_GLIBC) \
$(TOOLCHAIN_RK339X_GLIBC) $(TOOLCHAIN_RK358X_GLIBC) \
$(TOOLCHAIN_S9XX_GLIBC) \
$(TOOLCHAIN_A311X_GLIBC) $(TOOLCHAIN_M1000_GLIBC)),)
ARCH = aarch64
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
ARCH = mips
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
ARCH = ppc64
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8LE_GLIBC) $(TOOLCHAIN_POWER9LE_GLIBC)),)
ARCH = ppc64le
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
ARCH = riscv64
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) $(TOOLCHAIN_I686_GLIBC)),)
ARCH = i386
ABI = gnu
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)),)
ARCH = x86_64
ABI = gnu
endif
TARGET_SPEC_DIR = linux-$(ARCH)-$(ABI)-g++
DEVICE_SPEC_DIR = linux-$(HARDWARE)-g++
QT_BUILD_ENVIRONMENT = export PKG_CONFIG=/usr/bin/pkg-config ;
QT_BUILD_ENVIRONMENT += export PKG_CONFIG_SYSROOT_DIR=$(TARGET_DEST_DIR) ;
QT_BUILD_ENVIRONMENT += export PKG_CONFIG_PATH=$(ROOTFS_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig:$(ROOTFS_DEST_DIR)/usr/share/pkgconfig ;
QT_BUILD_ENVIRONMENT += export PKG_CONFIG_LIBDIR=$(ROOTFS_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig:$(ROOTFS_DEST_DIR)/usr/share/pkgconfig ;
QT_BUILD_ENVIRONMENT += export MYSQL_CONFIG=$(TARGET_DEST_DIR)/usr/bin/$(TARGET)-mysql_config ;
QT_BUILD_ENVIRONMENT += export PSQL_CONFIG=$(TARGET_DEST_DIR)/usr/bin/$(TARGET)-pg_config ;
QT_BUILD_ENVIRONMENT += export NINJAJOBS='$(QT5_JOBS)' ;
configure_switches = -confirm-license
configure_switches += -opensource
configure_switches += -device $(HARDWARE)
configure_switches += -device-option CCACHE=$(CCACHE)
configure_switches += -device-option CROSS_COMPILE=$(CROSS_PREFIX)
# ======= Target compiler doesn't support MIPS DSP/DSPr2 =======
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
configure_switches += -no-mips_dsp
configure_switches += -no-mips_dspr2
endif
configure_switches += -sysroot $(TARGET_DEST_DIR)
configure_switches += -prefix /usr
configure_switches += -extprefix /usr
configure_switches += -sysconfdir /etc/xdg
configure_switches += -libdir /usr/lib$(LIBSUFFIX)
configure_switches += -archdatadir /usr/lib$(LIBSUFFIX)/qt5
configure_switches += -bindir /usr/lib$(LIBSUFFIX)/qt5/bin
configure_switches += -headerdir /usr/include/qt5
configure_switches += -datadir /usr/share/qt5
configure_switches += -docdir /usr/share/doc/$(doc_dir_name)
configure_switches += -examplesdir /usr/share/doc/$(doc_dir_name)/examples
configure_switches += -release
configure_switches += -shared
configure_switches += -force-pkg-config
configure_switches += -c++std c++17
configure_switches += -no-gtk
configure_switches += -egl
configure_switches += -opengl
configure_switches += -accessibility
#
# NOTE: -system-sqlite doesn't work
#
configure_switches += -sql-mysql
configure_switches += -sql-sqlite
configure_switches += -sql-psql
configure_switches += -mtdev
configure_switches += -system-zlib
configure_switches += -system-libpng
configure_switches += -system-libjpeg
configure_switches += -system-freetype
configure_switches += -system-harfbuzz
configure_switches += -system-pcre
configure_switches += -openssl
configure_switches += -xcb-xlib
configure_switches += -glib
configure_switches += -pulseaudio
configure_switches += -no-libproxy
configure_switches += -alsa
configure_switches += -gui
configure_switches += -widgets
configure_switches += -cups
configure_switches += -libinput
configure_switches += -evdev
configure_switches += -tslib
configure_switches += -libudev
configure_switches += -mng
configure_switches += -system-assimp
configure_switches += -system-tiff
configure_switches += -system-webp
configure_switches += -gstreamer 1.0
configure_switches += -fontconfig
configure_switches += -xkbcommon
configure_switches += -icu
configure_switches += -dbus-runtime
configure_switches += -no-use-gold-linker
configure_switches += -xcb
configure_switches += -no-directfb
configure_switches += -linuxfb
configure_switches += -syslog
configure_switches += -no-journald
configure_switches += -qpa "xcb;wayland"
configure_switches += -qreal double
configure_switches += -no-warnings-are-errors
configure_switches += -make libs
configure_switches += -make tools
configure_switches += -nomake tests
configure_switches += -no-strip
configure_switches += -no-pch
configure_switches += -no-rpath
configure_switches += -no-separate-debug-info
configure_switches += -verbose
ENABLE_BUILD_WEBENGINE = yes
ENABLE_BUILD_EXAMPLES = no
ENABLE_EGLFS_SUPPORT = yes
ENABLE_KMS_SUPPORT = yes
#
# Configure WEBENGINE, EXAMPLES, EGLFS, KMS :
#
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC) \
$(TOOLCHAIN_POWER8LE_GLIBC) $(TOOLCHAIN_POWER9LE_GLIBC) \
$(TOOLCHAIN_RISCV64_GLIBC)),)
ENABLE_BUILD_WEBENGINE = no
endif
#
# Setup WEBENGINE, EXAMPLES, EGLFS, KMS :
#
ifeq ($(ENABLE_EGLFS_SUPPORT),yes)
configure_switches += -eglfs
ifeq ($(ENABLE_KMS_SUPPORT),yes)
configure_switches += -kms
else
configure_switches += -no-kms
endif
else
configure_switches += -no-eglfs
configure_switches += -no-kms
ENABLE_KMS_SUPPORT = no
endif
ifeq ($(ENABLE_BUILD_EXAMPLES),yes)
configure_switches += -make examples
endif
ifeq ($(ENABLE_BUILD_WEBENGINE),yes)
configure_switches += -webengine-alsa
configure_switches += -webengine-pulseaudio
configure_switches += -webengine-icu
configure_switches += -system-webengine-opus
configure_switches += -system-webengine-webp
configure_switches += -webengine-pepper-plugins
configure_switches += -webengine-printing-and-pdf
configure_switches += -webengine-proprietary-codecs
configure_switches += -webengine-webrtc
else
configure_switches += -skip qtwebengine
endif
q-collection-generator = $(shell which qcollectiongenerator)
q-help-generator = $(shell which qhelpgenerator)
TARGET_BIN_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX)
TARGET_LIB_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX):/usr/lib/../lib$(LIBSUFFIX)
####### Dependencies
$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
$(UNPACK_SRC_ARCHIVE)
$(APPLY_PATCHES)
# ======= Remove unneeded stuff =======
@( cd $(SRC_DIR) ; \
rm -rf qtbase/mkspecs/devices/linux-mipsel-ci20-g++ ; \
sed -i '/^[ \t]*{/{:a;N;/}/!ba};/input\.qreal ==/d' qtbase/configure.json ; \
)
# ======= Set internal ffmpeg datadir =======
@( cd $(SRC_DIR)/qtwebengine/src/3rdparty/chromium/third_party/ffmpeg/chromium/config ; \
for file in `find . -type f -name 'config.h' -print` ; do \
sed -i 's,^\(#define FFMPEG_DATADIR\).*,\1 "/usr/share/ffmpeg",' $${file} ; \
sed -i 's,^\(#define AVCONV_DATADIR\).*,\1 "/usr/share/ffmpeg",' $${file} ; \
done ; \
)
# ======= Define Target Machine specification =======
@mkdir -p $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)
@echo "#" > $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# qmake configuration for building with $(TARGET)-g++" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "#" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "MAKEFILE_GENERATOR = UNIX" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "CONFIG += incremental" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCREMENTAL_STYLE = sublib" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) \
$(TOOLCHAIN_POWER9_GLIBC) \
$(TOOLCHAIN_X86_64_GLIBC)),)
@echo "QMAKE_CFLAGS = -m64" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS = -m64" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
@echo "include(../common/linux.conf)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "include(../common/gcc-base-unix.conf)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "include(../common/g++-unix.conf)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# modifications to g++.conf" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CC = $(CCACHE)$(CROSS_PREFIX)gcc --sysroot=$(TARGET_DEST_DIR)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXX = $(CCACHE)$(CROSS_PREFIX)g++ --sysroot=$(TARGET_DEST_DIR)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK = $(CROSS_PREFIX)g++ --sysroot=$(TARGET_DEST_DIR)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_SHLIB = $(CROSS_PREFIX)g++ --sysroot=$(TARGET_DEST_DIR)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_C = $(CROSS_PREFIX)gcc --sysroot=$(TARGET_DEST_DIR)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# modifications to linux.conf" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_AR = $(CROSS_PREFIX)ar cqs" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_OBJCOPY = $(CROSS_PREFIX)objcopy" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_NM = $(CROSS_PREFIX)nm -P" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_STRIP = $(CROSS_PREFIX)strip" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR = $(TARGET_DEST_DIR)/usr/include" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBDIR = $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
@echo "QMAKE_CFLAGS_OPTIMIZE_FULL = -O2" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
@echo "QMAKE_LIBS += -latomic" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LIBS_EGL += -lEGL" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENGL_ES2 += -lGLESv2" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENVG += -lOpenVG" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS += -Wl,-rpath,$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX) -Wl,--export-dynamic" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "TARGET_HW_CFLAGS = $(ARCH_FLAGS) $(ARCH_DEFS) $(HW_FLAGS) -DLINUX=1" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "load(qt_config)" >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
# ======= Include QPlatform defines =======
@echo "" > $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qplatformdefs.h
@echo '#include "../linux-g++/qplatformdefs.h"' >> $(SRC_DIR)/qtbase/mkspecs/$(TARGET_SPEC_DIR)/qplatformdefs.h
# ======= Define Target Device specification =======
@mkdir -p $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)
@echo "#" > $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# qmake configuration for the $(HARDWARE) boards" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "#" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "MAKEFILE_GENERATOR = UNIX" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "CONFIG += incremental" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCREMENTAL_STYLE = sublib" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) \
$(TOOLCHAIN_POWER9_GLIBC) \
$(TOOLCHAIN_X86_64_GLIBC)),)
@echo "QMAKE_CFLAGS = -m64" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS = -m64" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "include(../../common/linux.conf)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "include(../../common/gcc-base-unix.conf)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "include(../../common/g++-unix.conf)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "load(device_config)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# modifications to g++.conf" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CC = \$$\$${CCACHE} \$$\$${CROSS_COMPILE}gcc" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXX = \$$\$${CCACHE} \$$\$${CROSS_COMPILE}g++" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK = \$$\$${CROSS_COMPILE}g++" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_SHLIB = \$$\$${CROSS_COMPILE}g++" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_C = \$$\$${CROSS_COMPILE}gcc" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# modifications to linux.conf" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_AR = \$$\$${CROSS_COMPILE}ar cqs" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_OBJCOPY = \$$\$${CROSS_COMPILE}objcopy" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_STRIP = \$$\$${CROSS_COMPILE}strip" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR = \$$\$$[QT_SYSROOT]/usr/include" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += \$$\$$[QT_SYSROOT]/usr/include/gstreamer-1.0" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += \$$\$$[QT_SYSROOT]/usr/include/libxml2" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += \$$\$$[QT_SYSROOT]/usr/lib$(LIBSUFFIX)/glib-2.0/include" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBDIR = \$$\$$[QT_SYSROOT]/usr/lib$(LIBSUFFIX)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
@echo "QMAKE_LIBS += -latomic" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LIBS_EGL += -lEGL" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENVG += -lOpenVG -lEGL" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_A1X_GLIBC) $(TOOLCHAIN_A2X_GLIBC) \
$(TOOLCHAIN_H3_GLIBC) $(TOOLCHAIN_RK328X_GLIBC) \
$(TOOLCHAIN_S8XX_GLIBC) $(TOOLCHAIN_IMX6_GLIBC) \
$(TOOLCHAIN_AM335X_GLIBC) $(TOOLCHAIN_OMAP543X_GLIBC)),)
@echo "DISTRO_OPTS += hard-float" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) $(TOOLCHAIN_I686_GLIBC)),)
@echo "QMAKE_CFLAGS_SHLIB += -fPIC" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS_STATIC_LIB += -fPIC" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS += -Wl,-z,notext" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LFLAGS += -Wl,-rpath,\$$\$$[QT_SYSROOT]/usr/lib$(LIBSUFFIX) -Wl,--export-dynamic" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "TARGET_HW_CFLAGS = $(ARCH_FLAGS) $(ARCH_DEFS) $(HW_FLAGS) -DLINUX=1" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -std=c++17 \$$\$$TARGET_HW_CFLAGS" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-deprecated-declarations" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-maybe-uninitialized" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-unused-but-set-variable" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-unused-function" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-sign-compare" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-tautological-compare" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-implicit-fallthrough" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-range-loop-construct" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-use-after-free" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-free-nonheap-object" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-class-memaccess" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-mismatched-new-delete" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-array-bounds" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-stringop-truncation" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -Wno-stringop-overread" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "load(qt_config)" >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
# ======= Include QPlatform defsines =======
@echo "" > $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qplatformdefs.h
@echo '#include "../../linux-g++/qplatformdefs.h"' >> $(SRC_DIR)/qtbase/mkspecs/devices/$(DEVICE_SPEC_DIR)/qplatformdefs.h
@touch $@
$(build_target): $(src_done)
@cd $(SRC_DIR) && \
$(QT_BUILD_ENVIRONMENT) CFG_ARCH="$(ARCH)" MAKE="$(MAKE)" ./configure $(configure_switches)
@cd $(SRC_DIR) && $(QT_BUILD_ENVIRONMENT) $(MAKE)
@touch $@
$(install_target): $(build_target)
@mkdir -p $(QT5_PKG)
@cd $(SRC_DIR) && $(QT_BUILD_ENVIRONMENT) $(MAKE) install $(env_sysroot)
# ======= Do not ship *.la files =======
@rm -f $(QT5_PKG)/usr/lib$(LIBSUFFIX)/*.la
# ======= Rename build-machine tools =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin ; \
for file in lconvert lprodump lrelease lrelease-pro lupdate lupdate-pro moc \
qdbuscpp2xml qdbusxml2cpp qdoc qgltf qlalr qmake qmlcachegen \
qmlformat qmlimportscanner qmllint qmlmin qmltyperegistrar qscxmlc \
qtattributionsscanner qtwaylandscanner qvkgen rcc repc tracegen uic ; do \
mv $$file $(TARGET)-$${file} ; \
done ; \
)
# ======= Install Qmake =======
@( cd $(SRC_DIR) ; \
for dir in qtbase/src/tools/bootstrap qtbase/src/tools/bootstrap-dbus \
qtdeclarative/src/qmldevtools qtdeclarative/src/qmltyperegistrar \
qtdeclarative/tools/qmlcachegen \
qtdeclarative/tools/qmlformat \
qtdeclarative/tools/qmlimportscanner \
qtdeclarative/tools/qmllint qtdeclarative/tools/qmlmin \
qttools/src/linguist/lconvert qttools/src/linguist/lprodump \
qttools/src/linguist/lrelease qttools/src/linguist/lrelease-pro \
qttools/src/linguist/lupdate qttools/src/linguist/lupdate-pro \
qtbase/src/tools/qdbuscpp2xml qtbase/src/tools/qdbusxml2cpp \
qttools/src/qdoc \
qttools/src/qtattributionsscanner \
qtscxml/tools/qscxmlc \
qt3d/tools/qgltf \
qtbase/src/tools/qlalr \
qtbase/src/tools/qvkgen \
qtbase/src/tools/rcc qtbase/src/tools/uic \
qtbase/src/tools/tracegen \
qtbase/src/tools/moc \
qtwayland/src/qtwaylandscanner ; do \
back=`echo $$dir | sed 's,[a-z23-]*,\.\.,g'` ; \
bname=`basename $$dir` ; \
( cd $$dir ; \
$(MAKE) clean ; \
$$back/qtbase/bin/qmake -makefile -spec $$back/qtbase/mkspecs/$(TARGET_SPEC_DIR) -o Makefile $$bname.pro ; \
$(MAKE) ; \
) ; \
done ; \
)
@( cd $(SRC_DIR) ; \
for dir in qtdeclarative/tools/qmlcachegen \
qtdeclarative/tools/qmlformat \
qtdeclarative/tools/qmlimportscanner qtdeclarative/tools/qmllint \
qtdeclarative/tools/qmlmin qtdeclarative/src/qmltyperegistrar \
qttools/src/linguist/lconvert qttools/src/linguist/lprodump \
qttools/src/linguist/lrelease qttools/src/linguist/lrelease-pro \
qttools/src/linguist/lupdate qttools/src/linguist/lupdate-pro \
qtbase/src/tools/qdbuscpp2xml qtbase/src/tools/qdbusxml2cpp \
qttools/src/qdoc \
qttools/src/qtattributionsscanner \
qtscxml/tools/qscxmlc \
qt3d/tools/qgltf \
qtbase/src/tools/qlalr \
qtbase/src/tools/qvkgen \
qtbase/src/tools/rcc qtbase/src/tools/uic \
qtbase/src/tools/tracegen \
qtbase/src/tools/moc \
qtwayland/src/qtwaylandscanner ; do \
back=`echo $$dir | sed 's,[a-z23-]*,\.\.,g'` ; \
bname=`basename $$dir` ; \
( cd $$dir ; \
sed -i "s,$(CURDIR)/$(SRC_DIR)/qtbase/bin/rcc,$(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/$(TARGET)-rcc,g" Makefile ; \
$(MAKE) -j1 install $(env_sysroot) ; \
) ; \
done ; \
)
@( cd $(SRC_DIR)/qtbase/qmake ; \
$(MAKE) clean ; \
)
@( cd $(SRC_DIR) ; \
sed -i "/^# configure and build top-level makefile/ a\exit 0" qtbase/configure ; \
$(QT_BUILD_ENVIRONMENT) ./configure \
-confirm-license -opensource -prefix /usr -extprefix /usr \
-bindir /usr/lib$(LIBSUFFIX)/qt5/bin \
-arch $(ARCH) -platform $(TARGET_SPEC_DIR) \
-force-pkg-config -release -shared -make tools -make libs \
-nomake examples -nomake tests -optimized-qmake \
-sysroot $(TARGET_DEST_DIR) \
-verbose ; \
cp -a qtbase/bin/qmake $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin ; \
)
# ======= Create symbolic links for binaries =======
@mkdir -p $(QT5_PKG)/usr/bin
@( cd $(QT5_PKG)/usr/bin ; \
for file in $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/* ; do \
ln -sf ../lib$(LIBSUFFIX)/qt5/bin/`basename $${file}` `basename $${file}`-qt5 ; \
done ; \
)
# ======= Set actual target mkspecs/$(TARGET_SPEC_DIR) =======
@mkdir -p $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)
@echo "#" > $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# qmake configuration for building with $(TARGET)-g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "#" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "MAKEFILE_GENERATOR = UNIX" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "CONFIG += incremental" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCREMENTAL_STYLE = sublib" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) \
$(TOOLCHAIN_POWER9_GLIBC) \
$(TOOLCHAIN_X86_64_GLIBC)),)
@echo "QMAKE_CFLAGS = -m64" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS = -m64" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
@echo "include(../common/linux.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "include(../common/gcc-base-unix.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "include(../common/g++-unix.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# modifications to g++.conf" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CC = /usr/bin/gcc" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXX = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_SHLIB = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_C = /usr/bin/gcc" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "# modifications to linux.conf" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_AR = /usr/bin/ar cqs" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_OBJCOPY = /usr/bin/objcopy" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_NM = /usr/bin/nm -P" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_STRIP = /usr/bin/strip" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR = /usr/include" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBDIR = /usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
@echo "QMAKE_CFLAGS_OPTIMIZE_FULL = -O2" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
@echo "QMAKE_LIBS += -latomic" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LIBS_EGL += -lEGL" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENGL_ES2 += -lGLESv2" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENVG += -lOpenVG" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS += -Wl,-rpath-link,/usr/lib$(LIBSUFFIX) -Wl,--export-dynamic" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "TARGET_HW_CFLAGS = $(ARCH_FLAGS) -DLINUX=1" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
@echo "load(qt_config)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/$(TARGET_SPEC_DIR)/qmake.conf
# ======= Set actual target mkspecs/devices/$(DEVICE_SPEC_DIR) =======
@mkdir -p $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)
@echo "#" > $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# qmake configuration for the $(HARDWARE) boards" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "#" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "MAKEFILE_GENERATOR = UNIX" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "CONFIG += incremental" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCREMENTAL_STYLE = sublib" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) \
$(TOOLCHAIN_POWER9_GLIBC) \
$(TOOLCHAIN_X86_64_GLIBC)),)
@echo "QMAKE_CFLAGS = -m64" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS = -m64" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "include(../../common/linux.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "include(../../common/gcc-base-unix.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "include(../../common/g++-unix.conf)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "load(device_config)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# modifications to g++.conf" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CC = /usr/bin/gcc" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXX = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_SHLIB = /usr/bin/g++" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LINK_C = /usr/bin/gcc" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "# modifications to linux.conf" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_AR = /usr/bin/ar cqs" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_OBJCOPY = /usr/bin/objcopy" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_STRIP = /usr/bin/strip" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR = /usr/include" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += /usr/include/gstreamer-1.0" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += /usr/include/libxml2" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_INCDIR += /usr/lib$(LIBSUFFIX)/glib-2.0/include" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBDIR = /usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
@echo "QMAKE_LIBS += -latomic" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LIBS_EGL += -lEGL" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LIBS_OPENVG += -lOpenVG -lEGL" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_A1X_GLIBC) $(TOOLCHAIN_A2X_GLIBC) \
$(TOOLCHAIN_H3_GLIBC) $(TOOLCHAIN_RK328X_GLIBC) \
$(TOOLCHAIN_S8XX_GLIBC) $(TOOLCHAIN_IMX6_GLIBC) \
$(TOOLCHAIN_AM335X_GLIBC) $(TOOLCHAIN_OMAP543X_GLIBC)),)
@echo "DISTRO_OPTS += hard-float" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) $(TOOLCHAIN_I686_GLIBC)),)
@echo "QMAKE_CFLAGS_SHLIB += -fPIC" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS_STATIC_LIB += -fPIC" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_LFLAGS += -Wl,-z,notext" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
endif
@echo "QMAKE_LFLAGS += -Wl,-rpath-link,/usr/lib$(LIBSUFFIX) -Wl,--export-dynamic" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "TARGET_HW_CFLAGS = $(ARCH_FLAGS) -DLINUX=1" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CFLAGS += \$$\$$TARGET_HW_CFLAGS" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "QMAKE_CXXFLAGS += -std=c++17 \$$\$$TARGET_HW_CFLAGS" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
@echo "load(qt_config)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs/devices/$(DEVICE_SPEC_DIR)/qmake.conf
# ======= Set actual target mkspecs/{qconfig,qdevice,qmodule}.pri =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/mkspecs ; \
cpu_arch=`cat qconfig.pri | grep -m2 'QT_ARCH' | tail -n1 | sed 's,[ \t]*QT_ARCH[ \t]*=[ \t]*\(.*\),\1,'` ; \
cpu_buildabi=`cat qconfig.pri | grep -m2 'QT_BUILDABI' | tail -n1 | sed 's,[ \t]*QT_BUILDABI[ \t]*=[ \t]*\(.*\),\1,'` ; \
sed -i "s,QT_ARCH.*,QT_ARCH = $${cpu_arch},1" qconfig.pri ; \
sed -i "s,QT_BUILDABI.*,QT_BUILDABI = $${cpu_buildabi},1" qconfig.pri ; \
sed -i 's,PKG_CONFIG_SYSROOT_DIR.*,PKG_CONFIG_SYSROOT_DIR = /,' qconfig.pri ; \
sed -i 's,cross_compile ,,g' qconfig.pri ; \
sed -i 's,$(TARGET_DEST_DIR),,g' qconfig.pri ; \
sed -i 's,$(ROOTFS_DEST_DIR),,g' qconfig.pri ; \
sed -i '/!host_build {/{:a;N;/}/!ba};/sysroot/d' qconfig.pri ; \
sed -i '/^CCACHE/d' qdevice.pri ; \
sed -i '/^CROSS_COMPILE/d' qdevice.pri ; \
cpu_features=`cat qmodule.pri | grep -m2 'QT_CPU_FEATURES' | tail -n1 | sed 's,[ \t]*QT_CPU_FEATURES\.\(.*\),\1,'` ; \
sed -i "s,QT_CPU_FEATURES.*,QT_CPU_FEATURES\.$${cpu_features},1" qmodule.pri ; \
sed -i 's,cross_compile ,,g' qmodule.pri ; \
sed -i 's,$(TARGET_DEST_DIR),,g' qmodule.pri ; \
)
# ======= Remove destination path from target *.prl files =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX) ; \
find . -type f -name 'libQt5*.prl' -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s,$(TARGET_DEST_DIR),,g' {} \; ; \
)
# ======= Remove destination path from target *.pc files =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX)/pkgconfig ; \
find . -type f -name 'Qt5*.pc' -exec sed -i 's,$(TARGET_DEST_DIR),,g' {} \; ; \
)
# ======= Add Profile scripts =======
@mkdir -p $(QT5_PKG)/etc/profile.d
@cat $(profile_dir)/qt5.csh.in | sed "s,@LIBDIRSUFFIX@,$(LIBSUFFIX),g" > $(QT5_PKG)/etc/profile.d/qt5.csh
@cat $(profile_dir)/qt5.sh.in | sed "s,@LIBDIRSUFFIX@,$(LIBSUFFIX),g" > $(QT5_PKG)/etc/profile.d/qt5.sh
@chmod 0755 $(QT5_PKG)/etc/profile.d/*
# ======= Add menu entries for Qt applications =======
@mkdir -p $(QT5_PKG)/usr/share/icons/hicolor/{16x16,32x32,48x48,64x64,128x128}/apps
@( cd $(SRC_DIR) ; \
convert qtdoc/doc/src/images/qt-logo.png -resize 32x32 $(QT5_PKG)/usr/share/icons/hicolor/32x32/apps/qt5-logo.png ; \
convert qtdoc/doc/src/images/qt-logo.png -resize 48x48 $(QT5_PKG)/usr/share/icons/hicolor/48x48/apps/qt5-logo.png ; \
install -p -m644 -D qttools/src/assistant/assistant/images/assistant.png $(QT5_PKG)/usr/share/icons/hicolor/32x32/apps/qt5-assistant.png ; \
install -p -m644 -D qttools/src/assistant/assistant/images/assistant-128.png $(QT5_PKG)/usr/share/icons/hicolor/128x128/apps/qt5-assistant.png ; \
install -p -m644 -D qttools/src/designer/src/designer/images/designer.png $(QT5_PKG)/usr/share/icons/hicolor/128x128/apps/qt5-designer.png ; \
for icon in qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do \
file=`basename $${icon}` ; \
size=`echo $${file} | cut -d- -f2` ; \
install -p -m644 -D $${icon} $(QT5_PKG)/usr/share/icons/hicolor/$${size}x$${size}/apps/qt5-linguist.png ; \
done ; \
install -p -m644 -D qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png $(QT5_PKG)/usr/share/icons/hicolor/32x32/apps/qt5-qdbusviewer.png ; \
install -p -m644 -D qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png $(QT5_PKG)/usr/share/icons/hicolor/128x128/apps/qt5-qdbusviewer.png ; \
)
@mkdir -p $(QT5_PKG)/usr/share/applications
@( cd $(applications_dir) ; \
for file in assistant designer linguist qdbusviewer ; do \
cat qt5-$${file}.desktop.in | \
sed "s,@QT5LINK@,/usr/lib$(LIBSUFFIX)/qt5,g" > $(QT5_PKG)/usr/share/applications/qt5-$${file}.desktop ; \
done ; \
)
# ======= Install Documentation =======
@mkdir -p $(QT5_PKG)/usr/doc/$(doc_dir_name)
@cp -a $(SRC_DIR)/LICENSE* \
$(QT5_PKG)/usr/doc/$(doc_dir_name)
@mkdir -p $(QT5_PKG)/usr/share/doc/$(doc_dir_name)
@( cd $(SRC_DIR) ; \
cp -a qtbase/INSTALL LICENSE* README \
$(QT5_PKG)/usr/share/doc/$(doc_dir_name) ; \
)
# ======= Install config.summary =======
@cat $(SRC_DIR)/config.summary \
> $(QT5_PKG)/usr/share/doc/$(doc_dir_name)/config.summary
# ======= Install the same to $(TARGET_DEST_DIR) =======
$(call install-into-devenv, $(QT5_PKG))
# ======= Install qt.conf file =======
@mkdir -p $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin
@echo "" > $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "[EffectivePaths]" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Prefix=/usr" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Headers=/usr/include/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Binaries=/usr/lib$(LIBSUFFIX)/qt5/bin" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostBinaries=/usr/lib$(LIBSUFFIX)/qt5/bin" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Libraries=/usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostLibraries=/usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "LibraryExecutables=/usr/lib$(LIBSUFFIX)/qt5/libexec" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "ArchData=/usr/lib$(LIBSUFFIX)/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Data=/usr/share/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostData=/usr/lib$(LIBSUFFIX)/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Plugins=/usr/lib$(LIBSUFFIX)/qt5/plugins" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Imports=/usr/lib$(LIBSUFFIX)/qt5/imports" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Qml2Imports=/usr/lib$(LIBSUFFIX)/qt5/qml" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Settings=/etc/xdg" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Examples=/usr/share/doc/$(doc_dir_name)/examples" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Demos=/usr/share/doc/$(doc_dir_name)/examples" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Tests=/usr/tests" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Translations=/usr/share/qt5/translations" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Documentation=/usr/share/doc/$(doc_dir_name)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "[Paths]" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Prefix=/usr" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Headers=/usr/include/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Binaries=/usr/lib$(LIBSUFFIX)/qt5/bin" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostBinaries=/usr/lib$(LIBSUFFIX)/qt5/bin" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Libraries=/usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostLibraries=/usr/lib$(LIBSUFFIX)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "LibraryExecutables=/usr/lib$(LIBSUFFIX)/qt5/libexec" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "ArchData=/usr/lib$(LIBSUFFIX)/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Data=/usr/share/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostData=/usr/lib$(LIBSUFFIX)/qt5" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Plugins=/usr/lib$(LIBSUFFIX)/qt5/plugins" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Imports=/usr/lib$(LIBSUFFIX)/qt5/imports" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Qml2Imports=/usr/lib$(LIBSUFFIX)/qt5/qml" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Settings=/etc/xdg" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Examples=/usr/share/doc/$(doc_dir_name)/examples" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Demos=/usr/share/doc/$(doc_dir_name)/examples" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Tests=/usr/tests" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Translations=/usr/share/qt5/translations" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "Documentation=/usr/share/doc/$(doc_dir_name)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "HostSpec=$(TARGET_SPEC_DIR)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "TargetSpec=devices/$(DEVICE_SPEC_DIR)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
@echo "#TargetSpec=$(TARGET_SPEC_DIR)" >> $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/qt.conf
# ======= Remove build-machine tools from target package =======
@rm -f $(QT5_PKG)/usr/bin/$(TARGET)-*
@rm -f $(QT5_PKG)/usr/lib$(LIBSUFFIX)/qt5/bin/$(TARGET)-*
# ======= Tune *.prl search paths for development =======
@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX) ; \
find . -type f -name 'libQt5*.prl' -exec sed -i 's,$(TARGET_DEST_DIR),,g' {} \; ; \
find . -type f -name 'libQt5*.prl' -exec sed -i 's,-L,-L$(TARGET_DEST_DIR),g' {} \; ; \
)
# ======= Tune pkg-config *.pc search paths for development =======
@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig ; \
find . -type f -name 'Qt5*.pc' -exec sed -i 's,$(TARGET_DEST_DIR),,g' {} \; ; \
find . -type f -name 'Qt5*.pc' -exec sed -i 's,/usr,$(TARGET_DEST_DIR)/usr,g' {} \; ; \
)
# ======= Tune cmake files for development =======
@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/cmake ; \
for file in `find . -type f -name '*.cmake' -print` ; do \
if grep -q 'lib$(LIBSUFFIX)/qt5/bin/' $${file} ; then \
sed -i 's,lib$(LIBSUFFIX)/qt5/bin/,lib$(LIBSUFFIX)/qt5/bin/$(TARGET)-,g' $${file} ; \
fi ; \
done ; \
)
# ======= Use build-machine qcollectiongenerator, qhelpgenerator =======
@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/cmake/Qt5Help ; \
sed -i '/-qcollectiongenerator"/s,".*","$(q-collection-generator)",' Qt5HelpConfigExtras.cmake ; \
sed -i '/-qhelpgenerator"/s,".*","$(q-help-generator)",' Qt5HelpConfigExtras.cmake ; \
)
# ======= Strip binaries =======
@( cd $(QT5_PKG) ; \
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
)
ifneq ($(PATCHELF),)
# ======= Set RPATH/RUNPATH for target binaries =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX) ; \
for file in `find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
$(PATCHELF) --set-rpath $(TARGET_BIN_RPATH) $$file 1> /dev/null 2> /dev/null ; \
fi ; \
done ; \
)
# ======= Set RPATH/RUNPATH for target shared objects =======
@( cd $(QT5_PKG)/usr/lib$(LIBSUFFIX) ; \
for file in `find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
$(PATCHELF) --set-rpath $(TARGET_LIB_RPATH) $$file 1> /dev/null 2> /dev/null ; \
fi ; \
done ; \
)
endif
@touch $@
$(QT5_PKG_DESCRIPTION_FILE): $(QT5_PKG_DESCRIPTION_FILE_IN)
@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
$(pkg_certificate) : $(pkg_archive) ;
$(pkg_signature) : $(pkg_archive) ;
$(pkg_description) : $(pkg_archive) ;
$(pkg_archive): $(install_target) $(QT5_PKG_DESCRIPTION_FILE) $(QT5_PKG_INSTALL_SCRIPT)
@cp $(QT5_PKG_DESCRIPTION_FILE) $(QT5_PKG)/.DESCRIPTION
@cp $(QT5_PKG_INSTALL_SCRIPT) $(QT5_PKG)/.INSTALL
@$(BUILD_PKG_REQUIRES) $(QT5_PKG)/.REQUIRES
@echo "pkgname=$(QT5_PKG_NAME)" > $(QT5_PKG)/.PKGINFO ; \
echo "pkgver=$(QT5_PKG_VERSION)" >> $(QT5_PKG)/.PKGINFO ; \
echo "arch=$(QT5_PKG_ARCH)" >> $(QT5_PKG)/.PKGINFO ; \
echo "distroname=$(QT5_PKG_DISTRO_NAME)" >> $(QT5_PKG)/.PKGINFO ; \
echo "distrover=$(QT5_PKG_DISTRO_VERSION)" >> $(QT5_PKG)/.PKGINFO ; \
echo "group=$(QT5_PKG_GROUP)" >> $(QT5_PKG)/.PKGINFO ; \
echo "short_description=\"$(QT5_PKG_SHORT_DESCRIPTION)\"" >> $(QT5_PKG)/.PKGINFO ; \
echo "url=$(QT5_PKG_URL)" >> $(QT5_PKG)/.PKGINFO ; \
echo "license=$(QT5_PKG_LICENSE)" >> $(QT5_PKG)/.PKGINFO
@$(PSEUDO) sh -c "cd $(QT5_PKG) && \
chown -R root:root . && \
$(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."