[packages/qt4] Qt-core does not depend on sqlite
[openwrt/svn-archive/archive.git] / Xorg / lib / qt4 / Makefile
index fc7929ae171892883635a47de63ca6ebcacb3137..fd9dd1242c6484ce98dfa1c8eae8c86d7ef0bf3d 100644 (file)
@@ -6,20 +6,41 @@
 #
 
 # 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
 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 \
+       CONFIG_PACKAGE_qt4-qt3support \
+       CONFIG_PACKAGE_qt4-dbus \
+       CONFIG_PACKAGE_qt4-phonon \
+       CONFIG_PACKAGE_qt4-sqlite \
+       CONFIG_PACKAGE_qt4-mysql \
+       CONFIG_PACKAGE_qt4-webkit \
+       CONFIG_PACKAGE_qt4-script \
+       CONFIG_PACKAGE_qt4-scriptools \
+       CONFIG_PACKAGE_qt4-openssl
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.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)
@@ -32,24 +53,31 @@ 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
   SUBMENU:=framework
   TITLE:=qt4
   DEPENDS:=qt4
+  DEFAULT:=m if PACKAGE_qt4-gui && ALL
   URL:=http://qt.nokia.com/
 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
 endef
 
 define Package/qt4-gui
   $(call Package/qt4/Default)
-  #DEPENDS+=+FEATURE_drawing-backend_DirectFB:directfb +libpng +libtiff +libjpeg +libfreetype
-  DEPENDS+=+libpng +libtiff +libjpeg +libfreetype +qt4-network
+  DEFAULT:=
+  DEPENDS+=+libpng +libtiff +libjpeg +libfreetype +qt4-network \
+       +FEATURE_drawing-backend_libX11:libX11 \
+       +FEATURE_drawing-backend_libX11:libXext @DISPLAY_SUPPORT
   TITLE+=(gui)
 endef
 
@@ -62,7 +90,7 @@ endef
 define Package/qt4-examples
   $(call Package/qt4/Default)
   TITLE+=(examples)
-  DEPENDS+=+qt4-gui
+  DEPENDS+=+qt4-gui +qt4-svg
 endef
 
 define Package/qt4-network
@@ -82,6 +110,12 @@ define Package/qt4-mysql
   DEPENDS+=+libmysqlclient
 endef
 
+define Package/qt4-openssl
+  $(call Package/qt4/Default)
+  TITLE+=(openssl)
+  DEPENDS+=+libopenssl
+endef
+
 #define Package/qt4-multimedia
 #  $(call Package/qt4/Default)
 #  TITLE+=(multimedia)
@@ -106,7 +140,6 @@ endef
 define Package/qt4-svg
   $(call Package/qt4/Default)
   TITLE+=(svg)
-  #DEPENDS+=+qt4-gui @BROKEN
   DEPENDS+=+qt4-gui +qt4-network
 endef
 
@@ -180,6 +213,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
@@ -195,17 +229,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
@@ -213,15 +250,16 @@ define Package/qt4-drivers-gfx-linuxfb
   TITLE+=linuxfb
 endef
 
+define Package/qt4-drivers-gfx-vnc
+  $(call Package/qt4-drivers-gfx/Default)
+  TITLE+=VNC
+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
+  DEPENDS+=@QT4_WS_QWS
 endef
 
 
@@ -230,15 +268,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
-       #  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++/
+       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++" \
@@ -253,6 +303,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 \
@@ -264,13 +315,13 @@ define Build/Configure
                        -no-rpath \
                        -force-pkg-config \
                        -nomake tools \
