Lines Matching +full:built +full:- +full:in
12 --- 3.1 Goal definitions
13 --- 3.2 Built-in object goals - obj-y
14 --- 3.3 Loadable module goals - obj-m
15 --- 3.4 <deleted>
16 --- 3.5 Library file goals - lib-y
17 --- 3.6 Descending down in directories
18 --- 3.7 Non-builtin vmlinux targets - extra-y
19 --- 3.8 Always built goals - always-y
20 --- 3.9 Compilation flags
21 --- 3.10 Dependency tracking
22 --- 3.11 Custom Rules
23 --- 3.12 Command change detection
24 --- 3.13 $(CC) support functions
25 --- 3.14 $(LD) support functions
26 --- 3.15 Script Invocation
29 --- 4.1 Simple Host Program
30 --- 4.2 Composite Host Programs
31 --- 4.3 Using C++ for host programs
32 --- 4.4 Controlling compiler options for host programs
33 --- 4.5 When host programs are actually built
36 --- 5.1 Simple Userspace Program
37 --- 5.2 Composite Userspace Programs
38 --- 5.3 Controlling compiler options for userspace programs
39 --- 5.4 When userspace programs are actually built
44 --- 7.1 Set variables to tweak the build to the architecture
45 --- 7.2 Add prerequisites to archheaders
46 --- 7.3 Add prerequisites to archprepare
47 --- 7.4 List directories to visit when descending
48 --- 7.5 Architecture-specific boot images
49 --- 7.6 Building non-kbuild targets
50 --- 7.7 Commands useful for building a boot image
51 --- 7.8 <deleted>
52 --- 7.9 Preprocessing linker scripts
53 --- 7.10 Generic header files
54 --- 7.11 Post-link pass
57 --- 8.1 no-export-headers
58 --- 8.2 generic-y
59 --- 8.3 generated-y
60 --- 8.4 mandatory-y
76 kbuild Makefiles exist in every subdirectory
88 architecture-specific information to the top Makefile.
93 any built-in or modular targets.
111 working on. In order to do this effectively, they need some overall
129 kbuild infrastructure. This chapter introduces the syntax used in the
139 --------------------
142 These lines define the files to be built, any special compilation
149 obj-y += foo.o
151 This tells kbuild that there is one object in that directory, named
152 foo.o. foo.o will be built from foo.c or foo.S.
154 If foo.o shall be built as a module, the variable obj-m is used.
159 obj-$(CONFIG_FOO) += foo.o
161 $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
165 3.2 Built-in object goals - obj-y
166 ---------------------------------
169 in the $(obj-y) lists. These lists depend on the kernel
172 Kbuild compiles all the $(obj-y) files. It then calls
173 "$(AR) rcSTP" to merge these files into one built-in.a file.
175 linked into vmlinux by scripts/link-vmlinux.sh
177 The order of files in $(obj-y) is significant. Duplicates in
179 built-in.a and succeeding instances will be ignored.
182 (module_init() / __initcall) will be called during boot in the
183 order they appear. So keep in mind that changing the link
184 order may e.g. change the order in which your SCSI
192 obj-$(CONFIG_ISDN_I4L) += isdn.o
193 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
195 3.3 Loadable module goals - obj-m
196 ---------------------------------
198 $(obj-m) specifies object files which are built as loadable
201 A module may be built from one source file or several source
202 files. In the case of one source file, the kbuild makefile
203 simply adds the file to $(obj-m).
208 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
210 Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to 'm'
212 If a kernel module is built from several source files, you specify
213 that you want to build a module in the same way as above; however,
215 module from, so you have to tell it by setting a $(<module_name>-y)
221 obj-$(CONFIG_ISDN_I4L) += isdn.o
222 isdn-y := isdn_net_lib.o isdn_v110.o isdn_common.o
224 In this example, the module name will be isdn.o. Kbuild will
225 compile the objects listed in $(isdn-y) and then run
226 "$(LD) -r" on the list of these files to generate isdn.o.
228 Due to kbuild recognizing $(<module_name>-y) for composite objects,
235 obj-$(CONFIG_EXT2_FS) += ext2.o
236 ext2-y := balloc.o dir.o file.o ialloc.o inode.o ioctl.o \
238 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o \
241 In this example, xattr.o, xattr_user.o and xattr_trusted.o are only
248 parts and then link this into built-in.a, as you would expect.
250 3.5 Library file goals - lib-y
251 ------------------------------
253 Objects listed with obj-* are used for modules, or
254 combined in a built-in.a for that specific directory.
256 be included in a library, lib.a.
257 All objects listed with lib-y are combined in a single
259 Objects that are listed in obj-y and additionally listed in
260 lib-y will not be included in the library, since they will
262 For consistency, objects listed in lib-m will be included in lib.a.
264 Note that the same kbuild makefile may list files to be built-in
266 may contain both a built-in.a and a lib.a file.
271 lib-y := delay.o
274 actually recognize that there is a lib.a being built, the directory
275 shall be listed in libs-y.
279 Use of lib-y is normally restricted to `lib/` and `arch/*/lib`.
281 3.6 Descending down in directories
282 ----------------------------------
284 A Makefile is only responsible for building objects in its own
285 directory. Files in subdirectories should be taken care of by
286 Makefiles in these subdirs. The build system will automatically
287 invoke make recursively in subdirectories, provided you let it know of
290 To do so, obj-y and obj-m are used.
291 ext2 lives in a separate directory, and the Makefile present in fs/
297 obj-$(CONFIG_EXT2_FS) += ext2/
299 If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)
300 the corresponding obj- variable will be set, and kbuild will descend
301 down in the ext2 directory.
307 When Kbuild descends into the directory with 'y', all built-in objects
308 from that directory are combined into the built-in.a, which will be
311 When Kbuild descends into the directory with 'm', in contrast, nothing
312 from that directory will be linked into vmlinux. If the Makefile in
313 that directory specifies obj-y, those objects will be left orphan.
314 It is very likely a bug of the Makefile or of dependencies in Kconfig.
316 Kbuild also supports dedicated syntax, subdir-y and subdir-m, for
318 do not contain kernel-space objects at all. A typical usage is to let
324 subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins
325 subdir-$(CONFIG_MODVERSIONS) += genksyms
326 subdir-$(CONFIG_SECURITY_SELINUX) += selinux
328 Unlike obj-y/m, subdir-y/m does not need the trailing slash since this
335 3.7 Non-builtin vmlinux targets - extra-y
336 -----------------------------------------
338 extra-y specifies targets which are needed for building vmlinux,
339 but not combined into built-in.a.
346 directly linked to vmlinux without going through built-in.a
347 A typical use-case is an object that contains the entry point.
349 arch/$(SRCARCH)/Makefile should specify such objects as head-y.
352 Given that we can control the section order in the linker script,
353 why do we need head-y?
363 extra-y := head_$(BITS).o
364 extra-y += head$(BITS).o
365 extra-y += ebda.o
366 extra-y += platform-quirks.o
367 extra-y += vmlinux.lds
369 $(extra-y) should only contain targets needed for vmlinux.
371 Kbuild skips extra-y when vmlinux is apparently not a final goal.
374 If you intend to build targets unconditionally, always-y (explained
375 in the next section) is the correct syntax to use.
377 3.8 Always built goals - always-y
378 ---------------------------------
380 always-y specifies targets which are literally always built when
385 offsets-file := include/generated/asm-offsets.h
386 always-y += $(offsets-file)
389 ---------------------
391 ccflags-y, asflags-y and ldflags-y
392 These three flags apply only to the kbuild makefile in which they
399 ccflags-y specifies options for compiling with $(CC).
404 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
405 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
411 asflags-y specifies assembler options.
416 asflags-y := -ansi
418 ldflags-y specifies options for linking with $(LD).
423 ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
425 subdir-ccflags-y, subdir-asflags-y
426 The two flags listed above are similar to ccflags-y and asflags-y.
427 The difference is that the subdir- variants have effect for the kbuild
429 Options specified using subdir-* are added to the commandline before
430 the options specified using the non-subdir variants.
434 subdir-ccflags-y := -Werror
436 ccflags-remove-y, asflags-remove-y
442 ccflags-remove-$(CONFIG_MCOUNT) += -pg
445 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
448 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
451 CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
452 can re-add compiler flags that were removed by ccflags-remove-y.
457 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
461 $(AFLAGS_$@) is a similar feature for source files in assembly
464 AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
465 can re-add assembler flags that were removed by asflags-remove-y.
470 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
471 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
472 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
476 ------------------------
481 2) `CONFIG_` options used in all prerequisite files
482 3) Command-line used to compile target
485 be re-compiled.
488 -----------------
493 Another example are the architecture-specific Makefiles which
497 Kbuild is not executing in the directory where the Makefile is
506 referring to files located in the src tree.
517 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
528 echoing information to user in a rule is often a good practice
529 but when execution "make -s" one does not expect to see any output
532 text following $(kecho) to stdout except if "make -s" is used.
546 quiet_cmd_<command> - what shall be echoed
547 cmd_<command> - the command to execute
565 -----------------------------
573 Kbuild achieves this by a kind of meta-programming.
575 if_changed is the macro used for this purpose, in the following form::
583 Any target that utilizes if_changed must be listed in $(targets),
585 always be built.
587 If the target is already listed in the recognized syntax such as
588 obj-y/m, lib-y/m, extra-y/m, always-y/m, hostprogs, userprogs, Kbuild
593 used in conjunction with custom rules as defined in "3.11 Custom Rules".
605 It stores the executed command in a corresponding .cmd
606 file and multiple calls would result in overwrites and
611 ----------------------------
613 The kernel may be built with several different versions of
619 as-option
620 as-option is used to check if $(CC) -- when used to compile
621 assembler (`*.S`) files -- supports the given option. An optional
627 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
629 In the above example, cflags-y will be assigned the option
630 -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).
634 as-instr
635 as-instr checks if the assembler reports a specific instruction
637 C escapes are supported in the test instruction
638 Note: as-instr-option uses KBUILD_AFLAGS for assembler options
640 cc-option
641 cc-option is used to check if $(CC) supports a given option, and if
647 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
649 In the above example, cflags-y will be assigned the option
650 -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
651 The second argument to cc-option is optional, and if omitted,
652 cflags-y will be assigned no value if first option is not supported.
653 Note: cc-option uses KBUILD_CFLAGS for $(CC) options
655 cc-option-yn
656 cc-option-yn is used to check if gcc supports a given option
662 biarch := $(call cc-option-yn, -m32)
663 aflags-$(biarch) += -a32
664 cflags-$(biarch) += -m32
666 In the above example, $(biarch) is set to y if $(CC) supports the -m32
667 option. When $(biarch) equals 'y', the expanded variables $(aflags-y)
668 and $(cflags-y) will be assigned the values -a32 and -m32,
670 Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
672 cc-disable-warning
673 cc-disable-warning checks if gcc supports a given warning and returns
675 because gcc 4.4 and later accept any unknown -Wno-* option and only
676 warn about it if there is another warning in the source file.
680 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
682 In the above example, -Wno-unused-but-set-variable will be added to
685 cc-ifversion
686 cc-ifversion tests the version of $(CC) and equals the fourth parameter
693 ccflags-y := $(call cc-ifversion, -lt, 0402, -O1)
695 In this example, ccflags-y will be assigned the value -O1 if the
697 cc-ifversion takes all the shell operators:
698 -eq, -ne, -lt, -le, -gt, and -ge
699 The third parameter may be a text as in this example, but it may also
702 cc-cross-prefix
703 cc-cross-prefix is used to check if there exists a $(CC) in path with
705 prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
707 Additional prefixes are separated by a single space in the
708 call of cc-cross-prefix.
710 to set CROSS_COMPILE to well-known values but may have several
721 CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-)
726 ----------------------------
728 ld-option
729 ld-option is used to check if $(LD) supports the supplied option.
730 ld-option takes two options as arguments.
737 LDFLAGS_vmlinux += $(call ld-option, -X)
740 ----------------------
764 Two steps are required in order to use a host executable.
770 This can be done in two ways. Either add the dependency in a rule,
771 or utilise the variable "always-y".
772 Both possibilities are described in the following.
775 -----------------------
777 In some cases there is a need to compile and run a program on the
780 built on the build host.
786 Kbuild assumes in the above example that bin2hex is made from a single
787 c-source file named bin2hex.c located in the same directory as
791 ---------------------------
796 $(<executable>-objs) lists all objects used to link the final
803 lxdialog-objs := checklist.o lxdialog.o
806 files. In the above example, checklist.c is compiled to checklist.o
810 Note: The syntax <executable>-y is not permitted for host-programs.
813 -------------------------------
815 kbuild offers support for host programs written in C++. This was
823 qconf-cxxobjs := qconf.o
825 In the example above the executable is composed of the C++ file
826 qconf.cc - identified by $(qconf-cxxobjs).
835 qconf-cxxobjs := qconf.o
836 qconf-objs := check.o
839 --------------------------------------------------
843 the options specified in $(KBUILD_HOSTCFLAGS).
845 in that Makefile, use the variable HOST_EXTRACFLAGS.
850 HOST_EXTRACFLAGS += -I/usr/include/ncurses
858 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
865 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
868 "-L$(QTDIR)/lib".
870 4.5 When host programs are actually built
871 -----------------------------------------
873 Kbuild will only build host-programs when they are referenced
875 This is possible in two ways:
877 (1) List the prerequisite explicitly in a custom rule.
882 hostprogs := gen-devlist
883 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
884 ( cd $(obj); ./gen-devlist ) < $<
886 The target $(obj)/devlist.h will not be built before
887 $(obj)/gen-devlist is updated. Note that references to
888 the host programs in custom rules must be prefixed with $(obj).
890 (2) Use always-y
893 shall be built when a makefile is entered, the always-y
900 always-y := $(hostprogs)
904 hostprogs-always-y := lxdialog
906 This will tell kbuild to build lxdialog even if not referenced in
920 ----------------------------
922 The following line tells kbuild that the program bpf-direct shall be
923 built for the target architecture.
927 userprogs := bpf-direct
929 Kbuild assumes in the above example that bpf-direct is made from a
930 single C source file named bpf-direct.c located in the same directory
934 --------------------------------
939 $(<executable>-objs) lists all objects used to link the final
945 userprogs := bpf-fancy
946 bpf-fancy-objs := bpf-fancy.o bpf-helper.o
949 files. In the above example, bpf-fancy.c is compiled to bpf-fancy.o
950 and bpf-helper.c is compiled to bpf-helper.o.
952 Finally, the two .o files are linked to the executable, bpf-fancy.
953 Note: The syntax <executable>-y is not permitted for userspace programs.
956 -------------------------------------------------------
960 the options specified in $(KBUILD_USERCFLAGS).
962 in that Makefile, use the variable userccflags.
967 userccflags += -I usr/include
974 bpf-helper-userccflags += -I user/include
981 bpfilter_umh-userldflags += -static
983 When linking bpfilter_umh, it will be passed the extra option -static.
985 5.4 When userspace programs are actually built
986 ----------------------------------------------
999 $(obj)/bpfilter_umh is built before $(obj)/bpfilter_umh_blob.o
1001 (2) Use always-y
1006 always-y := $(userprogs)
1010 userprogs-always-y := binderfs_example
1018 "make clean" deletes most generated files in the obj tree where the kernel
1020 Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
1021 $(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
1026 Additional files or directories can be specified in kbuild makefiles by use of
1027 $(clean-files).
1032 clean-files := crc32table.h
1035 Kbuild will assume files to be in the same relative directory as the
1039 $(no-clean-files) variable.
1041 Usually kbuild descends down in subdirectories due to "obj-* := dir/",
1042 but in the architecture makefiles where the kbuild infrastructure
1048 subdir- := compressed
1050 The above assignment instructs kbuild to descend down in the
1053 To support the clean infrastructure in the Makefiles that build the
1062 When "make clean" is executed, make will descend down in arch/x86/boot,
1063 and clean as usual. The Makefile located in arch/x86/boot/ may use
1064 the subdir- trick to descend further down.
1066 Note 1: arch/$(SRCARCH)/Makefile cannot use "subdir-", because that file is
1067 included in the top level makefile, and the kbuild infrastructure
1070 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
1077 before starting to descend down in the individual directories.
1087 2) Store kernel version in include/linux/version.h
1089 - Additional prerequisites are specified in arch/$(SRCARCH)/Makefile
1090 4) Recursively descend down in all directories listed in
1091 init-* core* drivers-* net-* libs-* and build all targets.
1092 - The values of the above variables are expanded in arch/$(SRCARCH)/Makefile.
1095 The very first objects linked are listed in head-y, assigned by
1097 6) Finally, the architecture-specific part does any required post processing
1099 - This includes building boot records
1100 - Preparing initrd images and the like
1104 --------------------------------------------------------
1115 KBUILD_LDFLAGS := -m elf_s390
1117 Note: ldflags-y can be used to further customise
1130 LDFLAGS_vmlinux := -e stext
1136 the flags specified in OBJCOPYFLAGS will be used.
1143 OBJCOPYFLAGS := -O binary
1149 In this example, the binary $(obj)/image is a binary version of
1155 Default value - see top level Makefile
1161 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
1166 Default value - see top level Makefile
1174 cflags-$(CONFIG_X86_32) := -march=i386
1175 cflags-$(CONFIG_X86_64) := -mcmodel=small
1176 KBUILD_CFLAGS += $(cflags-y)
1184 cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
1185 -march=pentium2,-march=i686)
1187 # Disable unit-at-a-time mode ...
1188 KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
1196 Assembler options specific for built-in
1204 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
1210 $(CC) options specific for built-in
1218 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
1225 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
1232 The linker script with full path. Assigned by the top-level Makefile.
1236 The module linker script with full path. Assigned by the top-level
1241 All object files for vmlinux. They are linked to vmlinux in the same
1242 order as listed in KBUILD_VMLINUX_OBJS.
1251 ------------------------------------
1261 ------------------------------------
1264 built before starting to descend down in the subdirectories.
1272 In this example, the file target maketools will be processed
1273 before descending down in the subdirectories.
1274 See also chapter XXX-TODO that describes how kbuild supports
1279 ---------------------------------------------
1283 corresponding arch-specific section for modules; the module-building
1284 machinery is all architecture-independent.
1287 head-y, core-y, libs-y, drivers-y
1288 $(head-y) lists objects to be linked first in vmlinux.
1290 $(libs-y) lists directories where a lib.a archive can be located.
1292 The rest list directories where a built-in.a object file can be
1295 Then the rest follows in this order:
1297 $(core-y), $(libs-y), $(drivers-y)
1300 and arch/$(SRCARCH)/Makefile only adds architecture-specific
1306 core-y += arch/sparc/
1308 libs-y += arch/sparc/prom/
1309 libs-y += arch/sparc/lib/
1311 drivers-$(CONFIG_PM) += arch/sparc/power/
1313 7.5 Architecture-specific boot images
1314 -------------------------------------
1317 it, wrap it in bootstrapping code, and copy the resulting files
1321 It is common to locate any additional processing in a boot/
1325 target specified in boot/. Therefore arch/$(SRCARCH)/Makefile shall
1326 call make manually to build a target in boot/.
1328 The recommended approach is to include shortcuts in
1340 make in a subdirectory.
1342 There are no rules for naming architecture-specific targets,
1350 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
1354 will be built. In the top level Makefile the first goal present
1357 In "make help", the default goal is highlighted with a '*'.
1366 When "make" is executed without arguments, bzImage will be built.
1369 ---------------------------------------------
1380 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
1381 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
1387 In this example, there are two possible targets, requiring different
1389 LDFLAGS_$@ syntax - one for each potential target.
1401 resulting in the target file being recompiled for no
1405 Copy binary. Uses OBJCOPYFLAGS usually specified in
1415 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
1421 in an init section in the image. Platform code *must* copy the
1422 blob to non-init memory prior to calling unflatten_device_tree().
1424 To use this command, simply add `*.dtb` into obj-y or targets, or make
1432 targets += $(dtb-y)
1433 DTC_FLAGS ?= -p 1024
1436 --------------------------------
1438 When the vmlinux image is built, the linker script
1441 located in the same directory.
1442 kbuild knows .lds files and includes a rule `*lds.S` -> `*lds`.
1447 extra-y := vmlinux.lds
1449 The assignment to extra-y is used to tell kbuild to build the
1456 KBUILD_CPPFLAGS : Set in top-level Makefile
1457 cppflags-y : May be set in the kbuild makefile
1458 CPPFLAGS_$(@F) : Target-specific flags.
1459 Note that the full filename is used in this
1462 The kbuild infrastructure for `*lds` files is used in several
1463 architecture-specific files.
1466 -------------------------
1468 The directory include/asm-generic contains the header files
1471 to list the file in the Kbuild file.
1472 See "8.2 generic-y" for further info on syntax etc.
1474 7.11 Post-link pass
1475 -------------------
1478 will be invoked for post-link objects (vmlinux and modules.ko)
1479 for architectures to run post-link passes on. Must also handle
1485 .tmp_vmlinux? targets to be called from link-vmlinux.sh.
1491 ------------------------------------
1494 Many headers can be exported as-is but other headers require a
1495 minimal pre-processing before they are ready for user-space.
1496 The pre-processing does:
1498 - drop kernel-specific annotations
1499 - drop include of compiler.h
1500 - drop all sections that are kernel internal (guarded by `ifdef __KERNEL__`)
1507 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
1510 8.1 no-export-headers
1511 ---------------------
1513 no-export-headers is essentially used by include/uapi/linux/Kbuild to
1517 8.2 generic-y
1518 -------------
1521 include/asm-generic then this is listed in the file
1527 generic-y += termios.h
1528 generic-y += rtc.h
1531 file is generated in the directory::
1537 of the set of exported headers in the directory::
1541 The generated wrapper will in both cases look like the following:
1545 #include <asm-generic/termios.h>
1547 8.3 generated-y
1548 ---------------
1550 If an architecture generates other header files alongside generic-y
1551 wrappers, generated-y specifies them.
1553 This prevents them being treated as stale asm-generic wrappers and
1559 generated-y += syscalls_32.h
1561 8.4 mandatory-y
1562 ---------------
1564 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild
1567 This works like optional generic-y. If a mandatory header is missing
1568 in arch/$(SRCARCH)/include/(uapi/)/asm, Kbuild will automatically
1569 generate a wrapper of the asm-generic one.
1582 three-part version number, such as "2", "4", and "0". These three
1585 $(EXTRAVERSION) defines an even tinier sublevel for pre-patches
1586 or additional patches. It is usually some non-numeric string
1587 such as "-pre4", and is often blank.
1590 $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable
1591 for constructing installation directory names or showing in
1606 This variable specifies the directory in arch/ to build.
1610 both 32-bit and 64-bit.
1612 For example, you can pass in ARCH=i386, ARCH=x86_64, or ARCH=x86.
1619 Use this for architecture-specific install targets.
1623 installation. This variable is not defined in the Makefile but
1624 may be passed in by the user if desired.
1634 default option --strip-debug will be used. Otherwise, the
1646 GNU Make supports elementary list-processing functions. The kernel
1651 immediate evaluation of the right-hand side and stores an actual string
1652 into the left-hand side. "=" is like a formula definition; it stores the
1653 right-hand side in an unevaluated form and then evaluates this form each
1654 time the left-hand side is used.
1662 - Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1663 - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1664 - Updates by Sam Ravnborg <sam@ravnborg.org>
1665 - Language QA by Jan Engelhardt <jengelh@gmx.de>
1670 - Describe how kbuild supports shipped files with _shipped.
1671 - Generating offset header files.
1672 - Add more variables to chapters 7 or 9?