fakeroot: install into HOST_DIR
[avatt.git] / target / device / Atmel / u-boot / u-boot.mk
blob1b9be5c84366ff209a2c0aff91f9b3addb2b4b33
1 #############################################################
3 # u-boot mkimage to build to target u-boot filesystems and
5 # u-boot.bin - the boot loader for the target - which needs soft float, so
6 # we won't make it.
9 #############################################################
10 UBOOT_VERSION:=1.2.0-atmel
11 ATMEL_MIRROR:=$(strip $(subst ",, $(BR2_ATMEL_MIRROR)))
12 #"))
13 UBOOT_DIR:=$(BUILD_DIR)/u-boot-$(UBOOT_VERSION)
14 UBOOT_BUILD_DIR:=$(PROJECT_BUILD_DIR)/u-boot-$(UBOOT_VERSION)
15 UBOOT_SOURCE:=u-boot-$(UBOOT_VERSION).tar.bz2
16 #UBOOT_SOURCE:=u-boot-1.1.5-atmel.tar.bz2
17 #UBOOT_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/u-boot
18 UBOOT_SITE:=$(ATMEL_MIRROR)
19 UBOOT_PATCH_SITE:=$(ATMEL_MIRROR)
20 UBOOT_CAT:=$(BZCAT)
21 UBOOT_PATCH_SOURCE:=u-boot-1.2.0-atmel-patch.tar.bz2
23 MKIMAGE_BINLOC:=$(UBOOT_BUILD_DIR)/tools/mkimage
24 MKIMAGE:=$(KERNEL_CROSS)mkimage
26 UBOOT_BIN:=$(BOARD_NAME)-u-boot-$(UBOOT_VERSION)-$(DATE).bin
28 UBOOT_PATCHES:=$(PROJECT_BUILD_DIR)/u-boot-patches
30 UBOOT_ATMEL_BMP:=$(UBOOT_PATCHES)/atmel.bmp
32 UBOOT_SCR=$(BINARIES_DIR)/autoscript
33 TARGET_UBOOT_IPADDR:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_IPADDR_AT91)))
34 #"))
35 TARGET_UBOOT_SERVERIP:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_SERVERIP_AT91)))
36 #"))
37 TARGET_UBOOT_GATEWAY:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_GATEWAY_AT91)))
38 #"))
39 TARGET_UBOOT_NETMASK:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_NETMASK_AT91)))
40 #"))
41 TARGET_UBOOT_ETHADDR:=$(strip $(subst ",, $(BR2_TARGET_UBOOT_ETHADDR_AT91)))
42 #"))
43 UBOOT_CUSTOM:=$(UBOOT_DIR)/include/custom.h
45 $(DL_DIR)/$(UBOOT_SOURCE):
46 $(call DOWNLOAD,$(UBOOT_SITE),$(UBOOT_SOURCE))
48 $(DL_DIR)/$(UBOOT_PATCH_SOURCE):
49 $(call DOWNLOAD,$(UBOOT_PATCH_SITE),$(UBOOT_PATCH_SOURCE))
51 $(UBOOT_DIR)/.unpacked: $(DL_DIR)/$(UBOOT_SOURCE)
52 mkdir -p $(BUILD_DIR)
53 $(UBOOT_CAT) $(DL_DIR)/$(UBOOT_SOURCE) | tar -C $(BUILD_DIR) -xvf -
54 touch $@
56 $(UBOOT_PATCHES)/.unpacked: $(DL_DIR)/$(UBOOT_PATCH_SOURCE)
57 mkdir -p $(UBOOT_PATCHES)
58 bzcat $(DL_DIR)/$(UBOOT_PATCH_SOURCE) | tar -C $(UBOOT_PATCHES) -xvf -
59 touch $@
61 $(UBOOT_DIR)/.patched.$(UBOOT_PATCH_SOURCE): $(UBOOT_DIR)/.unpacked $(UBOOT_PATCHES)/.unpacked
62 toolchain/patch-kernel.sh $(UBOOT_DIR) $(UBOOT_PATCHES) \*.patch
63 touch $(UBOOT_DIR)/.patched.$(UBOOT_PATCH_SOURCE)
64 # cp $(UBOOT_CONFIG_FILE) $(UBOOT_DIR)/include/configs/.
65 # cp $(UBOOT_PATCHES)/cmd_defenv.c $(UBOOT_DIR)/common/.
66 # cp $(UBOOT_ATMEL_BMP) $(UBOOT_DIR)/tools/logos/.
68 $(UBOOT_BUILD_DIR)/.configured: $(UBOOT_DIR)/.patched.$(UBOOT_PATCH_SOURCE)
69 ifneq ($(strip $(UBOOT_CONFIG_FILE)),)
70 cp $(UBOOT_CONFIG_FILE) $(UBOOT_DIR)/include/configs/.
71 endif
72 $(MAKE) \
73 O=$(UBOOT_BUILD_DIR) \
74 CONFIG_NOSOFTFLOAT=1 \
75 -C $(UBOOT_DIR) \
76 $(UBOOT_CONFIG)
77 $(SED) 's/ $$(SREC) $$(BIN)//' $(UBOOT_DIR)/examples/Makefile
78 touch $(UBOOT_BUILD_DIR)/.configured
79 # $(MAKE) O=$(UBOOT_BUILD_DIR) -C $(UBOOT_DIR)
81 $(MKIMAGE_BINLOC): $(UBOOT_BUILD_DIR)/.configured
82 $(MAKE) \
83 O=$(UBOOT_BUILD_DIR) \
84 CROSS_COMPILE= \
85 CONFIG_NOSOFTFLOAT=1 \
86 TOPDIR=$(UBOOT_DIR) \
87 SRCTREE=$(UBOOT_DIR) \
88 -C $(UBOOT_DIR) tools
89 touch $(MKIMAGE_BINLOC)
91 $(UBOOT_BUILD_DIR)/u-boot.bin: $(UBOOT_BUILD_DIR)/.configured $(UBOOT_CUSTOM)
92 echo TARGET_CROSS=$(TARGET_CROSS)
93 $(MAKE) O=$(UBOOT_BUILD_DIR) \
94 CROSS_COMPILE=$(TARGET_CROSS) \
95 CONFIG_NOSOFTFLOAT=1 \
96 TOPDIR=$(UBOOT_DIR) \
97 SRCTREE=$(UBOOT_DIR) \
98 TFTPBOOT=$(TARGET_ATMEL_COPYTO) \
99 -C $(UBOOT_DIR)
101 $(BINARIES_DIR)/$(UBOOT_BIN): $(UBOOT_BUILD_DIR)/u-boot.bin
102 mkdir -p $(BINARIES_DIR)
103 cp $(UBOOT_BUILD_DIR)/u-boot.bin $(BINARIES_DIR)/$(UBOOT_BIN)
105 $(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN): $(UBOOT_BUILD_DIR)/u-boot.bin
106 mkdir -p $(TARGET_ATMEL_COPYTO)
107 cp $(UBOOT_BUILD_DIR)/u-boot.bin $(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN)
109 uboot-bin: $(BINARIES_DIR)/$(UBOOT_BIN) $(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN)
111 $(UBOOT_CUSTOM).test: .config $(UBOOT_BUILD_DIR)/.configured
112 echo "/* Automatically generated file, do not edit */" \
113 > $(UBOOT_CUSTOM).test
114 ifneq ($(TARGET_HOSTNAME),)
115 echo "#if defined(CONFIG_HOSTNAME)" >> $(UBOOT_CUSTOM).test
116 echo "#undef CONFIG_HOSTNAME" >> $(UBOOT_CUSTOM).test
117 echo "#define CONFIG_HOSTNAME $(TARGET_HOSTNAME)">> $(UBOOT_CUSTOM).test
118 echo "#endif" >> $(UBOOT_CUSTOM).test
119 endif
120 ifneq ($(TARGET_UBOOT_IPADDR),)
121 echo "#define CONFIG_IPADDR $(TARGET_UBOOT_IPADDR)">> $(UBOOT_CUSTOM).test
122 endif
123 ifneq ($(TARGET_UBOOT_SERVERIP),)
124 echo "#define CONFIG_SERVERIP $(TARGET_UBOOT_SERVERIP)">> $(UBOOT_CUSTOM).test
125 endif
126 ifneq ($(TARGET_UBOOT_GATEWAY),)
127 echo "#define CONFIG_GATEWAYIP $(TARGET_UBOOT_GATEWAY)">> $(UBOOT_CUSTOM).test
128 endif
129 ifneq ($(TARGET_UBOOT_NETMASK),)
130 echo "#define CONFIG_NETMASK $(TARGET_UBOOT_NETMASK)">> $(UBOOT_CUSTOM).test
131 endif
132 ifneq ($(TARGET_UBOOT_ETHADDR),)
133 echo "#define CONFIG_ETHADDR $(TARGET_UBOOT_ETHADDR)">> $(UBOOT_CUSTOM).test
134 endif
135 diff -q $(UBOOT_CUSTOM).test $(UBOOT_CUSTOM) || cp -af $(UBOOT_CUSTOM).test $(UBOOT_CUSTOM)
137 $(UBOOT_SCR): .config
138 ifneq ($(TARGET_UBOOT_IPADDR),)
139 echo setenv ipaddr $(TARGET_UBOOT_IPADDR) > $(UBOOT_SCR)
140 endif
141 ifneq ($(TARGET_UBOOT_SERVERIP),)
142 echo setenv serverip $(TARGET_UBOOT_SERVERIP) >> $(UBOOT_SCR)
143 endif
144 ifneq ($(TARGET_UBOOT_GATEWAY),)
145 echo setenv gatewayip $(TARGET_UBOOT_GATEWAY) >> $(UBOOT_SCR)
146 endif
147 ifneq ($(TARGET_UBOOT_NETMASK),)
148 echo setenv netmask $(TARGET_UBOOT_NETMASK) >> $(UBOOT_SCR)
149 endif
150 echo setenv linux $(BOARD_NAME)-linux-$(LINUX26_VERSION)-$(DATE).gz >> $(UBOOT_SCR)
151 echo setenv kernel-version $(LINUX26_VERSION) >> $(UBOOT_SCR)
152 echo setenv kernel-date $(DATE) >> $(UBOOT_SCR)
153 echo setenv hostname $(TARGET_HOSTNAME) >> $(UBOOT_SCR)
154 echo setenv fs-date $(DATE) >> $(UBOOT_SCR)
155 echo setenv rd-1 rootfs.$(BR2_ARCH)-$(DATE).ext2 >> $(UBOOT_SCR)
156 echo setenv rd-2 rootfs.$(BR2_ARCH)-$(DATE).jffs2 >> $(UBOOT_SCR)
157 echo setenv rd rootfs.$(BR2_ARCH)-$(DATE).ext2 >> $(UBOOT_SCR)
158 echo setenv ver 1 >> $(UBOOT_SCR)
159 ifneq ($(TARGET_UBOOT_ETHADDR),)
160 echo setenv ethaddr $(TARGET_UBOOT_ETHADDR) >> $(UBOOT_SCR)
161 endif
162 echo setenv fstype ram >> $(UBOOT_SCR)
163 echo fs >> $(UBOOT_SCR)
164 echo os >> $(UBOOT_SCR)
165 echo setargs >> $(UBOOT_SCR)
166 echo saveenv >> $(UBOOT_SCR)
168 $(UBOOT_SCR).$(PROJECT): $(UBOOT_SCR) $(MKIMAGE)
169 $(MKIMAGE) -A arm \
170 -O linux \
171 -T script \
172 -C none \
173 -a 0 \
174 -e 0 \
175 -n "autoscr config" \
176 -d $(UBOOT_SCR) \
177 $(UBOOT_SCR).$(PROJECT)
178 cp $(UBOOT_SCR).$(PROJECT) $(TARGET_ATMEL_COPYTO)
180 $(MKIMAGE): $(MKIMAGE_BINLOC)
181 cp -f $(MKIMAGE_BINLOC) $(MKIMAGE)
183 uboot: $(MKIMAGE) uboot-bin $(UBOOT_SCR).$(PROJECT)
185 uboot-source: $(DL_DIR)/$(UBOOT_SOURCE)
187 uboot-clean:
188 rm -fr $(UBOOT_BUILD_DIR)
189 rm -fr $(UBOOT_PATCHES)
190 rm -f $(BINARIES_DIR)/$(UBOOT_BIN)
191 rm -fr $(UBOOT_DIR)
192 rm -f $(UBOOT_SCR)
193 rm -f $(UBOOT_SCR).$(PROJECT)
194 # -$(MAKE) -C $(UBOOT_DIR)/uboot-tools clean
196 uboot-dirclean: uboot-clean
197 rm -rf $(UBOOT_DIR)
199 uboot-new:
200 rm -fr $(UBOOT_BUILD_DIR)/u-boot
201 rm -fr $(UBOOT_BUILD_DIR)/u-boot.gz
202 rm -fr $(UBOOT_BUILD_DIR)/u-boot.bin
203 rm -fr $(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN)
204 rm -fr $(BINARIES_DIR)/$(UBOOT_BIN)
206 .PHONY: uboot-bin
207 #############################################################
209 # Build the uboot root filesystem image
211 #############################################################
213 UBOOT_TARGET:=$(IMAGE).uboot
215 ubootroot: host-fakeroot makedevs uboot
216 -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
217 @rm -rf $(TARGET_DIR)/usr/man
218 @rm -rf $(TARGET_DIR)/usr/info
219 -/sbin/ldconfig -r $(TARGET_DIR) 2>/dev/null
220 # Use fakeroot to pretend all target binaries are owned by root
221 rm -f $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
222 touch $(STAGING_DIR)/.fakeroot.00000
223 cat $(STAGING_DIR)/.fakeroot* > $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
224 echo "chown -R root:root $(TARGET_DIR)" >> $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
225 # Use fakeroot to pretend to create all needed device nodes
226 echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
227 >> $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
228 # Use fakeroot so mkuboot believes the previous fakery
229 echo "$(UBOOT_DIR)/uboot-tools/mkuboot " \
230 "$(TARGET_DIR) $(UBOOT_TARGET) " \
231 "-noappend $(UBOOT_ENDIANNESS)" \
232 >> $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
233 chmod a+x $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
234 $(HOST_DIR)/usr/bin/fakeroot -- $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
235 -@rm -f $(STAGING_DIR)/_fakeroot.$(notdir $(UBOOT_TARGET))
237 ubootroot-source: uboot-source
239 ubootroot-clean:
240 -$(MAKE) -C $(UBOOT_DIR) clean
242 ubootroot-dirclean:
243 rm -rf $(UBOOT_DIR)
245 #############################################################
247 # Toplevel Makefile options
249 #############################################################
250 ifeq ($(BR2_TARGET_UBOOT_AT91),y)
251 TARGETS+=uboot
252 endif
254 uboot-test:
255 -@echo source=$(DL_DIR)/$(UBOOT_SOURCE)
256 -@ls $(DL_DIR)/$(UBOOT_SOURCE)
257 -@echo patch=$(DL_DIR)/$(UBOOT_PATCH_SOURCE)
258 -@ls $(DL_DIR)/$(UBOOT_PATCH_SOURCE)
259 -@echo unpacked=$(UBOOT_PATCHES)/.unpacked
260 -@ls $(UBOOT_PATCHES)/.unpacked
261 -@echo patch-unpacked=$(UBOOT_PATCHES)/.unpacked
262 -@ls $(UBOOT_PATCHES)/.unpacked
263 -@echo patched-source=$(UBOOT_DIR)/.patched.$(UBOOT_PATCH_SOURCE)
264 -@ls $(UBOOT_DIR)/.patched.$(UBOOT_PATCH_SOURCE)
265 -@echo configured=$(UBOOT_BUILD_DIR)/.configured
266 -@ls $(UBOOT_BUILD_DIR)/.configured
267 -@echo mkimage=$(MKIMAGE_BINLOC)
268 -@ls $(MKIMAGE_BINLOC)
269 -@echo u-boot.bin=$(UBOOT_BUILD_DIR)/u-boot.bin
270 -@ls $(UBOOT_BUILD_DIR)/u-boot.bin
271 -@echo binaries-u-boot.bin=$(BINARIES_DIR)/$(UBOOT_BIN)
272 -@ls $(BINARIES_DIR)/$(UBOOT_BIN)
273 -@echo tftpboot=$(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN)
274 -@ls $(TARGET_ATMEL_COPYTO)/$(UBOOT_BIN)
275 -@echo "mkimage = $(MKIMAGE)"
276 -@ls $(MKIMAGE)
277 -@echo "u-boot script=$(UBOOT_SCR).$(PROJECT)"
278 -@ls $(UBOOT_SCR).$(PROJECT)
279 -@echo "u-boot script (ASCII)=$(UBOOT_SCR)"
280 -@ls $(UBOOT_SCR)
281 -@echo "mkimage binary=$(MKIMAGE_BINLOC)"
282 -@ls $(MKIMAGE_BINLOC)