summaryrefslogtreecommitdiff
path: root/toolchain/kernel-headers
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/kernel-headers')
-rw-r--r--toolchain/kernel-headers/Config.in25
-rw-r--r--toolchain/kernel-headers/Makefile.in3
-rw-r--r--toolchain/kernel-headers/kernel-headers.mk124
3 files changed, 152 insertions, 0 deletions
diff --git a/toolchain/kernel-headers/Config.in b/toolchain/kernel-headers/Config.in
new file mode 100644
index 000000000..db286e2d5
--- /dev/null
+++ b/toolchain/kernel-headers/Config.in
@@ -0,0 +1,25 @@
+# Choose the kernel headers to use for kernel-headers target. This is
+# ignored if you are building your own kernel or using the system kernel.
+#
+
+choice
+ prompt "Kernel Headers"
+ default BR2_KERNEL_HEADERS_2_4
+ help
+ Select the version of kernel header files you wish to use.
+ You must select the correct set of header files to match
+ the kernel you intend to use on your target system.
+
+ config BR2_KERNEL_HEADERS_2_4
+ bool "Linux 2.4.x kernel headers"
+
+ config BR2_KERNEL_HEADERS_2_6
+ bool "Linux 2.6.x kernel headers"
+
+endchoice
+
+config BR2_DEFAULT_KERNEL_HEADERS
+ string
+ default "2.4.27" if BR2_KERNEL_HEADERS_2_4
+ default "2.6.8" if BR2_KERNEL_HEADERS_2_6
+
diff --git a/toolchain/kernel-headers/Makefile.in b/toolchain/kernel-headers/Makefile.in
new file mode 100644
index 000000000..d02613a02
--- /dev/null
+++ b/toolchain/kernel-headers/Makefile.in
@@ -0,0 +1,3 @@
+DEFAULT_KERNEL_HEADERS:=$(strip $(subst ",, $(BR2_DEFAULT_KERNEL_HEADERS)))
+#"
+
diff --git a/toolchain/kernel-headers/kernel-headers.mk b/toolchain/kernel-headers/kernel-headers.mk
new file mode 100644
index 000000000..39d14e6dc
--- /dev/null
+++ b/toolchain/kernel-headers/kernel-headers.mk
@@ -0,0 +1,124 @@
+#############################################################
+#
+# Setup the kernel headers. I include a generic package of
+# kernel headers here, so you shouldn't need to include your
+# own. Be aware these kernel headers _will_ get blown away
+# by a 'make clean' so don't put anything sacred in here...
+#
+#############################################################
+ifneq ($(filter $(TARGETS),kernel-headers),)
+DEFAULT_KERNEL_HEADERS:=$(strip $(DEFAULT_KERNEL_HEADERS))
+
+LINUX_HEADERS_SITE:=127.0.0.1
+LINUX_HEADERS_SOURCE:=unspecified-kernel-headers
+
+ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.25")
+VERSION:=2
+PATCHLEVEL:=4
+SUBLEVEL:=25
+LINUX_HEADERS_SITE:=http://www.uclibc.org/downloads/toolchain
+LINUX_HEADERS_SOURCE:=linux-libc-headers-2.4.25.tar.bz2
+LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.4.25
+endif
+
+ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.27")
+VERSION:=2
+PATCHLEVEL:=4
+SUBLEVEL:=25
+LINUX_HEADERS_SITE:=http://www.uclibc.org/downloads/toolchain
+LINUX_HEADERS_SOURCE:=linux-libc-headers-2.4.27.tar.bz2
+LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.4.27
+endif
+
+ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.7")
+VERSION:=2
+PATCHLEVEL:=6
+SUBLEVEL:=7
+LINUX_HEADERS_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
+LINUX_HEADERS_SOURCE:=linux-libc-headers-2.6.7.0.tar.bz2
+LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.7.0
+endif
+
+ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.8")
+VERSION:=2
+PATCHLEVEL:=6
+SUBLEVEL:=8
+LINUX_HEADERS_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
+LINUX_HEADERS_SOURCE:=linux-libc-headers-2.6.8.0.tar.bz2
+LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.8.0
+endif
+
+LINUX_VERSION:=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
+
+LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux
+
+$(DL_DIR)/$(LINUX_HEADERS_SOURCE):
+ mkdir -p $(DL_DIR)
+ $(WGET) -P $(DL_DIR) $(LINUX_HEADERS_SITE)/$(LINUX_HEADERS_SOURCE)
+
+$(LINUX_HEADERS_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
+ mkdir -p $(TOOL_BUILD_DIR)
+ bzcat $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+ifneq ($(LINUX_HEADERS_UNPACK_DIR),$(LINUX_HEADERS_DIR))
+ mv $(LINUX_HEADERS_UNPACK_DIR) $(LINUX_HEADERS_DIR)
+endif
+ touch $(LINUX_HEADERS_DIR)/.unpacked
+
+$(LINUX_HEADERS_DIR)/.patched: $(LINUX_HEADERS_DIR)/.unpacked
+ $(SOURCE_DIR)/patch-kernel.sh $(LINUX_HEADERS_DIR) toolchain/kernel-headers linux-libc-headers-$(LINUX_VERSION)-\*.patch
+ touch $(LINUX_HEADERS_DIR)/.patched
+
+$(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_DIR)/.patched
+ rm -f $(LINUX_HEADERS_DIR)/include/asm
+ @if [ ! -f $(LINUX_HEADERS_DIR)/Makefile ] ; then \
+ echo -e "VERSION = $(VERSION)\nPATCHLEVEL = $(PATCHLEVEL)\n" > \
+ $(LINUX_HEADERS_DIR)/Makefile; \
+ echo -e "SUBLEVEL = $(SUBLEVEL)\nEXTRAVERSION =\n" >> \
+ $(LINUX_HEADERS_DIR)/Makefile; \
+ echo -e "KERNELRELEASE=\$$(VERSION).\$$(PATCHLEVEL).\$$(SUBLEVEL)\$$(EXTRAVERSION)" >> \
+ $(LINUX_HEADERS_DIR)/Makefile; \
+ fi;
+ @if [ "$(ARCH)" = "powerpc" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-ppc$(NOMMU) asm;) \
+ elif [ "$(ARCH)" = "mips" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-mips$(NOMMU) asm;) \
+ elif [ "$(ARCH)" = "mipsel" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-mips$(NOMMU) asm;) \
+ elif [ "$(ARCH)" = "arm" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-arm$(NOMMU) asm; \
+ cd asm; \
+ if [ ! -L proc ] ; then \
+ ln -fs proc-armv proc; \
+ ln -fs arch-ebsa285 arch; fi); \
+ elif [ "$(ARCH)" = "armeb" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-arm$(NOMMU) asm; \
+ cd asm; \
+ if [ ! -L proc ] ; then \
+ ln -fs proc-armv proc; \
+ ln -fs arch-ebsa285 arch; fi); \
+ elif [ "$(ARCH)" = "cris" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-cris asm;) \
+ elif [ "$(ARCH)" = "sh4" ];then \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-sh asm; \
+ cd asm; \
+ ln -s cpu-sh4 cpu) \
+ else \
+ (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-$(ARCH)$(NOMMU) asm;) \
+ fi
+ touch $(LINUX_HEADERS_DIR)/include/linux/autoconf.h;
+ touch $(LINUX_HEADERS_DIR)/.configured
+
+$(LINUX_KERNEL): $(LINUX_HEADERS_DIR)/.configured
+
+kernel-headers: $(LINUX_HEADERS_DIR)/.configured
+
+kernel-headers-source: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
+
+kernel-headers-clean: clean
+ rm -f $(LINUX_KERNEL)
+ rm -rf $(LINUX_HEADERS_DIR)
+
+kernel-headers-dirclean:
+ rm -rf $(LINUX_HEADERS_DIR)
+
+endif