summaryrefslogtreecommitdiff
path: root/Kconfig
blob: 2b4969b267479af62fd5c81ada90798f4d1c2b30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
mainmenu "Openlinux Configuration"

config MODULES
    bool
    modules
    default y

menu "General Setup"
    choice
        prompt "Select target architecture"
        default ARCH_X86_64
    
        config ARCH_X86_64
            bool "x86_64"
            help
                Target the x86_64 architecture.
    
        # config ARCH_AARCH64
        #     bool "aarch64"
        #     help
        #         Target the ARM 64-bit architecture.
    
    endchoice

    config LLVM
        bool "Use LLVM/Clang toolchain"
        default y
        help
            Select this option to use the LLVM/Clang toolchain
            for building the system instead of GCC.

    config WERROR
	default n
        bool "Compile the system with -Werror"
	help
	  If you select this option, all compiler warnings will be treated as errors.

    config DEBUG
        bool "Enable Debugging Features"
	default y
	help
	  Enable this option to include debugging symbols and additional debug information in the build.

    choice
    	prompt "Compiler optimization level"
    	default OPTIMIZATION_LEVEL_G


    config OPTIMIZATION_LEVEL_O0
    	bool "No optimization (-O0)"
    	help
    		Compile the system without any optimization.
    		This is useful for debugging but results in
    		slower binaries.
    
    config OPTIMIZATION_LEVEL_G
    	bool "Optimize for debugging (-Og)"
    	help
    		Compile the system with optimizations that
    		are compatible with debugging, providing a
    		balance between performance and debuggability.
    
    config OPTIMIZATION_LEVEL_O1
    	bool "Optimize for size and speed (-O1)"
    	help
    		Compile the system with basic optimizations
    		that improve performance without significantly
    		increasing compile time.
    
    config OPTIMIZATION_LEVEL_O2
    	bool "Optimize for speed (-O2)"
    	help
    		Compile the system with optimizations that
    		improve execution speed. This is a good
    		balance between performance and compile time.
    
    config OPTIMIZATION_LEVEL_O3
    	bool "Optimize for maximum speed (-O3)"
    	help
    		Compile the system with aggressive optimizations
    		that maximize execution speed, potentially at
    		the cost of longer compile times and larger binaries.
    
    config OPTIMIZATION_LEVEL_S
    	bool "Optimize for size (-Os)"
    	help
    		Compile the system with optimizations that
    		reduce binary size, which is useful for
    		resource-constrained environments.
    
    config OPTIMIZATION_LEVEL_Z
    	bool "Optimize for minimum size (-Oz)"
    	help
    		Compile the system with optimizations that
    		focus on minimizing binary size as much as
    		possible, often at the expense of performance.
    
    config OPTIMIZATION_LEVEL_FAST
    	bool "Optimize for maximum speed (Ofast)"
    	depends on LLVM
    	help
    		Compile the system with aggressive optimizations
    		that may violate strict standards compliance
    		to achieve the highest possible performance.
    endchoice

endmenu

source "boot/Kconfig"
source "lib/Kconfig"
source "bin/Kconfig"