kernel-build.mk 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #
  2. # Copyright (C) 2006-2007 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(INCLUDE_DIR)/host.mk
  8. include $(INCLUDE_DIR)/prereq.mk
  9. ifneq ($(DUMP),1)
  10. override MAKEFLAGS=
  11. endif
  12. ifneq ($(DUMP),1)
  13. all: compile
  14. endif
  15. STAMP_PREPARED:=$(LINUX_DIR)/.prepared
  16. STAMP_CONFIGURED:=$(LINUX_DIR)/.configured
  17. include $(INCLUDE_DIR)/quilt.mk
  18. include $(INCLUDE_DIR)/kernel-defaults.mk
  19. define Kernel/Prepare
  20. $(call Kernel/Prepare/Default)
  21. endef
  22. define Kernel/Configure
  23. $(call Kernel/Configure/Default)
  24. endef
  25. define Kernel/CompileModules
  26. $(call Kernel/CompileModules/Default)
  27. endef
  28. define Kernel/CompileImage
  29. $(call Kernel/CompileImage/Default)
  30. endef
  31. define Kernel/Clean
  32. $(call Kernel/Clean/Default)
  33. endef
  34. define BuildKernel
  35. ifneq ($(LINUX_SITE),)
  36. $(DL_DIR)/$(LINUX_SOURCE):
  37. -mkdir -p $(DL_DIR)
  38. $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE)
  39. endif
  40. $(STAMP_PREPARED): $(DL_DIR)/$(LINUX_SOURCE)
  41. -rm -rf $(KERNEL_BUILD_DIR)
  42. -mkdir -p $(KERNEL_BUILD_DIR)
  43. $(Kernel/Prepare)
  44. touch $$@
  45. $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_CONFIG) $(GENERIC_LINUX_CONFIG) $(TOPDIR)/.config
  46. $(Kernel/Configure)
  47. touch $$@
  48. $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE
  49. $(Kernel/CompileModules)
  50. touch $$@
  51. $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) FORCE
  52. $(Kernel/CompileImage)
  53. touch $$@
  54. mostlyclean: FORCE
  55. $(Kernel/Clean)
  56. define BuildKernel
  57. endef
  58. download: $(DL_DIR)/$(LINUX_SOURCE)
  59. prepare: $(STAMP_CONFIGURED)
  60. compile: $(LINUX_DIR)/.modules
  61. $(MAKE) -C image compile TARGET_BUILD=
  62. oldconfig menuconfig: $(STAMP_PREPARED) FORCE
  63. $(Kernel/Configure)
  64. $(LINUX_CONFCMD) > $(LINUX_DIR)/.config
  65. $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $@
  66. $(SCRIPT_DIR)/kconfig.pl '>' $(GENERIC_LINUX_CONFIG) $(LINUX_DIR)/.config > $(LINUX_CONFIG)
  67. install: $(LINUX_DIR)/.image
  68. TARGET_BUILD="" $(MAKE) -C image compile install
  69. clean: FORCE
  70. rm -rf $(KERNEL_BUILD_DIR)
  71. rebuild: FORCE
  72. @$(MAKE) mostlyclean
  73. @if [ -f $(LINUX_KERNEL) ]; then \
  74. $(MAKE) clean; \
  75. fi
  76. @$(MAKE) compile
  77. image-prereq:
  78. $(SUBMAKE) -s -C image prereq TARGET_BUILD=
  79. prereq: image-prereq
  80. endef