config BR2_PACKAGE_POSTGRESQL
	bool "postgresql"
	depends on BR2_USE_MMU # fork()
	depends on BR2_USE_WCHAR
	# fails to build in a pure static linking scenario, and
	# postgresql is unlikely to be used in a pure statically
	# linked environment.
	depends on !BR2_STATIC_LIBS
	depends on !BR2_OPTIMIZE_FAST
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH if BR2_PACKAGE_LIBOPENSSL
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST if BR2_PACKAGE_LIBOPENSSL
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if BR2_PACKAGE_LIBOPENSSL
	help
	  PostgreSQL is a powerful, open source object-relational
	  database system.

	  Enable the readline package to gain readline support in
	  psql (the command line interpreter), which offers
	  command history and edit functions.

	  Enable the zlib package to gain builtin compression for
	  archives with pg_dump and pg_restore.

	  http://www.postgresql.org

if BR2_PACKAGE_POSTGRESQL

config BR2_PACKAGE_POSTGRESQL_FULL
	bool "postgresql-full"
	help
	  Build PostgreSQL, contrib, and documentation.

endif

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

comment "postgresql can't be built with Optimize for fast"
	depends on BR2_OPTIMIZE_FAST
