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 is now deprecated because this is equivalent to:
296 always-$(KBUILD_BUILTIN) += vmlinux.lds
298 $(extra-y) should only contain targets needed for vmlinux.
300 Kbuild skips extra-y when vmlinux is apparently not a final goal.
303 If you intend to build targets unconditionally, always-y (explained
304 in the next section) is the correct syntax to use.
306 Always built goals - always-y
307 -----------------------------
309 always-y specifies targets which are literally always built when
315 offsets-file := include/generated/asm-offsets.h
316 always-y += $(offsets-file)
319 -----------------
321 ccflags-y, asflags-y and ldflags-y
322 These three flags apply only to the kbuild makefile in which they
326 ccflags-y specifies options for compiling with $(CC).
331 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
332 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
338 asflags-y specifies assembler options.
343 asflags-y := -ansi
345 ldflags-y specifies options for linking with $(LD).
350 ldflags-y += -T $(src)/decompress_$(arch-y).lds
352 subdir-ccflags-y, subdir-asflags-y
353 The two flags listed above are similar to ccflags-y and asflags-y.
354 The difference is that the subdir- variants have effect for the kbuild
356 Options specified using subdir-* are added to the commandline before
357 the options specified using the non-subdir variants.
361 subdir-ccflags-y := -Werror
363 ccflags-remove-y, asflags-remove-y
369 ccflags-remove-$(CONFIG_MCOUNT) += -pg
372 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
375 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
378 CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
379 can re-add compiler flags that were removed by ccflags-remove-y.
384 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
388 $(AFLAGS_$@) is a similar feature for source files in assembly
391 AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
392 can re-add assembler flags that were removed by asflags-remove-y.
397 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
398 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
399 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
402 -------------------
407 2) ``CONFIG_`` options used in all prerequisite files
408 3) Command-line used to compile target
411 be re-compiled.
414 ------------
419 Another example are the architecture-specific Makefiles which
423 Kbuild is not executing in the directory where the Makefile is
431 referring to files located in the src tree.
437 prerequisites not only in the object tree but also in the source tree).
443 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
468 echoing information to user in a rule is often a good practice
469 but when execution ``make -s`` one does not expect to see any output
472 text following $(kecho) to stdout except if ``make -s`` is used.
486 quiet_cmd_<command> - what shall be echoed
487 cmd_<command> - the command to execute
505 ------------------------
513 Kbuild achieves this by a kind of meta-programming.
515 if_changed is the macro used for this purpose, in the following form::
523 Any target that utilizes if_changed must be listed in $(targets),
525 always be built.
527 If the target is already listed in the recognized syntax such as
528 obj-y/m, lib-y/m, extra-y/m, always-y/m, hostprogs, userprogs, Kbuild
533 used in conjunction with custom rules as defined in `Custom Rules`_.
545 It stores the executed command in a corresponding .cmd
546 file and multiple calls would result in overwrites and
551 -----------------------
553 The kernel may be built with several different versions of
559 as-option
560 as-option is used to check if $(CC) -- when used to compile
561 assembler (``*.S``) files -- supports the given option. An optional
567 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
569 In the above example, cflags-y will be assigned the option
570 -Wa$(comma)-isa=$(isa-y) if it is supported by $(CC).
574 as-instr
575 as-instr checks if the assembler reports a specific instruction
577 C escapes are supported in the test instruction
578 Note: as-instr-option uses KBUILD_AFLAGS for assembler options
580 cc-option
581 cc-option is used to check if $(CC) supports a given option, and if
587 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
589 In the above example, cflags-y will be assigned the option
590 -march=pentium-mmx if supported by $(CC), otherwise -march=i586.
591 The second argument to cc-option is optional, and if omitted,
592 cflags-y will be assigned no value if first option is not supported.
593 Note: cc-option uses KBUILD_CFLAGS for $(CC) options
595 cc-option-yn
596 cc-option-yn is used to check if $(CC) supports a given option
602 biarch := $(call cc-option-yn, -m32)
603 aflags-$(biarch) += -a32
604 cflags-$(biarch) += -m32
606 In the above example, $(biarch) is set to y if $(CC) supports the -m32
607 option. When $(biarch) equals "y", the expanded variables $(aflags-y)
608 and $(cflags-y) will be assigned the values -a32 and -m32,
611 Note: cc-option-yn uses KBUILD_CFLAGS for $(CC) options
613 cc-disable-warning
614 cc-disable-warning checks if $(CC) supports a given warning and returns
616 because gcc 4.4 and later accept any unknown -Wno-* option and only
617 warn about it if there is another warning in the source file.
621 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
623 In the above example, -Wno-unused-but-set-variable will be added to
626 gcc-min-version
627 gcc-min-version tests if the value of $(CONFIG_GCC_VERSION) is greater than
632 cflags-$(call gcc-min-version, 110100) := -foo
634 In this example, cflags-y will be assigned the value -foo if $(CC) is gcc and
637 clang-min-version
638 clang-min-version tests if the value of $(CONFIG_CLANG_VERSION) is greater
643 cflags-$(call clang-min-version, 110000) := -foo
645 In this example, cflags-y will be assigned the value -foo if $(CC) is clang
648 cc-cross-prefix
649 cc-cross-prefix is used to check if there exists a $(CC) in path with
651 prefix$(CC) in the PATH is returned - and if no prefix$(CC) is found
654 Additional prefixes are separated by a single space in the
655 call of cc-cross-prefix.
658 to set CROSS_COMPILE to well-known values but may have several
670 CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu-)
675 --------------------------
677 rustc-min-version
678 rustc-min-version tests if the value of $(CONFIG_RUSTC_VERSION) is greater
683 rustflags-$(call rustc-min-version, 108500) := -Cfoo
685 In this example, rustflags-y will be assigned the value -Cfoo if
689 -----------------------
691 ld-option
692 ld-option is used to check if $(LD) supports the supplied option.
693 ld-option takes two options as arguments.
701 LDFLAGS_vmlinux += $(call ld-option, -X)
704 -----------------
729 Two steps are required in order to use a host executable.
735 This can be done in two ways. Either add the dependency in a rule,
736 or utilise the variable ``always-y``.
737 Both possibilities are described in the following.
740 -------------------
742 In some cases there is a need to compile and run a program on the
746 built on the build host.
752 Kbuild assumes in the above example that bin2hex is made from a single
753 c-source file named bin2hex.c located in the same directory as
757 -----------------------
762 $(<executable>-objs) lists all objects used to link the final
769 lxdialog-objs := checklist.o lxdialog.o
772 files. In the above example, checklist.c is compiled to checklist.o
776 Note: The syntax <executable>-y is not permitted for host-programs.
779 ---------------------------
781 kbuild offers support for host programs written in C++. This was
789 qconf-cxxobjs := qconf.o
791 In the example above the executable is composed of the C++ file
792 qconf.cc - identified by $(qconf-cxxobjs).
801 qconf-cxxobjs := qconf.o
802 qconf-objs := check.o
805 ----------------------------
807 Kbuild offers support for host programs written in Rust. However,
809 it may only be used in scenarios where Rust is required to be
815 target-rust := y
818 located in the same directory as the ``Makefile``. The crate may
822 ----------------------------------------------
826 the options specified in $(KBUILD_HOSTCFLAGS).
829 in that Makefile, use the variable HOST_EXTRACFLAGS.
834 HOST_EXTRACFLAGS += -I/usr/include/ncurses
842 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
849 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
852 ``-L$(QTDIR)/lib``.
854 When host programs are actually built
855 -------------------------------------
857 Kbuild will only build host-programs when they are referenced
860 This is possible in two ways:
862 (1) List the prerequisite explicitly in a custom rule.
867 hostprogs := gen-devlist
868 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
869 ( cd $(obj); ./gen-devlist ) < $<
871 The target $(obj)/devlist.h will not be built before
872 $(obj)/gen-devlist is updated. Note that references to
873 the host programs in custom rules must be prefixed with $(obj).
875 (2) Use always-y
878 shall be built when a makefile is entered, the always-y
885 always-y := $(hostprogs)
889 hostprogs-always-y := lxdialog
891 This will tell kbuild to build lxdialog even if not referenced in
905 ------------------------
907 The following line tells kbuild that the program bpf-direct shall be
908 built for the target architecture.
912 userprogs := bpf-direct
914 Kbuild assumes in the above example that bpf-direct is made from a
915 single C source file named bpf-direct.c located in the same directory
919 ----------------------------
924 $(<executable>-objs) lists all objects used to link the final
930 userprogs := bpf-fancy
931 bpf-fancy-objs := bpf-fancy.o bpf-helper.o
934 files. In the above example, bpf-fancy.c is compiled to bpf-fancy.o
935 and bpf-helper.c is compiled to bpf-helper.o.
937 Finally, the two .o files are linked to the executable, bpf-fancy.
938 Note: The syntax <executable>-y is not permitted for userspace programs.
941 ---------------------------------------------------
945 the options specified in $(KBUILD_USERCFLAGS).
948 in that Makefile, use the variable userccflags.
953 userccflags += -I usr/include
960 bpf-helper-userccflags += -I user/include
967 bpfilter_umh-userldflags += -static
970 ``<executable>-userldlibs``. The ``userldlibs`` syntax specifies libraries
971 linked to all userspace programs created in the current Makefile.
973 When linking bpfilter_umh, it will be passed the extra option -static.
977 When userspace programs are actually built
978 ------------------------------------------
991 $(obj)/bpfilter_umh is built before $(obj)/bpfilter_umh_blob.o
993 (2) Use always-y
998 always-y := $(userprogs)
1002 userprogs-always-y := binderfs_example
1010 ``make clean`` deletes most generated files in the obj tree where the kernel
1012 Kbuild knows targets listed in $(hostprogs), $(always-y), $(always-m),
1013 $(always-), $(extra-y), $(extra-) and $(targets). They are all deleted
1018 Additional files or directories can be specified in kbuild makefiles by use of
1019 $(clean-files).
1024 clean-files := crc32table.h
1027 Kbuild will assume files to be in the same relative directory as the
1031 $(no-clean-files) variable.
1033 Usually kbuild descends down in subdirectories due to ``obj-* := dir/``,
1034 but in the architecture makefiles where the kbuild infrastructure
1040 subdir- := compressed
1042 The above assignment instructs kbuild to descend down in the
1045 Note 1: arch/$(SRCARCH)/Makefile cannot use ``subdir-``, because that file is
1046 included in the top level makefile. Instead, arch/$(SRCARCH)/Kbuild can use
1047 ``subdir-``.
1049 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
1056 before starting to descend down in the individual directories.
1069 2) Store kernel version in include/linux/version.h
1073 - Additional prerequisites are specified in arch/$(SRCARCH)/Makefile
1075 4) Recursively descend down in all directories listed in
1076 init-* core* drivers-* net-* libs-* and build all targets.
1078 - The values of the above variables are expanded in arch/$(SRCARCH)/Makefile.
1082 The very first objects linked are listed in scripts/head-object-list.txt.
1084 6) Finally, the architecture-specific part does any required post processing
1087 - This includes building boot records
1088 - Preparing initrd images and the like
1091 ----------------------------------------------------
1102 KBUILD_LDFLAGS := -m elf_s390
1104 Note: ldflags-y can be used to further customise
1105 the flags used. See `Non-builtin vmlinux targets - extra-y`_.
1118 LDFLAGS_vmlinux := -e stext
1124 the flags specified in OBJCOPYFLAGS will be used.
1132 OBJCOPYFLAGS := -O binary
1138 In this example, the binary $(obj)/image is a binary version of
1144 Default value - see top level Makefile.
1151 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
1156 Default value - see top level Makefile.
1165 cflags-$(CONFIG_X86_32) := -march=i386
1166 cflags-$(CONFIG_X86_64) := -mcmodel=small
1167 KBUILD_CFLAGS += $(cflags-y)
1175 cflags-$(CONFIG_MPENTIUMII) += $(call cc-option,\
1176 -march=pentium2,-march=i686)
1178 # Disable unit-at-a-time mode ...
1179 KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time)
1189 Default value - see top level Makefile.
1195 Note that target specification file generation (for ``--target``)
1196 is handled in ``scripts/generate_rust_target.rs``.
1199 Assembler options specific for built-in
1207 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
1213 $(CC) options specific for built-in
1221 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
1227 $(RUSTC) options specific for built-in
1235 $(KBUILD_RUSTFLAGS_MODULE) is used to add arch-specific options that
1243 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
1249 The linker script with full path. Assigned by the top-level Makefile.
1252 All object files for vmlinux. They are linked to vmlinux in the same
1253 order as listed in KBUILD_VMLINUX_OBJS.
1255 The objects listed in scripts/head-object-list.txt are exceptions;
1264 --------------------------------
1273 --------------------------------
1276 built before starting to descend down in the subdirectories.
1285 In this example, the file target maketools will be processed
1286 before descending down in the subdirectories.
1288 See also chapter XXX-TODO that describes how kbuild supports
1292 -----------------------------------------
1296 corresponding arch-specific section for modules; the module-building
1297 machinery is all architecture-independent.
1299 core-y, libs-y, drivers-y
1300 $(libs-y) lists directories where a lib.a archive can be located.
1302 The rest list directories where a built-in.a object file can be
1305 Then the rest follows in this order:
1307 $(core-y), $(libs-y), $(drivers-y)
1310 and arch/$(SRCARCH)/Makefile only adds architecture-specific
1316 core-y += arch/sparc/
1318 libs-y += arch/sparc/prom/
1319 libs-y += arch/sparc/lib/
1321 drivers-$(CONFIG_PM) += arch/sparc/power/
1323 Architecture-specific boot images
1324 ---------------------------------
1327 it, wrap it in bootstrapping code, and copy the resulting files
1331 It is common to locate any additional processing in a boot/
1335 target specified in boot/. Therefore arch/$(SRCARCH)/Makefile shall
1336 call make manually to build a target in boot/.
1338 The recommended approach is to include shortcuts in
1350 make in a subdirectory.
1352 There are no rules for naming architecture-specific targets,
1360 echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
1364 will be built. In the top level Makefile the first goal present
1368 In ``make help``, the default goal is highlighted with a ``*``.
1378 When ``make`` is executed without arguments, bzImage will be built.
1381 -----------------------------------------
1392 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
1393 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
1399 In this example, there are two possible targets, requiring different
1401 LDFLAGS_$@ syntax - one for each potential target.
1414 resulting in the target file being recompiled for no
1418 Copy binary. Uses OBJCOPYFLAGS usually specified in
1429 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
1435 in an init section in the image. Platform code *must* copy the
1436 blob to non-init memory prior to calling unflatten_device_tree().
1438 To use this command, simply add ``*.dtb`` into obj-y or targets, or make
1446 targets += $(dtb-y)
1447 DTC_FLAGS ?= -p 1024
1450 ----------------------------
1452 When the vmlinux image is built, the linker script
1456 located in the same directory.
1458 kbuild knows .lds files and includes a rule ``*lds.S`` -> ``*lds``.
1463 extra-y := vmlinux.lds
1465 The assignment to extra-y is used to tell kbuild to build the
1473 KBUILD_CPPFLAGS : Set in top-level Makefile
1474 cppflags-y : May be set in the kbuild makefile
1475 CPPFLAGS_$(@F) : Target-specific flags.
1476 Note that the full filename is used in this
1479 The kbuild infrastructure for ``*lds`` files is used in several
1480 architecture-specific files.
1483 --------------------
1485 The directory include/asm-generic contains the header files
1489 to list the file in the Kbuild file.
1491 See `generic-y`_ for further info on syntax etc.
1493 Post-link pass
1494 --------------
1497 will be invoked for post-link objects (vmlinux and modules.ko)
1498 for architectures to run post-link passes on. Must also handle
1504 .tmp_vmlinux? targets to be called from link-vmlinux.sh.
1513 Many headers can be exported as-is but other headers require a
1514 minimal pre-processing before they are ready for user-space.
1516 The pre-processing does:
1518 - drop kernel-specific annotations
1519 - drop include of compiler.h
1520 - drop all sections that are kernel internal (guarded by ``ifdef __KERNEL__``)
1527 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
1531 no-export-headers
1532 -----------------
1534 no-export-headers is essentially used by include/uapi/linux/Kbuild to
1538 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 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 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
1662 INSTALL_MOD_PATH, it isn't defined in the Makefile, but can be passed
1673 GNU Make supports elementary list-processing functions. The kernel
1678 immediate evaluation of the right-hand side and stores an actual string
1679 into the left-hand side. ``=`` is like a formula definition; it stores the
1680 right-hand side in an unevaluated form and then evaluates this form each
1681 time the left-hand side is used.
1689 - Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1690 - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1691 - Updates by Sam Ravnborg <sam@ravnborg.org>
1692 - Language QA by Jan Engelhardt <jengelh@gmx.de>
1697 - Generating offset header files.
1698 - Add more variables to chapters 7 or 9?