diff options
Diffstat (limited to 'toolchain/kernel-headers/kernel-headers.mk')
-rw-r--r-- | toolchain/kernel-headers/kernel-headers.mk | 124 |
1 files changed, 124 insertions, 0 deletions
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 |