Makefile 33.5 KB
Newer Older
W
wdenk 已提交
1
#
W
Wolfgang Denk 已提交
2
# (C) Copyright 2000-2011
W
wdenk 已提交
3 4 5 6 7 8 9
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
10
# published by the Free Software Foundatio; either version 2 of
W
wdenk 已提交
11 12 13 14
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
W
wdenk 已提交
16 17 18 19 20 21 22 23
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

W
Wolfgang Denk 已提交
24
VERSION = 2011
W
Wolfgang Denk 已提交
25
PATCHLEVEL = 09
26
SUBLEVEL =
W
Wolfgang Denk 已提交
27
EXTRAVERSION =
28
ifneq "$(SUBLEVEL)" ""
29
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
30 31 32
else
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
endif
33
TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
34
VERSION_FILE = $(obj)include/version_autogenerated.h
35

W
wdenk 已提交
36
HOSTARCH := $(shell uname -m | \
G
Graeme Russ 已提交
37
	sed -e s/i.86/x86/ \
W
wdenk 已提交
38 39 40
	    -e s/sun4u/sparc64/ \
	    -e s/arm.*/arm/ \
	    -e s/sa110/arm/ \
K
Kumar Gala 已提交
41 42
	    -e s/ppc64/powerpc/ \
	    -e s/ppc/powerpc/ \
N
Nobuhiro Iwamatsu 已提交
43 44
	    -e s/macppc/powerpc/\
	    -e s/sh.*/sh/)
W
wdenk 已提交
45

46
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
W
wdenk 已提交
47 48
	    sed -e 's/\(cygwin\).*/cygwin/')

49 50 51 52 53 54
# Set shell to bash if possible, otherwise fall back to sh
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
	else if [ -x /bin/bash ]; then echo /bin/bash; \
	else echo sh; fi; fi)

export	HOSTARCH HOSTOS SHELL
W
wdenk 已提交
55 56 57 58

# Deal with colliding definitions from tcsh etc.
VENDOR=

59 60 61 62 63 64 65 66
#########################################################################
# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif

W
wdenk 已提交
67
#########################################################################
68 69 70
#
# U-boot build supports producing a object files to the separate external
# directory. Two use cases are supported:
71
#
72 73 74 75 76 77 78 79 80 81
# 1) Add O= to the make command line
# 'make O=/tmp/build all'
#
# 2) Set environement variable BUILD_DIR to point to the desired location
# 'export BUILD_DIR=/tmp/build'
# 'make'
#
# The second approach can also be used with a MAKEALL script
# 'export BUILD_DIR=/tmp/build'
# './MAKEALL'
82
#
83
# Command line 'O=' setting overrides BUILD_DIR environent variable.
84
#
85 86
# When none of the above methods is used the local build is performed and
# the object files are placed in the source directory.
87
#
88 89 90 91 92 93 94 95 96

ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif

ifneq ($(BUILD_DIR),)
saved-output := $(BUILD_DIR)
97 98 99 100

# Attempt to create a output directory.
$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})

S
Stefan Roese 已提交
101
# Verify if it was successful.
102 103 104 105 106
BUILD_DIR := $(shell cd $(BUILD_DIR) && /bin/pwd)
$(if $(BUILD_DIR),,$(error output directory "$(saved-output)" does not exist))
endif # ifneq ($(BUILD_DIR),)

OBJTREE		:= $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR))
107
SPLTREE		:= $(OBJTREE)/spl
108 109 110
SRCTREE		:= $(CURDIR)
TOPDIR		:= $(SRCTREE)
LNDIR		:= $(OBJTREE)
111
export	TOPDIR SRCTREE OBJTREE SPLTREE
112 113 114

MKCONFIG	:= $(SRCTREE)/mkconfig
export MKCONFIG
W
wdenk 已提交
115

116
ifneq ($(OBJTREE),$(SRCTREE))
W
Wolfgang Denk 已提交
117
REMOTE_BUILD	:= 1
118 119 120 121 122 123 124 125 126 127 128 129
export REMOTE_BUILD
endif

# $(obj) and (src) are defined in config.mk but here in main Makefile
# we also need them before config.mk is included which is the case for
# some targets like unconfig, clean, clobber, distclean, etc.
ifneq ($(OBJTREE),$(SRCTREE))
obj := $(OBJTREE)/
src := $(SRCTREE)/
else
obj :=
src :=
130
endif
131 132
export obj src

W
Wolfgang Denk 已提交
133 134 135
# Make sure CDPATH settings don't interfere
unexport CDPATH

W
wdenk 已提交
136 137
#########################################################################

138 139 140
# The "tools" are needed early, so put this first
# Don't include stuff already done in $(LIBS)
SUBDIRS	= tools \
141
	  examples/standalone \
P
Peter Tyser 已提交
142
	  examples/api
143

144
.PHONY : $(SUBDIRS) $(VERSION_FILE)
145

146
ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk))
W
wdenk 已提交
147

148 149 150 151 152 153 154
# Include autoconf.mk before config.mk so that the config options are available
# to all top level build files.  We need the dummy all: target to prevent the
# dependency target in autoconf.mk.dep from being the default.
all:
sinclude $(obj)include/autoconf.mk.dep
sinclude $(obj)include/autoconf.mk

