| ################################################################################ |
| # |
| # qt |
| # |
| ################################################################################ |
| |
| QT_VERSION_MAJOR = 4.8 |
| QT_VERSION = $(QT_VERSION_MAJOR).7 |
| QT_SOURCE = qt-everywhere-opensource-src-$(QT_VERSION).tar.gz |
| QT_SITE = http://download.qt-project.org/official_releases/qt/$(QT_VERSION_MAJOR)/$(QT_VERSION) |
| QT_DEPENDENCIES = host-pkgconf |
| QT_INSTALL_STAGING = YES |
| |
| QT_LICENSE := LGPL-2.1 with exceptions or GPL-3.0 |
| QT_LICENSE_FILES = LICENSE.LGPL LGPL_EXCEPTION.txt LICENSE.GPL3 |
| |
| # Opensource licenses are the only one we catter about |
| QT_CONFIGURE_OPTS += -opensource -confirm-license |
| |
| QT_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_QT_CONFIG_FILE)) |
| |
| ifneq ($(QT_CONFIG_FILE),) |
| QT_CONFIGURE_OPTS += -qconfig buildroot |
| endif |
| |
| QT_CFLAGS = $(TARGET_CFLAGS) |
| QT_CXXFLAGS = $(TARGET_CXXFLAGS) |
| QT_LDFLAGS = $(TARGET_LDFLAGS) |
| |
| # Qt WebKit build fails when gcc-6 is used for build, because |
| # 'std::auto_ptr' is deprecated starting from gcc 6.x. So, we have to |
| # use an older c++ standard to prevent build failure |
| QT_CXXFLAGS += -std=gnu++98 |
| |
| # Qt has some assembly function that are not present in thumb1 mode: |
| # Error: selected processor does not support Thumb mode `swp r3,r7,[r4]' |
| # so, we desactivate thumb mode |
| ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) |
| QT_CFLAGS += -marm |
| QT_CXXFLAGS += -marm |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y) |
| QT_CONFIGURE_OPTS += -qt3support |
| else |
| QT_CONFIGURE_OPTS += -no-qt3support |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_DEMOS),y) |
| QT_CONFIGURE_OPTS += -demosdir $(TARGET_DIR)/usr/share/qt/demos |
| else |
| QT_CONFIGURE_OPTS += -nomake demos |
| endif |
| ifeq ($(BR2_PACKAGE_QT_EXAMPLES),y) |
| QT_CONFIGURE_OPTS += -examplesdir $(TARGET_DIR)/usr/share/qt/examples |
| else |
| QT_CONFIGURE_OPTS += -nomake examples |
| endif |
| |
| # ensure glib is built first if enabled for Qt's glib support |
| ifeq ($(BR2_PACKAGE_LIBGLIB2),y) |
| QT_CONFIGURE_OPTS += -glib |
| QT_DEPENDENCIES += libglib2 |
| else |
| QT_CONFIGURE_OPTS += -no-glib |
| endif |
| |
| ### Pixel depths |
| QT_PIXEL_DEPTHS = # empty |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_1),y) |
| QT_PIXEL_DEPTHS += 1 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_4),y) |
| QT_PIXEL_DEPTHS += 4 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_8),y) |
| QT_PIXEL_DEPTHS += 8 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_12),y) |
| QT_PIXEL_DEPTHS += 12 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_15),y) |
| QT_PIXEL_DEPTHS += 15 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_16),y) |
| QT_PIXEL_DEPTHS += 16 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_18),y) |
| QT_PIXEL_DEPTHS += 18 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_24),y) |
| QT_PIXEL_DEPTHS += 24 |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_32),y) |
| QT_PIXEL_DEPTHS += 32 |
| endif |
| ifneq ($(QT_PIXEL_DEPTHS),) |
| QT_CONFIGURE_OPTS += -depths $(subst $(space),$(comma),$(strip $(QT_PIXEL_DEPTHS))) |
| endif |
| |
| ### Display drivers |
| ifeq ($(BR2_PACKAGE_QT_GFX_LINUXFB),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-linuxfb |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-linuxfb |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_TRANSFORMED),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-transformed |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-transformed |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_QVFB),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-qvfb |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-qvfb |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_VNC),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-vnc |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-vnc |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_MULTISCREEN),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-multiscreen |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-multiscreen |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_DIRECTFB),y) |
| QT_CONFIGURE_OPTS += -qt-gfx-directfb |
| QT_DEPENDENCIES += directfb |
| else |
| QT_CONFIGURE_OPTS += -no-gfx-directfb |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y) |
| QT_CONFIGURE_OPTS += \ |
| -plugin-gfx-powervr -D QT_NO_QWS_CURSOR -D QT_QWS_CLIENTBLIT |
| QT_DEPENDENCIES += powervr |
| endif |
| |
| ### Mouse drivers |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_PC),y) |
| QT_CONFIGURE_OPTS += -qt-mouse-pc |
| else |
| QT_CONFIGURE_OPTS += -no-mouse-pc |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXTP),y) |
| QT_CONFIGURE_OPTS += -qt-mouse-linuxtp |
| else |
| QT_CONFIGURE_OPTS += -no-mouse-linuxtp |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXINPUT),y) |
| QT_CONFIGURE_OPTS += -qt-mouse-linuxinput |
| else |
| QT_CONFIGURE_OPTS += -no-mouse-linuxinput |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_TSLIB),y) |
| QT_CONFIGURE_OPTS += -qt-mouse-tslib |
| QT_DEPENDENCIES += tslib |
| else |
| QT_CONFIGURE_OPTS += -no-mouse-tslib |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_QVFB),y) |
| QT_CONFIGURE_OPTS += -qt-mouse-qvfb |
| else |
| QT_CONFIGURE_OPTS += -no-mouse-qvfb |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MOUSE_NO_QWS_CURSOR),y) |
| QT_CONFIGURE_OPTS += -D QT_NO_QWS_CURSOR |
| endif |
| |
| ### Keyboard drivers |
| ifeq ($(BR2_PACKAGE_QT_KEYBOARD_TTY),y) |
| QT_CONFIGURE_OPTS += -qt-kbd-tty |
| else |
| QT_CONFIGURE_OPTS += -no-kbd-tty |
| endif |
| ifeq ($(BR2_PACKAGE_QT_KEYBOARD_LINUXINPUT),y) |
| QT_CONFIGURE_OPTS += -qt-kbd-linuxinput |
| else |
| QT_CONFIGURE_OPTS += -no-kbd-linuxinput |
| endif |
| ifeq ($(BR2_PACKAGE_QT_KEYBOARD_QVFB),y) |
| QT_CONFIGURE_OPTS += -qt-kbd-qvfb |
| else |
| QT_CONFIGURE_OPTS += -no-kbd-qvfb |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_DEBUG),y) |
| QT_CONFIGURE_OPTS += -debug |
| else |
| QT_CONFIGURE_OPTS += -release |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_SHARED),y) |
| QT_CONFIGURE_OPTS += -shared |
| else |
| QT_CONFIGURE_OPTS += -static |
| endif |
| |
| ifeq ($(BR2_STATIC_LIBS),y) |
| QT_CONFIGURE_OPTS += -D QT_NO_DYNAMIC_LIBRARY |
| endif |
| |
| ifeq ($(BR2_ENDIAN),"LITTLE") |
| QT_CONFIGURE_OPTS += -little-endian |
| else |
| QT_CONFIGURE_OPTS += -big-endian |
| endif |
| |
| ifeq ($(BR2_arm)$(BR2_armeb),y) |
| QT_EMB_PLATFORM = arm |
| else ifeq ($(BR2_i386),y) |
| QT_EMB_PLATFORM = x86 |
| else ifeq ($(BR2_x86_64),y) |
| QT_EMB_PLATFORM = x86_64 |
| else ifeq ($(BR2_mips)$(BR2_mipsel),y) |
| QT_EMB_PLATFORM = mips |
| else ifeq ($(BR2_powerpc),y) |
| QT_EMB_PLATFORM = powerpc |
| else ifeq ($(BR2_sh4)$(BR2_sh4eb)$(BR2_sh4a)$(BR2_sh4aeb),y) |
| QT_EMB_PLATFORM = sh |
| else |
| QT_EMB_PLATFORM = generic |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_X11),y) |
| QT_DEPENDENCIES += fontconfig xlib_libXi xlib_libX11 xlib_libXrender \ |
| xlib_libXcursor xlib_libXrandr xlib_libXext xlib_libXv |
| # Using pkg-config avoids us some logic to redefine and sed again mkspecs files |
| # to add X11 include path and link options |
| QT_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags x11` |
| QT_CXXFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags x11` |
| QT_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs x11 xext` |
| QT_CONFIGURE_OPTS += -arch $(QT_EMB_PLATFORM) \ |
| -xplatform qws/linux-$(QT_EMB_PLATFORM)-g++ -x11 -no-gtkstyle -no-sm \ |
| -no-openvg |
| else # if BR2_PACKAGE_QT_EMBEDDED |
| QT_CONFIGURE_OPTS += -embedded $(QT_EMB_PLATFORM) |
| endif |
| |
| ifneq ($(BR2_PACKAGE_QT_GUI_MODULE),y) |
| QT_CONFIGURE_OPTS += -no-gui |
| endif |
| |
| ifneq ($(BR2_PACKAGE_QT_GIF),y) |
| QT_CONFIGURE_OPTS += -no-gif |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_LIBMNG),y) |
| QT_CONFIGURE_OPTS += -qt-libmng |
| else |
| QT_CONFIGURE_OPTS += -no-libmng |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_ACCESSIBILITY),y) |
| QT_CONFIGURE_OPTS += -accessibility |
| else |
| QT_CONFIGURE_OPTS += -no-accessibility |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_QTZLIB),y) |
| QT_CONFIGURE_OPTS += -qt-zlib |
| else |
| ifeq ($(BR2_PACKAGE_QT_SYSTEMZLIB),y) |
| QT_CONFIGURE_OPTS += -system-zlib |
| QT_DEPENDENCIES += zlib |
| endif |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_QTJPEG),y) |
| QT_CONFIGURE_OPTS += -qt-libjpeg |
| else |
| ifeq ($(BR2_PACKAGE_QT_SYSTEMJPEG),y) |
| QT_CONFIGURE_OPTS += -system-libjpeg |
| QT_DEPENDENCIES += jpeg |
| else |
| QT_CONFIGURE_OPTS += -no-libjpeg |
| endif |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_QTPNG),y) |
| QT_CONFIGURE_OPTS += -qt-libpng |
| else |
| ifeq ($(BR2_PACKAGE_QT_SYSTEMPNG),y) |
| QT_CONFIGURE_OPTS += -system-libpng |
| QT_DEPENDENCIES += libpng |
| else |
| QT_CONFIGURE_OPTS += -no-libpng |
| endif |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_QTTIFF),y) |
| QT_CONFIGURE_OPTS += -qt-libtiff |
| else |
| ifeq ($(BR2_PACKAGE_QT_SYSTEMTIFF),y) |
| QT_CONFIGURE_OPTS += -system-libtiff |
| QT_DEPENDENCIES += tiff |
| else |
| QT_CONFIGURE_OPTS += -no-libtiff |
| endif |
| endif |
| |
| QT_FONTS = $(addprefix $(STAGING_DIR)/usr/lib/fonts/, $(addsuffix *.qpf, \ |
| $(if $(BR2_PACKAGE_QT_FONT_MICRO),micro) \ |
| $(if $(BR2_PACKAGE_QT_FONT_FIXED),fixed) \ |
| $(if $(BR2_PACKAGE_QT_FONT_HELVETICA),helvetica) \ |
| $(if $(BR2_PACKAGE_QT_FONT_JAPANESE),japanese) \ |
| $(if $(BR2_PACKAGE_QT_FONT_UNIFONT),unifont))) |
| |
| ifeq ($(BR2_PACKAGE_QT_QTFREETYPE),y) |
| QT_CONFIGURE_OPTS += -qt-freetype |
| else |
| ifeq ($(BR2_PACKAGE_QT_SYSTEMFREETYPE),y) |
| QT_CONFIGURE_OPTS += -system-freetype |
| QT_CONFIGURE_OPTS += -I $(STAGING_DIR)/usr/include/freetype2/ |
| QT_DEPENDENCIES += freetype |
| else |
| QT_CONFIGURE_OPTS += -no-freetype |
| endif |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_DBUS),y) |
| QT_DEPENDENCIES += dbus |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_OPENSSL),y) |
| QT_CONFIGURE_OPTS += -openssl |
| QT_DEPENDENCIES += openssl |
| else |
| QT_CONFIGURE_OPTS += -no-openssl |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_OPENGL_ES),y) |
| QT_CONFIGURE_OPTS += -opengl es2 -egl |
| QT_DEPENDENCIES += libgles libegl |
| QT_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl` |
| QT_CXXFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags egl` |
| QT_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs egl` |
| else ifeq ($(BR2_PACKAGE_QT_OPENGL_GL_DESKTOP),y) |
| QT_CONFIGURE_OPTS += -opengl desktop |
| QT_DEPENDENCIES += libgl |
| else |
| QT_CONFIGURE_OPTS += -no-opengl |
| endif |
| |
| # Qt SQL Drivers |
| ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y) |
| ifeq ($(BR2_PACKAGE_QT_MYSQL),y) |
| QT_CONFIGURE_OPTS += -qt-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config |
| QT_DEPENDENCIES += mysql |
| endif |
| ifeq ($(BR2_PACKAGE_QT_ODBC),y) |
| QT_CONFIGURE_OPTS += -qt-sql-odbc |
| QT_DEPENDENCIES += unixodbc |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PSQL),y) |
| QT_CONFIGURE_OPTS += -qt-sql-psql -psql_config $(STAGING_DIR)/usr/bin/pg_config |
| QT_DEPENDENCIES += postgresql |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SQLITE_QT),y) |
| QT_CONFIGURE_OPTS += -qt-sql-sqlite |
| else |
| ifeq ($(BR2_PACKAGE_QT_SQLITE_SYSTEM),y) |
| QT_CONFIGURE_OPTS += -system-sqlite |
| QT_DEPENDENCIES += sqlite |
| else |
| QT_CONFIGURE_OPTS += -no-sql-sqlite |
| endif |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SQLITE2),y) |
| QT_CONFIGURE_OPTS += -qt-sql-sqlite2 |
| endif |
| else |
| # By default, no SQL driver is turned on by configure. |
| # but it seems sqlite isn't disabled despite what says |
| # configure --help |
| QT_CONFIGURE_OPTS += -no-sql-sqlite |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y) |
| QT_CONFIGURE_OPTS += -xmlpatterns -exceptions |
| else |
| QT_CONFIGURE_OPTS += -no-xmlpatterns |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y) |
| QT_CONFIGURE_OPTS += -multimedia |
| else |
| QT_CONFIGURE_OPTS += -no-multimedia |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_AUDIO_BACKEND),y) |
| QT_CONFIGURE_OPTS += -audio-backend |
| QT_DEPENDENCIES += alsa-lib |
| else |
| QT_CONFIGURE_OPTS += -no-audio-backend |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_PHONON),y) |
| QT_CONFIGURE_OPTS += -phonon |
| QT_DEPENDENCIES += gstreamer gst-plugins-base |
| else |
| QT_CONFIGURE_OPTS += -no-phonon |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_PHONON_BACKEND),y) |
| QT_CONFIGURE_OPTS += -phonon-backend |
| else |
| QT_CONFIGURE_OPTS += -no-phonon-backend |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_SVG),y) |
| QT_CONFIGURE_OPTS += -svg |
| else |
| QT_CONFIGURE_OPTS += -no-svg |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_WEBKIT),y) |
| QT_CONFIGURE_OPTS += -webkit |
| QT_DEPENDENCIES += gstreamer gst-plugins-base |
| else |
| QT_CONFIGURE_OPTS += -no-webkit |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_SCRIPT),y) |
| QT_CONFIGURE_OPTS += -script |
| else |
| QT_CONFIGURE_OPTS += -no-script |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y) |
| QT_CONFIGURE_OPTS += -scripttools |
| else |
| QT_CONFIGURE_OPTS += -no-scripttools |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_STL),y) |
| QT_CONFIGURE_OPTS += -stl |
| else |
| QT_CONFIGURE_OPTS += -no-stl |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_DECLARATIVE),y) |
| QT_CONFIGURE_OPTS += -declarative |
| else |
| QT_CONFIGURE_OPTS += -no-declarative |
| endif |
| |
| # -no-pch is needed to workaround the issue described at |
| # http://comments.gmane.org/gmane.comp.lib.qt.devel/5933. |
| # In addition, ccache and precompiled headers don't play well together |
| QT_CONFIGURE_OPTS += -no-pch |
| |
| # x86x86fix |
| # Workaround Qt Embedded bug when crosscompiling for x86 under x86 with linux |
| # host. It's unclear if this would happen on other hosts. |
| ifneq ($(findstring linux,$(GNU_HOST_NAME)),) |
| ifneq ($(findstring x86,$(QT_EMB_PLATFORM)),) |
| QT_CONFIGURE_OPTS += -platform linux-g++ |
| endif |
| endif |
| # End of workaround. |
| |
| # Variable for other Qt applications to use |
| QT_QMAKE = $(HOST_DIR)/bin/qmake -spec qws/linux-$(QT_EMB_PLATFORM)-g++ |
| |
| ################################################################################ |
| # QT_QMAKE_SET -- helper macro to set <variable> = <value> in |
| # the qmake.conf file. Will remove existing variable declaration if |
| # available. |
| # |
| # Argument 1 is the variable name |
| # Argument 2 is the value to set variable to |
| # Argument 3 is the base source directory of Qt |
| # |
| # E.G. use like this: |
| # $(call QT_QMAKE_SET,variable,value,directory) |
| ################################################################################ |
| define QT_QMAKE_SET |
| $(SED) '/$(1)/d' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf |
| $(SED) "/include.*qws.conf/a$(1) = $(2)" $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf |
| endef |
| |
| ifneq ($(QT_CONFIG_FILE),) |
| define QT_CONFIGURE_CONFIG_FILE |
| cp $(QT_CONFIG_FILE) $(@D)/src/corelib/global/qconfig-buildroot.h |
| endef |
| endif |
| |
| define QT_CONFIGURE_CMDS |
| -[ -f $(@D)/Makefile ] && $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) confclean |
| $(QT_CONFIGURE_IPV6) |
| $(QT_CONFIGURE_CONFIG_FILE) |
| # Fix compiler path |
| $(call QT_QMAKE_SET,QMAKE_CC,$(TARGET_CC),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_CXX,$(TARGET_CXX),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_LINK,$(TARGET_CXX),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_LINK_SHLIB,$(TARGET_CXX),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_AR,$(TARGET_AR) cqs,$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_OBJCOPY,$(TARGET_OBJCOPY),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_RANLIB,$(TARGET_RANLIB),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_STRIP,$(TARGET_STRIP),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_CFLAGS,$(QT_CFLAGS),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_CXXFLAGS,$(QT_CXXFLAGS),$(@D)) |
| $(call QT_QMAKE_SET,QMAKE_LFLAGS,$(QT_LDFLAGS),$(@D)) |
| $(call QT_QMAKE_SET,PKG_CONFIG,$(HOST_DIR)/bin/pkg-config,$(@D)) |
| # Don't use TARGET_CONFIGURE_OPTS here, qmake would be compiled for the target |
| # instead of the host then. So set PKG_CONFIG* manually. |
| (cd $(@D); \ |
| PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \ |
| PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ |
| PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \ |
| $(TARGET_MAKE_ENV) \ |
| MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" ./configure \ |
| $(if $(VERBOSE),-verbose,-silent) \ |
| -force-pkg-config \ |
| $(QT_CONFIGURE_OPTS) \ |
| -no-xinerama \ |
| -no-cups \ |
| -no-nis \ |
| -no-separate-debug-info \ |
| -prefix /usr \ |
| -plugindir /usr/lib/qt/plugins \ |
| -importdir /usr/lib/qt/imports \ |
| -translationdir /usr/share/qt/translations \ |
| -hostprefix $(STAGING_DIR) \ |
| -fast \ |
| -no-rpath \ |
| ) |
| endef |
| |
| define QT_BUILD_CMDS |
| $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) |
| endef |
| |
| # Build the list of libraries and plugins to install to the target |
| |
| QT_INSTALL_LIBS += QtCore |
| QT_HOST_PROGRAMS += moc rcc qmake lrelease |
| |
| ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y) |
| QT_INSTALL_LIBS += QtGui |
| QT_HOST_PROGRAMS += uic |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y) |
| QT_INSTALL_LIBS += QtSql |
| endif |
| ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y) |
| QT_INSTALL_LIBS += QtMultimedia |
| endif |
| ifeq ($(BR2_PACKAGE_QT_PHONON),y) |
| QT_INSTALL_LIBS += phonon |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SVG),y) |
| QT_INSTALL_LIBS += QtSvg |
| endif |
| ifeq ($(BR2_PACKAGE_QT_NETWORK),y) |
| QT_INSTALL_LIBS += QtNetwork |
| endif |
| ifeq ($(BR2_PACKAGE_QT_WEBKIT),y) |
| QT_INSTALL_LIBS += QtWebKit |
| endif |
| ifeq ($(BR2_PACKAGE_QT_XML),y) |
| QT_INSTALL_LIBS += QtXml |
| endif |
| ifeq ($(BR2_PACKAGE_QT_DBUS),y) |
| QT_INSTALL_LIBS += QtDBus |
| endif |
| ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y) |
| QT_INSTALL_LIBS += QtXmlPatterns |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SCRIPT),y) |
| QT_INSTALL_LIBS += QtScript |
| endif |
| ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y) |
| QT_INSTALL_LIBS += QtScriptTools |
| endif |
| ifeq ($(BR2_PACKAGE_QT_DECLARATIVE),y) |
| QT_INSTALL_LIBS += QtDeclarative |
| endif |
| ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y) |
| QT_INSTALL_LIBS += Qt3Support |
| endif |
| ifeq ($(BR2_PACKAGE_QT_OPENGL_ES),y) |
| QT_INSTALL_LIBS += QtOpenGL |
| endif |
| ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y) |
| QT_INSTALL_LIBS += pvrQWSWSEGL |
| endif |
| ifeq ($(BR2_PACKAGE_QT_TEST),y) |
| QT_INSTALL_LIBS += QtTest |
| endif |
| |
| QT_CONF_FILE = $(HOST_DIR)/bin/qt.conf |
| |
| # Since host programs and spec files have been moved to $(HOST_DIR), |
| # we need to tell qmake the new location of the various elements, |
| # through a qt.conf file. |
| define QT_INSTALL_QT_CONF |
| mkdir -p $(dir $(QT_CONF_FILE)) |
| echo "[Paths]" > $(QT_CONF_FILE) |
| echo "Prefix=$(HOST_DIR)" >> $(QT_CONF_FILE) |
| echo "Headers=$(STAGING_DIR)/usr/include" >> $(QT_CONF_FILE) |
| echo "Libraries=$(STAGING_DIR)/usr/lib" >> $(QT_CONF_FILE) |
| echo "Data=$(HOST_DIR)" >> $(QT_CONF_FILE) |
| echo "Binaries=$(HOST_DIR)/bin" >> $(QT_CONF_FILE) |
| endef |
| |
| # After running Qt normal installation process (which installs |
| # everything in the STAGING_DIR), we move host programs such as qmake, |
| # rcc or uic to the HOST_DIR so that they are available at the usual |
| # location. A qt.conf file is generated to make sure that all host |
| # programs still find all files they need. The .pc files are tuned to |
| # remove the sysroot path from them, since pkg-config already adds it |
| # automatically. |
| define QT_INSTALL_STAGING_CMDS |
| $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install |
| mkdir -p $(HOST_DIR)/bin |
| mv $(addprefix $(STAGING_DIR)/usr/bin/,$(QT_HOST_PROGRAMS)) $(HOST_DIR)/bin |
| ln -sf $(STAGING_DIR)/usr/mkspecs $(HOST_DIR)/mkspecs |
| $(QT_INSTALL_QT_CONF) |
| for i in moc uic rcc lupdate lrelease ; do \ |
| $(SED) "s,^$${i}_location=.*,$${i}_location=$(HOST_DIR)/bin/$${i}," \ |
| $(STAGING_DIR)/usr/lib/pkgconfig/Qt*.pc ; \ |
| done |
| $(SED) "s,$(STAGING_DIR)/,,g" $(STAGING_DIR)/usr/lib/pkgconfig/Qt*.pc |
| endef |
| |
| # Library installation |
| ifeq ($(BR2_PACKAGE_QT_SHARED),y) |
| define QT_INSTALL_TARGET_LIBS |
| mkdir -p $(TARGET_DIR)/usr/lib |
| for lib in $(QT_INSTALL_LIBS); do \ |
| cp -dpf $(STAGING_DIR)/usr/lib/lib$${lib}.so.* $(TARGET_DIR)/usr/lib ; \ |
| done |
| endef |
| endif |
| |
| # Plugin installation |
| define QT_INSTALL_TARGET_PLUGINS |
| if [ -d $(STAGING_DIR)/usr/lib/qt/plugins/ ] ; then \ |
| mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins ; \ |
| cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins ; \ |
| fi |
| endef |
| |
| # Import installation |
| define QT_INSTALL_TARGET_IMPORTS |
| if [ -d $(STAGING_DIR)/usr/lib/qt/imports/ ] ; then \ |
| mkdir -p $(TARGET_DIR)/usr/lib/qt/imports ; \ |
| cp -dpfr $(STAGING_DIR)/usr/lib/qt/imports/* $(TARGET_DIR)/usr/lib/qt/imports ; \ |
| fi |
| endef |
| |
| # Fonts installation |
| ifeq ($(BR2_PACKAGE_QT_EMBEDDED),y) |
| ifneq ($(QT_FONTS),) |
| define QT_INSTALL_TARGET_FONTS |
| mkdir -p $(TARGET_DIR)/usr/lib/fonts |
| cp -dpf $(QT_FONTS) $(TARGET_DIR)/usr/lib/fonts |
| endef |
| ifneq ($(BR2_PACKAGE_QT_FONT_MICRO)$(BR2_PACKAGE_QT_FONT_FIXED),) |
| # as stated in the font source src/3rdparty/fonts/micro.bdf |
| # source src/3rdparty/fonts/5x7.bdf and source src/3rdparty/fonts/6x13.bdf |
| QT_LICENSE := $(QT_LICENSE), Public Domain (Micro/Fixed font) |
| endif |
| ifneq ($(BR2_PACKAGE_QT_FONT_HELVETICA)$(BR2_PACKAGE_QT_FONT_JAPANESE),) |
| QT_LICENSE := $(QT_LICENSE), Adobe Helvetica license (Helvetica/Japanese fonts) |
| QT_LICENSE_FILES += src/3rdparty/fonts/COPYING.Helvetica |
| endif |
| ifeq ($(BR2_PACKAGE_QT_FONT_UNIFONT),y) |
| QT_LICENSE := $(QT_LICENSE), Freeware (Unifont font) |
| QT_LICENSE_FILES += src/3rdparty/fonts/COPYRIGHT.Unifont |
| endif |
| endif # QT_FONTS |
| |
| ifeq ($(BR2_PACKAGE_QT_FONT_TRUETYPE),y) |
| define QT_INSTALL_TARGET_FONTS_TTF |
| mkdir -p $(TARGET_DIR)/usr/lib/fonts |
| cp -dpf $(STAGING_DIR)/usr/lib/fonts/*.ttf $(TARGET_DIR)/usr/lib/fonts |
| endef |
| QT_LICENSE := $(QT_LICENSE), Bitstream license (DejaVu/Vera TrueType fonts) |
| QT_LICENSE_FILES += src/3rdparty/fonts/COPYRIGHT.DejaVu \ |
| src/3rdparty/fonts/README.DejaVu \ |
| src/3rdparty/fonts/COPYRIGHT.Vera |
| endif |
| endif # BR2_PACKAGE_QT_EMBEDDED |
| |
| ifeq ($(BR2_PACKAGE_QT_GFX_POWERVR),y) |
| define QT_INSTALL_TARGET_POWERVR |
| # Note: this overwrites the default powervr.ini provided by the ti-gfx |
| # package. |
| $(INSTALL) -D -m 0644 package/qt/powervr.ini \ |
| $(TARGET_DIR)/etc/powervr.ini |
| endef |
| endif |
| |
| ifeq ($(BR2_PACKAGE_QT_TRANSLATION_FILES),y) |
| define QT_INSTALL_TARGET_TRANSLATIONS |
| if [ -d $(STAGING_DIR)/usr/share/qt/translations/ ] ; then \ |
| mkdir -p $(TARGET_DIR)/usr/share/qt/translations ; \ |
| cp -dpfr $(STAGING_DIR)/usr/share/qt/translations/* $(TARGET_DIR)/usr/share/qt/translations ; \ |
| fi |
| endef |
| endif |
| |
| define QT_INSTALL_TARGET_CMDS |
| $(QT_INSTALL_TARGET_LIBS) |
| $(QT_INSTALL_TARGET_PLUGINS) |
| $(QT_INSTALL_TARGET_IMPORTS) |
| $(QT_INSTALL_TARGET_FONTS) |
| $(QT_INSTALL_TARGET_FONTS_TTF) |
| $(QT_INSTALL_TARGET_POWERVR) |
| $(QT_INSTALL_TARGET_TRANSLATIONS) |
| endef |
| |
| $(eval $(generic-package)) |