qt4: Disable mitshm
[openwrt/svn-archive/archive.git] / Xorg / lib / qt4 / Makefile
index b91efaae1684a6e20a6c01deb483934deb0b6e53..93565129f4e337cb0104db500191bf4f33a5627b 100644 (file)
@@ -6,14 +6,15 @@
 #
 
 # TODO:
-#  - test/add X11/xcb support
+#  - test/add 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-beta2
+PKG_VERSION:=4.7.0
 PKG_RELEASE:=1
+PKG_MD5SUM:=3a2f25b9b115037277f4fb759194a7a5
 
 PKG_SOURCE:=qt-everywhere-opensource-src-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.qt.nokia.com/qt/source
@@ -21,6 +22,9 @@ PKG_BUILD_DIR=$(BUILD_DIR)/qt-everywhere-opensource-src-$(PKG_VERSION)
 PKG_BUILD_PARALLEL:=1
 
 PKG_CONFIG_DEPENDS:= \
+       CONFIG_QT4_WS_QWS \
+       CONFIG_QT4_WS_X11 \
+       CONFIG_PACKAGE_directfb \
        CONFIG_PACKAGE_qt4-demos \
        CONFIG_PACKAGE_qt4-examples \
        CONFIG_PACKAGE_qt4-svg \
@@ -31,6 +35,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_PACKAGE_qt4-mysql
 
 include $(INCLUDE_DIR)/package.mk
+-include $(if $(DUMP),,./files/qmake.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)
@@ -43,6 +48,10 @@ ifeq ($(CONFIG_UCLIBC_VERSION_0_9_32),y)
   NPTL:=y
 endif
 
+define Package/qt4/config
+       source "$(SOURCE)/Config.in"
+endef
+
 define Package/qt4/Default
   SECTION:=xorg-framework
   CATEGORY:=Xorg
@@ -54,12 +63,15 @@ endef
 
 define Package/qt4
   $(call Package/qt4/Default)
-  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
+  DEPENDS:=+zlib +libstdcpp +libsqlite3
 endef
 
 define Package/qt4-gui
   $(call Package/qt4/Default)
-  DEPENDS+=+libpng +libtiff +libjpeg +libfreetype +qt4-network
+  DEPENDS+=+libpng +libtiff +libjpeg +libfreetype +qt4-network \
+       +FEATURE_drawing-backend_DirectFB:directfb \
+       +FEATURE_drawing-backend_libX11:libX11 \
+       +FEATURE_drawing-backend_libX11:libXext
   TITLE+=(gui)
 endef
 
@@ -189,6 +201,7 @@ endef
 define Package/qt4-drivers-mouse/Default
   $(call Package/qt4/Default)
   TITLE+=mousedrivers
+  DEPENDS+=@QT4_WS_QWS
 endef
 
 define Package/qt4-drivers-mouse-tpmousedriver
@@ -204,17 +217,20 @@ endef
 define Package/qt4-drivers-mouse-tslibmousedriver
   $(call Package/qt4-drivers-mouse/Default)
   TITLE+=tslibmousedriver
+  DEPENDS:=+tslib
 endef
 
 ###
 define Package/qt4-drivers-gfx/Default
   $(call Package/qt4/Default)
   TITLE+=gfxdrivers
+  DEPENDS+=@QT4_WS_QWS
 endef
 
 define Package/qt4-drivers-gfx-directfb
   $(call Package/qt4-drivers-gfx/Default)
   TITLE+=directfb
+  DEPENDS+=@FEATURE_drawing-backend_DirectFB +FEATURE_drawing-backend_DirectFB:directfb
 endef
 
 define Package/qt4-drivers-gfx-linuxfb
@@ -226,6 +242,7 @@ endef
 define Package/qt4-drivers-kbd/Default
   $(call Package/qt4/Default)
   TITLE+=kbddrivers
+  DEPENDS+=@QT4_WS_QWS
 endef
 
 define Package/qt4-drivers-kbd-linuxinput
@@ -239,15 +256,27 @@ TARGET_LIBDIRS+=$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib $(TOOLCHAIN_DIR)/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
 
