comment "python3 needs a toolchain w/ wchar, threads, dynamic library"
	depends on BR2_USE_MMU
	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

config BR2_PACKAGE_PYTHON3
	bool "python3"
	depends on !BR2_PACKAGE_PYTHON
	depends on BR2_USE_WCHAR
	# uses fork()
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
	depends on !BR2_STATIC_LIBS
	select BR2_PACKAGE_LIBFFI
	select BR2_PACKAGE_BLUEZ5_UTILS_HEADERS if BR2_PACKAGE_BLUEZ5_UTILS
	help
	  The python language interpreter.

	  http://www.python.org/

if BR2_PACKAGE_PYTHON3

choice
	prompt "python3 module format to install"
	default BR2_PACKAGE_PYTHON3_PYC_ONLY
	help
	  Select Python module format to install on target (py, pyc or
	  both)

config BR2_PACKAGE_PYTHON3_PY_ONLY
	bool ".py sources only"

config BR2_PACKAGE_PYTHON3_PYC_ONLY
	bool ".pyc compiled sources only"

config BR2_PACKAGE_PYTHON3_PY_PYC
	bool ".py sources and .pyc compiled"

endchoice

menu "core python3 modules"

comment "The following modules are unusual or require extra libraries"

config BR2_PACKAGE_PYTHON3_2TO3
	bool "2to3 module"
	help
	  code translation from python 2 to 3

config BR2_PACKAGE_PYTHON3_BZIP2
	bool "bz2 module"
	select BR2_PACKAGE_BZIP2
	help
	  bzip2 module for Python3

config BR2_PACKAGE_PYTHON3_CODECSCJK
	bool "codecscjk module"
	help
	  Chinese/Japanese/Korean codecs module for Python (large).

config BR2_PACKAGE_PYTHON3_CURSES
	bool "curses module"
	select BR2_PACKAGE_NCURSES
	help
	  curses module for Python3.

config BR2_PACKAGE_PYTHON3_DECIMAL
	bool "decimal module"
	select BR2_PACKAGE_MPDECIMAL
	help
	  decimal module for Python3.

config BR2_PACKAGE_PYTHON3_OSSAUDIODEV
	bool "ossaudiodev module"
	help
	  ossaudiodev module for Python3.

config BR2_PACKAGE_PYTHON3_READLINE
	bool "readline"
	select BR2_PACKAGE_READLINE
	help
	  readline module for Python3 (required for command-line
	  editing in the Python shell).

config BR2_PACKAGE_PYTHON3_SSL
	bool "ssl"
	select BR2_PACKAGE_OPENSSL
	help
	  _ssl module for Python3 (required for https in urllib etc).

config BR2_PACKAGE_PYTHON3_UNICODEDATA
	bool "unicodedata module"
	default y
	help
	  Unicode character database (used by stringprep module)
	  (large).

config BR2_PACKAGE_PYTHON3_SQLITE
	bool "sqlite module"
	select BR2_PACKAGE_SQLITE
	help
	  SQLite database support

config BR2_PACKAGE_PYTHON3_PYEXPAT
	bool "xml module"
	select BR2_PACKAGE_EXPAT
	help
	  pyexpat and xml libraries for Python3.

config BR2_PACKAGE_PYTHON3_XZ
	bool "xz module"
	select BR2_PACKAGE_XZ
	help
	  xz (a.k.a lzma) module for Python3

config BR2_PACKAGE_PYTHON3_ZLIB
	bool "zlib module"
	select BR2_PACKAGE_ZLIB
	help
	  zlib support in Python3

endmenu

endif
