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# 7include $(INCLUDE_DIR)/host.mk 8include $(INCLUDE_DIR)/prereq.mk 9 10ifneq ($(DUMP),1) 11 all: compile 12endif 13 14STAMP_PREPARED:=$(LINUX_DIR)/.prepared 15STAMP_CONFIGURED:=$(LINUX_DIR)/.configured 16include $(INCLUDE_DIR)/download.mk 17include $(INCLUDE_DIR)/quilt.mk 18include $(INCLUDE_DIR)/kernel-defaults.mk 19 20define Kernel/Prepare 21 $(call Kernel/Prepare/Default) 22endef 23 24define Kernel/Configure 25 $(call Kernel/Configure/Default) 26endef 27 28define Kernel/CompileModules 29 $(call Kernel/CompileModules/Default) 30endef 31 32define Kernel/CompileImage 33 $(call Kernel/CompileImage/Default) 34endef 35 36define Kernel/Clean 37 $(call Kernel/Clean/Default) 38endef 39 40define Download/kernel 41 URL:=$(LINUX_SITE) 42 FILE:=$(LINUX_SOURCE) 43 MD5SUM:=$(LINUX_KERNEL_MD5SUM) 44endef 45 46define BuildKernel 47 $(if $(QUILT),$(Build/Quilt)) 48ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") 49 $(if $(LINUX_SITE),$(call Download,kernel)) 50endif 51 52 $(STAMP_PREPARED): $(DL_DIR)/$(LINUX_SOURCE) 53 -rm -rf $(KERNEL_BUILD_DIR) 54 -mkdir -p $(KERNEL_BUILD_DIR) 55 $(Kernel/Prepare) 56 touch $$@ 57 58 $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_CONFIG) $(GENERIC_LINUX_CONFIG) $(TOPDIR)/.config 59 $(Kernel/Configure) 60 touch $$@ 61 62 $(LINUX_DIR)/.modules: $(STAMP_CONFIGURED) $(LINUX_DIR)/.config FORCE 63 $(Kernel/CompileModules) 64 touch $$@ 65 66 $(LINUX_DIR)/.image: $(STAMP_CONFIGURED) FORCE 67 $(Kernel/CompileImage) 68 touch $$@ 69 70 mostlyclean: FORCE 71 $(Kernel/Clean) 72 73 define BuildKernel 74 endef 75 76 download: $(DL_DIR)/$(LINUX_SOURCE) 77 prepare: $(STAMP_CONFIGURED) 78 compile: $(LINUX_DIR)/.modules 79 $(MAKE) -C image compile TARGET_BUILD= 80 81 oldconfig menuconfig: $(STAMP_PREPARED) FORCE 82 [ -e "$(LINUX_CONFIG)" ] || touch "$(LINUX_CONFIG)" 83 $(LINUX_CONFCMD) > $(LINUX_DIR)/.config 84 touch $(LINUX_CONFIG) 85 $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@ 86 $(SCRIPT_DIR)/kconfig.pl '>' $(GENERIC_LINUX_CONFIG) $(LINUX_DIR)/.config > $(LINUX_CONFIG) 87 $(Kernel/Configure) 88 89 install: $(LINUX_DIR)/.image 90 TARGET_BUILD="" $(MAKE) -C image compile install 91 92 clean: FORCE 93 rm -rf $(KERNEL_BUILD_DIR) 94 95 rebuild: FORCE 96 @$(MAKE) mostlyclean 97 @if [ -f $(LINUX_KERNEL) ]; then \ 98 $(MAKE) clean; \ 99 fi 100 @$(MAKE) compile 101 102 image-prereq: 103 @$(NO_TRACE_MAKE) -s -C image prereq TARGET_BUILD= 104 105 prereq: image-prereq 106 107endef 108