Root/
Source at commit 646a755372317d681048948ae6792bdb7b82249c created 13 years 1 month ago. By Xiangfu Liu, disable CONFIG_ALL, add Tile and gottet | |
---|---|
1 | # |
2 | # Copyright (C) 2006 OpenWrt.org |
3 | # |
4 | # This is free software, licensed under the GNU General Public License v2. |
5 | # See /LICENSE for more information. |
6 | # |
7 | |
8 | ifeq ($(__target_inc),) |
9 | include $(INCLUDE_DIR)/target.mk |
10 | endif |
11 | |
12 | ifeq ($(DUMP),1) |
13 | KERNEL?=<KERNEL> |
14 | BOARD?=<BOARD> |
15 | LINUX_VERSION?=<LINUX_VERSION> |
16 | else |
17 | export GCC_HONOUR_COPTS=s |
18 | |
19 | ifeq ($(KERNEL),2.6) |
20 | LINUX_KMOD_SUFFIX=ko |
21 | else |
22 | LINUX_KMOD_SUFFIX=o |
23 | endif |
24 | |
25 | ifneq (,$(findstring uml,$(BOARD))) |
26 | KERNEL_CC?=$(HOSTCC) |
27 | KERNEL_CROSS?= |
28 | else |
29 | KERNEL_CC?=$(TARGET_CC) |
30 | KERNEL_CROSS?=$(TARGET_CROSS) |
31 | endif |
32 | |
33 | ifeq ($(TARGET_BUILD),1) |
34 | PATCH_DIR ?= ./patches$(if $(wildcard ./patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) |
35 | FILES_DIR ?= $(foreach dir,$(wildcard ./files ./files-$(KERNEL_PATCHVER)),"$(dir)") |
36 | endif |
37 | KERNEL_BUILD_DIR ?= $(BUILD_DIR_BASE)/linux-$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET))$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) |
38 | LINUX_DIR ?= $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) |
39 | |
40 | MODULES_SUBDIR:=lib/modules/$(LINUX_VERSION) |
41 | TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) |
42 | |
43 | LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux |
44 | |
45 | LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 |
46 | TESTING:=$(if $(findstring -rc,$(LINUX_VERSION)),/testing,) |
47 | ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE)),) |
48 | LINUX_SITE:=@KERNEL/linux/kernel/v$(KERNEL)$(TESTING) |
49 | endif |
50 | |
51 | ifneq ($(TARGET_BUILD),1) |
52 | PKG_BUILD_DIR ?= $(KERNEL_BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) |
53 | endif |
54 | endif |
55 | |
56 | ifneq (,$(findstring uml,$(BOARD))) |
57 | LINUX_KARCH=um |
58 | else |
59 | ifeq (,$(LINUX_KARCH)) |
60 | LINUX_KARCH=$(strip $(subst i386,x86,$(subst armeb,arm,$(subst mipsel,mips,$(subst mips64,mips,$(subst mips64el,mips,$(subst sh2,sh,$(subst sh3,sh,$(subst sh4,sh,$(ARCH)))))))))) |
61 | endif |
62 | endif |
63 | |
64 | |
65 | define KernelPackage/Defaults |
66 | FILES:= |
67 | AUTOLOAD:= |
68 | endef |
69 | |
70 | define ModuleAutoLoad |
71 | export modules=; \ |
72 | add_module() { \ |
73 | mkdir -p $(2)/etc/modules.d; \ |
74 | ( \ |
75 | [ "$$$$$$$$3" = "1" ] && { \ |
76 | echo '# May be required for rootfs' ; \ |
77 | } ; \ |
78 | for mod in $$$$$$$$2; do \ |
79 | getvar mod; \ |
80 | done \ |
81 | ) > $(2)/etc/modules.d/$$$$$$$$1-$(1); \ |
82 | modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$1-$(1)"; \ |
83 | }; \ |
84 | $(3) \ |
85 | if [ -n "$$$$$$$$modules" ]; then \ |
86 | mkdir -p $(2)/etc/modules.d; \ |
87 | mkdir -p $(2)/CONTROL; \ |
88 | echo "#!/bin/sh" > $(2)/CONTROL/postinst; \ |
89 | echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \ |
90 | echo ". /etc/functions.sh" >> $(2)/CONTROL/postinst; \ |
91 | echo "load_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \ |
92 | chmod 0755 $(2)/CONTROL/postinst; \ |
93 | fi |
94 | endef |
95 | |
96 | ifeq ($(DUMP)$(TARGET_BUILD),) |
97 | -include $(LINUX_DIR)/.config |
98 | endif |
99 | |
100 | define KernelPackage/depends |
101 | $(STAMP_BUILT): $(LINUX_DIR)/.config |
102 | define KernelPackage/depends |
103 | endef |
104 | endef |
105 | |
106 | define KernelPackage |
107 | NAME:=$(1) |
108 | $(eval $(call Package/Default)) |
109 | $(eval $(call KernelPackage/Defaults)) |
110 | $(eval $(call KernelPackage/$(1))) |
111 | $(eval $(call KernelPackage/$(1)/$(KERNEL))) |
112 | $(eval $(call KernelPackage/$(1)/$(BOARD))) |
113 | |
114 | define Package/kmod-$(1) |
115 | TITLE:=$(TITLE) |
116 | SECTION:=kernel |
117 | CATEGORY:=Kernel modules |
118 | DESCRIPTION:=$(DESCRIPTION) |
119 | EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)) |
120 | VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE)) |
121 | $(call KernelPackage/$(1)) |
122 | $(call KernelPackage/$(1)/$(KERNEL)) |
123 | $(call KernelPackage/$(1)/$(BOARD)) |
124 | endef |
125 | |
126 | ifdef KernelPackage/$(1)/description |
127 | define Package/kmod-$(1)/description |
128 | $(call KernelPackage/$(1)/description) |
129 | endef |
130 | endif |
131 | |
132 | ifdef KernelPackage/$(1)/config |
133 | define Package/kmod-$(1)/config |
134 | $(call KernelPackage/$(1)/config) |
135 | endef |
136 | endif |
137 | |
138 | $(call KernelPackage/depends) |
139 | |
140 | ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),) |
141 | ifneq ($(strip $(FILES)),) |
142 | define Package/kmod-$(1)/install |
143 | mkdir -p $$(1)/lib/modules/$(LINUX_VERSION) |
144 | $(CP) -L $$(FILES) $$(1)/lib/modules/$(LINUX_VERSION)/ |
145 | $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD)) |
146 | $(call KernelPackage/$(1)/install,$$(1)) |
147 | endef |
148 | endif |
149 | $(if $(CONFIG_PACKAGE_kmod-$(1)), |
150 | else |
151 | compile: kmod-$(1)-unavailable |
152 | kmod-$(1)-unavailable: |
153 | @echo "WARNING: kmod-$(1) is not available in the kernel config" |
154 | ) |
155 | endif |
156 | $$(eval $$(call BuildPackage,kmod-$(1))) |
157 | |
158 | $$(IPKG_kmod-$(1)): $$(wildcard $$(FILES)) |
159 | endef |
160 | |
161 | define AutoLoad |
162 | add_module $(1) "$(2)" $(3); |
163 | endef |
164 | |
165 | ifdef DUMP |
166 | CompareKernelPatchVer=0 |
167 | else |
168 | define CompareKernelPatchVer |
169 | $(shell [ $$(echo $(1) | tr . 0) -$(2) $$(echo $(3) | tr . 0) ] && echo 1 || echo 0) |
170 | endef |
171 | endif |
172 | |
173 |