# Architecture dependency from the bundled bdwgc.
config BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS
	bool
	default y if BR2_arm || BR2_armeb || BR2_i386 || BR2_m68k || \
		BR2_mips || BR2_mipsel || BR2_mips64 || \
		BR2_mips64el || BR2_powerpc || BR2_powerpc64 || \
		BR2_powerpc64le || BR2_sh || BR2_x86_64

config BR2_PACKAGE_GAUCHE
	bool "gauche"
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	depends on BR2_USE_MMU # fork()
	depends on BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS
	depends on !BR2_STATIC_LIBS
	help
	  Gauche is an R7RS Scheme implementation developed to be a
	  handy script interpreter, which allows programmers and
	  system administrators to write small to large scripts for
	  their daily chores. Quick startup, built-in system
	  interface, native multilingual support are some of its
	  goals.

	  http://practical-scheme.net/gauche/

comment "gauche needs a toolchain w/ NPTL, dynamic library"
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
