comment "xenomai needs a toolchain w/ threads"
	depends on !BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_i386 || BR2_x86_64 || BR2_arm || \
		   BR2_bfin || BR2_powerpc || BR2_sh4

config BR2_PACKAGE_XENOMAI
	bool "Xenomai Userspace"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_i386 || BR2_x86_64 || BR2_arm || \
		BR2_bfin || BR2_powerpc || BR2_sh4
	help
	  Real-Time Framework for Linux
	  http://www.xenomai.org

	  Xenomai is split in two parts: a kernel part and an
	  userspace part.

	  This package contains the userspace part, which consists
	  mainly in libraries to write userspace real-time programs
	  that interact with the in-kernel Xenomai real-time core.

	  For those libraries to work, you need a Xenomai-enabled
	  kernel. This is possible in two ways:
	   - if you compile your kernel with Buildroot, you need to go
	     to Linux Kernel -> Linux Kernel Extensions to enable the
	     Xenomai extension.
	   - if you compile your kernel outside of Buildroot, you need
	     to make sure that it is Xenomai-enabled.

	  Finally, if you are using a static /dev, make sure to
	  uncomment the Xenomai entries listed in
	  target/generic/device_table_dev.txt.

if BR2_PACKAGE_XENOMAI

config BR2_PACKAGE_XENOMAI_VERSION
	string "Custom Xenomai version"
	help
	  Manually select Xenomai version. If left empty, the default
	  version will be used.

	  Make sure that the selected version has a patch for your
	  selected Linux kernel. If it does not, download and select
	  a patch manually with
	  BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
	  Kernel -> Linux Kernel Extensions menu.

config BR2_PACKAGE_XENOMAI_TESTSUITE
	bool "Install testsuite"
	help
	  This option allows to install the Xenomai test programs.

config BR2_PACKAGE_XENOMAI_RTCAN
	bool "RTCan utilities"
	help
	  This option allows to install the Xenomai RT-CAN utilities.

config BR2_PACKAGE_XENOMAI_ANALOGY
	bool "Analogy libs and utils"
	help
	  This option allows to install the Xenomai Analogy utilities
	  and libraries

config BR2_PACKAGE_XENOMAI_NATIVE_SKIN
	bool "Native skin library"
	default y
	help
	  This option allows to install the Native Xenomai skin

config BR2_PACKAGE_XENOMAI_POSIX_SKIN
	bool "POSIX skin library"
	default y
	help
	  This option allows to install the POSIX Xenomai skin

config BR2_PACKAGE_XENOMAI_VXWORKS_SKIN
	bool "VX-Works skin library"
	help
	  This option allows to install the VX-Works Xenomai skin

config BR2_PACKAGE_XENOMAI_PSOS_SKIN
	bool "PSOS skin library"
	help
	  This option allows to install the PSOS Xenomai skin

config BR2_PACKAGE_XENOMAI_RTAI_SKIN
	bool "RTAI skin library"
	help
	  This option allows to install the RTAI Xenomai skin

config BR2_PACKAGE_XENOMAI_UITRON_SKIN
	bool "uiTron skin library"
	help
	  This option allows to install the uiTron Xenomai skin

config BR2_PACKAGE_XENOMAI_VRTX_SKIN
	bool "VRTX skin library"
	help
	  This option allows to install the VRTX Xenomai skin

endif
