kernel-headers.mk 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #############################################################
  2. #
  3. # Setup the kernel headers. I include a generic package of
  4. # kernel headers here, so you shouldn't need to include your
  5. # own. Be aware these kernel headers _will_ get blown away
  6. # by a 'make clean' so don't put anything sacred in here...
  7. #
  8. #############################################################
  9. DEFAULT_KERNEL_HEADERS:=$(strip $(subst ",, $(BR2_DEFAULT_KERNEL_HEADERS)))
  10. #"
  11. ifneq ($(filter $(TARGETS),kernel-headers),)
  12. DEFAULT_KERNEL_HEADERS:=$(strip $(DEFAULT_KERNEL_HEADERS))
  13. LINUX_HEADERS_SITE:=127.0.0.1
  14. LINUX_HEADERS_SOURCE:=unspecified-kernel-headers
  15. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.25")
  16. VERSION:=2
  17. PATCHLEVEL:=4
  18. SUBLEVEL:=25
  19. LINUX_HEADERS_SITE:=http://www.uclibc.org/downloads/toolchain
  20. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.4.25.tar.bz2
  21. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.4.25
  22. endif
  23. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.27")
  24. VERSION:=2
  25. PATCHLEVEL:=4
  26. SUBLEVEL:=27
  27. LINUX_HEADERS_SITE:=http://www.uclibc.org/downloads/toolchain
  28. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.4.27.tar.bz2
  29. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.4.27
  30. endif
  31. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.4.29")
  32. VERSION:=2
  33. PATCHLEVEL:=4
  34. SUBLEVEL:=29
  35. LINUX_HEADERS_SITE:=http://www.uclibc.org/downloads/toolchain
  36. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.4.29.tar.bz2
  37. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.4.29
  38. endif
  39. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.9")
  40. VERSION:=2
  41. PATCHLEVEL:=6
  42. SUBLEVEL:=9
  43. LINUX_HEADERS_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
  44. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.6.9.1.tar.bz2
  45. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.9.1
  46. endif
  47. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.10")
  48. VERSION:=2
  49. PATCHLEVEL:=6
  50. SUBLEVEL:=10
  51. LINUX_HEADERS_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
  52. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.6.10.0.tar.bz2
  53. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.10.0
  54. endif
  55. ifeq ("$(strip $(DEFAULT_KERNEL_HEADERS))","2.6.11")
  56. VERSION:=2
  57. PATCHLEVEL:=6
  58. SUBLEVEL:=11
  59. LINUX_HEADERS_SITE:=http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
  60. LINUX_HEADERS_SOURCE:=linux-libc-headers-2.6.11.0.tar.bz2
  61. LINUX_HEADERS_UNPACK_DIR:=$(TOOL_BUILD_DIR)/linux-libc-headers-2.6.11.0
  62. endif
  63. LINUX_VERSION:=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
  64. LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux
  65. $(DL_DIR)/$(LINUX_HEADERS_SOURCE):
  66. mkdir -p $(DL_DIR)
  67. $(WGET) -P $(DL_DIR) $(LINUX_HEADERS_SITE)/$(LINUX_HEADERS_SOURCE)
  68. $(LINUX_HEADERS_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
  69. mkdir -p $(TOOL_BUILD_DIR)
  70. bzcat $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
  71. ifneq ($(LINUX_HEADERS_UNPACK_DIR),$(LINUX_HEADERS_DIR))
  72. mv $(LINUX_HEADERS_UNPACK_DIR) $(LINUX_HEADERS_DIR)
  73. endif
  74. touch $(LINUX_HEADERS_DIR)/.unpacked
  75. $(LINUX_HEADERS_DIR)/.patched: $(LINUX_HEADERS_DIR)/.unpacked
  76. toolchain/patch-kernel.sh $(LINUX_HEADERS_DIR) toolchain/kernel-headers linux-libc-headers-$(LINUX_VERSION)-\*.patch
  77. touch $(LINUX_HEADERS_DIR)/.patched
  78. $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_DIR)/.patched
  79. rm -f $(LINUX_HEADERS_DIR)/include/asm
  80. @if [ ! -f $(LINUX_HEADERS_DIR)/Makefile ] ; then \
  81. echo -e "VERSION = $(VERSION)\nPATCHLEVEL = $(PATCHLEVEL)\n" > \
  82. $(LINUX_HEADERS_DIR)/Makefile; \
  83. echo -e "SUBLEVEL = $(SUBLEVEL)\nEXTRAVERSION =\n" >> \
  84. $(LINUX_HEADERS_DIR)/Makefile; \
  85. echo -e "KERNELRELEASE=\$$(VERSION).\$$(PATCHLEVEL).\$$(SUBLEVEL)\$$(EXTRAVERSION)" >> \
  86. $(LINUX_HEADERS_DIR)/Makefile; \
  87. fi;
  88. @if [ "$(ARCH)" = "powerpc" ];then \
  89. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-ppc$(NOMMU) asm;) \
  90. elif [ "$(ARCH)" = "mips" ];then \
  91. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-mips$(NOMMU) asm;) \
  92. elif [ "$(ARCH)" = "mipsel" ];then \
  93. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-mips$(NOMMU) asm;) \
  94. elif [ "$(ARCH)" = "arm" ];then \
  95. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-arm$(NOMMU) asm; \
  96. cd asm; \
  97. if [ ! -L proc ] ; then \
  98. ln -fs proc-armv proc; \
  99. ln -fs arch-ebsa285 arch; fi); \
  100. elif [ "$(ARCH)" = "armeb" ];then \
  101. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-arm$(NOMMU) asm; \
  102. cd asm; \
  103. if [ ! -L proc ] ; then \
  104. ln -fs proc-armv proc; \
  105. ln -fs arch-ebsa285 arch; fi); \
  106. elif [ "$(ARCH)" = "cris" ];then \
  107. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-cris asm;) \
  108. elif [ "$(ARCH)" = "sh3" ];then \
  109. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-sh asm; \
  110. cd asm; \
  111. ln -s cpu-sh3 cpu) \
  112. elif [ "$(ARCH)" = "sh3eb" ];then \
  113. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-sh asm; \
  114. cd asm; \
  115. ln -s cpu-sh3 cpu) \
  116. elif [ "$(ARCH)" = "sh4" ];then \
  117. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-sh asm; \
  118. cd asm; \
  119. ln -s cpu-sh4 cpu) \
  120. elif [ "$(ARCH)" = "sh4eb" ];then \
  121. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-sh asm; \
  122. cd asm; \
  123. ln -s cpu-sh4 cpu) \
  124. else \
  125. (cd $(LINUX_HEADERS_DIR)/include; ln -fs asm-$(ARCH)$(NOMMU) asm;) \
  126. fi
  127. touch $(LINUX_HEADERS_DIR)/include/linux/autoconf.h;
  128. touch $(LINUX_HEADERS_DIR)/.configured
  129. $(LINUX_KERNEL): $(LINUX_HEADERS_DIR)/.configured
  130. kernel-headers: $(LINUX_HEADERS_DIR)/.configured
  131. kernel-headers-source: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
  132. kernel-headers-clean: clean
  133. rm -f $(LINUX_KERNEL)
  134. rm -rf $(LINUX_HEADERS_DIR)
  135. kernel-headers-dirclean:
  136. rm -rf $(LINUX_HEADERS_DIR)
  137. endif