Makefile 37.6 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 = 06
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 256
LIBS += drivers/qe/libqe.o
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
D
Dave Liu 已提交
257
endif
A
Andy Fleming 已提交
258
ifeq ($(CPU),mpc85xx)
259 260 261
LIBS += drivers/qe/libqe.o
LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
262 263
endif
ifeq ($(CPU),mpc86xx)
264 265
LIBS += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o
LIBS += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
A
Andy Fleming 已提交
266
endif
267 268 269
LIBS += drivers/rtc/librtc.o
LIBS += drivers/serial/libserial.o
LIBS += drivers/twserial/libtws.o
M
Mike Frysinger 已提交
270
LIBS += drivers/usb/eth/libusb_eth.o
271 272 273 274 275 276 277 278 279 280
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
281

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

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

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

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

W
wdenk 已提交
302
# Add GCC lib
303 304
ifdef USE_PRIVATE_LIBGCC
ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
305
PLATFORM_LIBGCC = $(OBJTREE)/arch/$(ARCH)/lib/libgcc.o
306 307 308 309 310 311 312 313
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 已提交
314

315 316 317 318 319 320 321 322
# 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')

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

326
#########################################################################
W
wdenk 已提交
327 328
#########################################################################

329 330 331 332 333 334 335 336 337 338 339 340 341 342 343
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

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

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

353
all:		$(ALL-y)
W
wdenk 已提交
354

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

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

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

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

