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 Using Rust for host programs
33 --- 4.5 Controlling compiler options for host programs
34 --- 4.6 When host programs are actually built
37 --- 5.1 Simple Userspace Program
38 --- 5.2 Composite Userspace Programs
39 --- 5.3 Controlling compiler options for userspace programs
40 --- 5.4 When userspace programs are actually built
45 --- 7.1 Set variables to tweak the build to the architecture
46 --- 7.2 Add prerequisites to archheaders
47 --- 7.3 Add prerequisites to archprepare
48 --- 7.4 List directories to visit when descending
49 --- 7.5 Architecture-specific boot images
50 --- 7.6 Building non-kbuild targets
51 --- 7.7 Commands useful for building a boot image
52 --- 7.8 <deleted>
53 --- 7.9 Preprocessing linker scripts
54 --- 7.10 Generic header files
55 --- 7.11 Post-link pass
58 --- 8.1 no-export-headers
59 --- 8.2 generic-y
60 --- 8.3 generated-y
61 --- 8.4 mandatory-y
77 kbuild Makefiles exist in every subdirectory
89 architecture-specific information to the top Makefile.
94 any built-in or modular targets.
112 working on. In order to do this effectively, they need some overall
130 kbuild infrastructure. This chapter introduces the syntax used in the
140 --------------------
143 These lines define the files to be built, any special compilation
150 obj-y += foo.o
152 This tells kbuild that there is one object in that directory, named
153 foo.o. foo.o will be built from foo.c or foo.S.
155 If foo.o shall be built as a module, the variable obj-m is used.
160 obj-$(CONFIG_FOO) += foo.o
162 $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
166 3.2 Built-in object goals - obj-y
167 ---------------------------------
170 in the $(obj-y) lists. These lists depend on the kernel
173 Kbuild compiles all the $(obj-y) files. It then calls
174 "$(AR) rcSTP" to merge these files into one built-in.a file.
176 linked into vmlinux by scripts/link-vmlinux.sh
178 The order of files in $(obj-y) is significant. Duplicates in
180 built-in.a and succeeding instances will be ignored.
183 (module_init() / __initcall) will be called during boot in the
184 order they appear. So keep in mind that changing the link
185 order may e.g. change the order in which your SCSI
193 obj-$(CONFIG_ISDN_I4L) += isdn.o
194 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
196 3.3 Loadable module goals - obj-m
197 ---------------------------------
199 $(obj-m) specifies object files which are built as loadable
202 A module may be built from one source file or several source
203 files. In the case of one source file, the kbuild makefile
204 simply adds the file to $(obj-m).
209 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
211 Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to 'm'
213 If a kernel module is built from several source files, you specify
214 that you want to build a module in the same way as above; however,
216 module from, so you have to tell it by setting a $(<module_name>-y)
222 obj-$(CONFIG_ISDN_I4L) += isdn.o
223 isdn-y := isdn_net_lib.o isdn_v110.o isdn_common.o
225 In this example, the module name will be isdn.o. Kbuild will
226 compile the objects listed in $(isdn-y) and then run
227 "$(LD) -r" on the list of these files to generate isdn.o.
229 Due to kbuild recognizing $(<module_name>-y) for composite objects,
236 obj-$(CONFIG_EXT2_FS) += ext2.o
237 ext2-y := balloc.o dir.o file.o ialloc.o inode.o ioctl.o \
239 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o \
242 In this example, xattr.o, xattr_user.o and xattr_trusted.o are only
249 parts and then link this into built-in.a, as you would expect.
251 3.5 Library file goals - lib-y
252 ------------------------------
254 Objects listed with obj-* are used for modules, or
255 combined in a built-in.a for that specific directory.
257 be included in a library, lib.a.
258 All objects listed with lib-y are combined in a single
260 Objects that are listed in obj-y and additionally listed in
261 lib-y will not be included in the library, since they will
263 For consistency, objects listed in lib-m will be included in lib.a.
265 Note that the same kbuild makefile may list files to be built-in
267 may contain both a built-in.a and a lib.a file.
272 lib-y := delay.o
275 actually recognize that there is a lib.a being built, the directory
276 shall be listed in libs-y.
280 Use of lib-y is normally restricted to `lib/` and `arch/*/lib`.
282 3.6 Descending down in directories
283 ----------------------------------
285 A Makefile is only responsible for building objects in its own
286 directory. Files in subdirectories should be taken care of by
287 Makefiles in these subdirs. The build system will automatically
288 invoke make recursively in subdirectories, provided you let it know of
291 To do so, obj-y and obj-m are used.
292 ext2 lives in a separate directory, and the Makefile present in fs/
298 obj-$(CONFIG_EXT2_FS) += ext2/
300 If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)
301 the corresponding obj- variable will be set, and kbuild will descend
302 down in the ext2 directory.
308 When Kbuild descends into the directory with 'y', all built-in objects
309 from that directory are combined into the built-in.a, which will be
312 When Kbuild descends into the directory with 'm', in contrast, nothing
313 from that directory will be linked into vmlinux. If the Makefile in
314 that directory specifies obj-y, those objects will be left orphan.
315 It is very likely a bug of the Makefile or of dependencies in Kconfig.
317 Kbuild also supports dedicated syntax, subdir-y and subdir-m, for
319 do not contain kernel-space objects at all. A typical usage is to let
325 subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins
326 subdir-$(CONFIG_MODVERSIONS) += genksyms
327 subdir-$(CONFIG_SECURITY_SELINUX) += selinux
329 Unlike obj-y/m, subdir-y/m does not need the trailing slash since this
336 3.7 Non-builtin vmlinux targets - extra-y
337 -----------------------------------------
339 extra-y specifies targets which are needed for building vmlinux,
340 but not combined into built-in.a.
352 extra-y += vmlinux.lds
354 $(extra-y) should only contain targets needed for vmlinux.
356 Kbuild skips extra-y when vmlinux is apparently not a final goal.
359 If you intend to build targets unconditionally, always-y (explained
360 in the next section) is the correct syntax to use.
362 3.8 Always built goals - always-y
363 ---------------------------------
365 always-y specifies targets which are literally always built when
370 offsets-file := include/generated/asm-offsets.h
371 always-y += $(offsets-file)
374 ---------------------
376 ccflags-y, asflags-y and ldflags-y
377 These three flags apply only to the kbuild makefile in which they
384 ccflags-y specifies options for compiling with $(CC).
389 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
390 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
396 asflags-y specifies assembler options.
401 asflags-y := -ansi
403 ldflags-y specifies options for linking with $(LD).
408 ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
410 subdir-ccflags-y, subdir-asflags-y
411 The two flags listed above are similar to ccflags-y and asflags-y.
412 The difference is that the subdir- variants have effect for the kbuild
414 Options specified using subdir-* are added to the commandline before
415 the options specified using the non-subdir variants.
419 subdir-ccflags-y := -Werror
421 ccflags-remove-y, asflags-remove-y
427 ccflags-remove-$(CONFIG_MCOUNT) += -pg
430 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
433 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
436 CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
437 can re-add compiler flags that were removed by ccflags-remove-y.
442 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
446 $(AFLAGS_$@) is a similar feature for source files in assembly
449 AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
450 can re-add assembler flags that were removed by asflags-remove-y.
455 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
456 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
457 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
461 ------------------------
466 2) `CONFIG_` options used in all prerequisite files
467 3) Command-line used to compile target
470 be re-compiled.
473 -----------------
478 Another example are the architecture-specific Makefiles which
482 Kbuild is not executing in the directory where the Makefile is
491 referring to files located in the src tree.
502 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
513 echoing information to user in a rule is often a good practice
514 but when execution "make -s" one does not expect to see any output
517 text following $(kecho) to stdout except if "make -s" is used.
531 quiet_cmd_<command> - what shall be echoed
532 cmd_<command> - the command to execute
550 -----------------------------
558 Kbuild achieves this by a kind of meta-programming.
560 if_changed is the macro used for this purpose, in the following form::
568 Any target that utilizes if_changed must be listed in $(targets),
570 always be built.
572 If the target is already listed in the recognized syntax such as
573 obj-y/m, lib-y/m, extra-y/m, always-y/m, hostprogs, userprogs, Kbuild
578 used in conjunction with custom rules as defined in "3.11 Custom Rules".
590 It stores the executed command in a corresponding .cmd
591 file and multiple calls would result in overwrites and
596 ----------------------------
598 The kernel may be built with several different versions of
604 as-option
605 as-option is used to check if $(CC) -- when used to compile
606 assembler (`*.S`) files -- supports the given option. An optional
612 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
614 In the above example, cflags-y will be assigned the option
615 -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).
619 as-instr
620 as-instr checks if the assembler reports a specific instruction
622 C escapes are supported in the test instruction
623 Note: as-instr-option uses KBUILD_AFLAGS for assembler options
625 cc-option
626 cc-option is used to check if $(CC) supports a given option, and if
632 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
634 In the above example, cflags-y will be assigned the option
635 -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
636 The second argument to cc-option is optional, and if omitted,
637 cflags-y will be assigned no value if first option is not supported.
638 Note: cc-option uses KBUILD_CFLAGS for $(CC) options
640 cc-option-yn
641 cc-option-yn is used to check if gcc supports a given option
647 biarch := $(call cc-option-yn, -m32)
648 aflags-$(biarch) += -a32
649 cflags-$(biarch) += -m32
651 In the above example, $(biarch) is set to y if $(CC) supports the -m32
652 option. When $(biarch) equals 'y', the expanded variables $(aflags-y)
653 and $(cflags-y) will be assigned the values -a32 and -m32,
655 Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
657 cc-disable-warning
658 cc-disable-warning checks if gcc supports a given warning and returns
660 because gcc 4.4 and later accept any unknown -Wno-* option and only
661 warn about it if there is another warning in the source file.
665 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
667 In the above example, -Wno-unused-but-set-variable will be added to
670 gcc-min-version
671 gcc-min-version tests if the value of $(CONFIG_GCC_VERSION) is greater than
676 cflags-$(call gcc-min-version, 70100) := -foo
678 In this example, cflags-y will be assigned the value -foo if $(CC) is gcc and
681 clang-min-version
682 clang-min-version tests if the value of $(CONFIG_CLANG_VERSION) is greater
687 cflags-$(call clang-min-version, 110000) := -foo
689 In this example, cflags-y will be assigned the value -foo if $(CC) is clang
692 cc-cross-prefix
693 cc-cross-prefix is used to check if there exists a $(CC) in path with
695 prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
697 Additional prefixes are separated by a single space in the
698 call of cc-cross-prefix.
700 to set CROSS_COMPILE to well-known values but may have several
711 CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-)
716 ----------------------------
718 ld-option
719 ld-option is used to check if $(LD) supports the supplied option.
720 ld-option takes two options as arguments.
727 LDFLAGS_vmlinux += $(call ld-option, -X)
730 ----------------------
754 Two steps are required in order to use a host executable.
760 This can be done in two ways. Either add the dependency in a rule,
761 or utilise the variable "always-y".
762 Both possibilities are described in the following.
765 -----------------------
767 In some cases there is a need to compile and run a program on the
770 built on the build host.
776 Kbuild assumes in the above example that bin2hex is made from a single
777 c-source file named bin2hex.c located in the same directory as
781 ---------------------------
786 $(<executable>-objs) lists all objects used to link the final
793 lxdialog-objs := checklist.o lxdialog.o
796 files. In the above example, checklist.c is compiled to checklist.o
800 Note: The syntax <executable>-y is not permitted for host-programs.
803 -------------------------------
805 kbuild offers support for host programs written in C++. This was
813 qconf-cxxobjs := qconf.o
815 In the example above the executable is composed of the C++ file
816 qconf.cc - identified by $(qconf-cxxobjs).
825 qconf-cxxobjs := qconf.o
826 qconf-objs := check.o
829 --------------------------------
831 Kbuild offers support for host programs written in Rust. However,
833 it may only be used in scenarios where Rust is required to be
839 target-rust := y
842 located in the same directory as the ``Makefile``. The crate may
846 --------------------------------------------------
850 the options specified in $(KBUILD_HOSTCFLAGS).
852 in that Makefile, use the variable HOST_EXTRACFLAGS.
857 HOST_EXTRACFLAGS += -I/usr/include/ncurses
865 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
872 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
875 "-L$(QTDIR)/lib".
877 4.6 When host programs are actually built
878 -----------------------------------------
880 Kbuild will only build host-programs when they are referenced
882 This is possible in two ways:
884 (1) List the prerequisite explicitly in a custom rule.
889 hostprogs := gen-devlist
890 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
891 ( cd $(obj); ./gen-devlist ) < $<
893 The target $(obj)/devlist.h will not be built before
894 $(obj)/gen-devlist is updated. Note that references to
895 the host programs in custom rules must be prefixed with $(obj).
897 (2) Use always-y
900 shall be built when a makefile is entered, the always-y
907 always-y := $(hostprogs)
911 hostprogs-always-y := lxdialog
913 This will tell kbuild to build lxdialog even if not referenced in
927 ----------------------------
929 The following line tells kbuild that the program bpf-direct shall be
930 built for the target architecture.
934 userprogs := bpf-direct
936 Kbuild assumes in the above example that bpf-direct is made from a
937 single C source file named bpf-direct.c located in the same directory
941 --------------------------------
946 $(<executable>-objs) lists all objects used to link the final
952 userprogs := bpf-fancy
953 bpf-fancy-objs := bpf-fancy.o bpf-helper.o
956 files. In the above example, bpf-fancy.c is compiled to bpf-fancy.o
957 and bpf-helper.c is compiled to bpf-helper.o.
959 Finally, the two .o files are linked to the executable, bpf-fancy.
960 Note: The syntax <executable>-y is not permitted for userspace programs.
963 -------------------------------------------------------
967 the options specified in $(KBUILD_USERCFLAGS).
969 in that Makefile, use the variable userccflags.
974 userccflags += -I usr/include
981 bpf-helper-userccflags += -I user/include
988 bpfilter_umh-userldflags += -static
990 When linking bpfilter_umh, it will be passed the extra option -static.
994 5.4 When userspace programs are actually built
995 ----------------------------------------------
1008 $(obj)/bpfilter_umh is built before $(obj)/bpfilter_umh_blob.o
1010 (2) Use always-y
1015 always-y := $(userprogs)
1019 userprogs-always-y := binderfs_example
1027 "make clean" deletes most generated files in the obj tree where the kernel
1029 Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
1030 $(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
1035 Additional files or directories can be specified in kbuild makefiles by use of
1036 $(clean-files).
1041 clean-files := crc32table.h
1044 Kbuild will assume files to be in the same relative directory as the
1048 $(no-clean-files) variable.
1050 Usually kbuild descends down in subdirectories due to "obj-* := dir/",
1051 but in the architecture makefiles where the kbuild infrastructure
1057 subdir- := compressed
1059 The above assignment instructs kbuild to descend down in the
1062 Note 1: arch/$(SRCARCH)/Makefile cannot use "subdir-", because that file is
1063 included in the top level makefile. Instead, arch/$(SRCARCH)/Kbuild can use
1064 "subdir-".
1066 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
1073 before starting to descend down in the individual directories.
1083 2) Store kernel version in include/linux/version.h
1085 - Additional prerequisites are specified in arch/$(SRCARCH)/Makefile
1086 4) Recursively descend down in all directories listed in
1087 init-* core* drivers-* net-* libs-* and build all targets.
1088 - The values of the above variables are expanded in arch/$(SRCARCH)/Makefile.
1091 The very first objects linked are listed in scripts/head-object-list.txt.
1092 6) Finally, the architecture-specific part does any required post processing
1094 - This includes building boot records
1095 - Preparing initrd images and the like
1099 --------------------------------------------------------
1110 KBUILD_LDFLAGS := -m elf_s390
1112 Note: ldflags-y can be used to further customise
1125 LDFLAGS_vmlinux := -e stext
1131 the flags specified in OBJCOPYFLAGS will be used.
1138 OBJCOPYFLAGS := -O binary
1144 In this example, the binary $(obj)/image is a binary version of
1150 Default value - see top level Makefile
1156 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
1161 Default value - see top level Makefile
1169 cflags-$(CONFIG_X86_32) := -march=i386
1170 cflags-$(CONFIG_X86_64) := -mcmodel=small
1171 KBUILD_CFLAGS += $(cflags-y)
1179 cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
1180 -march=pentium2,-march=i686)
1182 # Disable unit-at-a-time mode ...
1183 KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
1193 Default value - see top level Makefile
1198 Note that target specification file generation (for ``--target``)
1199 is handled in ``scripts/generate_rust_target.rs``.
1202 Assembler options specific for built-in
1210 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
1216 $(CC) options specific for built-in
1224 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
1229 $(RUSTC) options specific for built-in
1237 $(KBUILD_RUSTFLAGS_MODULE) is used to add arch-specific options that
1244 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
1251 The linker script with full path. Assigned by the top-level Makefile.
1255 The module linker script with full path. Assigned by the top-level
1260 All object files for vmlinux. They are linked to vmlinux in the same
1261 order as listed in KBUILD_VMLINUX_OBJS.
1263 The objects listed in scripts/head-object-list.txt are exceptions;
1273 ------------------------------------
1283 ------------------------------------
1286 built before starting to descend down in the subdirectories.
1294 In this example, the file target maketools will be processed
1295 before descending down in the subdirectories.
1296 See also chapter XXX-TODO that describes how kbuild supports
1301 ---------------------------------------------
1305 corresponding arch-specific section for modules; the module-building
1306 machinery is all architecture-independent.
1309 core-y, libs-y, drivers-y
1311 $(libs-y) lists directories where a lib.a archive can be located.
1313 The rest list directories where a built-in.a object file can be
1316 Then the rest follows in this order:
1318 $(core-y), $(libs-y), $(drivers-y)
1321 and arch/$(SRCARCH)/Makefile only adds architecture-specific
1327 core-y += arch/sparc/
1329 libs-y += arch/sparc/prom/
1330 libs-y += arch/sparc/lib/
1332 drivers-$(CONFIG_PM) += arch/sparc/power/
1334 7.5 Architecture-specific boot images
1335 -------------------------------------
1338 it, wrap it in bootstrapping code, and copy the resulting files
1342 It is common to locate any additional processing in a boot/
1346 target specified in boot/. Therefore arch/$(SRCARCH)/Makefile shall
1347 call make manually to build a target in boot/.
1349 The recommended approach is to include shortcuts in
1361 make in a subdirectory.
1363 There are no rules for naming architecture-specific targets,
1371 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
1375 will be built. In the top level Makefile the first goal present
1378 In "make help", the default goal is highlighted with a '*'.
1387 When "make" is executed without arguments, bzImage will be built.
1390 ---------------------------------------------
1401 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
1402 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
1408 In this example, there are two possible targets, requiring different
1410 LDFLAGS_$@ syntax - one for each potential target.
1422 resulting in the target file being recompiled for no
1426 Copy binary. Uses OBJCOPYFLAGS usually specified in
1436 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
1442 in an init section in the image. Platform code *must* copy the
1443 blob to non-init memory prior to calling unflatten_device_tree().
1445 To use this command, simply add `*.dtb` into obj-y or targets, or make
1453 targets += $(dtb-y)
1454 DTC_FLAGS ?= -p 1024
1457 --------------------------------
1459 When the vmlinux image is built, the linker script
1462 located in the same directory.
1463 kbuild knows .lds files and includes a rule `*lds.S` -> `*lds`.
1468 extra-y := vmlinux.lds
1470 The assignment to extra-y is used to tell kbuild to build the
1477 KBUILD_CPPFLAGS : Set in top-level Makefile
1478 cppflags-y : May be set in the kbuild makefile
1479 CPPFLAGS_$(@F) : Target-specific flags.
1480 Note that the full filename is used in this
1483 The kbuild infrastructure for `*lds` files is used in several
1484 architecture-specific files.
1487 -------------------------
1489 The directory include/asm-generic contains the header files
1492 to list the file in the Kbuild file.
1493 See "8.2 generic-y" for further info on syntax etc.
1495 7.11 Post-link pass
1496 -------------------
1499 will be invoked for post-link objects (vmlinux and modules.ko)
1500 for architectures to run post-link passes on. Must also handle
1506 .tmp_vmlinux? targets to be called from link-vmlinux.sh.
1512 ------------------------------------
1515 Many headers can be exported as-is but other headers require a
1516 minimal pre-processing before they are ready for user-space.
1517 The pre-processing does:
1519 - drop kernel-specific annotations
1520 - drop include of compiler.h
1521 - drop all sections that are kernel internal (guarded by `ifdef __KERNEL__`)
1528 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
1531 8.1 no-export-headers
1532 ---------------------
1534 no-export-headers is essentially used by include/uapi/linux/Kbuild to
1538 8.2 generic-y
1539 -------------
1542 include/asm-generic then this is listed in the file
1548 generic-y += termios.h
1549 generic-y += rtc.h
1552 file is generated in the directory::
1558 of the set of exported headers in the directory::
1562 The generated wrapper will in both cases look like the following:
1566 #include <asm-generic/termios.h>
1568 8.3 generated-y
1569 ---------------
1571 If an architecture generates other header files alongside generic-y
1572 wrappers, generated-y specifies them.
1574 This prevents them being treated as stale asm-generic wrappers and
1580 generated-y += syscalls_32.h
1582 8.4 mandatory-y
1583 ---------------
1585 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild
1588 This works like optional generic-y. If a mandatory header is missing
1589 in arch/$(SRCARCH)/include/(uapi/)/asm, Kbuild will automatically
1590 generate a wrapper of the asm-generic one.
1603 three-part version number, such as "2", "4", and "0". These three
1606 $(EXTRAVERSION) defines an even tinier sublevel for pre-patches
1607 or additional patches. It is usually some non-numeric string
1608 such as "-pre4", and is often blank.
1611 $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable
1612 for constructing installation directory names or showing in
1627 This variable specifies the directory in arch/ to build.
1631 both 32-bit and 64-bit.
1633 For example, you can pass in ARCH=i386, ARCH=x86_64, or ARCH=x86.
1640 Use this for architecture-specific install targets.
1644 installation. This variable is not defined in the Makefile but
1645 may be passed in by the user if desired.
1655 default option --strip-debug will be used. Otherwise, the
1667 GNU Make supports elementary list-processing functions. The kernel
1672 immediate evaluation of the right-hand side and stores an actual string
1673 into the left-hand side. "=" is like a formula definition; it stores the
1674 right-hand side in an unevaluated form and then evaluates this form each
1675 time the left-hand side is used.
1683 - Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1684 - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1685 - Updates by Sam Ravnborg <sam@ravnborg.org>
1686 - Language QA by Jan Engelhardt <jengelh@gmx.de>
1691 - Describe how kbuild supports shipped files with _shipped.
1692 - Generating offset header files.
1693 - Add more variables to chapters 7 or 9?