+ifeq ($(CONFIG_QT4_WS_QWS),y)
+  FILEPFX:=qws-
+endif
+ifeq ($(CONFIG_QT4_WS_X11),y)
+  FILEPFX:=x11-
+endif
+ifeq ($(CONFIG_PACKAGE_qt4-gui),)
+  # If GUI is disabled, we use the X11 prefix. That's good enough, for now.
+  # The X11 files also work for non-GUI.
+  FILEPFX:=x11-
+endif
+
 define Build/Configure
        # NOTES:
        #  demos/examples: which demos are going to be built depends on which features are going to to be compiled into qt
        #  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) ./files/qws-qmake.conf $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++/qmake.conf
-       $(CP) ./files/qws-qplatformdefs.h $(PKG_BUILD_DIR)/mkspecs/qws/linux-openwrt-g++/qplatformdefs.h
+       mkdir -p $(PKG_BUILD_DIR)/mkspecs/$(QMAKE_PLATFORM_PREFIX)linux-openwrt-g++
+       $(CP) ./files/$(FILEPFX)qmake.conf $(PKG_BUILD_DIR)/mkspecs/$(QMAKE_PLATFORM_PREFIX)linux-openwrt-g++/qmake.conf
+       $(CP) ./files/$(FILEPFX)qplatformdefs.h $(PKG_BUILD_DIR)/mkspecs/$(QMAKE_PLATFORM_PREFIX)linux-openwrt-g++/qplatformdefs.h
        ( cd $(PKG_BUILD_DIR) ; \
                TARGET_CC="$(TARGET_CROSS)gcc" \
                TARGET_CXX="$(TARGET_CROSS)g++" \
@@ -262,6 +291,7 @@ define Build/Configure
                STAGING_DIR="$(STAGING_DIR)" \
                STAGING_DIR_HOST="$(STAGING_DIR)/../host" \
                ./configure \
+                       -arch $(ARCH) \
                        -prefix $(CONFIGURE_PREFIX) \
                        -bindir $(CONFIGURE_PREFIX)/bin \
                        -libdir $(CONFIGURE_PREFIX)/lib \
@@ -277,9 +307,9 @@ define Build/Configure
                        $(if $(CONFIG_PACKAGE_qt4-examples),-make,-nomake) examples \
                        -nomake docs \
                        -nomake translations \
-                       -xplatform qws/linux-openwrt-g++ \
+                       -xplatform $(QMAKE_PLATFORM_PREFIX)linux-openwrt-g++ \
                        -platform linux-g++ \
-                       -embedded \
+                       $(if $(CONFIG_QT4_WS_X11),-x11,-embedded) \
                        -release \
                        -confirm-license \
                        -opensource \
@@ -321,16 +351,16 @@ define Build/Configure
                        -no-openvg \
                        -no-sm \
                        -no-xshape \
-                       -no-xsync \
+                       $(if $(CONFIG_QT4_WS_X11),-no-xsync,-xsync) \
                        -no-xinerama \
-                       -no-xcursor \
+                       $(if $(CONFIG_QT4_WS_X11),-no-xcursor,-xcursor) \
                        -no-xfixes \
                        -no-xrandr \
                        -no-xrender \
                        -no-mitshm \
-                       -no-fontconfig \
-                       -no-xinput \
-                       -no-xkb \
+                       $(if $(CONFIG_QT4_WS_X11),-no-fontconfig,-fontconfig) \
+                       $(if $(CONFIG_QT4_WS_X11),-no-xinput,-xinput) \
+                       $(if $(CONFIG_QT4_WS_X11),-no-xkb,-xkb) \
                        -no-glib \
                        $(if $(CONFIG_PACKAGE_qt4-qt3support),-qt3support,-no-qt3support) \
                        -no-gfx-transformed \
@@ -338,7 +368,7 @@ define Build/Configure
                        -no-gfx-vnc \
                        -no-gfx-multiscreen \
                        -no-gfx-qnx \
-                       -plugin-gfx-directfb \
+                       $(if $(CONFIG_PACKAGE_directfb),-plugin-gfx-directfb) \
                        -plugin-gfx-linuxfb \
                        -no-mouse-qvfb \
                        -no-mouse-qnx \