Lines Matching +full:in +full:- +full:built
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 Objects which export symbols
16 --- 3.5 Library file goals - lib-y
17 --- 3.6 Descending down in directories
18 --- 3.7 Compilation flags
19 --- 3.8 <deleted>
20 --- 3.9 Dependency tracking
21 --- 3.10 Special Rules
22 --- 3.11 $(CC) support functions
23 --- 3.12 $(LD) support functions
24 --- 3.13 Script Invocation
27 --- 4.1 Simple Host Program
28 --- 4.2 Composite Host Programs
29 --- 4.3 Using C++ for host programs
30 --- 4.4 Controlling compiler options for host programs
31 --- 4.5 When host programs are actually built
34 --- 5.1 Simple Userspace Program
35 --- 5.2 Composite Userspace Programs
36 --- 5.3 Controlling compiler options for userspace programs
37 --- 5.4 When userspace programs are actually built
42 --- 7.1 Set variables to tweak the build to the architecture
43 --- 7.2 Add prerequisites to archheaders
44 --- 7.3 Add prerequisites to archprepare
45 --- 7.4 List directories to visit when descending
46 --- 7.5 Architecture-specific boot images
47 --- 7.6 Building non-kbuild targets
48 --- 7.7 Commands useful for building a boot image
49 --- 7.8 Custom kbuild commands
50 --- 7.9 Preprocessing linker scripts
51 --- 7.10 Generic header files
52 --- 7.11 Post-link pass
55 --- 8.1 no-export-headers
56 --- 8.2 generic-y
57 --- 8.3 generated-y
58 --- 8.4 mandatory-y
86 architecture-specific information to the top Makefile.
91 any built-in or modular targets.
109 working on. In order to do this effectively, they need some overall
127 kbuild infrastructure. This chapter introduces the syntax used in the
137 --------------------
140 These lines define the files to be built, any special compilation
147 obj-y += foo.o
149 This tells kbuild that there is one object in that directory, named
150 foo.o. foo.o will be built from foo.c or foo.S.
152 If foo.o shall be built as a module, the variable obj-m is used.
157 obj-$(CONFIG_FOO) += foo.o
159 $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
163 3.2 Built-in object goals - obj-y
164 ---------------------------------
167 in the $(obj-y) lists. These lists depend on the kernel
170 Kbuild compiles all the $(obj-y) files. It then calls
171 "$(AR) rcSTP" to merge these files into one built-in.a file.
173 linked into vmlinux by scripts/link-vmlinux.sh
175 The order of files in $(obj-y) is significant. Duplicates in
177 built-in.a and succeeding instances will be ignored.
180 (module_init() / __initcall) will be called during boot in the
181 order they appear. So keep in mind that changing the link
182 order may e.g. change the order in which your SCSI
190 obj-$(CONFIG_ISDN_I4L) += isdn.o
191 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
193 3.3 Loadable module goals - obj-m
194 ---------------------------------
196 $(obj-m) specifies object files which are built as loadable
199 A module may be built from one source file or several source
200 files. In the case of one source file, the kbuild makefile
201 simply adds the file to $(obj-m).
206 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
208 Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to 'm'
210 If a kernel module is built from several source files, you specify
211 that you want to build a module in the same way as above; however,
213 module from, so you have to tell it by setting a $(<module_name>-y)
219 obj-$(CONFIG_ISDN_I4L) += isdn.o
220 isdn-y := isdn_net_lib.o isdn_v110.o isdn_common.o
222 In this example, the module name will be isdn.o. Kbuild will
223 compile the objects listed in $(isdn-y) and then run
224 "$(LD) -r" on the list of these files to generate isdn.o.
226 Due to kbuild recognizing $(<module_name>-y) for composite objects,
233 obj-$(CONFIG_EXT2_FS) += ext2.o
234 ext2-y := balloc.o dir.o file.o ialloc.o inode.o ioctl.o \
236 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o \
239 In this example, xattr.o, xattr_user.o and xattr_trusted.o are only
246 parts and then link this into built-in.a, as you would expect.
249 --------------------------------
251 No special notation is required in the makefiles for
254 3.5 Library file goals - lib-y
255 ------------------------------
257 Objects listed with obj-* are used for modules, or
258 combined in a built-in.a for that specific directory.
260 be included in a library, lib.a.
261 All objects listed with lib-y are combined in a single
263 Objects that are listed in obj-y and additionally listed in
264 lib-y will not be included in the library, since they will
266 For consistency, objects listed in lib-m will be included in lib.a.
268 Note that the same kbuild makefile may list files to be built-in
270 may contain both a built-in.a and a lib.a file.
275 lib-y := delay.o
278 actually recognize that there is a lib.a being built, the directory
279 shall be listed in libs-y.
283 Use of lib-y is normally restricted to `lib/` and `arch/*/lib`.
285 3.6 Descending down in directories
286 ----------------------------------
288 A Makefile is only responsible for building objects in its own
289 directory. Files in subdirectories should be taken care of by
290 Makefiles in these subdirs. The build system will automatically
291 invoke make recursively in subdirectories, provided you let it know of
294 To do so, obj-y and obj-m are used.
295 ext2 lives in a separate directory, and the Makefile present in fs/
301 obj-$(CONFIG_EXT2_FS) += ext2/
303 If CONFIG_EXT2_FS is set to either 'y' (built-in) or 'm' (modular)
304 the corresponding obj- variable will be set, and kbuild will descend
305 down in the ext2 directory.
311 When Kbuild descends into the directory with 'y', all built-in objects
312 from that directory are combined into the built-in.a, which will be
315 When Kbuild descends into the directory with 'm', in contrast, nothing
316 from that directory will be linked into vmlinux. If the Makefile in
317 that directory specifies obj-y, those objects will be left orphan.
318 It is very likely a bug of the Makefile or of dependencies in Kconfig.
325 ---------------------
327 ccflags-y, asflags-y and ldflags-y
328 These three flags apply only to the kbuild makefile in which they
335 ccflags-y specifies options for compiling with $(CC).
340 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
341 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
347 asflags-y specifies assembler options.
352 asflags-y := -ansi
354 ldflags-y specifies options for linking with $(LD).
359 ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
361 subdir-ccflags-y, subdir-asflags-y
362 The two flags listed above are similar to ccflags-y and asflags-y.
363 The difference is that the subdir- variants have effect for the kbuild
365 Options specified using subdir-* are added to the commandline before
366 the options specified using the non-subdir variants.
370 subdir-ccflags-y := -Werror
372 ccflags-remove-y, asflags-remove-y
378 ccflags-remove-$(CONFIG_MCOUNT) += -pg
381 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
384 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
387 CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
388 can re-add compiler flags that were removed by ccflags-remove-y.
393 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
394 CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ \
395 -DGDTH_STATISTICS
399 $(AFLAGS_$@) is a similar feature for source files in assembly
402 AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
403 can re-add assembler flags that were removed by asflags-remove-y.
408 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
409 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
410 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
414 -----------------------
419 2) `CONFIG_` options used in all prerequisite files
420 3) Command-line used to compile target
423 be re-compiled.
426 ------------------
431 Another example are the architecture-specific Makefiles which
435 Kbuild is not executing in the directory where the Makefile is
444 referring to files located in the src tree.
455 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
466 echoing information to user in a rule is often a good practice
467 but when execution "make -s" one does not expect to see any output
470 text following $(kecho) to stdout except if "make -s" is used.
481 ----------------------------
483 The kernel may be built with several different versions of
489 as-option
490 as-option is used to check if $(CC) -- when used to compile
491 assembler (`*.S`) files -- supports the given option. An optional
497 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
499 In the above example, cflags-y will be assigned the option
500 -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).
504 as-instr
505 as-instr checks if the assembler reports a specific instruction
507 C escapes are supported in the test instruction
508 Note: as-instr-option uses KBUILD_AFLAGS for assembler options
510 cc-option
511 cc-option is used to check if $(CC) supports a given option, and if
517 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
519 In the above example, cflags-y will be assigned the option
520 -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
521 The second argument to cc-option is optional, and if omitted,
522 cflags-y will be assigned no value if first option is not supported.
523 Note: cc-option uses KBUILD_CFLAGS for $(CC) options
525 cc-option-yn
526 cc-option-yn is used to check if gcc supports a given option
532 biarch := $(call cc-option-yn, -m32)
533 aflags-$(biarch) += -a32
534 cflags-$(biarch) += -m32
536 In the above example, $(biarch) is set to y if $(CC) supports the -m32
537 option. When $(biarch) equals 'y', the expanded variables $(aflags-y)
538 and $(cflags-y) will be assigned the values -a32 and -m32,
540 Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
542 cc-disable-warning
543 cc-disable-warning checks if gcc supports a given warning and returns
545 because gcc 4.4 and later accept any unknown -Wno-* option and only
546 warn about it if there is another warning in the source file.
550 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
552 In the above example, -Wno-unused-but-set-variable will be added to
555 cc-ifversion
556 cc-ifversion tests the version of $(CC) and equals the fourth parameter
563 ccflags-y := $(call cc-ifversion, -lt, 0402, -O1)
565 In this example, ccflags-y will be assigned the value -O1 if the
567 cc-ifversion takes all the shell operators:
568 -eq, -ne, -lt, -le, -gt, and -ge
569 The third parameter may be a text as in this example, but it may also
572 cc-cross-prefix
573 cc-cross-prefix is used to check if there exists a $(CC) in path with
575 prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
577 Additional prefixes are separated by a single space in the
578 call of cc-cross-prefix.
580 to set CROSS_COMPILE to well-known values but may have several
591 CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-)
596 ----------------------------
598 ld-option
599 ld-option is used to check if $(LD) supports the supplied option.
600 ld-option takes two options as arguments.
607 LDFLAGS_vmlinux += $(call ld-option, -X)
610 ----------------------
634 Two steps are required in order to use a host executable.
640 This can be done in two ways. Either add the dependency in a rule,
641 or utilise the variable "always-y".
642 Both possibilities are described in the following.
645 -----------------------
647 In some cases there is a need to compile and run a program on the
650 built on the build host.
656 Kbuild assumes in the above example that bin2hex is made from a single
657 c-source file named bin2hex.c located in the same directory as
661 ---------------------------
666 $(<executable>-objs) lists all objects used to link the final
673 lxdialog-objs := checklist.o lxdialog.o
676 files. In the above example, checklist.c is compiled to checklist.o
680 Note: The syntax <executable>-y is not permitted for host-programs.
683 -------------------------------
685 kbuild offers support for host programs written in C++. This was
693 qconf-cxxobjs := qconf.o
695 In the example above the executable is composed of the C++ file
696 qconf.cc - identified by $(qconf-cxxobjs).
705 qconf-cxxobjs := qconf.o
706 qconf-objs := check.o
709 --------------------------------------------------
713 the options specified in $(KBUILD_HOSTCFLAGS).
715 in that Makefile, use the variable HOST_EXTRACFLAGS.
720 HOST_EXTRACFLAGS += -I/usr/include/ncurses
728 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
735 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
738 "-L$(QTDIR)/lib".
740 4.5 When host programs are actually built
741 -----------------------------------------
743 Kbuild will only build host-programs when they are referenced
745 This is possible in two ways:
747 (1) List the prerequisite explicitly in a special rule.
752 hostprogs := gen-devlist
753 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
754 ( cd $(obj); ./gen-devlist ) < $<
756 The target $(obj)/devlist.h will not be built before
757 $(obj)/gen-devlist is updated. Note that references to
758 the host programs in special rules must be prefixed with $(obj).
760 (2) Use always-y
763 shall be built when a makefile is entered, the always-y
770 always-y := $(hostprogs)
774 hostprogs-always-y := lxdialog
776 This will tell kbuild to build lxdialog even if not referenced in
790 ----------------------------
792 The following line tells kbuild that the program bpf-direct shall be
793 built for the target architecture.
797 userprogs := bpf-direct
799 Kbuild assumes in the above example that bpf-direct is made from a
800 single C source file named bpf-direct.c located in the same directory
804 --------------------------------
809 $(<executable>-objs) lists all objects used to link the final
815 userprogs := bpf-fancy
816 bpf-fancy-objs := bpf-fancy.o bpf-helper.o
819 files. In the above example, bpf-fancy.c is compiled to bpf-fancy.o
820 and bpf-helper.c is compiled to bpf-helper.o.
822 Finally, the two .o files are linked to the executable, bpf-fancy.
823 Note: The syntax <executable>-y is not permitted for userspace programs.
826 -------------------------------------------------------
830 the options specified in $(KBUILD_USERCFLAGS).
832 in that Makefile, use the variable userccflags.
837 userccflags += -I usr/include
844 bpf-helper-userccflags += -I user/include
851 bpfilter_umh-userldflags += -static
853 When linking bpfilter_umh, it will be passed the extra option -static.
855 5.4 When userspace programs are actually built
856 ----------------------------------------------
869 $(obj)/bpfilter_umh is built before $(obj)/bpfilter_umh_blob.o
871 (2) Use always-y
876 always-y := $(userprogs)
880 userprogs-always-y := binderfs_example
888 "make clean" deletes most generated files in the obj tree where the kernel
890 Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
891 $(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
896 Additional files or directories can be specified in kbuild makefiles by use of
897 $(clean-files).
902 clean-files := crc32table.h
905 Kbuild will assume files to be in the same relative directory as the
909 $(no-clean-files) variable.
911 Usually kbuild descends down in subdirectories due to "obj-* := dir/",
912 but in the architecture makefiles where the kbuild infrastructure
918 subdir- := compressed
920 The above assignment instructs kbuild to descend down in the
923 To support the clean infrastructure in the Makefiles that build the
932 When "make clean" is executed, make will descend down in arch/x86/boot,
933 and clean as usual. The Makefile located in arch/x86/boot/ may use
934 the subdir- trick to descend further down.
936 Note 1: arch/$(ARCH)/Makefile cannot use "subdir-", because that file is
937 included in the top level makefile, and the kbuild infrastructure
940 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
947 before starting to descend down in the individual directories.
957 2) Store kernel version in include/linux/version.h
959 - Additional prerequisites are specified in arch/$(ARCH)/Makefile
960 4) Recursively descend down in all directories listed in
961 init-* core* drivers-* net-* libs-* and build all targets.
962 - The values of the above variables are expanded in arch/$(ARCH)/Makefile.
965 The very first objects linked are listed in head-y, assigned by
967 6) Finally, the architecture-specific part does any required post processing
969 - This includes building boot records
970 - Preparing initrd images and the like
974 --------------------------------------------------------
985 KBUILD_LDFLAGS := -m elf_s390
987 Note: ldflags-y can be used to further customise
1000 LDFLAGS_vmlinux := -e stext
1006 the flags specified in OBJCOPYFLAGS will be used.
1013 OBJCOPYFLAGS := -O binary
1019 In this example, the binary $(obj)/image is a binary version of
1025 Default value - see top level Makefile
1031 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
1036 Default value - see top level Makefile
1044 cflags-$(CONFIG_X86_32) := -march=i386
1045 cflags-$(CONFIG_X86_64) := -mcmodel=small
1046 KBUILD_CFLAGS += $(cflags-y)
1054 cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
1055 -march=pentium2,-march=i686)
1057 # Disable unit-at-a-time mode ...
1058 KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
1066 Assembler options specific for built-in
1074 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
1080 $(CC) options specific for built-in
1088 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
1095 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
1102 The linker script with full path. Assigned by the top-level Makefile.
1106 The module linker script with full path. Assigned by the top-level
1111 All object files for vmlinux. They are linked to vmlinux in the same
1112 order as listed in KBUILD_VMLINUX_OBJS.
1121 ------------------------------------
1131 ------------------------------------
1134 built before starting to descend down in the subdirectories.
1142 In this example, the file target maketools will be processed
1143 before descending down in the subdirectories.
1144 See also chapter XXX-TODO that describes how kbuild supports
1149 ---------------------------------------------
1153 corresponding arch-specific section for modules; the module-building
1154 machinery is all architecture-independent.
1157 head-y, init-y, core-y, libs-y, drivers-y, net-y
1158 $(head-y) lists objects to be linked first in vmlinux.
1160 $(libs-y) lists directories where a lib.a archive can be located.
1162 The rest list directories where a built-in.a object file can be
1165 $(init-y) objects will be located after $(head-y).
1167 Then the rest follows in this order:
1169 $(core-y), $(libs-y), $(drivers-y) and $(net-y).
1172 and arch/$(ARCH)/Makefile only adds architecture-specific
1178 core-y += arch/sparc64/kernel/
1179 libs-y += arch/sparc64/prom/ arch/sparc64/lib/
1180 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/
1183 7.5 Architecture-specific boot images
1184 -------------------------------------
1187 it, wrap it in bootstrapping code, and copy the resulting files
1191 It is common to locate any additional processing in a boot/
1195 target specified in boot/. Therefore arch/$(ARCH)/Makefile shall
1196 call make manually to build a target in boot/.
1198 The recommended approach is to include shortcuts in
1210 make in a subdirectory.
1212 There are no rules for naming architecture-specific targets,
1220 echo '* bzImage - Image (arch/$(ARCH)/boot/bzImage)'
1224 will be built. In the top level Makefile the first goal present
1227 In "make help", the default goal is highlighted with a '*'.
1236 When "make" is executed without arguments, bzImage will be built.
1238 7.6 Building non-kbuild targets
1239 -------------------------------
1241 extra-y
1242 extra-y specifies additional targets created in the current
1243 directory, in addition to any targets specified by `obj-*`.
1245 Listing all targets in extra-y is required for two purposes:
1247 1) Enable kbuild to check changes in command lines
1249 - When $(call if_changed,xxx) is used
1256 extra-y := head.o init_task.o
1258 In this example, extra-y is used to list object files that
1259 shall be built, but shall not be linked as part of built-in.a.
1262 ---------------------------------------------
1279 Any target that utilises if_changed must be listed in $(targets),
1281 always be built.
1283 if_changed may be used in conjunction with custom commands as
1284 defined in 7.8 "Custom kbuild commands".
1297 It stores the executed command in a corresponding .cmd
1299 file and multiple calls would result in overwrites and
1309 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
1310 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
1316 In this example, there are two possible targets, requiring different
1318 LDFLAGS_$@ syntax - one for each potential target.
1330 resulting in the target file being recompiled for no
1334 Copy binary. Uses OBJCOPYFLAGS usually specified in
1344 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
1350 in an init section in the image. Platform code *must* copy the
1351 blob to non-init memory prior to calling unflatten_device_tree().
1353 To use this command, simply add `*.dtb` into obj-y or targets, or make
1361 targets += $(dtb-y)
1362 DTC_FLAGS ?= -p 1024
1365 --------------------------
1372 quiet_cmd_<command> - what shall be echoed
1373 cmd_<command> - the command to execute
1395 --------------------------------
1397 When the vmlinux image is built, the linker script
1400 located in the same directory.
1401 kbuild knows .lds files and includes a rule `*lds.S` -> `*lds`.
1406 extra-y := vmlinux.lds
1409 export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
1411 The assignment to extra-y is used to tell kbuild to build the
1418 KBUILD_CPPFLAGS : Set in top-level Makefile
1419 cppflags-y : May be set in the kbuild makefile
1420 CPPFLAGS_$(@F) : Target-specific flags.
1421 Note that the full filename is used in this
1424 The kbuild infrastructure for `*lds` files is used in several
1425 architecture-specific files.
1428 -------------------------
1430 The directory include/asm-generic contains the header files
1433 to list the file in the Kbuild file.
1434 See "8.2 generic-y" for further info on syntax etc.
1436 7.11 Post-link pass
1437 -------------------
1440 will be invoked for post-link objects (vmlinux and modules.ko)
1441 for architectures to run post-link passes on. Must also handle
1447 .tmp_vmlinux? targets to be called from link-vmlinux.sh.
1453 ------------------------------------
1456 Many headers can be exported as-is but other headers require a
1457 minimal pre-processing before they are ready for user-space.
1458 The pre-processing does:
1460 - drop kernel-specific annotations
1461 - drop include of compiler.h
1462 - drop all sections that are kernel internal (guarded by `ifdef __KERNEL__`)
1469 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
1472 8.1 no-export-headers
1473 ---------------------
1475 no-export-headers is essentially used by include/uapi/linux/Kbuild to
1479 8.2 generic-y
1480 -------------
1483 include/asm-generic then this is listed in the file
1489 generic-y += termios.h
1490 generic-y += rtc.h
1493 file is generated in the directory::
1499 of the set of exported headers in the directory::
1503 The generated wrapper will in both cases look like the following:
1507 #include <asm-generic/termios.h>
1509 8.3 generated-y
1510 ---------------
1512 If an architecture generates other header files alongside generic-y
1513 wrappers, generated-y specifies them.
1515 This prevents them being treated as stale asm-generic wrappers and
1521 generated-y += syscalls_32.h
1523 8.4 mandatory-y
1524 ---------------
1526 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild
1529 This works like optional generic-y. If a mandatory header is missing
1530 in arch/$(ARCH)/include/(uapi/)/asm, Kbuild will automatically generate
1531 a wrapper of the asm-generic one.
1544 three-part version number, such as "2", "4", and "0". These three
1547 $(EXTRAVERSION) defines an even tinier sublevel for pre-patches
1548 or additional patches. It is usually some non-numeric string
1549 such as "-pre4", and is often blank.
1552 $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable
1553 for constructing installation directory names or showing in
1571 Use this for architecture-specific install targets.
1575 installation. This variable is not defined in the Makefile but
1576 may be passed in by the user if desired.
1586 default option --strip-debug will be used. Otherwise, the
1598 GNU Make supports elementary list-processing functions. The kernel
1603 immediate evaluation of the right-hand side and stores an actual string
1604 into the left-hand side. "=" is like a formula definition; it stores the
1605 right-hand side in an unevaluated form and then evaluates this form each
1606 time the left-hand side is used.
1614 - Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1615 - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1616 - Updates by Sam Ravnborg <sam@ravnborg.org>
1617 - Language QA by Jan Engelhardt <jengelh@gmx.de>
1622 - Describe how kbuild supports shipped files with _shipped.
1623 - Generating offset header files.
1624 - Add more variables to chapters 7 or 9?