kbuild: Add support for an "archheaders" target
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / Documentation / kbuild / makefiles.txt
index f47cdefb4d1efc17d4e515df31996f134674649e..ab0a984530d87848435571d857b201484591f73c 100644 (file)
@@ -33,14 +33,15 @@ This document describes the Linux kernel Makefiles.
 
        === 6 Architecture Makefiles
           --- 6.1 Set variables to tweak the build to the architecture
-          --- 6.2 Add prerequisites to archprepare:
-          --- 6.3 List directories to visit when descending
-          --- 6.4 Architecture-specific boot images
-          --- 6.5 Building non-kbuild targets
-          --- 6.6 Commands useful for building a boot image
-          --- 6.7 Custom kbuild commands
-          --- 6.8 Preprocessing linker scripts
-          --- 6.9 Generic header files
+          --- 6.2 Add prerequisites to archheaders:
+          --- 6.3 Add prerequisites to archprepare:
+          --- 6.4 List directories to visit when descending
+          --- 6.5 Architecture-specific boot images
+          --- 6.6 Building non-kbuild targets
+          --- 6.7 Commands useful for building a boot image
+          --- 6.8 Custom kbuild commands
+          --- 6.9 Preprocessing linker scripts
+          --- 6.10 Generic header files
 
        === 7 Kbuild syntax for exported headers
                --- 7.1 header-y
@@ -252,7 +253,7 @@ more details, with real examples.
        This will create a library lib.a based on delay.o. For kbuild to
        actually recognize that there is a lib.a being built, the directory
        shall be listed in libs-y.
-       See also "6.3 List directories to visit when descending".
+       See also "6.4 List directories to visit when descending".
 
        Use of lib-y is normally restricted to lib/ and arch/*/lib.
 
@@ -974,7 +975,20 @@ When kbuild executes, the following steps are followed (roughly):
        $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic
        mode) if this option is supported by $(AR).
 
---- 6.2 Add prerequisites to archprepare:
+--- 6.2 Add prerequisites to archheaders:
+
+       The archheaders: rule is used to generate header files that
+       may be installed into user space by "make header_install" or
+       "make headers_install_all".  In order to support
+       "make headers_install_all", this target has to be able to run
+       on an unconfigured tree, or a tree configured for another
+       architecture.
+
+       It is run before "make archprepare" when run on the
+       architecture itself.
+
+
+--- 6.3 Add prerequisites to archprepare:
 
        The archprepare: rule is used to list prerequisites that need to be
        built before starting to descend down in the subdirectories.
@@ -990,7 +1004,7 @@ When kbuild executes, the following steps are followed (roughly):
        generating offset header files.
 
 
---- 6.3 List directories to visit when descending
+--- 6.4 List directories to visit when descending
 
        An arch Makefile cooperates with the top Makefile to define variables
        which specify how to build the vmlinux file.  Note that there is no
@@ -1019,7 +1033,7 @@ When kbuild executes, the following steps are followed (roughly):
                drivers-$(CONFIG_OPROFILE)  += arch/sparc64/oprofile/
 
 
---- 6.4 Architecture-specific boot images
+--- 6.5 Architecture-specific boot images
 
        An arch Makefile specifies goals that take the vmlinux file, compress
        it, wrap it in bootstrapping code, and copy the resulting files
@@ -1070,7 +1084,7 @@ When kbuild executes, the following steps are followed (roughly):
 
        When "make" is executed without arguments, bzImage will be built.
 
---- 6.5 Building non-kbuild targets
+--- 6.6 Building non-kbuild targets
 
     extra-y
 
@@ -1090,7 +1104,7 @@ When kbuild executes, the following steps are followed (roughly):
        shall be built, but shall not be linked as part of built-in.o.
 
 
---- 6.6 Commands useful for building a boot image
+--- 6.7 Commands useful for building a boot image
 
        Kbuild provides a few macros that are useful when building a
        boot image.
@@ -1112,7 +1126,7 @@ When kbuild executes, the following steps are followed (roughly):
        always be built.
        Assignments to $(targets) are without $(obj)/ prefix.
        if_changed may be used in conjunction with custom commands as
-       defined in 6.7 "Custom kbuild commands".
+       defined in 6.8 "Custom kbuild commands".
 
        Note: It is a typical mistake to forget the FORCE prerequisite.
        Another common pitfall is that whitespace is sometimes
@@ -1171,7 +1185,7 @@ When kbuild executes, the following steps are followed (roughly):
                $(obj)/%.dtb: $(src)/%.dts
                        $(call cmd,dtc)
 
---- 6.7 Custom kbuild commands
+--- 6.8 Custom kbuild commands
 
        When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand
        of a command is normally displayed.
@@ -1198,7 +1212,7 @@ When kbuild executes, the following steps are followed (roughly):
        will be displayed with "make KBUILD_VERBOSE=0".
 
 
---- 6.8 Preprocessing linker scripts
+--- 6.9 Preprocessing linker scripts
 
        When the vmlinux image is built, the linker script
        arch/$(ARCH)/kernel/vmlinux.lds is used.
@@ -1228,7 +1242,7 @@ When kbuild executes, the following steps are followed (roughly):
        The kbuild infrastructure for *lds file are used in several
        architecture-specific files.
 
---- 6.9 Generic header files
+--- 6.10 Generic header files
 
        The directory include/asm-generic contains the header files
        that may be shared between individual architectures.