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