$(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

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

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

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

391
$(obj)u-boot.sha1:	$(obj)u-boot.bin
392
		$(obj)tools/ubsha1 $(obj)u-boot.bin
393

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

397
GEN_UBOOT = \
W
Wolfgang Denk 已提交
398 399
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
400
		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
401
			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
W
wdenk 已提交
402
			-Map u-boot.map -o u-boot
403 404
$(obj)u-boot:	depend \
		$(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
405 406
		$(GEN_UBOOT)
ifeq ($(CONFIG_KALLSYMS),y)
407 408 409 410
		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
411 412
		$(GEN_UBOOT) $(obj)common/system_map.o
endif
W
wdenk 已提交
413

414
$(OBJS):	depend
P
Peter Tyser 已提交
415
		$(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@))
416

417
$(LIBS):	depend $(SUBDIRS)
418
		$(MAKE) -C $(dir $(subst $(obj),,$@))
W
wdenk 已提交
419

420
$(LIBBOARD):	depend $(LIBS)
W
Wolfgang Denk 已提交
421 422
		$(MAKE) -C $(dir $(subst $(obj),,$@))

423
$(SUBDIRS):	depend
W
wdenk 已提交
424
		$(MAKE) -C $@ all
W
wdenk 已提交
425

426
$(LDSCRIPT):	depend
427 428
		$(MAKE) -C $(dir $@) $(notdir $@)

429 430 431
$(obj)u-boot.lds: $(LDSCRIPT)
		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@

432
nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
433
		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
434

435
$(obj)u-boot-nand.bin:	nand_spl $(obj)u-boot.bin
436
		cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
437

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

441
$(obj)u-boot-onenand.bin:	onenand_ipl $(obj)u-boot.bin
K
Kyungmin Park 已提交
442
		cat $(ONENAND_BIN) $(obj)u-boot.bin > $(obj)u-boot-onenand.bin
443

444 445 446 447 448
mmc_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
		$(MAKE) -C mmc_spl/board/$(BOARDDIR) all

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

449 450 451
$(obj)spl/u-boot-spl.bin:		depend
		$(MAKE) -C spl all

452
$(TIMESTAMP_FILE):
453 454
		@LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
		@LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@
455

456
updater:
M
Mike Frysinger 已提交
457
		$(MAKE) -C tools/updater all
458

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

L
Li Yang 已提交
467 468
TAG_SUBDIRS = $(SUBDIRS)
TAG_SUBDIRS += $(dir $(__LIBS))
469 470
TAG_SUBDIRS += include

471 472 473
FIND := find
FINDFLAGS := -L

474
tags ctags:
475
		ctags -w -o $(obj)ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
L
Li Yang 已提交
476
						-name '*.[chS]' -print`
W
wdenk 已提交
477 478

etags:
479
		etags -a -o $(obj)etags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
L
Li Yang 已提交
480
						-name '*.[chS]' -print`
L
Li Yang 已提交
481
cscope:
482 483
		$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \
						cscope.files
L
Li Yang 已提交
484
		cscope -b -q -k
W
wdenk 已提交
485

486 487
SYSTEM_MAP = \
		$(NM) $1 | \
W
wdenk 已提交
488
		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
489 490 491
		LC_ALL=C sort
$(obj)System.map:	$(obj)u-boot
		@$(call SYSTEM_MAP,$<) > $(obj)System.map
W
wdenk 已提交
492

493 494 495 496 497 498
#
# 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.
499 500
$(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
	@$(XECHO) Generating $@ ; \
501
	set -e ; \
502
	: Generate the dependancies ; \
503
	$(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \
504 505 506 507 508
		-MQ $(obj)include/autoconf.mk include/common.h > $@

$(obj)include/autoconf.mk: $(obj)include/config.h
	@$(XECHO) Generating $@ ; \
	set -e ; \
509
	: Extract the config macros ; \
510
	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
511 512
		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
	mv $@.tmp $@
513

514 515 516 517 518 519 520 521 522 523 524 525
$(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

W
wdenk 已提交
526
#########################################################################
527
else	# !config.mk
528 529
all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
$(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
530
$(filter-out tools,$(SUBDIRS)) $(TIMESTAMP_FILE) \
M
Mike Frysinger 已提交
531
updater depend dep tags ctags etags cscope $(obj)System.map:
W
wdenk 已提交
532 533
	@echo "System not configured - see README" >&2
	@ exit 1
534

535
tools: $(VERSION_FILE)
M
Mike Frysinger 已提交
536
	$(MAKE) -C $@ all
537
endif	# config.mk
W
wdenk 已提交
538

539
$(VERSION_FILE):
540
		@mkdir -p $(dir $(VERSION_FILE))
541 542 543 544 545 546 547 548 549 550 551 552
		@( 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 已提交
553 554 555 556
easylogo env gdb:
	$(MAKE) -C tools/$@ all MTD_VERSION=${MTD_VERSION}
gdbtools: gdb

557
tools-all: easylogo env gdb $(VERSION_FILE)
M
Mike Frysinger 已提交
558 559
	$(MAKE) -C tools HOST_TOOLS_ALL=y

560 561
.PHONY : CHANGELOG
CHANGELOG:
562 563
	git log --no-merges U-Boot-1_1_5.. | \
	unexpand -a | sed -e 's/\s\s*$$//' > $@
564

565
include/license.h: tools/bin2header COPYING
566
	cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
W
wdenk 已提交
567 568 569
#########################################################################

unconfig:
570
	@rm -f $(obj)include/config.h $(obj)include/config.mk \
571 572
		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
		$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
W
wdenk 已提交
573

574 575 576
%_config::	unconfig
	@$(MKCONFIG) -A $(@:_config=)

577 578
sinclude $(obj).boards.depend
$(obj).boards.depend:	boards.cfg
579
	awk '(NF && $$1 !~ /^#/) { print $$1 ": " $$1 "_config; $$(MAKE)" }' $< > $@
580

581 582 583 584 585 586
#
# 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 已提交
587 588 589 590
#########################################################################
## Coldfire
#########################################################################

W
Wolfgang Wegner 已提交
591 592
astro_mcf5373l_config \
astro_mcf5373l_RAM_config :	unconfig
593
	@$(MKCONFIG) -n $@ -t $@ astro_mcf5373l m68k mcf532x mcf5373l astro
W
Wolfgang Wegner 已提交
594

595 596 597 598 599 600 601 602 603 604
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 ; \
605
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m52277evb/config.tmp ; \
606 607 608 609 610
		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 ; \
611
		echo "CONFIG_SYS_TEXT_BASE = 0x43E00000" > $(obj)board/freescale/m52277evb/config.tmp ; \
612 613
		cp $(obj)board/freescale/m52277evb/u-boot.stm $(obj)board/freescale/m52277evb/u-boot.lds ; \
	fi
614
	@$(MKCONFIG) -n $@ -a M52277EVB m68k mcf5227x m52277evb freescale
615

616 617 618 619 620 621 622 623 624
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 \
625
		echo "#define NORFLASH_PS32BIT	1" >> $(obj)include/config.h ; \
626
		echo "CONFIG_SYS_TEXT_BASE = 0xFFC00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
627 628
		cp $(obj)board/freescale/m5235evb/u-boot.32 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	else \
629
		echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
630 631
		cp $(obj)board/freescale/m5235evb/u-boot.16 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	fi
632
	@$(MKCONFIG) -n $@ -a M5235EVB m68k mcf523x m5235evb freescale
633

W
Wolfgang Denk 已提交
634
cobra5272_config :		unconfig
635
	@$(MKCONFIG) $@ m68k mcf52x2 cobra5272
W
Wolfgang Denk 已提交
636

637
EB+MCF-EV123_config :		unconfig
638 639
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
640
	@echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
641
	@$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
642 643

EB+MCF-EV123_internal_config :	unconfig
644 645
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
646
	@echo "CONFIG_SYS_TEXT_BASE = 0xF0000000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
647
	@$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
648

649 650 651 652 653 654 655
M5329AFEE_config \
M5329BFEE_config :	unconfig
	@case "$@" in \
	M5329AFEE_config)	NAND=0;; \
	M5329BFEE_config)	NAND=16;; \
	esac; \
	if [ "$${NAND}" != "0" ] ; then \
656
		echo "#define NANDFLASH_SIZE	$${NAND}" > $(obj)include/config.h ; \
657
	fi
658
	@$(MKCONFIG) -n $@ -a M5329EVB m68k mcf532x m5329evb freescale
659

660 661 662 663 664 665 666 667 668
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

669 670 671
M54451EVB_config \
M54451EVB_stmicro_config :	unconfig
	@case "$@" in \
T
TsiChung Liew 已提交
672
	M54451EVB_config)		FLASH=NOR;; \
673 674
	M54451EVB_stmicro_config)	FLASH=STMICRO;; \
	esac; \
T
TsiChung Liew 已提交
675
	if [ "$${FLASH}" = "NOR" ] ; then \
676
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54451evb/config.tmp ; \
677 678 679 680
		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 ; \
681
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
682
		echo "CONFIG_SYS_TEXT_BASE = 0x47E00000" > $(obj)board/freescale/m54451evb/config.tmp ; \
683 684
		cp $(obj)board/freescale/m54451evb/u-boot.stm $(obj)board/freescale/m54451evb/u-boot.lds ; \
	fi; \
685
	echo "#define CONFIG_SYS_INPUT_CLKSRC 24000000" >> $(obj)include/config.h ;
686
	@$(MKCONFIG) -n $@ -a M54451EVB m68k mcf5445x m54451evb freescale
687

688 689 690 691 692 693
M54455EVB_config \
M54455EVB_atmel_config \
M54455EVB_intel_config \
M54455EVB_a33_config \
M54455EVB_a66_config \
M54455EVB_i33_config \
694 695
M54455EVB_i66_config \
M54455EVB_stm33_config :	unconfig
696 697 698 699 700 701 702 703
	@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;; \
704
	M54455EVB_stm33_config)		FLASH=STMICRO; FREQ=33333333;; \
705
	esac; \
706
	if [ "$${FLASH}" = "INTEL" ] ; then \
707
		echo "#define CONFIG_SYS_INTEL_BOOT" >> $(obj)include/config.h ; \
708
		echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
709
		cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
710 711
	fi; \
	if [ "$${FLASH}" = "ATMEL" ] ; then \
712
		echo "#define CONFIG_SYS_ATMEL_BOOT"	>> $(obj)include/config.h ; \
713
		echo "CONFIG_SYS_TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
714
		cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
715
	fi; \
716 717
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
718
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
719
		echo "CONFIG_SYS_TEXT_BASE = 0x4FE00000" > $(obj)board/freescale/m54455evb/config.tmp ; \
720 721
		cp $(obj)board/freescale/m54455evb/u-boot.stm $(obj)board/freescale/m54455evb/u-boot.lds ; \
	fi; \
722
	echo "#define CONFIG_SYS_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
723
	@$(MKCONFIG) -n $@ -a M54455EVB m68k mcf5445x m54455evb freescale
724

725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740
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; \
741 742 743
	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 ; \
744
	if [ "$${RAM1}" != "0" ] ; then \
745
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
746 747
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
748
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
749 750
	fi; \
	if [ "$${VID}" == "1" ] ; then \
751
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
752 753
	fi; \
	if [ "$${USB}" == "1" ] ; then \
754
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
755
	fi
756
	@$(MKCONFIG) -n $@ -a M5475EVB m68k mcf547x_8x m547xevb freescale
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773

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;; \
774
	M5485HFE_config)	BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \
