#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config BINFMT_DISABLE
	bool "Disble BINFMT support"
	default n
	---help---
		By default, support for loadable binary formats is built.  This logic
		may be suppressed be defining this setting.

if !BINFMT_DISABLE

config BINFMT_EXEPATH
	bool "Support PATH variable"
	default n
	depends on !DISABLE_ENVIRON
	---help---
		Use the contents of the PATH environment variable to locate executable
		files.  Default: n

config PATH_INITIAL
	string "Initial PATH Value"
	default ""
	depends on BINFMT_EXEPATH
	---help---
		The initial value of the PATH variable.  This is the colon-separated
		list of absolute paths.  E.g., "/bin:/usr/bin:/sbin"

config NXFLAT
	bool "Enable the NXFLAT Binary Format"
	default n
	select PIC
	---help---
		Enable support for the NXFLAT binary format.  Default: n

if NXFLAT
source binfmt/libnxflat/Kconfig
endif

config ELF
	bool "Enable the ELF Binary Format"
	default n
	---help---
		Enable support for the ELF binary format.  Default: n

if ELF
source binfmt/libelf/Kconfig
endif

config BUILTIN
	bool "Support Builtin Applications"
	default n
	depends on (!BUILD_PROTECTED && !BUILD_KERNEL) || EXPERIMENTAL
	---help---
		Enable support for builtin applications.  This features assigns a string
		name to an application and in addition if FS_BINFS is defined, retaining
		those names in a file system from which they can be executed.  This feature
		is also the underlying requirement to support built-in applications in the
		NuttShell (NSH).

		ISSUES:  This feature is highly coupled with logic in the apps/
		sub-directory and, as a consequence, cannot be used in environments
		that do not include the standard NuttX apps/ nor in build
		configurations using BUILD_PROTECTED or BUILD_KERNEL.

if BUILTIN
source binfmt/libbuiltin/Kconfig
endif

config PCODE
	bool "Support P-Code Applications"
	default n
	depends on INTERPRETERS_PCODE && SYSTEM_PRUN && ((!BUILD_PROTECTED && !BUILD_KERNEL) || EXPERIMENTAL)
	---help---
		Enable support for interpreted P-Code binaries.  P-Code binaries are
		generated by the NuttX Pascal compiler.

		NOTE:  You must first install and select the Pascal P-Code
		interpreter before you can select this binary format.  The P-Code
		interpreter is in the Pascal download package and can also be found
		in the NuttX Pascal GIT repository.  Read the README.txt file in the
		Pascal package directory for more details.  The correct installation
		directory is: apps/interpreters.

		ISSUES:  This feature is highly coupled with logic in the apps/subdirectory
		and, as a consequence, cannot be used in environments that do not
		include the standard NuttX apps/ nor in build configurations using
		UILD_PROTECTED or BUILD_KERNEL..

if PCODE
source binfmt/libpcode/Kconfig
endif

endif

config PIC
	bool
	default n

config BINFMT_CONSTRUCTORS
	bool "C++ Static Constructor Support"
	default n
	depends on HAVE_CXX && SCHED_STARTHOOK && ELF
	---help---
		Build in support for C++ constructors in loaded modules.  Currently
		only support for ELF binary formats.

config SYMTAB_ORDEREDBYNAME
	bool "Symbol Tables Ordered by Name"
	default n
