improve headers_install
[buildroot.git] / toolchain / kernel-headers / kernel-headers-new.makefile
blob7f5505d2919ab444f531062eb29aad86ce8ca6f3
1 #############################################################
3 # full kernel tarballs >= 2.6.19.1
5 #############################################################
7 ifeq ($(LINUX_HEADERS_VERSION),)
8 LINUX_HEADERS_VERSION:=$(KERNEL_MAJORVERSION).$(KERNEL_PATCHLEVEL)$(if $(KERNEL_SUBLEVEL),.$(KERNEL_SUBLEVEL))$(KERNEL_EXTRAVERSION)
9 LINUX_HEADERS_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
10 LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2
11 LINUX_HEADERS_CAT:=$(BZCAT)
12 LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION)
13 LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux
14 LINUX_HEADERS_IS_KERNEL=y
15 endif
17 ifeq ("$(DEFAULT_KERNEL_HEADERS)","2.6.22.1")
18 LINUX_RT_VERSION:=rt9
19 endif
21 ifeq ("$(DEFAULT_KERNEL_HEADERS)","2.6.21.5")
22 LINUX_RT_VERSION:=rt20
23 endif
25 ifeq ($(LINUX_HEADERS_IS_KERNEL),y)
26 # Need to redefine KERNEL_HEADERS_PATCH_DIR if you want
27 # board specific kernel headers
28 KERNEL_HEADERS_PATCH_DIR:=toolchain/kernel-headers/empty
29 LINUX_HEADERS_DEPENDS:=
31 ifeq ($(BR2_KERNEL_HEADERS_RT),y)
32 LINUX_RT_SOURCE:=patch-$(LINUX_HEADERS_VERSION)-$(LINUX_RT_VERSION)
33 LINUX_RT_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/projects/rt/older/
34 LINUX_HEADERS_DEPENDS+=$(DL_DIR)/$(LINUX_RT_SOURCE)
35 $(DL_DIR)/$(LINUX_RT_SOURCE):
36         $(WGET) -P $(DL_DIR) $(LINUX_RT_SITE)/$(LINUX_RT_SOURCE)
37 endif
39 $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)  
40         @echo "*** Using kernel-headers generated from kernel source"
41         rm -rf $(LINUX_HEADERS_DIR)
42         [ -d $(TOOL_BUILD_DIR) ] || $(INSTALL) -d $(TOOL_BUILD_DIR)
43         $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
44 ifeq ($(BR2_USE_UPDATE),y)
45         [ -d $(LINUX_HEADERS_UNPACK_DIR)/.git ] && $(GIT) pull
46 endif
47         touch $@
49 $(LINUX_HEADERS_UNPACK_DIR)/.patched: $(LINUX_HEADERS_UNPACK_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
50         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers \
51                 linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
52 ifeq ($(BR2_KERNEL_HEADERS_IPMI),y)
53         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers/ipmi \
54                 linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
55 endif
56 ifeq ($(BR2_KERNEL_HEADERS_LZMA),y)
57         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers/lzma \
58                 linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
59 endif
60 ifeq ($(BR2_KERNEL_HEADERS_RT),y)
61         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) $(DL_DIR) $(LINUX_RT_SOURCE)
62 endif
63 ifeq ($(BR2_KERNEL_HEADERS_PATCH_DIR),y)
64         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) $(KERNEL_HEADERS_PATCH_DIR) \
65                 \*.patch{,.gz,.bz2}
66 endif
67 ifeq ($(BR2_PACKAGE_OPENSWAN),y)
68         toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) package/openswan \
69                 linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
70 endif
71         touch $@
73 $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
74         $(INSTALL) -D $(LINUX26_KCONFIG) $(LINUX_HEADERS_DIR)/.config
75         # some arches need archprepare
76         # Could very well be that we need to expand on that some more, later on
77         -(cd $(LINUX_HEADERS_UNPACK_DIR); \
78          $(MAKE) ARCH=$(KERNEL_ARCH) \
79                 HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
80                 HOSTCXX="$(HOSTCXX)" \
81                 KCONFIG_CONFIG="$($(LINUX_HEADERS_DIR)/.config)" \
82                 INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR) archprepare; \
83         )
84         # wipe it, just to be sure to prevent misconfiguration
85         rm -f $(LINUX_HEADERS_DIR)/.config
86         (cd $(LINUX_HEADERS_UNPACK_DIR); \
87          $(MAKE) ARCH=$(KERNEL_ARCH) \
88                 HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
89                 HOSTCXX="$(HOSTCXX)" \
90                 INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR) headers_install; \
91         )
92         touch $@
94 endif