-                       -make demos \
-                       -make examples \
+                       $(if $(CONFIG_PACKAGE_qt4-demos),-make,-nomake) demos \
+                       $(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 \
@@ -284,52 +335,52 @@ define Build/Configure
                        -system-libjpeg \
                        -system-freetype \
                        -system-sqlite \
-                       -plugin-sql-sqlite \
-                       -plugin-sql-mysql \
+                       $(if $(CONFIG_PACKAGE_qt4-sqlite),-plugin-sql-sqlite) \
+                       $(if $(CONFIG_PACKAGE_qt4-mysql),-plugin-sql-mysql) \
                        -no-decoration-styled \
                        -no-decoration-windows \
                        -no-decoration-default \
                        -verbose \
                        -no-multimedia \
                        -no-audio-backend \
-                       -phonon \
+                       $(if $(CONFIG_PACKAGE_qt4-phonon),-phonon,-no-phonon) \
                        -no-phonon-backend \
-                       -svg \
-                       -$(if $(NPTL),webkit,-no-webkit) \
+                       $(if $(CONFIG_PACKAGE_qt4-svg),-svg,-no-svg) \
+                       $(if $(CONFIG_PACKAGE_qt4-webkit),-webkit,-no-webkit) \
                        -no-javascript-jit \
-                       -$(if $(NPTL),script,-no-script) \
-                       -$(if $(NPTL),scripttools,-no-scripttools) \
+                       $(if $(CONFIG_PACKAGE_qt4-script),-script,-no-script) \
+                       $(if $(CONFIG_PACKAGE_qt4-scripttools),-scripttools,-no-scripttools) \
                        -no-accessibility \
-                       -$(if $(NPTL),declarative,-no-declarative) \
-                       -no-openssl \
+                       $(if $(CONFIG_PACKAGE_qt4-declarative),-declarative,-no-declarative) \
+                       $(if $(CONFIG_PACKAGE_qt4-openssl),-openssl -I $(STAGING_DIR)/usr/include,-no-openssl) \
                        -no-nis \
                        -no-cups \
-                       -no-iconv \
-                       -dbus \
+                       -iconv \
+                       $(if $(CONFIG_PACKAGE_qt4-dbus),-dbus,-no-dbus) \
                        -no-gtkstyle \
                        -no-nas-sound \
                        -no-opengl \
                        -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 \
-                       -qt3support \
+                       $(if $(CONFIG_PACKAGE_qt4-qt3support),-qt3support,-no-qt3support) \
                        -no-gfx-transformed \
                        -no-gfx-qvfb \
-                       -no-gfx-vnc \
+                       $(if $(CONFIG_PACKAGE_qt4-drivers-gfx-vnc),-plugin-gfx-vnc,-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 \
@@ -340,7 +391,7 @@ define Build/Configure
                        -no-kbd-qvfb \
                        -no-kbd-qnx \
                        -qt-kbd-tty \
-                       -plugin-kbd-linuxinput \
+                       -qt-kbd-linuxinput \
        )
 endef
 
@@ -360,7 +411,7 @@ define Build/Compile
        TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \
        STAGING_DIR="$(STAGING_DIR)" \
        STAGING_DIR_HOST="$(STAGING_DIR)/../host" \
-       $(MAKE) -C $(PKG_BUILD_DIR)
+       $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)
        INSTALL_ROOT=$(PKG_INSTALL_DIR) \
                $(MAKE) -C $(PKG_BUILD_DIR) install
 endef
@@ -686,16 +737,16 @@ define Package/qt4-drivers-gfx-linuxfb/install
                $(1)/usr/lib/Qt/plugins/gfxdrivers/
 endef
 
-#  keyboard drivers
-define Package/qt4-drivers-kbd-linuxinput/install
+define Package/qt4-drivers-gfx-vnc/install
        $(INSTALL_DIR) \
-               $(1)/usr/lib/Qt/plugins/kbddrivers
+               $(1)/usr/lib/Qt/plugins/gfxdrivers
 
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/kbddrivers/libqlinuxinputkbddriver.so \
-               $(1)/usr/lib/Qt/plugins/kbddrivers/
+               $(PKG_INSTALL_DIR)/usr/lib/Qt/plugins/gfxdrivers/libqgfxvnc.so \
+               $(1)/usr/lib/Qt/plugins/gfxdrivers/
 endef
 
+#  keyboard drivers
 
 
 
@@ -706,6 +757,7 @@ $(eval $(call BuildPackage,qt4-examples))
 $(eval $(call BuildPackage,qt4-network))
 $(eval $(call BuildPackage,qt4-sqlite))
 $(eval $(call BuildPackage,qt4-mysql))
+$(eval $(call BuildPackage,qt4-openssl))
 #$(eval $(call BuildPackage,qt4-multimedia))
 #$(eval $(call BuildPackage,qt4-audio-backend))
 $(eval $(call BuildPackage,qt4-phonon))
@@ -730,5 +782,4 @@ $(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))
+$(eval $(call BuildPackage,qt4-drivers-gfx-vnc))