diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2011-04-27 16:29:49 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2011-04-28 12:01:41 -0400 |
commit | d8ecc5cd8e227bc318513b5306ae88a474b8886d (patch) | |
tree | f05fe662c000b8219923b8c464c9c186b599190e /scripts/Makefile.headersinst | |
parent | 28bc20dccadc610c56e27255aeef2938141a0cd3 (diff) |
kbuild: asm-generic support
There is an increasing amount of header files
shared between individual architectures in asm-generic.
To avoid a lot of dummy wrapper files that just
include the corresponding file in asm-generic provide
some basic support in kbuild for this.
With the following patch an architecture can maintain
a list of files in the file arch/$(ARCH)/include/asm/Kbuild
To use a generic file just add:
generic-y += <name-of-header-file.h>
For each file listed kbuild will generate the necessary
wrapper in arch/$(ARCH)/include/generated/asm.
When installing userspace headers a wrapper is likewise created.
The original inspiration for this came from the unicore32
patchset - although a different method is used.
The patch includes several improvements from Arnd Bergmann.
Michael Marek contributed Makefile.asm-generic.
Remis Baima did an intial implementation along to achive
the same - see https://patchwork.kernel.org/patch/13352/
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Guan Xuetao <guanxuetao@mprc.pku.edu.cn>
Tested-by: Guan Xuetao <guanxuetao@mprc.pku.edu.cn>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Remis Lima Baima <remis.developer@googlemail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'scripts/Makefile.headersinst')
-rw-r--r-- | scripts/Makefile.headersinst | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index f89cb87f5c01..a57f5bd5a13d 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst | |||
@@ -27,8 +27,13 @@ header-y := $(filter-out %/, $(header-y)) | |||
27 | install-file := $(install)/.install | 27 | install-file := $(install)/.install |
28 | check-file := $(install)/.check | 28 | check-file := $(install)/.check |
29 | 29 | ||
30 | # generic-y list all files an architecture uses from asm-generic | ||
31 | # Use this to build a list of headers which require a wrapper | ||
32 | wrapper-files := $(filter $(header-y), $(generic-y)) | ||
33 | |||
30 | # all headers files for this dir | 34 | # all headers files for this dir |
31 | all-files := $(header-y) $(objhdr-y) | 35 | header-y := $(filter-out $(generic-y), $(header-y)) |
36 | all-files := $(header-y) $(objhdr-y) $(wrapper-files) | ||
32 | input-files := $(addprefix $(srctree)/$(obj)/,$(header-y)) \ | 37 | input-files := $(addprefix $(srctree)/$(obj)/,$(header-y)) \ |
33 | $(addprefix $(objtree)/$(obj)/,$(objhdr-y)) | 38 | $(addprefix $(objtree)/$(obj)/,$(objhdr-y)) |
34 | output-files := $(addprefix $(install)/, $(all-files)) | 39 | output-files := $(addprefix $(install)/, $(all-files)) |
@@ -47,6 +52,9 @@ quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ | |||
47 | cmd_install = \ | 52 | cmd_install = \ |
48 | $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ | 53 | $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ |
49 | $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ | 54 | $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ |
55 | for F in $(wrapper-files); do \ | ||
56 | echo "\#include <asm-generic/$$F>" > $(install)/$$F; \ | ||
57 | done; \ | ||
50 | touch $@ | 58 | touch $@ |
51 | 59 | ||
52 | quiet_cmd_remove = REMOVE $(unwanted) | 60 | quiet_cmd_remove = REMOVE $(unwanted) |