#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

mainmenu "Nuttx/$ARCH Configuration"

config APPSDIR
	string
	option env="APPSDIR"

# This is a temporary kludge to let the build system know that we are using the new
# configuration system

config NUTTX_NEWCONFIG
	bool
	default y

menu "General Setup"
config EXPERIMENTAL
	bool "Prompt for development and/or incomplete code/drivers"

menu "Build Configuration"
config APPS_DIR
	string "Application directory"
	default "../apps"
	---help---
		Identifies the directory that builds the
		application to link with NuttX.  Default: ../apps This symbol must be assigned
		to the path to the application build directory *relative* to
		the NuttX top build direcory. If you had an application
		directory and the NuttX directory each in separate directory
		trees like this:
		
		build
		|-nuttx
		|  |
		|  `- Makefile
		`-application
		|
		`- Makefile
		
		Then you would set CONFIG_APPS_DIR=../application.

		The application direction must contain Makefile and this make
		file must support the following targets:
		
		libapps$(LIBEXT) (usually libapps.a). libapps.a is a static
		library ( an archive) that contains all of application object
		files.
		
		clean. Do whatever is appropriate to clean the application
		directories for a fresh build.
		
		distclean. Clean everthing -- auto-generated files, symbolic
		links etc. -- so that the directory contents are the same as
		the contents in your configuration management system.
		This is only done when you change the NuttX configuration.
		
		depend. Make or update the application build dependencies.
		
		When this application is invoked it will receive the setting TOPDIR like:
		
		$(MAKE) -C $(CONFIG_APPS_DIR) TOPDIR="$(TOPDIR)" <target>
		
		TOPDIR is the full path to the NuttX directory. It can be used, for
		example, to include makefile fragments (e.g., .config or Make.defs)
		or to set up include file paths.

config BUILD_2PASS
	bool "Two pass build"
	default n
	---help---
		Enables the two pass build options.

		Two-pass build options.  If the 2 pass build option is selected, then these
		options configure the make system build a extra link object. This link object
		is assumed to be an incremental (relative) link object, but could be a static
		library (archive) (some modification to this Makefile would be required if
		CONFIG_PASS1_TARGET generates an archive). Pass 1 1ncremental (relative) link
		objects should be put into the processor-specific source directory (where other
		link objects will be created).  If the pass1 obect is an archive, it could
		go anywhere.

if BUILD_2PASS
config PASS1_TARGET
	string "Pass one target"
	default ""
	---help---
		The name of the first pass build target.  This
		can be specific build target, a special build target (all, default, etc.)
		or may just be left undefined.

config PASS1_BUILDIR
	string "Pass one build directory"
	default "build"
	---help---
		The path, relative to the top NuttX build
		directory to directory that contains the Makefile to build the
		first pass object.  The Makefile must support the following targets:
		The special target CONFIG_PASS1_TARGET (if defined)
		and the usual depend, clean, and distclean targets.

config PASS1_OBJECT
	string "Pass one object"
	default ""
	---help---
		May be used to include an extra, pass1 object
		into the final link.  This would probably be the object generated
		from the CONFIG_PASS1_TARGET.  It may be available at link time
		in the arch/<architecture>/src directory.

config NUTTX_KERNEL
	bool "NuttX kernel build"
	default n
	---help---
		Builds NuttX as a separately compiled kernel.
endif
endmenu

menu "Binary Output Formats"

config RRLOAD_BINARY
	bool "rrload binary format"
	default n
	---help---
		Create nuttx.rr in the rrload binary format used with
		BSPs from www.ridgerun.com using the tools/mkimage.sh script.

config INTELHEX_BINARY
	bool "Intel HEX binary format"
	default n
	---help---
		Create the nuttx.hex in the Intel HEX binary format that is
		used with many different loaders. This option will use the GNU objcopy program
		and should not be selected if you are not using the GNU toolchain.

config MOTOROLA_SREC
	bool "Motorola S-Record binary format"
	default n
	---help---
		Create the nuttx.srec in the Motorola S-Record binary format that is
		used with many different loaders. This option will use the GNU objcopy program
		and should not be selected if you are not using the GNU toolchain.

config RAW_BINARY
	bool "Raw binary format"
	default n
	---help---
		Create the nuttx.bin in the raw binary format that is used with many
		different loaders using the GNU objcopy program.  This option
		should not be selected if you are not using the GNU toolchain.
endmenu

menu "Debug Options"

config DEBUG
	bool "Enable debug output"
	default n
	---help---
		enables built-in debug options

if DEBUG
config DEBUG_VERBOSE
	bool "Enable debug verbose output"
	default n
	---help---
		enables verbose debug output

config DEBUG_ENABLE
	bool "Enable debug controls"
	default n
	---help---
		Support an interface to enable or disable debug output.

config DEBUG_SCHED
	bool "Enable scheduler debug output"
	default n
	---help---
		Enable OS debug output (disabled by default)

config DEBUG_MM
	bool "Enable memory manager debug output"
	default n
	---help---
		Enable memory management debug output (disabled by default)

config DEBUG_NET
	bool "Enable network debug output"
	default n
	---help---
		Enable network debug output (disabled by default)

config DEBUG_USB
	bool "Enable USB debug output"
	default n
	---help---
		Enable usb debug output (disabled by default)

config DEBUG_FS
	bool "Enable file system debug output"
	default n
	---help---
		Enable file system debug output (disabled by default)

config DEBUG_LIB
	bool "Enable C library debug output"
	default n
	---help---
		Enable C library debug output (disabled by default)

config DEBUG_BINFMT
	bool "Enable binary loader debug output"
	default n
	---help---
		Enable binary loader debug output (disabled by default)

config DEBUG_GRAPHICS
	bool "Enable graphics debug output"
	default n
	---help---
		Enable NX graphics debug output (disabled by default)

config DEBUG_I2C
	bool "Enable I2C debug output"
	default n
	---help---
		Enable I2C driver debug output (disabled by default)

config DEBUG_SPI
	bool "Enable SPI debug output"
	default n
	---help---
		Enable I2C driver debug output (disabled by default)

config DEBUG_WATCHDOG
	bool "Enable watchdog timer debug output"
	default n
	---help---
		Enable  watchdog timer debug output (disabled by default)

endif

config DEBUG_SYMBOLS
	bool "Enable debug symbols"
	default n
	---help---
		Build without optimization and with debug symbols (needed
		for use with a debugger).
endmenu
endmenu

menu "System Type"
source "arch/Kconfig"
endmenu

menu "Board Selection"
source "configs/Kconfig"
endmenu

menu "Kernel Features"
source sched/Kconfig
endmenu

menu "Device Drivers"
source drivers/Kconfig
endmenu

menu "Networking support"
source net/Kconfig
endmenu

menu "File systems"
source fs/Kconfig
endmenu

menu "Memory management"
source mm/Kconfig
endmenu

menu "Library routines"
source lib/Kconfig
source libxx/Kconfig
endmenu

menu "Application configuration"
source "$APPSDIR/Kconfig"
endmenu

