build: add a config knob to enable LTO for all packages
[openwrt/staging/jow.git] / config / Config-images.in
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Copyright (C) 2006-2013 OpenWrt.org
4
5 menu "Target Images"
6
7 menuconfig TARGET_ROOTFS_INITRAMFS
8 bool "ramdisk"
9 default y if USES_INITRAMFS
10 help
11 Embed the root filesystem into the kernel (initramfs).
12
13 choice
14 prompt "Compression"
15 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_apm821xx
16 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ath79_mikrotik
17 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_lantiq
18 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_mpc85xx
19 default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
20 default TARGET_INITRAMFS_COMPRESSION_ZSTD if TARGET_ipq807x
21 default TARGET_INITRAMFS_COMPRESSION_XZ if USES_SEPARATE_INITRAMFS
22 default TARGET_INITRAMFS_COMPRESSION_NONE
23 depends on TARGET_ROOTFS_INITRAMFS
24 help
25 Select ramdisk compression.
26
27 config TARGET_INITRAMFS_COMPRESSION_NONE
28 bool "none"
29
30 config TARGET_INITRAMFS_COMPRESSION_GZIP
31 bool "gzip"
32
33 config TARGET_INITRAMFS_COMPRESSION_BZIP2
34 bool "bzip2"
35
36 config TARGET_INITRAMFS_COMPRESSION_LZMA
37 bool "lzma"
38
39 config TARGET_INITRAMFS_COMPRESSION_LZO
40 bool "lzo"
41
42 config TARGET_INITRAMFS_COMPRESSION_LZ4
43 bool "lz4"
44
45 config TARGET_INITRAMFS_COMPRESSION_XZ
46 bool "xz"
47
48 config TARGET_INITRAMFS_COMPRESSION_ZSTD
49 bool "zstd"
50 endchoice
51
52 config EXTERNAL_CPIO
53 string
54 prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
55 default ""
56 help
57 Kernel uses specified external cpio as INITRAMFS_SOURCE.
58
59 config TARGET_INITRAMFS_FORCE
60 bool "Force"
61 depends on TARGET_ROOTFS_INITRAMFS
62 help
63 Ignore the initramfs passed by the bootloader.
64
65 config TARGET_ROOTFS_INITRAMFS_SEPARATE
66 bool "separate ramdisk"
67 depends on USES_SEPARATE_INITRAMFS && TARGET_ROOTFS_INITRAMFS && !TARGET_INITRAMFS_FORCE
68 default y if USES_SEPARATE_INITRAMFS
69 help
70 Generate separate initrd.cpio instead of embedding it.
71 This is useful for generating images with a dedicated
72 ramdisk e.g. in U-Boot's uImage and uImage.FIT formats.
73
74 comment "Root filesystem archives"
75
76 config TARGET_ROOTFS_CPIOGZ
77 bool "cpio.gz"
78 default y if USES_CPIOGZ
79 help
80 Build a compressed cpio archive of the root filesystem.
81
82 config TARGET_ROOTFS_TARGZ
83 bool "tar.gz"
84 default y if USES_TARGZ
85 help
86 Build a compressed tar archive of the root filesystem.
87
88 comment "Root filesystem images"
89
90 menuconfig TARGET_ROOTFS_EXT4FS
91 bool "ext4"
92 default y if USES_EXT4
93 help
94 Build an ext4 root filesystem.
95
96 config TARGET_EXT4_RESERVED_PCT
97 int "Percentage of reserved blocks in root filesystem"
98 depends on TARGET_ROOTFS_EXT4FS
99 default 0
100 help
101 Select the percentage of reserved blocks in the root filesystem.
102
103 choice
104 prompt "Root filesystem block size"
105 default TARGET_EXT4_BLOCKSIZE_4K
106 depends on TARGET_ROOTFS_EXT4FS
107 help
108 Select the block size of the root filesystem.
109
110 config TARGET_EXT4_BLOCKSIZE_4K
111 bool "4k"
112
113 config TARGET_EXT4_BLOCKSIZE_2K
114 bool "2k"
115
116 config TARGET_EXT4_BLOCKSIZE_1K
117 bool "1k"
118 endchoice
119
120 config TARGET_EXT4_BLOCKSIZE
121 int
122 default 4096 if TARGET_EXT4_BLOCKSIZE_4K
123 default 2048 if TARGET_EXT4_BLOCKSIZE_2K
124 default 1024 if TARGET_EXT4_BLOCKSIZE_1K
125 depends on TARGET_ROOTFS_EXT4FS
126
127 config TARGET_EXT4_JOURNAL
128 bool "Create a journaling filesystem"
129 depends on TARGET_ROOTFS_EXT4FS
130 help
131 Create an ext4 filesystem with a journal.
132
133 config TARGET_ROOTFS_JFFS2
134 bool "jffs2"
135 depends on USES_JFFS2
136 help
137 Build a JFFS2 root filesystem.
138
139 config TARGET_ROOTFS_JFFS2_NAND
140 bool "jffs2 for NAND"
141 default y if USES_JFFS2_NAND
142 depends on USES_JFFS2_NAND
143 help
144 Build a JFFS2 root filesystem for NAND flash.
145
146 menuconfig TARGET_ROOTFS_SQUASHFS
147 bool "squashfs"
148 default y if USES_SQUASHFS
149 help
150 Build a squashfs root filesystem.
151
152 config TARGET_SQUASHFS_BLOCK_SIZE
153 int "Block size (in KiB)"
154 depends on TARGET_ROOTFS_SQUASHFS
155 default 64 if LOW_MEMORY_FOOTPRINT
156 default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
157 default 256
158 help
159 Select squashfs block size, must be one of:
160 4, 8, 16, 32, 64, 128, 256, 512, 1024
161
162 menuconfig TARGET_ROOTFS_UBIFS
163 bool "ubifs"
164 default y if USES_UBIFS
165 depends on USES_UBIFS
166 help
167 Build a UBIFS root filesystem.
168
169 choice
170 prompt "compression"
171 default TARGET_UBIFS_COMPRESSION_ZLIB
172 depends on TARGET_ROOTFS_UBIFS
173 help
174 Select compression type
175
176 config TARGET_UBIFS_COMPRESSION_NONE
177 bool "none"
178
179 config TARGET_UBIFS_COMPRESSION_LZO
180 bool "lzo"
181
182 config TARGET_UBIFS_COMPRESSION_ZLIB
183 bool "zlib"
184 endchoice
185
186 config TARGET_UBIFS_FREE_SPACE_FIXUP
187 bool "free space fixup" if TARGET_ROOTFS_UBIFS
188 default y
189 help
190 The filesystem free space has to be fixed up on first mount.
191
192 config TARGET_UBIFS_JOURNAL_SIZE
193 string
194 prompt "journal size" if TARGET_ROOTFS_UBIFS
195 default ""
196
197 config GRUB_IMAGES
198 bool "Build GRUB images (Linux x86 or x86_64 host only)"
199 depends on TARGET_x86
200 depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
201 select PACKAGE_grub2
202 select PACKAGE_grub2-bios-setup
203 default y
204
205 config GRUB_EFI_IMAGES
206 bool "Build GRUB EFI images (Linux x86 or x86_64 host only)"
207 depends on TARGET_x86
208 depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS
209 select PACKAGE_grub2
210 select PACKAGE_grub2-efi
211 select PACKAGE_grub2-bios-setup
212 select PACKAGE_kmod-fs-vfat
213 default y
214
215 config GRUB_CONSOLE
216 bool "Use Console Terminal (in addition to Serial)"
217 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
218 default y
219
220 config GRUB_SERIAL
221 string "Serial port device"
222 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
223 default "ttyS0"
224
225 config GRUB_BAUDRATE
226 int "Serial port baud rate"
227 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
228 default 38400 if TARGET_x86_generic
229 default 115200
230
231 config GRUB_FLOWCONTROL
232 bool "Use RTE/CTS on serial console"
233 depends on GRUB_SERIAL != ""
234
235 config GRUB_BOOTOPTS
236 string "Extra kernel boot options"
237 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
238 help
239 If you don't know, just leave it blank.
240
241 config GRUB_TIMEOUT
242 string "Seconds to wait before booting the default entry"
243 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
244 default "5"
245 help
246 If you don't know, 5 seconds is a reasonable default.
247
248 config GRUB_TITLE
249 string "Title for the menu entry in GRUB"
250 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
251 default "OpenWrt"
252 help
253 This is the title of the GRUB menu entry.
254 If unspecified, it defaults to OpenWrt.
255
256 config ISO_IMAGES
257 bool "Build LiveCD image (ISO)"
258 depends on TARGET_x86
259 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
260
261 config VDI_IMAGES
262 bool "Build VirtualBox image files (VDI)"
263 depends on TARGET_x86
264 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
265 select PACKAGE_kmod-e1000
266
267 config VMDK_IMAGES
268 bool "Build VMware image files (VMDK)"
269 depends on TARGET_x86
270 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
271 select PACKAGE_kmod-e1000
272
273 config VHDX_IMAGES
274 bool "Build Hyper-V image files (VHDX)"
275 depends on TARGET_x86
276 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
277 select PACKAGE_kmod-e1000
278
279 config TARGET_IMAGES_GZIP
280 bool "GZip images"
281 depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armvirt || TARGET_malta
282 default y
283
284 comment "Image Options"
285
286 source "target/linux/*/image/Config.in"
287 source "target/linux/*/*/image/Config.in"
288
289 config TARGET_KERNEL_PARTSIZE
290 int "Kernel partition size (in MiB)"
291 depends on USES_BOOT_PART
292 default 8 if TARGET_apm821xx_sata
293 default 64 if TARGET_bcm27xx
294 default 16
295
296 config TARGET_ROOTFS_PARTSIZE
297 int "Root filesystem partition size (in MiB)"
298 depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS
299 default 104
300 help
301 Select the root filesystem partition size.
302
303 config TARGET_ROOTFS_PARTNAME
304 string "Root partition on target device"
305 depends on GRUB_IMAGES || GRUB_EFI_IMAGES
306 help
307 Override the root partition on the final device. If left empty,
308 it will be mounted by PARTUUID which makes the kernel find the
309 appropriate disk automatically.
310
311 config TARGET_ROOTFS_PERSIST_VAR
312 bool "Make /var persistent"
313 help
314 Do not symlink /var to /tmp, so that its content will persist
315 across reboots. When enabled, /var/run will still be linked
316 to /tmp/run.
317
318 endmenu