X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=Xorg%2Flib%2Fqt4%2FMakefile;h=9c8d5fb7760b2babbd1097c5c46cba4a40f6f7c7;hp=e6ee70242c84f410020b775195e4c6d53ddc529c;hb=27b309cd389d09eba2b5f1d43d5b245d87a02c53;hpb=a020427523acbbe1ee6c47da46e6e58d49647c4b diff --git a/Xorg/lib/qt4/Makefile b/Xorg/lib/qt4/Makefile index e6ee70242c..9c8d5fb776 100644 --- a/Xorg/lib/qt4/Makefile +++ b/Xorg/lib/qt4/Makefile @@ -6,23 +6,33 @@ # # TODO: -# - handle software which uses qmake in a more generic way (move functionality / generic qmake-config into buildroot) -# - use generic qmake, moc, etc. executables since building them within the qt stack will get redundant and annyoing when other sw will need them as well # - test/add X11/xcb support # - handle plugins in a granular way (find out which packages should provide which plugins) include $(TOPDIR)/rules.mk PKG_NAME:=qt4 -PKG_VERSION:=4.7.0-beta1 +PKG_VERSION:=4.7.0-beta2 PKG_RELEASE:=1 PKG_SOURCE:=qt-everywhere-opensource-src-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=ftp://ftp.qt.nokia.com/qt/source PKG_BUILD_DIR=$(BUILD_DIR)/qt-everywhere-opensource-src-$(PKG_VERSION) +PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk +# this should be moved to a more generic place later, as other packages are configured different as well depending on available nptl support +ifeq ($(CONFIG_USE_GLIBC),y) + NPTL:=y +endif +ifeq ($(CONFIG_USE_EGLIBC),y) + NPTL:=y +endif +ifeq ($(CONFIG_UCLIBC_VERSION_0_9_32),y) + NPTL:=y +endif + define Package/qt4/Default SECTION:=xorg-framework CATEGORY:=Xorg @@ -34,13 +44,13 @@ endef define Package/qt4 $(call Package/qt4/Default) - DEPENDS:=@FEATURE_drawing-backend_DirectFB +FEATURE_drawing-backend_DirectFB:directfb +zlib +libstdcpp +libsqlite3 # require directfb for now, as other systems (libX11, xcb) are untested + DEPENDS:=@FEATURE_drawing-backend_DirectFB +FEATURE_drawing-backend_DirectFB:directfb +zlib +libstdcpp +libsqlite3 +tslib # require directfb for now, as other systems (libX11, xcb) are untested endef define Package/qt4-gui $(call Package/qt4/Default) #DEPENDS+=+FEATURE_drawing-backend_DirectFB:directfb +libpng +libtiff +libjpeg +libfreetype - DEPENDS+=+libpng +libtiff +libjpeg +libfreetype + DEPENDS+=+libpng +libtiff +libjpeg +libfreetype +qt4-network TITLE+=(gui) endef @@ -86,7 +96,7 @@ endef define Package/qt4-phonon $(call Package/qt4/Default) TITLE+=(phonon) - DEPENDS+=+qt4-gui + DEPENDS+=+qt4-gui +qt4-xml +qt4-dbus +qt4-network endef #define Package/qt4-phonon-backend @@ -98,13 +108,13 @@ define Package/qt4-svg $(call Package/qt4/Default) TITLE+=(svg) #DEPENDS+=+qt4-gui @BROKEN - DEPENDS+=+qt4-gui + DEPENDS+=+qt4-gui +qt4-network endef define Package/qt4-webkit $(call Package/qt4/Default) TITLE+=(webkit) - DEPENDS+=@USE_GLIBC||@USE_EGLIBC||@UCLIBC_VERSION_0_9_32 # versions of uclibc prior 0.9.32 do not have nptl support + DEPENDS+=@USE_GLIBC||@USE_EGLIBC||@UCLIBC_VERSION_0_9_32 +libsqlite3 +qt4-phonon +qt4-dbus +qt4-xml +qt4-gui +qt4-network # versions of uclibc prior 0.9.32 do not have nptl support endef define Package/qt4-script @@ -116,7 +126,7 @@ endef define Package/qt4-scripttools $(call Package/qt4/Default) TITLE+=(scripttools) - DEPENDS+=+qt4-script + DEPENDS+=+qt4-script +qt4-gui +qt4-network endef #define Package/qt4-accessibility @@ -137,7 +147,7 @@ endef define Package/qt4-dbus $(call Package/qt4/Default) TITLE+=(dbus) - DEPENDS+=+libdbus + DEPENDS+=+libdbus +qt4-xml endef #define Package/qt4-gtkstyle @@ -153,58 +163,97 @@ endef define Package/qt4-qt3support $(call Package/qt4/Default) TITLE+=(qt3support) + DEPENDS+=+qt4-gui +qt4-xml +endef + +define Package/qt4-declarative + $(call Package/qt4/Default) + TITLE+=(declarative) + DEPENDS+=+qt4-script +qt4-xml +qt4-gui +qt4-network +endef + +define Package/qt4-xml + $(call Package/qt4/Default) + TITLE+=(xml) +endef + +### +define Package/qt4-drivers-mouse/Default + $(call Package/qt4/Default) + TITLE+=mousedrivers +endef + +define Package/qt4-drivers-mouse-tpmousedriver + $(call Package/qt4-drivers-mouse/Default) + TITLE+=tpmousedriver +endef + +define Package/qt4-drivers-mouse-pcmousedriver + $(call Package/qt4-drivers-mouse/Default) + TITLE+=pcmousedriver +endef + +define Package/qt4-drivers-mouse-tslibmousedriver + $(call Package/qt4-drivers-mouse/Default) + TITLE+=tslibmousedriver +endef + +### +define Package/qt4-drivers-gfx/Default + $(call Package/qt4/Default) + TITLE+=gfxdrivers endef -TARGET_CFLAGS+="-I$(STAGING_DIR)/usr/include/freetype2" +define Package/qt4-drivers-gfx-directfb + $(call Package/qt4-drivers-gfx/Default) + TITLE+=directfb +endef + +define Package/qt4-drivers-gfx-linuxfb + $(call Package/qt4-drivers-gfx/Default) + TITLE+=linuxfb +endef + +### +define Package/qt4-drivers-kbd/Default + $(call Package/qt4/Default) + TITLE+=kbddrivers +endef + +define Package/qt4-drivers-kbd-linuxinput + $(call Package/qt4-drivers-kbd/Default) + TITLE+=linuxinput +endef + + +TARGET_INCDIRS+=$(STAGING_DIR)/include $(STAGING_DIR)/usr/include $(TOOLCHAIN_DIR)/include $(TOOLCHAIN_DIR)/usr/include +TARGET_LIBDIRS+=$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib $(TOOLCHAIN_DIR)/lib $(TOOLCHAIN_DIR)/usr/lib +TARGET_LDFLAGS+=-Wl,-rpath-link=$(STAGING_DIR)/usr/lib,-rpath-link=$(PKG_BUILD_DIR)/lib +TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/freetype2 -I$(PKG_BUILD_DIR)/include define Build/Configure - # demos/examples: which demos are going to be built depends on which features are going to to be compiled into qt - # svg: svg support always compiled in, as once qt is built without, strange include errors occur when we're going to compile qt4-svg afterwards - # linuxfb/directfb: since directfb is not much overhead compared to plain framebuffer, force using directfb - # do not use fontconfig as it doesn't work anyway for qte - ( \ - cd $(PKG_BUILD_DIR); \ - QPATH='mkspecs/qws/linux-openwrt-g++' ; \ - mkdir $$$$QPATH ; \ - echo '#include "../../linux-g++/qplatformdefs.h"' \ - >> $$$$QPATH/qplatformdefs.h ; \ - echo 'include(../../common/g++.conf)' \ - >> $$$$QPATH/qmake.conf ; \ - echo 'include(../../common/linux.conf)' \ - >> $$$$QPATH/qmake.conf ; \ - echo 'include(../../common/qws.conf)' \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_CC = $(TARGET_CC)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_CXX = $(TARGET_CXX)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_AR = $(TARGET_CROSS)ar cqs" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_OBJCOPY = $(TARGET_CROSS)objcopy" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_RANLIB = $(TARGET_CROSS)ranlib" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_CFLAGS = $(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_CXXFLAGS = $(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_LINK = $(TARGET_CXX)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_LINK_SHLIB = $(TARGET_CXX)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_LINK_C = $(TARGET_CC)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_LINK_C_SHLIB = $(TARGET_CC)" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_LFLAGS = -L$(PKG_BUILD_DIR)/lib $(TARGET_LDFLAGS) -Wl,-rpath-link=$(STAGING_DIR)/usr/lib" \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_STRIP = : " \ - >> $$$$QPATH/qmake.conf ; \ - echo "QMAKE_STRIPFLAGS_LIB = " \ - >> $$$$QPATH/qmake.conf ; \ - echo 'load(qt_config)' \ - >> $$$$QPATH/qmake.conf ; \ - echo yes | ./configure \ + # NOTES: + # demos/examples: which demos are going to be built depends on which features are going to to be compiled into qt + # svg: always compile in svg-support, as once qt is built without, strange include errors occur when we're going to compile qt4-svg afterwards + # linuxfb/directfb: since directfb is not much overhead compared to plain framebuffer, force using directfb + # do not use fontconfig as it doesn't work anyway for qte + # bindir: bindir is where the host tools (qmake, moc, rcc, uic) will get installed into - they are just used on the host and not goig to be packaged + mkdir -p $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++ + cp -a ./files/{qmake.conf,qplatformdefs.h} $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++/ + ( cd $(PKG_BUILD_DIR) ; \ + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ + STAGING_DIR="$(STAGING_DIR)" \ + STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ + ./configure \ -prefix $(CONFIGURE_PREFIX) \ -bindir $(CONFIGURE_PREFIX)/bin \ -libdir $(CONFIGURE_PREFIX)/lib \ @@ -216,13 +265,15 @@ define Build/Configure -no-rpath \ -force-pkg-config \ -nomake tools \ - -$(if $(CONFIG_PACKAGE_qt4-demos),make demos,nomake demos) \ - -$(if $(CONFIG_PACKAGE_qt4-examples),make examples,nomake examples) \ + -make demos \ + -make examples \ -nomake docs \ -nomake translations \ - -embedded openwrt \ + -xplatform qws/linux-openwrt-g++ \ -platform linux-g++ \ + -embedded \ -release \ + -confirm-license \ -opensource \ -no-mmx \ -no-3dnow \ @@ -234,32 +285,29 @@ define Build/Configure -system-libjpeg \ -system-freetype \ -system-sqlite \ - $(if $(CONFIG_PACKAGE_qt4-sqlite),-plugin-sql-sqlite,) \ - $(if $(CONFIG_PACKAGE_qt4-mysql),-plugin-sql-mysql,) \ + -plugin-sql-sqlite \ + -plugin-sql-mysql \ -no-decoration-styled \ -no-decoration-windows \ -no-decoration-default \ -verbose \ - -$(if $(CONFIG_PACKAGE_qt4-multimedia),multimedia,no-multimedia) \ - -$(if $(CONFIG_PACKAGE_qt4-audio-backend),audio-backend,no-audio-backend) \ - -no-mediaservices \ - -no-media-backend \ - -$(if $(CONFIG_PACKAGE_qt4-phonon),phonon,no-phonon) \ - -$(if $(CONFIG_PACKAGE_qt4-phonon-backend),phonon-backend,no-phonon-backend) \ + -no-multimedia \ + -no-audio-backend \ + -phonon \ + -no-phonon-backend \ -svg \ - -$(if $(CONFIG_PACKAGE_qt4-webkit),webkit,no-webkit) \ - -$(if $(CONFIG_PACKAGE_qt4-javascript-jit),javascript-jit,no-javascript-jit) \ - -$(if $(CONFIG_PACKAGE_qt4-script),script,no-script) \ - -$(if $(CONFIG_PACKAGE_qt4-scripttools),scripttools,no-scripttools) \ - -$(if $(CONFIG_PACKAGE_qt4-accessibility),accessibility,no-accessibility) \ - -no-declarative \ + $(if $(NPTL),-webkit,-no-webkit) \ + -no-javascript-jit \ + $(if $(NPTL),-script,-no-script) \ + $(if $(NPTL),-scripttools,-no-scripttools) \ + -no-accessibility \ + $(if $(NPTL),-declarative,-no-declarative) \ -no-openssl \ -no-nis \ - $(if $(CONFIG_PACKAGE_qt4-gui),,-no-gui) \ - -$(if $(CONFIG_PACKAGE_qt4-cups),cups,no-cups) \ + -no-cups \ -no-iconv \ - -$(if $(CONFIG_PACKAGE_qt4-dbus),dbus,no-dbus) \ - -$(if $(CONFIG_PACKAGE_qt4-gtkstyle),gtkstyle,no-gtkstyle) \ + -dbus \ + -no-gtkstyle \ -no-nas-sound \ -no-opengl \ -no-openvg \ @@ -275,27 +323,70 @@ define Build/Configure -no-fontconfig \ -no-xinput \ -no-xkb \ - -$(if $(CONFIG_PACKAGE_qt4-glib),glib,no-glib) \ - -$(if $(CONFIG_PACKAGE_qt4-qt3support),qt3support,no-qt3support) \ - -$(if $(CONFIG_FEATURE_drawing-backend_DirectFB),qt-gfx-directfb,) \ - -qt-gfx-linuxfb \ + -no-glib \ + -qt3support \ + -no-gfx-transformed \ + -no-gfx-qvfb \ + -no-gfx-vnc \ -no-gfx-multiscreen \ + -no-gfx-qnx \ + -plugin-gfx-directfb \ + -plugin-gfx-linuxfb \ + -no-mouse-qvfb \ + -no-mouse-qnx \ + -qt-mouse-linuxinput \ + -plugin-mouse-linuxtp \ + -plugin-mouse-pc \ + -plugin-mouse-tslib \ + -no-kbd-qvfb \ + -no-kbd-qnx \ + -qt-kbd-tty \ + -plugin-kbd-linuxinput \ ) endef define Build/Compile + # just passing results in not building 3rdparty/webkit/JavaScriptCore + # unfortunately in this particular case, makes further calls, therewith + # uses the qmake.conf which needs get the cross-compiling vars passed once again + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ + STAGING_DIR="$(STAGING_DIR)" \ + STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ + $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) INSTALL_ROOT=$(PKG_INSTALL_DIR) \ $(MAKE) -C $(PKG_BUILD_DIR) install endef define Build/InstallDev $(INSTALL_DIR) \ + $(STAGING_DIR_HOST)/bin + + # host tools (qmake, moc, rcc, uic) + $(CP) \ + $(PKG_INSTALL_DIR)/usr/bin/{qmake,moc,rcc,uic} \ + $(STAGING_DIR_HOST)/bin/ + + $(INSTALL_DIR) \ + $(1)/mk \ $(1)/usr/share/mkspecs \ $(1)/usr/lib/pkgconfig \ $(1)/usr/lib \ $(1)/usr/include \ $(1)/usr/lib/Qt/plugins + $(CP) \ + ./files/qmake.mk \ + $(1)/mk/ + $(CP) \ $(PKG_INSTALL_DIR)/usr/share/Qt/mkspecs/* \ $(1)/usr/share/mkspecs/ @@ -530,6 +621,85 @@ define Package/qt4-qt3-support/install # $(1)/usr/lib/Qt/plugins/ endef +define Package/qt4-declarative/install + $(INSTALL_DIR) \ + $(1)/usr/lib + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libQtDeclarative.so* \ + $(1)/usr/lib/ +endef + +define Package/qt4-xml/install + $(INSTALL_DIR) \ + $(1)/usr/lib + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libQtXml.so* \ + $(1)/usr/lib/ +endef + +# plugins +# mouse drivers +define Package/qt4-drivers-mouse-tpmousedriver/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/mousedrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/mousedrivers/libqlinuxtpmousedriver.so \ + $(1)/usr/lib/Qt/plugins/mousedrivers/ +endef + +define Package/qt4-drivers-mouse-pcmousedriver/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/mousedrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/mousedrivers/libqpcmousedriver.so \ + $(1)/usr/lib/Qt/plugins/mousedrivers/ +endef + +define Package/qt4-drivers-mouse-tslibmousedriver/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/mousedrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/mousedrivers/libqtslibmousedriver.so \ + $(1)/usr/lib/Qt/plugins/mousedrivers/ +endef + +# graphics drivers +define Package/qt4-drivers-gfx-directfb/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/gfxdrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/gfxdrivers/libqdirectfbscreen.so \ + $(1)/usr/lib/Qt/plugins/gfxdrivers/ +endef + +define Package/qt4-drivers-gfx-linuxfb/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/gfxdrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/gfxdrivers/libqscreenlinuxfb.so \ + $(1)/usr/lib/Qt/plugins/gfxdrivers/ +endef + +# keyboard drivers +define Package/qt4-drivers-kbd-linuxinput/install + $(INSTALL_DIR) \ + $(1)/usr/lib/Qt/plugins/kbddrivers + + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/kbddrivers/libqlinuxinputkbddriver.so \ + $(1)/usr/lib/Qt/plugins/kbddrivers/ +endef + + + + $(eval $(call BuildPackage,qt4)) $(eval $(call BuildPackage,qt4-gui)) $(eval $(call BuildPackage,qt4-demos)) @@ -552,3 +722,14 @@ $(eval $(call BuildPackage,qt4-dbus)) #$(eval $(call BuildPackage,qt4-gtkstyle)) #$(eval $(call BuildPackage,qt4-glib)) $(eval $(call BuildPackage,qt4-qt3support)) +$(eval $(call BuildPackage,qt4-declarative)) +$(eval $(call BuildPackage,qt4-xml)) + +$(eval $(call BuildPackage,qt4-drivers-mouse-tpmousedriver)) +$(eval $(call BuildPackage,qt4-drivers-mouse-pcmousedriver)) +$(eval $(call BuildPackage,qt4-drivers-mouse-tslibmousedriver)) + +$(eval $(call BuildPackage,qt4-drivers-gfx-directfb)) +$(eval $(call BuildPackage,qt4-drivers-gfx-linuxfb)) + +$(eval $(call BuildPackage,qt4-drivers-kbd-linuxinput))