775
	esac; \
776 777 778
	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 ; \
779
	if [ "$${RAM1}" != "0" ] ; then \
780
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
781 782
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
783
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
784 785
	fi; \
	if [ "$${VID}" == "1" ] ; then \
786
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
787 788
	fi; \
	if [ "$${USB}" == "1" ] ; then \
789
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
790
	fi
791
	@$(MKCONFIG) -n $@ -a M5485EVB m68k mcf547x_8x m548xevb freescale
792

W
wdenk 已提交
793 794 795
#========================================================================
# ARM
#========================================================================
796

U
Ulf Samuelsson 已提交
797
#########################################################################
798
## ARM926EJ-S Systems
U
Ulf Samuelsson 已提交
799 800
#########################################################################

801 802 803
at91sam9261ek_nandflash_config \
at91sam9261ek_dataflash_cs0_config \
at91sam9261ek_dataflash_cs3_config \
804 805 806 807 808 809 810 811 812 813 814
at91sam9261ek_config \
at91sam9g10ek_nandflash_config \
at91sam9g10ek_dataflash_cs0_config \
at91sam9g10ek_dataflash_cs3_config \
at91sam9g10ek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring 9g10,$@)" ] ; then \
		echo "#define CONFIG_AT91SAM9G10EK 1"	>>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_AT91SAM9261EK 1"	>>$(obj)include/config.h ; \
	fi;
