config BR2_PACKAGE_QTOPIA4
	bool "qtopia4"
	depends on BR2_INSTALL_LIBSTDCPP
	help
	  Qtopia core 4.

	  http://www.trolltech.com/

comment "qtopia4 requires a toolchain with C++ support enabled"
	depends on !BR2_INSTALL_LIBSTDCPP

if BR2_PACKAGE_QTOPIA4

config BR2_PACKAGE_QTOPIA4_DEBUG
	bool "Compile with debug support"
	help
	  If unsure, say N.

choice
	prompt "Library type"
	default BR2_PACKAGE_QTOPIA4_SHARED
	help
	  Selects the library type: Shared or Static

config BR2_PACKAGE_QTOPIA4_SHARED
	bool "Shared library"
	help
	  Create and use shared Qt libraries.
	  If you have multiple programs that depend on Qt or intend to use
	  plugins, say Y.

config BR2_PACKAGE_QTOPIA4_STATIC
	bool "Static Library"
	help
	  Create and use static Qt libraries.
	  If you don't have multiple programs on the target that depends on
	  Qt, then this will save you quite some of storage space.
	  If unsure, say Y.

endchoice

config BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_COMMERCIAL
	bool "Use commercial license"

config BR2_PACKAGE_QTOPIA4_LICENSE_APPROVED
	bool "Approve free license"
	depends on !BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_COMMERCIAL
	help
	  Select this if you approve one of the available free licenses for the
	  Qt4 library.
	  By doing this you will not be asked while the library is compiled.
	  Please read and understand the license terms before approving this.

	  LGPL v2.1: http://doc.trolltech.com/4.5/lgpl.html
	  GPL  v3.0: http://doc.trolltech.com/4.5/gpl.html

config BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME
	string "Qtopia Core 4 Commercial License Username"
	depends on BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_COMMERCIAL
	help
	  Commercial users can download their source directly by
	  providing a username.

config BR2_PACKAGE_QTOPIA4_COMMERCIAL_PASSWORD
	string "Qtopia Core 4 Commercial License Password"
	depends on BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_COMMERCIAL
	help
	  Commercial users can download their source directly by
	  providing a password.

config BR2_PACKAGE_QTOPIA4_QT3SUPPORT
	bool "Compatibility with Qt3"
	help
	  Turns on support for older Qt3. This will create an additional
	  library with proxy code and increase the space required on target.
	  If unsure say n.

config BR2_PACKAGE_QTOPIA4_GUI_MODULE
	bool "Gui Module"
	default y
	help
	  Turns on support to Gui applications. If your board don't have
	  video output, or you don't require Qt GUI, say n.

if BR2_PACKAGE_QTOPIA4_GUI_MODULE
menu "Pixel depths"
comment "Deselecting each option leads to Qt's default (8,16,32)"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_ALL
	bool "All supported depths"

if !BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_ALL

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_1
	bool "1 bpp, black/white"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_4
	bool "4 bpp, grayscale"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_8
	bool "8 bpp, paletted"
	default y

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_12
	bool "12 bpp, rgb 4-4-4"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_15
	bool "15 bpp, rgb 5-5-5"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_16
	bool "16 bpp, rgb 5-6-5"
	default y

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_18
	bool "18 bpp, rgb 6-6-6"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_24
	bool "24 bpp, rgb 8-8-8"

config BR2_PACKAGE_QTOPIA4_PIXEL_DEPTH_32
	bool "32 bpp, argb 8-8-8-8 and rgb 8-8-8"
	default y

endif
endmenu
endif

config BR2_PACKAGE_QTOPIA4_GIF
	bool "Enable GIF support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	help
	  This compiles and installs the plugin for GIF reading support.

config BR2_PACKAGE_QTOPIA4_LIBMNG
	bool "Enable libmng support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	help
	  This compiles and installs the plugin for MNG support.

choice
	prompt "JPEG support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	default BR2_PACKAGE_QTOPIA4_NOJPEG
	help
	  Select libjpeg support.

config BR2_PACKAGE_QTOPIA4_NOJPEG
	bool "No jpeg support"
	help
	  Disable JPEG support

config BR2_PACKAGE_QTOPIA4_SYSTEMJPEG
	select BR2_PACKAGE_JPEG
	bool "System libjpeg"
	help
	  Link against system libjpeg

config BR2_PACKAGE_QTOPIA4_QTJPEG
	bool "Use Qt bundled libjpeg"
	help
	  Link against libjpeg proveded with Qt
endchoice

choice
	prompt "PNG support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	default BR2_PACKAGE_QTOPIA4_NOPNG
	help
	  Select which library to use if PNG support should be enabled.

config BR2_PACKAGE_QTOPIA4_NOPNG
	bool "No PNG support"

config BR2_PACKAGE_QTOPIA4_SYSTEMPNG
	bool "System libpng"
	select BR2_PACKAGE_LIBPNG

config BR2_PACKAGE_QTOPIA4_QTPNG
	bool "Use Qt bundled libpng"
