Skip to content
Kconfig 37.8 KiB
Newer Older
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
mainmenu "Nuttx/$ARCH Configuration"

config APPSDIR
	string
	option env="APPSDIR"
menu "Build Setup"
config EXPERIMENTAL
	bool "Prompt for development and/or incomplete code/drivers"

config DEFAULT_SMALL
	bool "Default to smallest size"
	default n
	---help---
		When options are present, the default value for certain options will
		be the one the results in the smallest size (at a loss of featurs).
		The default is a fuller feature set at a larger size.

		NOTE: This option does not prevent you from overriding the default
		to select another alternative.  Nor does it affect the settings that
		have already been selected in your configuration file.  This applies
		only to new settings that require a default value.

choice
	prompt "Build Host Platform"
	default HOST_LINUX

config HOST_LINUX
	bool "Linux"

config HOST_OSX
	bool "OSX"

config HOST_WINDOWS
	bool "Windows"

config HOST_OTHER
	bool "Other"

endchoice

config TOOLCHAIN_WINDOWS
	bool
	default n
	depends on HOST_WINDOWS
	---help---
		Selected internally if the selected Windows environment is compatible
		with the use of Windows native toolchains.

choice
	prompt "Windows Build Environment"
	default WINDOWS_CYGWIN
	depends on HOST_WINDOWS

config WINDOWS_NATIVE
	bool "Windows Native"
patacongo's avatar
patacongo committed
	---help---
		Build natively in a CMD.exe environment with Windows style paths
		(like C:\cgywin\home)

config WINDOWS_CYGWIN
	bool "Cygwin"
Gregory Nutt's avatar
Gregory Nutt committed
	---help---
		Build natively in a Cygwin environment with POSIX style paths (like
		/cygdrive/c/Program Files)

config WINDOWS_UBUNTU
Gregory Nutt's avatar
Gregory Nutt committed
	bool "Ubuntu under Windows 10"
	---help---
		Build natively in an Unbuntu shell under Windoes 10 environment with
		POSIX style paths (like /mnt/c/Program Files)

config WINDOWS_MSYS
	bool "MSYS"
patacongo's avatar
patacongo committed
	---help---
		Build natively in a Cygwin environment with POSIX style paths (like
		/cygdrive/c/cgywin/home)

config WINDOWS_OTHER
patacongo's avatar
patacongo committed
	bool "Windows POSIX-like environment"
patacongo's avatar
patacongo committed
	---help---
		Build natively in another POSIX-like environment.  Additional
		support may be necessary
patacongo's avatar
patacongo committed
	depends on WINDOWS_NATIVE
	---help---
		Use the mklink command to set up symbolic links when NuttX is
		configured.  Otherwise, configuration directories will be copied to
		establish the configuration.

		If directories are copied, then some confusion can result ("Which
		version of the file did I modify?").  In that case, it is recommended
		that you re-build using 'make clean_context all'.  That will cause the
		configured directories to be recopied on each build.

		NOTE: This option also (1) that you have administrator privileges, (2)
		that you are using Windows 2000 or better, and (3) that you are using
		the NTFS file system.  Select 'n' is that is not the case.

menu "Build Configuration"
config APPS_DIR
	string "Application directory"
	default "../apps" if !WINDOWS_NATIVE
	default "..\apps" if WINDOWS_NATIVE
	---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 directory. If you had an
		application directory and the NuttX directory each in separate
		directory trees like this:
		Then you would set APPS_DIR=../application.

		The application direction must contain Makefile and this make
		file must support the following targets:
		1)libapps$(LIBEXT) (usually libapps.a). libapps.a is a static
		library ( an archive) that contains all of application object
		files.
		2)clean. Do whatever is appropriate to clean the application
		directories for a fresh build.
		3)distclean. Clean everything -- 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.
		4)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.

choice
	prompt "Memory organization"
	default BUILD_FLAT

config BUILD_FLAT
	bool "Flat address space"
	---help---
		Build NuttX as one large, executable "blob".  All of the code
		within the blob can interrupt with all of the other code within
		the blob.  There are no special privileges, protections, or
		restraints.

config BUILD_PROTECTED
	bool "NuttX protected build"
	depends on ARCH_USE_MPU
	select LIB_SYSCALL
	select BUILD_2PASS
	---help---
		Builds NuttX and selected applications as two "blobs":  A protected,
		privileged kernel blob and a separate unprivileged, user blob.  This
		requires use of the two pass build with each blob being build on
		each pass.

		NOTE:  This build configuration requires that the platform support
		a memory protection unit (MPU).  Support, however, may not be
		implemented on all platforms.

config BUILD_KERNEL
	bool "NuttX kernel build"
	depends on ARCH_USE_MMU && ARCH_ADDRENV
	select LIB_SYSCALL
	---help---
		Builds NuttX as a separately compiled kernel.  No applications are
		built.  All user applications must reside in a file system where
		they can be loaded into memory for execution.

		NOTE:  This build configuration requires that the platform support
Loading
Loading full blame...