W
wdenk 已提交
155
# load ARCH, BOARD, and CPU configuration
156
include $(obj)include/config.mk
W
wdenk 已提交
157
export	ARCH CPU BOARD VENDOR SOC
158

159
# set default to nothing for native builds
W
Wolfgang Denk 已提交
160
ifeq ($(HOSTARCH),$(ARCH))
161
CROSS_COMPILE ?=
W
wdenk 已提交
162
endif
W
wdenk 已提交
163

164 165 166
# load other configuration
include $(TOPDIR)/config.mk

167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
# If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
# that (or fail if absent).  Otherwise, search for a linker script in a
# standard location.

ifndef LDSCRIPT
	#LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug
	ifdef CONFIG_SYS_LDSCRIPT
		# need to strip off double quotes
		LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
	endif
endif

ifndef LDSCRIPT
	ifeq ($(CONFIG_NAND_U_BOOT),y)
		LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
		ifeq ($(wildcard $(LDSCRIPT)),)
			LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds
		endif
	endif
	ifeq ($(wildcard $(LDSCRIPT)),)
		LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
	endif
	ifeq ($(wildcard $(LDSCRIPT)),)
		LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds
	endif
	ifeq ($(wildcard $(LDSCRIPT)),)
$(error could not find linker script)
	endif
endif

W
wdenk 已提交
197 198 199
#########################################################################
# U-Boot objects....order is important (i.e. start must be first)

P
Peter Tyser 已提交
200
OBJS  = $(CPUDIR)/start.o
G
Graeme Russ 已提交
201
ifeq ($(CPU),x86)
P
Peter Tyser 已提交
202 203
OBJS += $(CPUDIR)/start16.o
OBJS += $(CPUDIR)/resetvec.o
W
wdenk 已提交
204
endif
W
wdenk 已提交
205
ifeq ($(CPU),ppc4xx)
P
Peter Tyser 已提交
206
OBJS += $(CPUDIR)/resetvec.o
W
wdenk 已提交
207
endif
W
wdenk 已提交
208
ifeq ($(CPU),mpc85xx)
P
Peter Tyser 已提交
209
OBJS += $(CPUDIR)/resetvec.o
W
wdenk 已提交
210
endif
W
wdenk 已提交
211

212 213
OBJS := $(addprefix $(obj),$(OBJS))

214 215 216
LIBS  = lib/libgeneric.o
LIBS += lib/lzma/liblzma.o
LIBS += lib/lzo/liblzo.o
217
LIBS += lib/zlib/libz.o
218
LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \
219 220
	"board/$(VENDOR)/common/lib$(VENDOR).o"; fi)
LIBS += $(CPUDIR)/lib$(CPU).o
W
wdenk 已提交
221
ifdef SOC
222
LIBS += $(CPUDIR)/$(SOC)/lib$(SOC).o
W
wdenk 已提交
223
endif
S
Stefan Roese 已提交
224
ifeq ($(CPU),ixp)
225
LIBS += arch/arm/cpu/ixp/npe/libnpe.o
S
Stefan Roese 已提交
226
endif
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
LIBS += arch/$(ARCH)/lib/lib$(ARCH).o
LIBS += fs/cramfs/libcramfs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o \
	fs/reiserfs/libreiserfs.o fs/ext2/libext2fs.o fs/yaffs2/libyaffs2.o \
	fs/ubifs/libubifs.o
LIBS += net/libnet.o
LIBS += disk/libdisk.o
LIBS += drivers/bios_emulator/libatibiosemu.o
LIBS += drivers/block/libblock.o
LIBS += drivers/dma/libdma.o
LIBS += drivers/fpga/libfpga.o
LIBS += drivers/gpio/libgpio.o
LIBS += drivers/hwmon/libhwmon.o
LIBS += drivers/i2c/libi2c.o
LIBS += drivers/input/libinput.o
LIBS += drivers/misc/libmisc.o
LIBS += drivers/mmc/libmmc.o
LIBS += drivers/mtd/libmtd.o
LIBS += drivers/mtd/nand/libnand.o
LIBS += drivers/mtd/onenand/libonenand.o
LIBS += drivers/mtd/ubi/libubi.o
LIBS += drivers/mtd/spi/libspi_flash.o
LIBS += drivers/net/libnet.o
LIBS += drivers/net/phy/libphy.o
LIBS += drivers/pci/libpci.o
LIBS += drivers/pcmcia/libpcmcia.o
LIBS += drivers/power/libpower.o
LIBS += drivers/spi/libspi.o
D
Dave Liu 已提交
254
ifeq ($(CPU),mpc83xx)
255
LIBS += drivers/qe/libqe.o
256
LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
257
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
D
Dave Liu 已提交
258
endif
A
Andy Fleming 已提交
259
ifeq ($(CPU),mpc85xx)
260
LIBS += drivers/qe/libqe.o
261
LIBS += drivers/net/fm/libfm.o
262 263
LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
264 265
endif
ifeq ($(CPU),mpc86xx)
266 267
LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
A
Andy Fleming 已提交
268
endif
269 270 271
LIBS += drivers/rtc/librtc.o
LIBS += drivers/serial/libserial.o
LIBS += drivers/twserial/libtws.o
M
Mike Frysinger 已提交
272
LIBS += drivers/usb/eth/libusb_eth.o
273 274 275 276 277 278 279 280 281 282
LIBS += drivers/usb/gadget/libusb_gadget.o
LIBS += drivers/usb/host/libusb_host.o
LIBS += drivers/usb/musb/libusb_musb.o
LIBS += drivers/usb/phy/libusb_phy.o
LIBS += drivers/video/libvideo.o
LIBS += drivers/watchdog/libwatchdog.o
LIBS += common/libcommon.o
LIBS += lib/libfdt/libfdt.o
LIBS += api/libapi.o
LIBS += post/libpost.o
283