endchoice

choice
	prompt "TIFF support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	default BR2_PACKAGE_QTOPIA4_NOTIFF
	help
	  Select which library to use if TIFF support should be enabled.

config BR2_PACKAGE_QTOPIA4_NOTIFF
	bool "No TIFF support"

config BR2_PACKAGE_QTOPIA4_SYSTEMTIFF
	bool "System libtiff"
	select BR2_PACKAGE_TIFF

config BR2_PACKAGE_QTOPIA4_QTTIFF
	bool "Use Qt bundled libtiff"
endchoice

choice
	prompt "zlib support"
	default BR2_PACKAGE_QTOPIA4_QTZLIB
	help
	  Select zlib support.

config BR2_PACKAGE_QTOPIA4_QTZLIB
	bool "Qt zlib"
	help
	  Use the zlib bundled with Qt.

config BR2_PACKAGE_QTOPIA4_SYSTEMZLIB
	bool "System zlib"
	select BR2_PACKAGE_ZLIB
	help
	  Use the shared zlib from the system.
endchoice

choice
	prompt "freetype2 support"
	depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
	default BR2_PACKAGE_QTOPIA4_NOFREETYPE
	help
	  Select freetype2 support.

config BR2_PACKAGE_QTOPIA4_NOFREETYPE
	bool "no freetype2 support"
	help
	  Do not compile in Freetype2 support.


config BR2_PACKAGE_QTOPIA4_QTFREETYPE
	bool "Qt freetype2"
	help
	  Use the libfreetype bundled with Qt.

config BR2_PACKAGE_QTOPIA4_SYSTEMFREETYPE
	bool "System freetype2"
	select BR2_PACKAGE_FREETYPE
	help
	  Use shared libfreetype from the target system.
	  See http://www.freetype.org/
endchoice

config BR2_PACKAGE_QTOPIA4_EMB_PLATFORM
	string "The embedded platform we are making Qtopia4 for"
	default "arm"	if BR2_arm
	default "arm"	if BR2_armeb
	default "avr32"	if BR2_avr32
	default "x86"	if BR2_i386
	default "x86_64"	if BR2_x86_64
	default "mips"	if BR2_mips
	default "mips"	if BR2_mipsel
	default "ppc"	if BR2_powerpc
# Not that I really believe these will work..
	default "generic"	if BR2_alpha
	default "generic"	if BR2_chris
	default "generic"	if BR2_m68k
	default "generic"	if BR2_nios2
	default "generic"	if BR2_sh
	default "generic"	if BR2_sh64
	default "generic"	if BR2_sparc
	help
	  The target platform.

source "package/qtopia4/Config.sql.in"
if BR2_PACKAGE_QTOPIA4_GUI_MODULE
source "package/qtopia4/Config.gfx.in"
source "package/qtopia4/Config.mouse.in"
endif

config BR2_PACKAGE_QTOPIA4_PHONON
	bool "Phonon Module"
	select BR2_PACKAGE_GSTREAMER
	select BR2_PACKAGE_GST_PLUGINS_BASE
	help
	  Build the Phonon module. Support for different audio/video
	  formats can be configured at the GStreamer package.
	  If unsure, say n.

config BR2_PACKAGE_QTOPIA4_XML
	bool "XML Module"
	default y
	help
	  Build the XML module.

config BR2_PACKAGE_QTOPIA4_XMLPATTERNS
	bool "XML Patterns Module"
	depends on BR2_PACKAGE_QTOPIA4_XML
	help
	  Build QtXmlPatterns module.
	  If unsure, say n

config BR2_PACKAGE_QTOPIA4_SVG
	bool "SVG Module"
	help
	  Build the SVG module.
	  If unsure, say n

config BR2_PACKAGE_QTOPIA4_NETWORK
	bool "Network Module"
	default y
	help
	  Install the Network module.
	  if unsure, say y

config BR2_PACKAGE_QTOPIA4_WEBKIT
	bool "WebKit Module"
	depends on BR2_PACKAGE_QTOPIA4_NETWORK
	help
	  Build the WebKit module.
	  If unsure, say n.

config BR2_PACKAGE_QTOPIA4_OPENSSL
	bool "Enable OpenSSL support"
	depends on BR2_PACKAGE_QTOPIA4_NETWORK
	select BR2_PACKAGE_OPENSSL
	help
	  Enable support for the OpenSSL encryption library. If you use
	  QSslSocket say y here, otherwise, say no to save space on the
	  target.
	  If unsure, say n.

config BR2_PACKAGE_QTOPIA4_SCRIPT
	bool "Script Module"
	default y
	help
	  Build the Qt Script module.
	  if unsure, say y.

config BR2_PACKAGE_QTOPIA4_SCRIPTTOOLS
	bool "Script Tools Module"
	depends on BR2_PACKAGE_QTOPIA4_SCRIPT
	default n
	help
	  Build the Qt Script Tools module.
	  if unsure, say n.

endif # BR2_PACKAGE_QTOPIA4
