Lines Matching +full:built +full:- +full:in

16 	kbuild Makefiles            exist in every subdirectory
29 architecture-specific information to the top Makefile.
34 any built-in or modular targets.
51 working on. In order to do this effectively, they need some overall
69 kbuild infrastructure. This chapter introduces the syntax used in the
80 ----------------
83 These lines define the files to be built, any special compilation
90 obj-y += foo.o
92 This tells kbuild that there is one object in that directory, named
93 foo.o. foo.o will be built from foo.c or foo.S.
95 If foo.o shall be built as a module, the variable obj-m is used.
100 obj-$(CONFIG_FOO) += foo.o
102 $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
106 Built-in object goals - obj-y
107 -----------------------------
110 in the $(obj-y) lists. These lists depend on the kernel
113 Kbuild compiles all the $(obj-y) files. It then calls
114 ``$(AR) rcSTP`` to merge these files into one built-in.a file.
116 linked into vmlinux by scripts/link-vmlinux.sh
118 The order of files in $(obj-y) is significant. Duplicates in
120 built-in.a and succeeding instances will be ignored.
123 (module_init() / __initcall) will be called during boot in the
124 order they appear. So keep in mind that changing the link
125 order may e.g. change the order in which your SCSI
133 obj-$(CONFIG_ISDN_I4L) += isdn.o
134 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
136 Loadable module goals - obj-m
137 -----------------------------
139 $(obj-m) specifies object files which are built as loadable
142 A module may be built from one source file or several source
143 files. In the case of one source file, the kbuild makefile
144 simply adds the file to $(obj-m).
149 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
151 Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to "m"
153 If a kernel module is built from several source files, you specify
154 that you want to build a module in the same way as above; however,
156 module from, so you have to tell it by setting a $(<module_name>-y)
162 obj-$(CONFIG_ISDN_I4L) += isdn.o
163 isdn-y := isdn_net_lib.o isdn_v110.o isdn_common.o
165 In this example, the module name will be isdn.o. Kbuild will
166 compile the objects listed in $(isdn-y) and then run
167 ``$(LD) -r`` on the list of these files to generate isdn.o.
169 Due to kbuild recognizing $(<module_name>-y) for composite objects,
176 obj-$(CONFIG_EXT2_FS) += ext2.o
177 ext2-y := balloc.o dir.o file.o ialloc.o inode.o ioctl.o \
179 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o \
182 In this example, xattr.o, xattr_user.o and xattr_trusted.o are only
189 parts and then link this into built-in.a, as you would expect.
191 Library file goals - lib-y
192 --------------------------
194 Objects listed with obj-* are used for modules, or
195 combined in a built-in.a for that specific directory.
197 be included in a library, lib.a.
198 All objects listed with lib-y are combined in a single
200 Objects that are listed in obj-y and additionally listed in
201 lib-y will not be included in the library, since they will
203 For consistency, objects listed in lib-m will be included in lib.a.
205 Note that the same kbuild makefile may list files to be built-in
207 may contain both a built-in.a and a lib.a file.
212 lib-y := delay.o
215 actually recognize that there is a lib.a being built, the directory
216 shall be listed in libs-y.
220 Use of lib-y is normally restricted to ``lib/`` and ``arch/*/lib``.
222 Descending down in directories
223 ------------------------------
225 A Makefile is only responsible for building objects in its own
226 directory. Files in subdirectories should be taken care of by
227 Makefiles in these subdirs. The build system will automatically
228 invoke make recursively in subdirectories, provided you let it know of
231 To do so, obj-y and obj-m are used.
232 ext2 lives in a separate directory, and the Makefile present in fs/
238 obj-$(CONFIG_EXT2_FS) += ext2/
240 If CONFIG_EXT2_FS is set to either "y" (built-in) or "m" (modular)
241 the corresponding obj- variable will be set, and kbuild will descend
242 down in the ext2 directory.
248 When Kbuild descends into the directory with "y", all built-in objects
249 from that directory are combined into the built-in.a, which will be
252 When Kbuild descends into the directory with "m", in contrast, nothing
253 from that directory will be linked into vmlinux. If the Makefile in
254 that directory specifies obj-y, those objects will be left orphan.
255 It is very likely a bug of the Makefile or of dependencies in Kconfig.
257 Kbuild also supports dedicated syntax, subdir-y and subdir-m, for
259 do not contain kernel-space objects at all. A typical usage is to let
265 subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins
266 subdir-$(CONFIG_MODVERSIONS) += genksyms
267 subdir-$(CONFIG_SECURITY_SELINUX) += selinux
269 Unlike obj-y/m, subdir-y/m does not need the trailing slash since this
276 Non-builtin vmlinux targets - extra-y
277 -------------------------------------
279 extra-y specifies targets which are needed for building vmlinux,
280 but not combined into built-in.a.
292 extra-y += vmlinux.lds
294 $(extra-y) should only contain targets needed for vmlinux.
296 Kbuild skips extra-y when vmlinux is apparently not a final goal.
299 If you intend to build targets unconditionally, always-y (explained
300 in the next section) is the correct syntax to use.
302 Always built goals - always-y
303 -----------------------------
305 always-y specifies targets which are literally always built when
311 offsets-file := include/generated/asm-offsets.h
312 always-y += $(offsets-file)
315 -----------------
317 ccflags-y, asflags-y and ldflags-y
318 These three flags apply only to the kbuild makefile in which they
322 ccflags-y specifies options for compiling with $(CC).
327 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
328 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
334 asflags-y specifies assembler options.
339 asflags-y := -ansi
341 ldflags-y specifies options for linking with $(LD).
346 ldflags-y += -T $(src)/decompress_$(arch-y).lds
348 subdir-ccflags-y, subdir-asflags-y
349 The two flags listed above are similar to ccflags-y and asflags-y.
350 The difference is that the subdir- variants have effect for the kbuild
352 Options specified using subdir-* are added to the commandline before
353 the options specified using the non-subdir variants.
357 subdir-ccflags-y := -Werror
359 ccflags-remove-y, asflags-remove-y
365 ccflags-remove-$(CONFIG_MCOUNT) += -pg
368 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
371 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
374 CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
375 can re-add compiler flags that were removed by ccflags-remove-y.
380 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
384 $(AFLAGS_$@) is a similar feature for source files in assembly
387 AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
388 can re-add assembler flags that were removed by asflags-remove-y.
393 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
394 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
395 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
398 -------------------
403 2) ``CONFIG_`` options used in all prerequisite files
404 3) Command-line used to compile target
407 be re-compiled.
410 ------------
415 Another example are the architecture-specific Makefiles which
419 Kbuild is not executing in the directory where the Makefile is
427 referring to files located in the src tree.
433 prerequisites not only in the object tree but also in the source tree).
439 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
464 echoing information to user in a rule is often a good practice
465 but when execution ``make -s`` one does not expect to see any output
468 text following $(kecho) to stdout except if ``make -s`` is used.
482 quiet_cmd_<command> - what shall be echoed
483 cmd_<command> - the command to execute
501 ------------------------
509 Kbuild achieves this by a kind of meta-programming.
511 if_changed is the macro used for this purpose, in the following form::
519 Any target that utilizes if_changed must be listed in $(targets),
521 always be built.
523 If the target is already listed in the recognized syntax such as
524 obj-y/m, lib-y/m, extra-y/m, always-y/m, hostprogs, userprogs, Kbuild
529 used in conjunction with custom rules as defined in `Custom Rules`_.
541 It stores the executed command in a corresponding .cmd
542 file and multiple calls would result in overwrites and
547 -----------------------
549 The kernel may be built with several different versions of
555 as-option
556 as-option is used to check if $(CC) -- when used to compile
557 assembler (``*.S``) files -- supports the given option. An optional
563 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
565 In the above example, cflags-y will be assigned the option
566 -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).
570 as-instr
571 as-instr checks if the assembler reports a specific instruction
573 C escapes are supported in the test instruction
574 Note: as-instr-option uses KBUILD_AFLAGS for assembler options
576 cc-option
577 cc-option is used to check if $(CC) supports a given option, and if
583 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
585 In the above example, cflags-y will be assigned the option
586 -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
587 The second argument to cc-option is optional, and if omitted,
588 cflags-y will be assigned no value if first option is not supported.
589 Note: cc-option uses KBUILD_CFLAGS for $(CC) options
591 cc-option-yn
592 cc-option-yn is used to check if $(CC) supports a given option
598 biarch := $(call cc-option-yn, -m32)
599 aflags-$(biarch) += -a32
600 cflags-$(biarch) += -m32
602 In the above example, $(biarch) is set to y if $(CC) supports the -m32
603 option. When $(biarch) equals "y", the expanded variables $(aflags-y)
604 and $(cflags-y) will be assigned the values -a32 and -m32,
607 Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
609 cc-disable-warning
610 cc-disable-warning checks if $(CC) supports a given warning and returns
612 because gcc 4.4 and later accept any unknown -Wno-* option and only
613 warn about it if there is another warning in the source file.
617 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
619 In the above example, -Wno-unused-but-set-variable will be added to
622 gcc-min-version
623 gcc-min-version tests if the value of $(CONFIG_GCC_VERSION) is greater than
628 cflags-$(call gcc-min-version, 70100) := -foo
630 In this example, cflags-y will be assigned the value -foo if $(CC) is gcc and
633 clang-min-version
634 clang-min-version tests if the value of $(CONFIG_CLANG_VERSION) is greater
639 cflags-$(call clang-min-version, 110000) := -foo
641 In this example, cflags-y will be assigned the value -foo if $(CC) is clang
644 cc-cross-prefix
645 cc-cross-prefix is used to check if there exists a $(CC) in path with
647 prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
650 Additional prefixes are separated by a single space in the
651 call of cc-cross-prefix.
654 to set CROSS_COMPILE to well-known values but may have several
666 CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-)
671 --------------------------
673 rustc-min-version
674 rustc-min-version tests if the value of $(CONFIG_RUSTC_VERSION) is greater
679 rustflags-$(call rustc-min-version, 108500) := -Cfoo
681 In this example, rustflags-y will be assigned the value -Cfoo if
685 -----------------------
687 ld-option
688 ld-option is used to check if $(LD) supports the supplied option.
689 ld-option takes two options as arguments.
697 LDFLAGS_vmlinux += $(call ld-option, -X)
700 -----------------
725 Two steps are required in order to use a host executable.
731 This can be done in two ways. Either add the dependency in a rule,
732 or utilise the variable ``always-y``.
733 Both possibilities are described in the following.
736 -------------------
738 In some cases there is a need to compile and run a program on the
742 built on the build host.
748 Kbuild assumes in the above example that bin2hex is made from a single
749 c-source file named bin2hex.c located in the same directory as
753 -----------------------
758 $(<executable>-objs) lists all objects used to link the final
765 lxdialog-objs := checklist.o lxdialog.o
768 files. In the above example, checklist.c is compiled to checklist.o
772 Note: The syntax <executable>-y is not permitted for host-programs.
775 ---------------------------
777 kbuild offers support for host programs written in C++. This was
785 qconf-cxxobjs := qconf.o
787 In the example above the executable is composed of the C++ file
788 qconf.cc - identified by $(qconf-cxxobjs).
797 qconf-cxxobjs := qconf.o
798 qconf-objs := check.o
801 ----------------------------
803 Kbuild offers support for host programs written in Rust. However,
805 it may only be used in scenarios where Rust is required to be
811 target-rust := y
814 located in the same directory as the ``Makefile``. The crate may
818 ----------------------------------------------
822 the options specified in $(KBUILD_HOSTCFLAGS).
825 in that Makefile, use the variable HOST_EXTRACFLAGS.
830 HOST_EXTRACFLAGS += -I/usr/include/ncurses
838 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
845 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
848 ``-L$(QTDIR)/lib``.
850 When host programs are actually built
851 -------------------------------------
853 Kbuild will only build host-programs when they are referenced
856 This is possible in two ways:
858 (1) List the prerequisite explicitly in a custom rule.
863 hostprogs := gen-devlist
864 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
865 ( cd $(obj); ./gen-devlist ) < $<
867 The target $(obj)/devlist.h will not be built before
868 $(obj)/gen-devlist is updated. Note that references to
869 the host programs in custom rules must be prefixed with $(obj).
871 (2) Use always-y
874 shall be built when a makefile is entered, the always-y
881 always-y := $(hostprogs)
885 hostprogs-always-y := lxdialog
887 This will tell kbuild to build lxdialog even if not referenced in
901 ------------------------
903 The following line tells kbuild that the program bpf-direct shall be
904 built for the target architecture.
908 userprogs := bpf-direct
910 Kbuild assumes in the above example that bpf-direct is made from a
911 single C source file named bpf-direct.c located in the same directory
915 ----------------------------
920 $(<executable>-objs) lists all objects used to link the final
926 userprogs := bpf-fancy
927 bpf-fancy-objs := bpf-fancy.o bpf-helper.o
930 files. In the above example, bpf-fancy.c is compiled to bpf-fancy.o
931 and bpf-helper.c is compiled to bpf-helper.o.
933 Finally, the two .o files are linked to the executable, bpf-fancy.
934 Note: The syntax <executable>-y is not permitted for userspace programs.
937 ---------------------------------------------------
941 the options specified in $(KBUILD_USERCFLAGS).
944 in that Makefile, use the variable userccflags.
949 userccflags += -I usr/include
956 bpf-helper-userccflags += -I user/include
963 bpfilter_umh-userldflags += -static
966 ``<executable>-userldlibs``. The ``userldlibs`` syntax specifies libraries
967 linked to all userspace programs created in the current Makefile.
969 When linking bpfilter_umh, it will be passed the extra option -static.
973 When userspace programs are actually built
974 ------------------------------------------
987 $(obj)/bpfilter_umh is built before $(obj)/bpfilter_umh_blob.o
989 (2) Use always-y
994 always-y := $(userprogs)
998 userprogs-always-y := binderfs_example
1006 ``make clean`` deletes most generated files in the obj tree where the kernel
1008 Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
1009 $(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
1014 Additional files or directories can be specified in kbuild makefiles by use of
1015 $(clean-files).
1020 clean-files := crc32table.h
1023 Kbuild will assume files to be in the same relative directory as the
1027 $(no-clean-files) variable.
1029 Usually kbuild descends down in subdirectories due to ``obj-* := dir/``,
1030 but in the architecture makefiles where the kbuild infrastructure
1036 subdir- := compressed
1038 The above assignment instructs kbuild to descend down in the
1041 Note 1: arch/$(SRCARCH)/Makefile cannot use ``subdir-``, because that file is
1042 included in the top level makefile. Instead, arch/$(SRCARCH)/Kbuild can use
1043 ``subdir-``.
1045 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
1052 before starting to descend down in the individual directories.
1065 2) Store kernel version in include/linux/version.h
1069 - Additional prerequisites are specified in arch/$(SRCARCH)/Makefile
1071 4) Recursively descend down in all directories listed in
1072 init-* core* drivers-* net-* libs-* and build all targets.
1074 - The values of the above variables are expanded in arch/$(SRCARCH)/Makefile.
1078 The very first objects linked are listed in scripts/head-object-list.txt.
1080 6) Finally, the architecture-specific part does any required post processing
1083 - This includes building boot records
1084 - Preparing initrd images and the like
1087 ----------------------------------------------------
1098 KBUILD_LDFLAGS := -m elf_s390
1100 Note: ldflags-y can be used to further customise
1101 the flags used. See `Non-builtin vmlinux targets - extra-y`_.
1114 LDFLAGS_vmlinux := -e stext
1120 the flags specified in OBJCOPYFLAGS will be used.
1128 OBJCOPYFLAGS := -O binary
1134 In this example, the binary $(obj)/image is a binary version of
1140 Default value - see top level Makefile.
1147 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
1152 Default value - see top level Makefile.
1161 cflags-$(CONFIG_X86_32) := -march=i386
1162 cflags-$(CONFIG_X86_64) := -mcmodel=small
1163 KBUILD_CFLAGS += $(cflags-y)
1171 cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
1172 -march=pentium2,-march=i686)
1174 # Disable unit-at-a-time mode ...
1175 KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
1185 Default value - see top level Makefile.
1191 Note that target specification file generation (for ``--target``)
1192 is handled in ``scripts/generate_rust_target.rs``.
1195 Assembler options specific for built-in
1203 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
1209 $(CC) options specific for built-in
1217 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
1223 $(RUSTC) options specific for built-in
1231 $(KBUILD_RUSTFLAGS_MODULE) is used to add arch-specific options that
1239 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
1245 The linker script with full path. Assigned by the top-level Makefile.
1248 All object files for vmlinux. They are linked to vmlinux in the same
1249 order as listed in KBUILD_VMLINUX_OBJS.
1251 The objects listed in scripts/head-object-list.txt are exceptions;
1260 --------------------------------
1269 --------------------------------
1272 built before starting to descend down in the subdirectories.
1281 In this example, the file target maketools will be processed
1282 before descending down in the subdirectories.
1284 See also chapter XXX-TODO that describes how kbuild supports
1288 -----------------------------------------
1292 corresponding arch-specific section for modules; the module-building
1293 machinery is all architecture-independent.
1295 core-y, libs-y, drivers-y
1296 $(libs-y) lists directories where a lib.a archive can be located.
1298 The rest list directories where a built-in.a object file can be
1301 Then the rest follows in this order:
1303 $(core-y), $(libs-y), $(drivers-y)
1306 and arch/$(SRCARCH)/Makefile only adds architecture-specific
1312 core-y += arch/sparc/
1314 libs-y += arch/sparc/prom/
1315 libs-y += arch/sparc/lib/
1317 drivers-$(CONFIG_PM) += arch/sparc/power/
1319 Architecture-specific boot images
1320 ---------------------------------
1323 it, wrap it in bootstrapping code, and copy the resulting files
1327 It is common to locate any additional processing in a boot/
1331 target specified in boot/. Therefore arch/$(SRCARCH)/Makefile shall
1332 call make manually to build a target in boot/.
1334 The recommended approach is to include shortcuts in
1346 make in a subdirectory.
1348 There are no rules for naming architecture-specific targets,
1356 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
1360 will be built. In the top level Makefile the first goal present
1364 In ``make help``, the default goal is highlighted with a ``*``.
1374 When ``make`` is executed without arguments, bzImage will be built.
1377 -----------------------------------------
1388 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
1389 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
1395 In this example, there are two possible targets, requiring different
1397 LDFLAGS_$@ syntax - one for each potential target.
1410 resulting in the target file being recompiled for no
1414 Copy binary. Uses OBJCOPYFLAGS usually specified in
1425 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
1431 in an init section in the image. Platform code *must* copy the
1432 blob to non-init memory prior to calling unflatten_device_tree().
1434 To use this command, simply add ``*.dtb`` into obj-y or targets, or make
1442 targets += $(dtb-y)
1443 DTC_FLAGS ?= -p 1024
1446 ----------------------------
1448 When the vmlinux image is built, the linker script
1452 located in the same directory.
1454 kbuild knows .lds files and includes a rule ``*lds.S`` -> ``*lds``.
1459 extra-y := vmlinux.lds
1461 The assignment to extra-y is used to tell kbuild to build the
1469 KBUILD_CPPFLAGS : Set in top-level Makefile
1470 cppflags-y : May be set in the kbuild makefile
1471 CPPFLAGS_$(@F) : Target-specific flags.
1472 Note that the full filename is used in this
1475 The kbuild infrastructure for ``*lds`` files is used in several
1476 architecture-specific files.
1479 --------------------
1481 The directory include/asm-generic contains the header files
1485 to list the file in the Kbuild file.
1487 See `generic-y`_ for further info on syntax etc.
1489 Post-link pass
1490 --------------
1493 will be invoked for post-link objects (vmlinux and modules.ko)
1494 for architectures to run post-link passes on. Must also handle
1500 .tmp_vmlinux? targets to be called from link-vmlinux.sh.
1509 Many headers can be exported as-is but other headers require a
1510 minimal pre-processing before they are ready for user-space.
1512 The pre-processing does:
1514 - drop kernel-specific annotations
1515 - drop include of compiler.h
1516 - drop all sections that are kernel internal (guarded by ``ifdef __KERNEL__``)
1523 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
1527 no-export-headers
1528 -----------------
1530 no-export-headers is essentially used by include/uapi/linux/Kbuild to
1534 generic-y
1535 ---------
1538 include/asm-generic then this is listed in the file
1544 generic-y += termios.h
1545 generic-y += rtc.h
1548 file is generated in the directory::
1554 of the set of exported headers in the directory::
1558 The generated wrapper will in both cases look like the following:
1562 #include <asm-generic/termios.h>
1564 generated-y
1565 -----------
1567 If an architecture generates other header files alongside generic-y
1568 wrappers, generated-y specifies them.
1570 This prevents them being treated as stale asm-generic wrappers and
1576 generated-y += syscalls_32.h
1578 mandatory-y
1579 -----------
1581 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild
1584 This works like optional generic-y. If a mandatory header is missing
1585 in arch/$(SRCARCH)/include/(uapi/)/asm, Kbuild will automatically
1586 generate a wrapper of the asm-generic one.
1599 three-part version number, such as "2", "4", and "0". These three
1602 $(EXTRAVERSION) defines an even tinier sublevel for pre-patches
1603 or additional patches. It is usually some non-numeric string
1604 such as "-pre4", and is often blank.
1607 $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable
1608 for constructing installation directory names or showing in
1623 This variable specifies the directory in arch/ to build.
1627 both 32-bit and 64-bit.
1629 For example, you can pass in ARCH=i386, ARCH=x86_64, or ARCH=x86.
1636 Use this for architecture-specific install targets.
1640 installation. This variable is not defined in the Makefile but
1641 may be passed in by the user if desired.
1651 default option --strip-debug will be used. Otherwise, the
1658 INSTALL_MOD_PATH, it isn't defined in the Makefile, but can be passed
1669 GNU Make supports elementary list-processing functions. The kernel
1674 immediate evaluation of the right-hand side and stores an actual string
1675 into the left-hand side. ``=`` is like a formula definition; it stores the
1676 right-hand side in an unevaluated form and then evaluates this form each
1677 time the left-hand side is used.
1685 - Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1686 - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1687 - Updates by Sam Ravnborg <sam@ravnborg.org>
1688 - Language QA by Jan Engelhardt <jengelh@gmx.de>
1693 - Generating offset header files.
1694 - Add more variables to chapters 7 or 9?