284
ifeq ($(SOC),omap3)
285
LIBS += $(CPUDIR)/omap-common/libomap-common.o
286 287
endif
ifeq ($(SOC),omap4)
288
LIBS += $(CPUDIR)/omap-common/libomap-common.o
289 290
endif

291
ifeq ($(SOC),s5pc1xx)
292
LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
293 294
endif
ifeq ($(SOC),s5pc2xx)
295
LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
296 297
endif

298
LIBS := $(addprefix $(obj),$(sort $(LIBS)))
299
.PHONY : $(LIBS) $(TIMESTAMP_FILE)
W
wdenk 已提交
300

301
LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).o
W
Wolfgang Denk 已提交
302 303
LIBBOARD := $(addprefix $(obj),$(LIBBOARD))

W
wdenk 已提交
304
# Add GCC lib
305 306
ifdef USE_PRIVATE_LIBGCC
ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
307
PLATFORM_LIBGCC = $(OBJTREE)/arch/$(ARCH)/lib/libgcc.o
308 309 310 311 312 313 314 315
else
PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
endif
else
PLATFORM_LIBGCC = -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
endif
PLATFORM_LIBS += $(PLATFORM_LIBGCC)
export PLATFORM_LIBS
W
wdenk 已提交
316

317 318 319 320 321 322 323 324
# Special flags for CPP when processing the linker script.
# Pass the version down so we can handle backwards compatibility
# on the fly.
LDPPFLAGS += \
	-include $(TOPDIR)/include/u-boot/u-boot.lds.h \
	$(shell $(LD) --version | \
	  sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')

325
__OBJS := $(subst $(obj),,$(OBJS))
W
Wolfgang Denk 已提交
326
__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
327

328
#########################################################################
W
wdenk 已提交
329 330
#########################################################################

331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
BOARD_SIZE_CHECK = \
	@actual=`wc -c $@ | awk '{print $$1}'`; \
	limit=$(CONFIG_BOARD_SIZE_LIMIT); \
	if test $$actual -gt $$limit; then \
		echo "$@ exceeds file size limit:"; \
		echo "  limit:  $$limit bytes"; \
		echo "  actual: $$actual bytes"; \
		echo "  excess: $$((actual - limit)) bytes"; \
		exit 1; \
	fi
else
BOARD_SIZE_CHECK =
endif

346
# Always append ALL so that arch config.mk's can add custom ones
347
ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
348

349 350
ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
351
ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin
352
ALL-$(CONFIG_MMC_U_BOOT) += $(obj)mmc_spl/u-boot-mmc-spl.bin
353
ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
354

355
all:		$(ALL-y)
W
wdenk 已提交
356

357
$(obj)u-boot.hex:	$(obj)u-boot
W
wdenk 已提交
358 359
		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@

360
$(obj)u-boot.srec:	$(obj)u-boot
361
		$(OBJCOPY) -O srec $< $@
W
wdenk 已提交
362

363
$(obj)u-boot.bin:	$(obj)u-boot
W
wdenk 已提交
364
		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
365
		$(BOARD_SIZE_CHECK)
W
wdenk 已提交
366

367
$(obj)u-boot.ldr:	$(obj)u-boot
368
		$(CREATE_LDR_ENV)
369
		$(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
370
		$(BOARD_SIZE_CHECK)
371 372 373 374 375 376 377

$(obj)u-boot.ldr.hex:	$(obj)u-boot.ldr
		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ -I binary

$(obj)u-boot.ldr.srec:	$(obj)u-boot.ldr
		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -I binary

378
$(obj)u-boot.img:	$(obj)u-boot.bin
379
		$(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
A
aneeshv 已提交
380
		-O u-boot -a $(CONFIG_SYS_TEXT_BASE) -e 0 \
381
		-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
382 383 384
			sed -e 's/"[	 ]*$$/ for $(BOARD) board"/') \
		-d $< $@

385
$(obj)u-boot.imx:       $(obj)u-boot.bin
386
		$(obj)tools/mkimage -n  $(CONFIG_IMX_CONFIG) -T imximage \
387
		-e $(CONFIG_SYS_TEXT_BASE) -d $< $@
388

389
$(obj)u-boot.kwb:       $(obj)u-boot.bin
390
		$(obj)tools/mkimage -n $(CONFIG_SYS_KWD_CONFIG) -T kwbimage \
391
		-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
392

393
$(obj)u-boot.sha1:	$(obj)u-boot.bin
394
		$(obj)tools/ubsha1 $(obj)u-boot.bin
395

396
$(obj)u-boot.dis:	$(obj)u-boot
W
wdenk 已提交
397 398
		$(OBJDUMP) -d $< > $@

399 400 401 402
$(obj)u-boot.ubl:       $(obj)u-boot-nand.bin
		$(obj)tools/mkimage -n $(UBL_CONFIG) -T ublimage \
		-e $(CONFIG_SYS_TEXT_BASE) -d $< $@

403
GEN_UBOOT = \
W
Wolfgang Denk 已提交
404 405
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
406
		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
407
			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
W
wdenk 已提交
408
			-Map u-boot.map -o u-boot
409 410
$(obj)u-boot:	depend \
		$(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
411 412
		$(GEN_UBOOT)
ifeq ($(CONFIG_KALLSYMS),y)
413 414 415 416
		smap=`$(call SYSTEM_MAP,u-boot) | \
			awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
		$(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
			-c common/system_map.c -o $(obj)common/system_map.o
417 418
		$(GEN_UBOOT) $(obj)common/system_map.o
endif
W
wdenk 已提交
419

420
$(OBJS):	depend
P
Peter Tyser 已提交
421
		$(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@))
422

423
$(LIBS):	depend $(SUBDIRS)
424
		$(MAKE) -C $(dir $(subst $(obj),,$@))
W
wdenk 已提交
425

426
$(LIBBOARD):	depend $(LIBS)
W
Wolfgang Denk 已提交
427 428
		$(MAKE) -C $(dir $(subst $(obj),,$@))

429
$(SUBDIRS):	depend
W
wdenk 已提交
430
		$(MAKE) -C $@ all
W
wdenk 已提交
431

432
$(LDSCRIPT):	depend
433 434
		$(MAKE) -C $(dir $@) $(notdir $@)

435 436 437
$(obj)u-boot.lds: $(LDSCRIPT)
		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@

438
nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
439
		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
440

441
$(obj)u-boot-nand.bin:	nand_spl $(obj)u-boot.bin
442
		cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
443

444
onenand_ipl:	$(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
S
Stefan Roese 已提交
445
		$(MAKE) -C onenand_ipl/board/$(BOARDDIR) all
446

447
$(obj)u-boot-onenand.bin:	onenand_ipl $(obj)u-boot.bin
K
Kyungmin Park 已提交
448
		cat $(ONENAND_BIN) $(obj)u-boot.bin > $(obj)u-boot-onenand.bin
449

450 451 452 453 454
mmc_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
		$(MAKE) -C mmc_spl/board/$(BOARDDIR) all

$(obj)mmc_spl/u-boot-mmc-spl.bin:	mmc_spl

455 456 457
$(obj)spl/u-boot-spl.bin:		depend
		$(MAKE) -C spl all

458
$(TIMESTAMP_FILE):
459 460
		@LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
		@LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@
461

462
updater:
M
Mike Frysinger 已提交
463
		$(MAKE) -C tools/updater all
464

D
Daniel Hobi 已提交
465 466
# Explicitly make _depend in subdirs containing multiple targets to prevent
# parallel sub-makes creating .depend files simultaneously.
467 468
depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
		$(obj)include/autoconf.mk \
469 470
		$(obj)include/generated/generic-asm-offsets.h \
		$(obj)include/generated/asm-offsets.h
P
Peter Tyser 已提交
471
		for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
D
Daniel Hobi 已提交
472
			$(MAKE) -C $$dir _depend ; done
W
wdenk 已提交
473

L
Li Yang 已提交
474 475
TAG_SUBDIRS = $(SUBDIRS)
TAG_SUBDIRS += $(dir $(__LIBS))
476 477
TAG_SUBDIRS += include

478 479 480
FIND := find
FINDFLAGS := -L

481
tags ctags:
482
		ctags -w -o $(obj)ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
L
Li Yang 已提交
483
						-name '*.[chS]' -print`
W
wdenk 已提交
484 485

etags:
486
		etags -a -o $(obj)etags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
L
Li Yang 已提交
487
						-name '*.[chS]' -print`
L
Li Yang 已提交
488
cscope:
489 490
		$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \
						cscope.files
L
Li Yang 已提交
491
		cscope -b -q -k
W
wdenk 已提交
492

493 494
SYSTEM_MAP = \
		$(NM) $1 | \
W
wdenk 已提交
495
		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
496 497 498
		LC_ALL=C sort
$(obj)System.map:	$(obj)u-boot
		@$(call SYSTEM_MAP,$<) > $(obj)System.map
W
wdenk 已提交
499

500 501 502 503 504 505
#
# Auto-generate the autoconf.mk file (which is included by all makefiles)
#
# This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
# the dep file is only include in this top level makefile to determine when
# to regenerate the autoconf.mk file.
506 507
$(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
	@$(XECHO) Generating $@ ; \
508
	set -e ; \
509
	: Generate the dependancies ; \
510
	$(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \
511 512 513 514 515
		-MQ $(obj)include/autoconf.mk include/common.h > $@

$(obj)include/autoconf.mk: $(obj)include/config.h
	@$(XECHO) Generating $@ ; \
	set -e ; \
516
	: Extract the config macros ; \
517
	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
518 519
		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
	mv $@.tmp $@
520

521 522 523 524 525 526 527 528 529 530 531 532
$(obj)include/generated/generic-asm-offsets.h:	$(obj)include/autoconf.mk.dep \
	$(obj)lib/asm-offsets.s
	@$(XECHO) Generating $@
	tools/scripts/make-asm-offsets $(obj)lib/asm-offsets.s $@

$(obj)lib/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
	$(src)lib/asm-offsets.c
	@mkdir -p $(obj)lib
	$(CC) -DDO_DEPS_ONLY \
		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
		-o $@ $(src)lib/asm-offsets.c -c -S

533 534 535 536 537 538 539 540 541 542 543 544 545 546 547
$(obj)include/generated/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
	@echo Generating $@
	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@

$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep
	@mkdir -p $(obj)$(CPUDIR)/$(SOC)
	if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
		$(CC) -DDO_DEPS_ONLY \
		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
			-o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
	else \
		touch $@; \
	fi

W
wdenk 已提交
548
#########################################################################
549
else	# !config.mk
550 551
all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
$(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
552
$(filter-out tools,$(SUBDIRS)) $(TIMESTAMP_FILE) \
M
Mike Frysinger 已提交
553
updater depend dep tags ctags etags cscope $(obj)System.map:
W
wdenk 已提交
554 555
	@echo "System not configured - see README" >&2
	@ exit 1
556

557
tools: $(VERSION_FILE)
M
Mike Frysinger 已提交
558
	$(MAKE) -C $@ all
559
endif	# config.mk
W
wdenk 已提交
560

561
$(VERSION_FILE):
562
		@mkdir -p $(dir $(VERSION_FILE))
563 564 565 566 567 568 569 570 571 572 573 574
		@( localvers='$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ; \
		   printf '#define PLAIN_VERSION "%s%s"\n' \
			"$(U_BOOT_VERSION)" "$${localvers}" ; \
		   printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' \
			"$(U_BOOT_VERSION)" "$${localvers}" ; \
		) > $@.tmp
		@( printf '#define CC_VERSION_STRING "%s"\n' \
		 '$(shell $(CC) --version | head -n 1)' )>>  $@.tmp
		@( printf '#define LD_VERSION_STRING "%s"\n' \
		 '$(shell $(LD) -v | head -n 1)' )>>  $@.tmp
		@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@

M
Mike Frysinger 已提交
575 576 577 578
easylogo env gdb:
	$(MAKE) -C tools/$@ all MTD_VERSION=${MTD_VERSION}
gdbtools: gdb

579
tools-all: easylogo env gdb $(VERSION_FILE)
M
Mike Frysinger 已提交
580 581
	$(MAKE) -C tools HOST_TOOLS_ALL=y

582 583
.PHONY : CHANGELOG
CHANGELOG:
584 585
	git log --no-merges U-Boot-1_1_5.. | \
	unexpand -a | sed -e 's/\s\s*$$//' > $@
586

587
include/license.h: tools/bin2header COPYING
588
	cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
W
wdenk 已提交
589 590 591
#########################################################################

unconfig:
592
	@rm -f $(obj)include/config.h $(obj)include/config.mk \
593 594
		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
		$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
W
wdenk 已提交
595

596 597 598
%_config::	unconfig
	@$(MKCONFIG) -A $(@:_config=)

599 600
sinclude $(obj).boards.depend
$(obj).boards.depend:	boards.cfg
601
	awk '(NF && $$1 !~ /^#/) { print $$1 ": " $$1 "_config; $$(MAKE)" }' $< > $@
602

603 604 605 606 607 608
#
# Functions to generate common board directory names
#
lcname	= $(shell echo $(1) | sed -e 's/\(.*\)_config/\L\1/')
ucname	= $(shell echo $(1) | sed -e 's/\(.*\)_config/\U\1/')

W
wdenk 已提交
609 610 611 612
#########################################################################
## Coldfire
#########################################################################

W
Wolfgang Wegner 已提交
613 614
astro_mcf5373l_config \
astro_mcf5373l_RAM_config :	unconfig
615
	@$(MKCONFIG) -n $@ -t $@ astro_mcf5373l m68k mcf532x mcf5373l astro
W
Wolfgang Wegner 已提交
616

617 618 619 620 621 622 623 624 625 626
M52277EVB_config \
M52277EVB_spansion_config \
M52277EVB_stmicro_config :	unconfig
	@case "$@" in \
	M52277EVB_config)		FLASH=SPANSION;; \
	M52277EVB_spansion_config)	FLASH=SPANSION;; \
	M52277EVB_stmicro_config)	FLASH=STMICRO;; \
	esac; \
	if [ "$${FLASH}" = "SPANSION" ] ; then \
		echo "#define CONFIG_SYS_SPANSION_BOOT"	>> $(obj)include/config.h ; \
627
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m52277evb/config.tmp ; \
628 629 630 631 632
		cp $(obj)board/freescale/m52277evb/u-boot.spa $(obj)board/freescale/m52277evb/u-boot.lds ; \
	fi; \
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
633
		echo "CONFIG_SYS_TEXT_BASE = 0x43E00000" > $(obj)board/freescale/m52277evb/config.tmp ; \
634 635
		cp $(obj)board/freescale/m52277evb/u-boot.stm $(obj)board/freescale/m52277evb/u-boot.lds ; \
	fi
636
	@$(MKCONFIG) -n $@ -a M52277EVB m68k mcf5227x m52277evb freescale
637

638 639 640 641 642 643 644 645 646
M5235EVB_config \
M5235EVB_Flash16_config \
M5235EVB_Flash32_config:	unconfig
	@case "$@" in \
	M5235EVB_config)		FLASH=16;; \
	M5235EVB_Flash16_config)	FLASH=16;; \
	M5235EVB_Flash32_config)	FLASH=32;; \
	esac; \
	if [ "$${FLASH}" != "16" ] ; then \
647
		echo "#define NORFLASH_PS32BIT	1" >> $(obj)include/config.h ; \
648
		echo "CONFIG_SYS_TEXT_BASE = 0xFFC00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
649 650
		cp $(obj)board/freescale/m5235evb/u-boot.32 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	else \
651
		echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
652 653
		cp $(obj)board/freescale/m5235evb/u-boot.16 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	fi
654
	@$(MKCONFIG) -n $@ -a M5235EVB m68k mcf523x m5235evb freescale
655

W
Wolfgang Denk 已提交
656
cobra5272_config :		unconfig
657
	@$(MKCONFIG) $@ m68k mcf52x2 cobra5272
W
Wolfgang Denk 已提交
658

659
EB+MCF-EV123_config :		unconfig
660 661
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
662
	@echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
663
	@$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
664 665

EB+MCF-EV123_internal_config :	unconfig
666 667
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
668
	@echo "CONFIG_SYS_TEXT_BASE = 0xF0000000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
669
	@$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
670

671 672 673 674 675 676 677
M5329AFEE_config \
M5329BFEE_config :	unconfig
	@case "$@" in \
	M5329AFEE_config)	NAND=0;; \
	M5329BFEE_config)	NAND=16;; \
	esac; \
	if [ "$${NAND}" != "0" ] ; then \
678
		echo "#define NANDFLASH_SIZE	$${NAND}" > $(obj)include/config.h ; \
679
	fi
680
	@$(MKCONFIG) -n $@ -a M5329EVB m68k mcf532x m5329evb freescale
681

682 683 684 685 686 687 688 689 690
M5373EVB_config :	unconfig
	@case "$@" in \
	M5373EVB_config)	NAND=16;; \
	esac; \
	if [ "$${NAND}" != "0" ] ; then \
		echo "#define NANDFLASH_SIZE	$${NAND}" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a M5373EVB m68k mcf532x m5373evb freescale

691 692 693
M54451EVB_config \
M54451EVB_stmicro_config :	unconfig
	@case "$@" in \
T
TsiChung Liew 已提交
694
	M54451EVB_config)		FLASH=NOR;; \
695 696
	M54451EVB_stmicro_config)	FLASH=STMICRO;; \
	esac; \
T
TsiChung Liew 已提交
697
	if [ "$${FLASH}" = "NOR" ] ; then \
698
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54451evb/config.tmp ; \
699 700 701 702
		cp $(obj)board/freescale/m54451evb/u-boot.spa $(obj)board/freescale/m54451evb/u-boot.lds ; \
	fi; \
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
703
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
704
		echo "CONFIG_SYS_TEXT_BASE = 0x47E00000" > $(obj)board/freescale/m54451evb/config.tmp ; \
705 706
		cp $(obj)board/freescale/m54451evb/u-boot.stm $(obj)board/freescale/m54451evb/u-boot.lds ; \
	fi; \
707
	echo "#define CONFIG_SYS_INPUT_CLKSRC 24000000" >> $(obj)include/config.h ;
708
	@$(MKCONFIG) -n $@ -a M54451EVB m68k mcf5445x m54451evb freescale
709

710 711 712 713 714 715
M54455EVB_config \
M54455EVB_atmel_config \
M54455EVB_intel_config \
M54455EVB_a33_config \
M54455EVB_a66_config \
M54455EVB_i33_config \
716 717
M54455EVB_i66_config \
M54455EVB_stm33_config :	unconfig
718 719 720 721 722 723 724 725
	@case "$@" in \
	M54455EVB_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_atmel_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_intel_config)		FLASH=INTEL; FREQ=33333333;; \
	M54455EVB_a33_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_a66_config)		FLASH=ATMEL; FREQ=66666666;; \
	M54455EVB_i33_config)		FLASH=INTEL; FREQ=33333333;; \
	M54455EVB_i66_config)		FLASH=INTEL; FREQ=66666666;; \
726
	M54455EVB_stm33_config)		FLASH=STMICRO; FREQ=33333333;; \
727
	esac; \
728
	if [ "$${FLASH}" = "INTEL" ] ; then \
729
		echo "#define CONFIG_SYS_INTEL_BOOT" >> $(obj)include/config.h ; \
730
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
731
		cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
732 733
	fi; \
	if [ "$${FLASH}" = "ATMEL" ] ; then \
734
		echo "#define CONFIG_SYS_ATMEL_BOOT"	>> $(obj)include/config.h ; \
735
		echo "CONFIG_SYS_TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
736
		cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
737
	fi; \
738 739
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
740
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
741
		echo "CONFIG_SYS_TEXT_BASE = 0x4FE00000" > $(obj)board/freescale/m54455evb/config.tmp ; \
742 743
		cp $(obj)board/freescale/m54455evb/u-boot.stm $(obj)board/freescale/m54455evb/u-boot.lds ; \
	fi; \
744
	echo "#define CONFIG_SYS_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
745
	$(XECHO) "... with $${FREQ}Hz input clock"
746
	@$(MKCONFIG) -n $@ -a M54455EVB m68k mcf5445x m54455evb freescale
747

748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
M5475AFE_config \
M5475BFE_config \
M5475CFE_config \
M5475DFE_config \
M5475EFE_config \
M5475FFE_config \
M5475GFE_config :	unconfig
	@case "$@" in \
	M5475AFE_config)	BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5475BFE_config)	BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5475CFE_config)	BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5475DFE_config)	BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
	M5475EFE_config)	BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5475FFE_config)	BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
	M5475GFE_config)	BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	esac; \
764 765 766
	echo "#define CONFIG_SYS_BUSCLK	133333333" > $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
767
	if [ "$${RAM1}" != "0" ] ; then \
768
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
769 770
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
771
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
772 773
	fi; \
	if [ "$${VID}" == "1" ] ; then \
774
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
775 776
	fi; \
	if [ "$${USB}" == "1" ] ; then \
777
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
778
	fi
779
	@$(MKCONFIG) -n $@ -a M5475EVB m68k mcf547x_8x m547xevb freescale
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796

M5485AFE_config \
M5485BFE_config \
M5485CFE_config \
M5485DFE_config \
M5485EFE_config \
M5485FFE_config \
M5485GFE_config \
M5485HFE_config :	unconfig
	@case "$@" in \
	M5485AFE_config)	BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5485BFE_config)	BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5485CFE_config)	BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5485DFE_config)	BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
	M5485EFE_config)	BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5485FFE_config)	BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
	M5485GFE_config)	BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
797
	M5485HFE_config)	BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \
798
	esac; \
799 800 801
	echo "#define CONFIG_SYS_BUSCLK	100000000" > $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
802
	if [ "$${RAM1}" != "0" ] ; then \
803
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
804 805
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
806
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
807 808
	fi; \
	if [ "$${VID}" == "1" ] ; then \
809
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
810 811
	fi; \
	if [ "$${USB}" == "1" ] ; then \
812
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
813
	fi
814
	@$(MKCONFIG) -n $@ -a M5485EVB m68k mcf547x_8x m548xevb freescale
815

W
wdenk 已提交
816 817 818
#========================================================================
# ARM
#========================================================================
819

U
Ulf Samuelsson 已提交
820 821
xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1))))

822 823 824
omap1610inn_config \
omap1610inn_cs0boot_config \
omap1610inn_cs3boot_config \
W
wdenk 已提交
825
omap1610inn_cs_autoboot_config \
826 827
omap1610h2_config \
omap1610h2_cs0boot_config \
W
wdenk 已提交
828 829
omap1610h2_cs3boot_config \
omap1610h2_cs_autoboot_config:	unconfig
830
	@mkdir -p $(obj)include
831
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
832
		echo "#define CONFIG_CS0_BOOT" >> .$(obj)include/config.h ; \
W
wdenk 已提交
833
	elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
834
		echo "#define CONFIG_CS_AUTOBOOT" >> $(obj)include/config.h ; \
835
	else \
836
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
837
	fi;
838
	@$(MKCONFIG) -n $@ -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn ti omap
W
wdenk 已提交
839

W
wdenk 已提交
840 841 842
omap730p2_config \
omap730p2_cs0boot_config \
omap730p2_cs3boot_config :	unconfig
843
	@mkdir -p $(obj)include
W
wdenk 已提交
844
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
845
		echo "#define CONFIG_CS0_BOOT" >> $(obj)include/config.h ; \
W
wdenk 已提交
846
	else \
847
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
W
wdenk 已提交
848
	fi;
849
	@$(MKCONFIG) -n $@ -a omap730p2 arm arm926ejs omap730p2 ti omap
W
wdenk 已提交
850

851
spear300_config \
852 853
spear310_config \
spear320_config :	unconfig
854
	@$(MKCONFIG) -n $@ -t $@ spear3xx arm arm926ejs $(@:_config=) spear spear
855

856
spear600_config :	unconfig
857
	@$(MKCONFIG) -n $@ -t $@ spear6xx arm arm926ejs $(@:_config=) spear spear
858

859 860 861 862 863 864 865 866
SX1_stdout_serial_config \
SX1_config:		unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _stdout_serial_, $@)" ] ; then \
		echo "#undef CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \
	else \
		echo "#define CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \
	fi;
867
	@$(MKCONFIG) -n $@ SX1 arm arm925t sx1
W
wdenk 已提交
868

W
wdenk 已提交
869
#########################################################################
W
wdenk 已提交
870
## XScale Systems
W
wdenk 已提交
871 872
#########################################################################

873
pdnb3_config \
874
scpu_config:	unconfig
875
	@mkdir -p $(obj)include
876
	@if [ "$(findstring scpu_,$@)" ] ; then \
877
		echo "#define CONFIG_SCPU"	>>$(obj)include/config.h ; \
878
	fi
879
	@$(MKCONFIG) -n $@ -a pdnb3 arm ixp pdnb3 prodrive
W
Wolfgang Denk 已提交
880

881 882 883
#########################################################################
## ARM1136 Systems
#########################################################################
W
wdenk 已提交
884

P
Peter Pearse 已提交
885
apollon_config		: unconfig
886
	@mkdir -p $(obj)include
887 888
	@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
	@echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk
889
	@$(MKCONFIG) $@ arm arm1136 apollon - omap24xx
P
Peter Pearse 已提交
890

891
imx31_phycore_eet_config \
S
Sascha Hauer 已提交
892
imx31_phycore_config	: unconfig
893
	@mkdir -p $(obj)include
894 895 896
	@if [ -n "$(findstring _eet_,$@)" ]; then			\
		echo "#define CONFIG_IMX31_PHYCORE_EET" >> $(obj)include/config.h;	\
	fi
897
	@$(MKCONFIG) -n $@ -a imx31_phycore arm arm1136 imx31_phycore - mx31
S
Sascha Hauer 已提交
898

899 900 901 902 903 904 905 906
mx31pdk_config \
mx31pdk_nand_config	: unconfig
	@mkdir -p $(obj)include
	@if [ -n "$(findstring _nand_,$@)" ]; then					\
		echo "#define CONFIG_NAND_U_BOOT" >> $(obj)include/config.h;		\
	else										\
		echo "#define CONFIG_SKIP_LOWLEVEL_INIT" >> $(obj)include/config.h;	\
	fi
907
	@$(MKCONFIG) -n $@ -a mx31pdk arm arm1136 mx31pdk freescale mx31
908

909 910 911 912 913 914 915 916
#########################################################################
## ARM1176 Systems
#########################################################################
smdk6400_noUSB_config	\
smdk6400_config	:	unconfig
	@mkdir -p $(obj)include $(obj)board/samsung/smdk6400
	@mkdir -p $(obj)nand_spl/board/samsung/smdk6400
	@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
917
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
918 919 920 921 922
	@if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then			\
		echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
	else										\
		echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
	fi
W
Wolfgang Denk 已提交
923
	@$(MKCONFIG) smdk6400 arm arm1176 smdk6400 samsung s3c64xx
924 925
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

W
wdenk 已提交
926 927
#########################################################################
#########################################################################
W
wdenk 已提交
928 929

clean:
930
	@rm -f $(obj)examples/standalone/82559_eeprom			  \
931
	       $(obj)examples/standalone/atmel_df_pow2			  \
932 933 934 935 936
	       $(obj)examples/standalone/eepro100_eeprom		  \
	       $(obj)examples/standalone/hello_world			  \
	       $(obj)examples/standalone/interrupt			  \
	       $(obj)examples/standalone/mem_to_mem_idma2intr		  \
	       $(obj)examples/standalone/sched				  \
937
	       $(obj)examples/standalone/smc911{11,x}_eeprom		  \
938 939
	       $(obj)examples/standalone/test_burst			  \
	       $(obj)examples/standalone/timer
P
Peter Tyser 已提交
940
	@rm -f $(obj)examples/api/demo{,.bin}
941 942 943 944 945 946 947 948
	@rm -f $(obj)tools/bmp_logo	   $(obj)tools/easylogo/easylogo  \
	       $(obj)tools/env/{fw_printenv,fw_setenv}			  \
	       $(obj)tools/envcrc					  \
	       $(obj)tools/gdb/{astest,gdbcont,gdbsend}			  \
	       $(obj)tools/gen_eth_addr    $(obj)tools/img2srec		  \
	       $(obj)tools/mkimage	   $(obj)tools/mpc86x_clk	  \
	       $(obj)tools/ncb		   $(obj)tools/ubsha1
	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
949
	       $(obj)board/matrix_vision/*/bootscript.img		  \
950
	       $(obj)board/voiceblue/eeprom 				  \
951
	       $(obj)u-boot.lds						  \
952 953
	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
	       $(obj)arch/blackfin/cpu/init.{lds,elf}
954
	@rm -f $(obj)include/bmp_logo.h
955
	@rm -f $(obj)lib/asm-offsets.s
956 957
	@rm -f $(obj)include/generated/asm-offsets.h
	@rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
958
	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
K
Kyungmin Park 已提交
959
	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
960
	@rm -f $(obj)mmc_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
K
Kyungmin Park 已提交
961
	@rm -f $(ONENAND_BIN)
962
	@rm -f $(obj)onenand_ipl/u-boot.lds
963
	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
P
Peter Tyser 已提交
964
	@rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
965
	@find $(OBJTREE) -type f \
W
wdenk 已提交
966
		\( -name 'core' -o -name '*.bak' -o -name '*~' \
967
		-o -name '*.o'	-o -name '*.a' -o -name '*.exe'	\) -print \
W
wdenk 已提交
968 969 970
		| xargs rm -f

clobber:	clean
971
	@find $(OBJTREE) -type f \( -name '*.depend' \
W
wdenk 已提交
972 973 974
		-o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
		-print0 \
		| xargs -0 rm -f
L
Li Yang 已提交
975
	@rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \
W
Wolfgang Denk 已提交
976
		$(obj)cscope.* $(obj)*.*~
977
	@rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL-y)
978
	@rm -f $(obj)u-boot.kwb
979
	@rm -f $(obj)u-boot.imx
980
	@rm -f $(obj)u-boot.ubl
981
	@rm -f $(obj)tools/{env/crc32.c,inca-swap-bytes}
S
Stefan Roese 已提交
982
	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
983
	@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
984
	@rm -fr $(obj)include/generated
985 986
	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
	@[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
987
	@[ ! -d $(obj)mmc_spl ] || find $(obj)mmc_spl -name "*" -type l -print | xargs rm -f
988 989 990

mrproper \
distclean:	clobber unconfig
991
ifneq ($(OBJTREE),$(SRCTREE))
992
	rm -rf $(obj)*
993
endif
W
wdenk 已提交
994 995 996

backup:
	F=`basename $(TOPDIR)` ; cd .. ; \
997
	gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
W
wdenk 已提交
998 999

#########################################################################