]> granicus.if.org Git - esp-idf/blob - Kconfig
Merge branch 'bugfix/tcpip_stack_overflow_logging_printf' into 'master'
[esp-idf] / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see kconfig/kconfig-language.txt.
4 #
5 mainmenu "Espressif IoT Development Framework Configuration"
6
7
8 menu "SDK tool configuration"
9 config TOOLPREFIX
10     string "Compiler toolchain path/prefix"
11     default "xtensa-esp32-elf-"
12     help
13         The prefix/path that is used to call the toolchain. The default setting assumes
14         a crosstool-ng gcc setup that is in your PATH.
15
16 config PYTHON
17     string "Python 2 interpreter"
18     default "python"
19     help
20         The executable name/path that is used to run python. On some systems Python 2.x
21         may need to be invoked as python2.
22
23 config MAKE_WARN_UNDEFINED_VARIABLES
24     bool "'make' warns on undefined variables"
25     default "y"
26     help
27         Adds --warn-undefined-variables to MAKEFLAGS. This causes make to
28         print a warning any time an undefined variable is referenced.
29
30         This option helps find places where a variable reference is misspelled
31         or otherwise missing, but it can be unwanted if you have Makefiles which
32         depend on undefined variables expanding to an empty string.
33
34 endmenu  # SDK tool configuration
35
36 source "$COMPONENT_KCONFIGS_PROJBUILD"
37
38 menu "Compiler options"
39
40 choice OPTIMIZATION_COMPILER
41     prompt "Optimization Level"
42     default OPTIMIZATION_LEVEL_DEBUG
43     help
44         This option sets compiler optimization level (gcc -O argument).
45
46         - for "Release" setting, -Os flag is added to CFLAGS.
47         - for "Debug" setting, -Og flag is added to CFLAGS.
48
49         "Release" with -Os produces smaller & faster compiled code but it
50         may be harder to correlated code addresses to source files when debugging.
51
52         To add custom optimization settings, set CFLAGS and/or CPPFLAGS
53         in project makefile, before including $(IDF_PATH)/make/project.mk. Note that
54         custom optimization levels may be unsupported.
55
56 config OPTIMIZATION_LEVEL_DEBUG
57     bool "Debug (-Og)"
58 config OPTIMIZATION_LEVEL_RELEASE
59     bool "Release (-Os)"
60 endchoice
61
62 choice OPTIMIZATION_ASSERTION_LEVEL
63     prompt "Assertion level"
64     default OPTIMIZATION_ASSERTIONS_ENABLED
65     help
66         Assertions can be:
67         - Enabled. Failure will print verbose assertion details. This is the default.
68
69         - Set to "silent" to save code size (failed assertions will abort() but user
70           needs to use the aborting address to find the line number with the failed assertion.)
71
72         - Disabled entirely (not recommended for most configurations.) -DNDEBUG is added
73           to CPPFLAGS in this case.
74
75 config OPTIMIZATION_ASSERTIONS_ENABLED
76     prompt "Enabled"
77     bool
78     help
79         Enable assertions. Assertion content and line number will be printed on failure.
80
81 config OPTIMIZATION_ASSERTIONS_SILENT
82     prompt "Silent (saves code size)"
83     bool
84     help
85         Enable silent assertions. Failed assertions will abort(), user needs to
86         use the aborting address to find the line number with the failed assertion.
87
88 config OPTIMIZATION_ASSERTIONS_DISABLED
89     prompt "Disabled (sets -DNDEBUG)"
90     bool
91     help
92         If assertions are disabled, -DNDEBUG is added to CPPFLAGS.
93
94 endchoice # assertions
95
96 config CXX_EXCEPTIONS
97    bool "Enable C++ exceptions"
98    default n
99    help
100        Enabling this option compiles all IDF C++ files with exception support enabled.
101
102        Disabling this option disables C++ exception support in all compiled files, and any libstdc++ code which throws
103        an exception will abort instead.
104
105        Enabling this option currently adds an additional 20KB of heap overhead, and 4KB of additional heap is allocated
106        the first time an exception is thrown in user code.
107
108 endmenu # Compiler Options
109
110 menu "Component config"
111 source "$COMPONENT_KCONFIGS"
112 endmenu