815 816
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
817
	elif [ "$(findstring dataflash_cs0,$@)" ] ; then \
818 819 820 821
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS3 1"	>>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1"	>>$(obj)include/config.h ; \
	fi;
822
	@$(MKCONFIG) -n $@ -a at91sam9261ek arm arm926ejs at91sam9261ek atmel at91
823

824 825
at91sam9263ek_norflash_config \
at91sam9263ek_norflash_boot_config \
826 827 828
at91sam9263ek_nandflash_config \
at91sam9263ek_dataflash_config \
at91sam9263ek_dataflash_cs0_config \
829
at91sam9263ek_config	:	unconfig
830
	@mkdir -p $(obj)include
831 832
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
833 834
	elif [ "$(findstring norflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NORFLASH 1"	>>$(obj)include/config.h ; \
835 836 837
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH 1"	>>$(obj)include/config.h ; \
	fi;
838 839 840
	@if [ "$(findstring norflash_boot,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_BOOT_NORFLASH 1"	>>$(obj)include/config.h ; \
	fi;
841
	@$(MKCONFIG) -n $@ -a at91sam9263ek arm arm926ejs at91sam9263ek atmel at91
842 843 844 845

at91sam9rlek_nandflash_config \
at91sam9rlek_dataflash_config \
at91sam9rlek_dataflash_cs0_config \
846
at91sam9rlek_config	:	unconfig
847
	@mkdir -p $(obj)include
848 849 850 851 852
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH 1"	>>$(obj)include/config.h ; \
	fi;
853
	@$(MKCONFIG) -n $@ -a at91sam9rlek arm arm926ejs at91sam9rlek atmel at91
854

855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873
at91sam9m10g45ek_nandflash_config \
at91sam9m10g45ek_dataflash_config \
at91sam9m10g45ek_dataflash_cs0_config \
at91sam9m10g45ek_config \
at91sam9g45ekes_nandflash_config \
at91sam9g45ekes_dataflash_config \
at91sam9g45ekes_dataflash_cs0_config \
at91sam9g45ekes_config	:	unconfig
	@mkdir -p $(obj)include
		@if [ "$(findstring 9m10,$@)" ] ; then \
		echo "#define CONFIG_AT91SAM9M10G45EK 1"	>>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_AT91SAM9G45EKES 1"	>>$(obj)include/config.h ; \
	fi;
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_ATMEL_SPI 1"	>>$(obj)include/config.h ; \
	fi;
874
	@$(MKCONFIG) -n $@ -a at91sam9m10g45ek arm arm926ejs at91sam9m10g45ek atmel at91
875

A
Asen Dimov 已提交
876 877 878 879
pm9g45_config	:	unconfig
	@mkdir -p $(obj)include
	@$(MKCONFIG) -a pm9g45 arm arm926ejs pm9g45 ronetix at91

880 881 882 883 884
SBC35_A9G20_NANDFLASH_config \
SBC35_A9G20_EEPROM_config \
SBC35_A9G20_config	:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h
885
	@$(MKCONFIG) -n $@ -a sbc35_a9g20 arm arm926ejs sbc35_a9g20 calao at91
886

887 888 889 890 891 892 893 894
TNY_A9G20_NANDFLASH_config \
TNY_A9G20_EEPROM_config \
TNY_A9G20_config \
TNY_A9260_NANDFLASH_config \
TNY_A9260_EEPROM_config \
TNY_A9260_config	:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_$(@:_config=) 1" >$(obj)include/config.h
895
	@$(MKCONFIG) -n $@ -a tny_a9260 arm arm926ejs tny_a9260 calao at91
896

897 898 899 900 901 902 903 904
########################################################################
## ARM Integrator boards - see doc/README-integrator for more info.
integratorap_config	\
ap_config		\
ap966_config		\
ap922_config		\
ap922_XA10_config	\
ap7_config		\
W
Wolfgang Denk 已提交
905
ap720t_config		\
906 907 908
ap920t_config		\
ap926ejs_config		\
ap946es_config: unconfig
909
	@board/armltd/integrator/split_by_variant.sh ap $@
910 911 912 913 914 915 916 917 918 919 920

integratorcp_config	\
cp_config		\
cp920t_config		\
cp926ejs_config		\
cp946es_config		\
cp1136_config		\
cp966_config		\
cp922_config		\
cp922_XA10_config	\
cp1026_config: unconfig
921
	@board/armltd/integrator/split_by_variant.sh cp $@
W
wdenk 已提交
922

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

925 926 927
omap1610inn_config \
omap1610inn_cs0boot_config \
omap1610inn_cs3boot_config \
W
wdenk 已提交
928
omap1610inn_cs_autoboot_config \
929 930
omap1610h2_config \
omap1610h2_cs0boot_config \
W
wdenk 已提交
931 932
omap1610h2_cs3boot_config \
omap1610h2_cs_autoboot_config:	unconfig
933
	@mkdir -p $(obj)include
934
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
935
		echo "#define CONFIG_CS0_BOOT" >> .$(obj)include/config.h ; \
W
wdenk 已提交
936
	elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
937
		echo "#define CONFIG_CS_AUTOBOOT" >> $(obj)include/config.h ; \
938
	else \
939
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
940
	fi;
941
	@$(MKCONFIG) -n $@ -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn ti omap
W
wdenk 已提交
942

W
wdenk 已提交
943 944 945
omap730p2_config \
omap730p2_cs0boot_config \
omap730p2_cs3boot_config :	unconfig
946
	@mkdir -p $(obj)include
W
wdenk 已提交
947
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
948
		echo "#define CONFIG_CS0_BOOT" >> $(obj)include/config.h ; \
W
wdenk 已提交
949
	else \
950
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
W
wdenk 已提交
951
	fi;
952
	@$(MKCONFIG) -n $@ -a omap730p2 arm arm926ejs omap730p2 ti omap
W
wdenk 已提交
953

954
spear300_config \
955 956
spear310_config \
spear320_config :	unconfig
957
	@$(MKCONFIG) -n $@ -t $@ spear3xx arm arm926ejs $(@:_config=) spear spear
958

959
spear600_config :	unconfig
960
	@$(MKCONFIG) -n $@ -t $@ spear6xx arm arm926ejs $(@:_config=) spear spear
961

962 963 964 965 966 967 968 969
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;
970
	@$(MKCONFIG) -n $@ SX1 arm arm925t sx1
W
wdenk 已提交
971

J
John Rigby 已提交
972 973
tx25_config	: unconfig
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
974
	@$(MKCONFIG) $@ arm arm926ejs tx25 karo mx25
J
John Rigby 已提交
975

976 977 978 979 980 981 982 983 984 985
edb9301_config \
edb9302_config \
edb9302a_config \
edb9307_config \
edb9307a_config \
edb9312_config \
edb9315_config \
edb9315a_config: unconfig
	@$(MKCONFIG) -n $@ -t $(@:_config=) edb93xx arm arm920t edb93xx - ep93xx

986
#########################################################################
987
# ARM supplied Versatile development boards
988 989
#########################################################################

990 991 992
versatile_config	\
versatileab_config	\
versatilepb_config :	unconfig
993
	@board/armltd/versatile/split_by_variant.sh $@
W
wdenk 已提交
994

W
wdenk 已提交
995
#########################################################################
W
wdenk 已提交
996
## XScale Systems
W
wdenk 已提交
997 998
#########################################################################

999
pdnb3_config \
1000
scpu_config:	unconfig
1001
	@mkdir -p $(obj)include
1002
	@if [ "$(findstring scpu_,$@)" ] ; then \
1003
		echo "#define CONFIG_SCPU"	>>$(obj)include/config.h ; \
1004
	fi
1005
	@$(MKCONFIG) -n $@ -a pdnb3 arm ixp pdnb3 prodrive
W
Wolfgang Denk 已提交
1006

1007 1008 1009
#########################################################################
## ARM1136 Systems
#########################################################################
W
wdenk 已提交
1010

P
Peter Pearse 已提交
1011
apollon_config		: unconfig
1012
	@mkdir -p $(obj)include
1013 1014
	@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
	@echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk
1015
	@$(MKCONFIG) $@ arm arm1136 apollon - omap24xx
P
Peter Pearse 已提交
1016

1017
imx31_phycore_eet_config \
S
Sascha Hauer 已提交
1018
imx31_phycore_config	: unconfig
1019
	@mkdir -p $(obj)include
1020 1021 1022
	@if [ -n "$(findstring _eet_,$@)" ]; then			\
		echo "#define CONFIG_IMX31_PHYCORE_EET" >> $(obj)include/config.h;	\
	fi
1023
	@$(MKCONFIG) -n $@ -a imx31_phycore arm arm1136 imx31_phycore - mx31
S
Sascha Hauer 已提交
1024

1025 1026 1027 1028 1029 1030 1031 1032
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
1033
	@$(MKCONFIG) -n $@ -a mx31pdk arm arm1136 mx31pdk freescale mx31
1034

1035 1036 1037 1038 1039 1040 1041 1042
#########################################################################
## 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
1043
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
1044 1045 1046 1047 1048
	@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 已提交
1049
	@$(MKCONFIG) smdk6400 arm arm1176 smdk6400 samsung s3c64xx
1050 1051
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

W
wdenk 已提交
1052 1053
#########################################################################
#########################################################################
W
wdenk 已提交
1054 1055

clean:
1056
	@rm -f $(obj)examples/standalone/82559_eeprom			  \
1057
	       $(obj)examples/standalone/atmel_df_pow2			  \
1058 1059 1060 1061 1062
	       $(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				  \
1063
	       $(obj)examples/standalone/smc911{11,x}_eeprom		  \
1064 1065
	       $(obj)examples/standalone/test_burst			  \
	       $(obj)examples/standalone/timer
P
Peter Tyser 已提交
1066
	@rm -f $(obj)examples/api/demo{,.bin}
1067 1068 1069 1070 1071 1072 1073 1074
	@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}	  \
1075
	       $(obj)board/matrix_vision/*/bootscript.img		  \
1076
	       $(obj)board/netstar/{eeprom,crcek,crcit,*.srec,*.bin}	  \
1077
	       $(obj)board/voiceblue/eeprom 				  \
W
Wolfgang Denk 已提交
1078
	       $(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds  \
1079
	       $(obj)u-boot.lds						  \
1080
	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]
1081
	@rm -f $(obj)include/bmp_logo.h
1082
	@rm -f $(obj)lib/asm-offsets.s
1083
	@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 已提交
1084
	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
1085
	@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 已提交
1086
	@rm -f $(ONENAND_BIN)
1087
	@rm -f $(obj)onenand_ipl/u-boot.lds
1088
	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
P
Peter Tyser 已提交
1089
	@rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
1090
	@find $(OBJTREE) -type f \
W
wdenk 已提交
1091
		\( -name 'core' -o -name '*.bak' -o -name '*~' \
1092
		-o -name '*.o'	-o -name '*.a' -o -name '*.exe'	\) -print \
W
wdenk 已提交
1093 1094 1095
		| xargs rm -f

clobber:	clean
1096
	@find $(OBJTREE) -type f \( -name '*.depend' \
W
wdenk 已提交
1097 1098 1099
		-o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
		-print0 \
		| xargs -0 rm -f
L
Li Yang 已提交
1100
	@rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \
W
Wolfgang Denk 已提交
1101
		$(obj)cscope.* $(obj)*.*~
1102
	@rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL-y)
1103
	@rm -f $(obj)u-boot.kwb
1104
	@rm -f $(obj)u-boot.imx
1105
	@rm -f $(obj)tools/{env/crc32.c,inca-swap-bytes}
S
Stefan Roese 已提交
1106
	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
1107
	@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
1108
	@rm -fr $(obj)include/generated
1109 1110
	@[ ! -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
1111
	@[ ! -d $(obj)mmc_spl ] || find $(obj)mmc_spl -name "*" -type l -print | xargs rm -f
1112 1113 1114

mrproper \
distclean:	clobber unconfig
1115
ifneq ($(OBJTREE),$(SRCTREE))
1116
	rm -rf $(obj)*
1117
endif
W
wdenk 已提交
1118 1119 1120

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

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