cmake.mk: fix support for ccache
[openwrt.git] / Config.in
1 # Copyright (C) 2006-2012 OpenWrt.org
2 #
3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
5 #
6
7 mainmenu "OpenWrt Configuration"
8
9 config MODULES
10         bool
11         default y
12
13 config HAVE_DOT_CONFIG
14         bool
15         default y
16
17 source "target/Config.in"
18
19 menu "Target Images"
20
21         menuconfig TARGET_ROOTFS_INITRAMFS
22                 bool "ramdisk"
23                 default y if USES_INITRAMFS
24                 help
25                   Embed the rootfs into the kernel (initramfs)
26
27                 choice
28                         prompt "Compression"
29                         default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ar71xx
30                         default TARGET_INITRAMFS_COMPRESSION_LZMA if TARGET_ramips
31                         default TARGET_INITRAMFS_COMPRESSION_NONE
32                         depends on TARGET_ROOTFS_INITRAMFS
33                         help
34                           Select ramdisk compression.
35
36                         config TARGET_INITRAMFS_COMPRESSION_NONE
37                                 bool "none"
38
39                         config TARGET_INITRAMFS_COMPRESSION_GZIP
40                                 bool "gzip"
41
42                         config TARGET_INITRAMFS_COMPRESSION_BZIP2
43                                 bool "bzip2"
44
45                         config TARGET_INITRAMFS_COMPRESSION_LZMA
46                                 bool "lzma"
47
48                         config TARGET_INITRAMFS_COMPRESSION_LZO
49                                 bool "lzo"
50
51                         config TARGET_INITRAMFS_COMPRESSION_LZ4
52                                 bool "lz4"
53
54                         config TARGET_INITRAMFS_COMPRESSION_XZ
55                                 bool "xz"
56                 endchoice
57
58                 config EXTERNAL_CPIO
59                         string
60                         prompt "Use external cpio" if TARGET_ROOTFS_INITRAMFS
61                         default ""
62                         help
63                           Kernel uses specified external cpio as INITRAMFS_SOURCE
64
65         comment "Root filesystem archives"
66
67         config TARGET_ROOTFS_CPIOGZ
68                 bool "cpio.gz"
69                 default y if USES_CPIOGZ
70                 help
71                   Build a compressed cpio archive of the the root filesystem
72
73         config TARGET_ROOTFS_TARGZ
74                 bool "tar.gz"
75                 default y if USES_TARGZ
76                 help
77                   Build a compressed tar archive of the the root filesystem
78
79         comment "Root filesystem images"
80
81         config TARGET_ROOTFS_EXT4FS
82                 bool "ext4"
83                 default y if USES_EXT4
84                 help
85                   Ext4 file system with some free space for uml images
86
87         config TARGET_ROOTFS_ISO
88                 bool "iso"
89                 default n
90                 depends on TARGET_x86_generic
91                 help
92                   Create some bootable ISO image
93
94         config TARGET_ROOTFS_JFFS2
95                 bool "jffs2"
96                 default y if USES_JFFS2
97                 help
98                   Build a jffs2 root filesystem
99
100         config TARGET_ROOTFS_JFFS2_NAND
101                 bool "jffs2 for NAND"
102                 default y if USES_JFFS2_NAND
103                 depends on USES_JFFS2_NAND
104                 help
105                   Build a jffs2 root filesystem for NAND flash
106
107         config TARGET_ROOTFS_SQUASHFS
108                 bool "squashfs"
109                 default y if USES_SQUASHFS
110                 help
111                   Build a squashfs-lzma root filesystem
112
113         menuconfig TARGET_ROOTFS_UBIFS
114                 bool "ubifs"
115                 default y if USES_UBIFS
116                 depends on USES_UBIFS
117                 help
118                   Build a ubifs root filesystem
119
120                 choice
121                         prompt "compression"
122                         default TARGET_UBIFS_COMPRESSION_NONE
123                         depends on TARGET_ROOTFS_UBIFS
124                         help
125                           Select compression type
126
127                         config TARGET_UBIFS_COMPRESSION_NONE
128                                 bool "none"
129
130                         config TARGET_UBIFS_COMPRESSION_LZO
131                                 bool "lzo"
132
133                         config TARGET_UBIFS_COMPRESSION_ZLIB
134                                 bool "zlib"
135                 endchoice
136
137                 config TARGET_UBIFS_FREE_SPACE_FIXUP
138                         bool "free space fixup" if TARGET_ROOTFS_UBIFS
139                         default y
140                         help
141                           The file-system free space has to be fixed up on first mount
142
143                 config TARGET_UBIFS_JOURNAL_SIZE
144                         string
145                         prompt "journal size" if TARGET_ROOTFS_UBIFS
146                         default ""
147
148         comment "Image Options"
149
150         source "target/linux/*/image/Config.in"
151
152         config TARGET_ROOTFS_PARTSIZE
153                 int "Root filesystem partition size (in MB)"
154                 depends on X86_GRUB_IMAGES || TARGET_ROOTFS_EXT4FS || TARGET_rb532
155                 default 48
156                 help
157                   Allows you to change the root filesystem partition size
158
159         config TARGET_ROOTFS_MAXINODE
160                 int "Maximum number of inodes in root filesystem"
161                 depends on TARGET_ROOTFS_EXT4FS
162                 default 6000
163                 help
164                   Allows you to change the maximum number of inodes in the root filesystem
165
166         config TARGET_ROOTFS_RESERVED_PCT
167                 int "Percentage of reserved blocks in root filesystem"
168                 depends on TARGET_ROOTFS_EXT4FS
169                 default 0
170                 help
171                   Allows you to change the percentage of reserved blocks in the root filesystem
172
173         menuconfig TARGET_ROOTFS_INCLUDE_KERNEL
174                 bool "Include kernel in root filesystem"
175                 depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
176                 default n if USES_UBIFS
177                 help
178                   Include the kernel image in the rootfs. Typically the image is placed
179                   below /boot.
180
181                 config TARGET_ROOTFS_INCLUDE_UIMAGE
182                         bool "include uImage" if TARGET_ROOTFS_INCLUDE_KERNEL
183                         default y
184                         help
185                           This option might not apply to all targets. Make sure
186                           to check target/linux/<your_target>/image/Makefile to
187                           see if this option will have any effect.
188
189                 config TARGET_ROOTFS_INCLUDE_ZIMAGE
190                         bool "include zImage" if TARGET_ROOTFS_INCLUDE_KERNEL
191                         default y
192                         help
193                           This option might not apply to all targets. Make sure
194                           to check target/linux/<your_target>/image/Makefile to
195                           see if this option will have any effect.
196
197                 config TARGET_ROOTFS_INCLUDE_FIT
198                         bool "include FIT" if TARGET_ROOTFS_INCLUDE_KERNEL
199                         default y
200                         help
201                           This option might not apply to all targets. Make sure
202                           to check target/linux/<your_target>/image/Makefile to
203                           see if this option will have any effect.
204
205         config TARGET_ROOTFS_INCLUDE_DTB
206                 bool "Include DTB in root filesystem"
207                 depends on TARGET_ROOTFS_UBIFS || TARGET_ROOTFS_EXT4FS
208                 default n if USES_UBIFS
209                 help
210                   Include the device tree blob file(s) in the rootfs. Typically the DTBs
211                   are placed below /boot.
212
213 endmenu
214
215 menu "Global build settings"
216
217         config ALL
218                 bool "Select all packages by default"
219                 default n
220
221         comment "General build options"
222
223         config DISPLAY_SUPPORT
224                 bool "Show packages that require graphics support (local or remote)"
225                 default n
226
227         config BUILD_PATENTED
228                 default y
229                 bool "Compile with support for patented functionality"
230                 help
231                   When this option is disabled, software which provides patented functionality will not be built.
232                   In case software provides optional support for patented functionality,
233                   this optional support will get disabled for this package.
234
235         config BUILD_NLS
236                 default n
237                 bool "Compile with full language support"
238                 help
239                   When this option is enabled, packages are built with the full versions of iconv and GNU gettext
240                   instead of the default OpenWrt stubs. If uClibc is used, it is also built with locale support.
241
242         config BUILD_STATIC_TOOLS
243                 default n
244                 bool "Attempt to link host utilities statically"
245                 help
246                   Linking host utilities like sed or firmware-utils statically increases the portability of the
247                   generated ImageBuilder and SDK tarballs, however it may fail on some Linux distributions.
248
249         config SHADOW_PASSWORDS
250                 bool
251                 prompt "Enable shadow password support"
252                 default y
253                 help
254                   Enable shadow password support.
255
256         config CLEAN_IPKG
257                 bool
258                 prompt "Remove ipkg/opkg status data files in final images"
259                 default n
260                 help
261                   This removes all ipkg/opkg status data files from the target directory before building the root fs
262
263         config COLLECT_KERNEL_DEBUG
264                 bool
265                 prompt "Collect kernel debug information"
266                 select KERNEL_DEBUG_INFO
267                 default n
268                 help
269                   This collects debugging symbols from the kernel and all compiled modules.
270                   Useful for release builds, so that kernel issues can be debugged offline later.
271
272         comment "Kernel build options"
273
274         source "Config-kernel.in"
275
276         comment "Package build options"
277
278         config DEBUG
279                 bool
280                 prompt "Compile packages with debugging info"
281                 default n
282                 help
283                   Adds -g3 to the CFLAGS
284
285         config IPV6
286                 bool
287                 prompt "Enable IPv6 support in packages"
288                 default y
289                 help
290                   Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
291
292         config PKG_BUILD_PARALLEL
293                 bool
294                 prompt "Compile certain packages parallelized"
295                 default y
296                 help
297                   This adds a -jX option to certain packages that are known to
298                   behave well for parallel build. By default the package make processes
299                   use the main jobserver, in which case this option only takes effect
300                   when you add -jX to the make command.
301
302                   If you are unsure, select N.
303
304         config PKG_BUILD_USE_JOBSERVER
305                 bool
306                 prompt "Use top-level make jobserver for packages"
307                 depends on PKG_BUILD_PARALLEL
308                 default y
309                 help
310                   This passes the main make process jobserver fds to package builds,
311                   enabling full parallelization across different packages
312
313                   Note that disabling this may overcommit CPU resources depending on the
314                   -j level of the main make process, the number of package
315                   submake jobs selected below and the number of actual CPUs present.
316                   Example: If the main make is passed a -j4 and the submake -j
317                   is also set to 4, we may end up with 16 parallel make processes
318                   in the worst case.
319
320
321         config PKG_BUILD_JOBS
322                 int
323                 prompt "Number of package submake jobs (2-512)"
324                 range 2 512
325                 default 2
326                 depends on PKG_BUILD_PARALLEL && !PKG_BUILD_USE_JOBSERVER
327                 help
328                   The number of jobs (-jX) to pass to packages submake.
329
330         config PKG_DEFAULT_PARALLEL
331                 bool
332                 prompt "Parallelize the default package build rule (May break build)"
333                 depends on PKG_BUILD_PARALLEL
334                 depends on BROKEN
335                 default n
336                 help
337                   Always set the default package build rules to parallel build.
338
339                   WARNING: This may break build or kill your cat, as it builds
340                   packages with multiple jobs that are probably not tested in
341                   a parallel build environment.
342
343                   Only say Y, if you don't mind fixing broken packages.
344                   Before reporting build bugs, set this to N and re-run the build.
345
346         comment "Stripping options"
347
348         choice
349                 prompt "Binary stripping method"
350                 default USE_STRIP   if EXTERNAL_TOOLCHAIN
351                 default USE_STRIP   if USE_GLIBC || USE_EGLIBC || USE_MUSL
352                 default USE_SSTRIP
353                 help
354                   Select the binary stripping method you wish to use.
355
356                 config NO_STRIP
357                         bool "none"
358                         help
359                           This will install unstripped binaries (useful for native compiling/debugging)
360
361                 config USE_STRIP
362                         bool "strip"
363                         help
364                           This will install binaries stripped using strip from binutils
365
366
367                 config USE_SSTRIP
368                         bool "sstrip"
369                         depends on !DEBUG
370                         depends on !USE_GLIBC
371                         depends on !USE_EGLIBC
372                         help
373                           This will install binaries stripped using sstrip
374         endchoice
375
376         config STRIP_ARGS
377                 string
378                 prompt "Strip arguments"
379                 depends on USE_STRIP
380                 default "--strip-unneeded --remove-section=.comment --remove-section=.note" if DEBUG
381                 default "--strip-all"
382                 help
383                   Specifies arguments passed to the strip command when stripping binaries
384
385         config STRIP_KERNEL_EXPORTS
386                 bool "Strip unnecessary exports from the kernel image"
387                 help
388                   Reduces kernel size by stripping unused kernel exports from the kernel image
389                   Note that this might make the kernel incompatible with any kernel modules that
390                   were not selected at the time the kernel image was created
391
392         config USE_MKLIBS
393                 bool "Strip unnecessary functions from libraries"
394                 help
395                   Reduces libraries to only those functions that are necessary for using all
396                   selected packages (including those selected as <M>)
397                   Note that this will make the system libraries incompatible with most of the packages
398                   that are not selected during the build process
399
400         choice
401                 prompt "Preferred standard C++ library"
402                 default USE_LIBSTDCXX if USE_EGLIBC
403                 default USE_UCLIBCXX
404                 help
405                   Select the preferred standard C++ library for all packages that support this.
406
407                 config USE_UCLIBCXX
408                         bool "uClibc++"
409
410                 config USE_LIBSTDCXX
411                         bool "libstdc++"
412         endchoice
413
414 endmenu
415
416 menuconfig DEVEL
417         bool "Advanced configuration options (for developers)"
418         default n
419
420         config BROKEN
421                 bool "Show broken platforms / packages" if DEVEL
422                 default n
423
424         config DOWNLOAD_FOLDER
425                 string "Download folder" if DEVEL
426                 default ""
427
428         config LOCALMIRROR
429                 string "Local mirror for source packages" if DEVEL
430                 default ""
431
432         config AUTOREBUILD
433                 bool "Automatic rebuild of packages" if DEVEL
434                 default y
435                 help
436                   Automatically rebuild packages when their files change
437
438         config BUILD_SUFFIX
439                 string "Build suffix to append to the BUILD_DIR variable" if DEVEL
440                 default ""
441                 help
442                   Build suffix to append to the BUILD_DIR variable, i.e: build_dir_suffix
443
444         config TARGET_ROOTFS_DIR
445                 string "Override the default TARGET_ROOTFS_DIR variable" if DEVEL
446                 default ""
447                 help
448                   Override the default TARGET_ROOTFS_DIR variable content $(BUILD_DIR) with custom path.
449                   Use this option to re-define the location of the target root file system directory.
450
451         config CCACHE
452                 bool "Use ccache" if DEVEL
453                 default n
454                 help
455                   Compiler cache; see http://ccache.samba.org/
456
457         config EXTERNAL_KERNEL_TREE
458                 string "Use external kernel tree" if DEVEL
459                 default ""
460
461         config KERNEL_GIT_CLONE_URI
462                 string "Enter git repository to clone" if DEVEL
463                 default ""
464                 help
465                   Enter the full git repository path i.e.:
466                   git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
467                   This will create a git clone of the kernel in your build
468                   directory.
469
470         config KERNEL_GIT_LOCAL_REPOSITORY
471                 string "Enter path to local reference repository" if DEVEL
472                 default ""
473                 help
474                   Enter a full pathname to a local reference git repository.
475                   In this instance, the --refererence option of git clone will
476                   be used thus creating a quick local clone of your repo.
477
478         config BUILD_LOG
479                 bool "Enable log files during build process" if DEVEL
480                 help
481                   If enabled log files will be written to the ./log directory
482
483         config SRC_TREE_OVERRIDE
484                 bool "Enable package source tree override" if DEVEL
485                 help
486                   If enabled, you can force a package to use a git tree as source
487                   code instead of the normal tarball. Create a symlink 'git-src'
488                   in the package directory, pointing to the .git tree that you want
489                   to pull the source code from
490
491         config EXTRA_OPTIMIZATION
492                 string "Additional compiler options" if DEVEL
493                 default "-fno-caller-saves"
494                 help
495                   Extra Target-independent optimizations to use when building for the target.
496
497 menuconfig TARGET_OPTIONS
498         bool "Target Options"  if DEVEL
499
500         config TARGET_OPTIMIZATION
501                 string "Target Optimizations" if TARGET_OPTIONS
502                 default DEFAULT_TARGET_OPTIMIZATION
503                 help
504                   Optimizations to use when building for the target host.
505
506         config SOFT_FLOAT
507                 bool "Use software floating point by default" if TARGET_OPTIONS
508                 default y
509                 depends on (arm || armeb || powerpc || mipsel || mips || mips64el || mips64) && !HAS_FPU
510                 help
511                   If your target CPU does not have a Floating Point Unit (FPU) or a
512                   kernel FPU emulator, but you still wish to support floating point
513                   functions, then everything will need to be compiled with soft floating
514                   point support (-msoft-float).
515
516                   Most people will answer N.
517
518         config USE_MIPS16
519                 bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS
520                 depends on HAS_MIPS16
521                 depends on !GCC_VERSION_4_6
522                 default y
523                 help
524                   If your target CPU does support the MIPS16 instruction set
525                   and you want to use it for packages, enable this option.
526                   MIPS16 produces smaller binaries thus reducing pressure on
527                   caches and TLB.
528
529                   Most people will answer N.
530
531 source "toolchain/Config.in"
532
533 source "target/imagebuilder/Config.in"
534 source "target/sdk/Config.in"
535 source "target/toolchain/Config.in"
536
537 source "tmp/.config-package.in"