Blame view

Makefile 27.2 KB
7ebf7443a   wdenk   Initial revision
1
  #
eca3aeb35   Wolfgang Denk   Licenses: introdu...
2
  # (C) Copyright 2000-2013
7ebf7443a   wdenk   Initial revision
3
4
  # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  #
eca3aeb35   Wolfgang Denk   Licenses: introdu...
5
  # SPDX-License-Identifier:	GPL-2.0+
7ebf7443a   wdenk   Initial revision
6
  #
3ae7b240a   Tom Rini   Prepare v2013.01-rc1
7
  VERSION = 2013
40a60c6e8   Tom Rini   Prepare v2013.10-rc1
8
  PATCHLEVEL = 10
211e47549   Wolfgang Denk   Prepare v2012.07-rc1
9
  SUBLEVEL =
183acb700   Tom Rini   Prepare v2013.10
10
  EXTRAVERSION =
8b9e47876   Wolfgang Denk   Update CHANGELOG,...
11
  ifneq "$(SUBLEVEL)" ""
881a87ecb   Wolfgang Denk   Add GIT version i...
12
  U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
8b9e47876   Wolfgang Denk   Update CHANGELOG,...
13
14
15
  else
  U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
  endif
efb2172ec   Simon Glass   Move timestamp an...
16
17
  TIMESTAMP_FILE = $(obj)include/generated/timestamp_autogenerated.h
  VERSION_FILE = $(obj)include/generated/version_autogenerated.h
881a87ecb   Wolfgang Denk   Add GIT version i...
18

7ebf7443a   wdenk   Initial revision
19
  HOSTARCH := $(shell uname -m | \
fea257200   Graeme Russ   x86: Rename i386 ...
20
  	sed -e s/i.86/x86/ \
7ebf7443a   wdenk   Initial revision
21
22
23
  	    -e s/sun4u/sparc64/ \
  	    -e s/arm.*/arm/ \
  	    -e s/sa110/arm/ \
d0179083a   Kumar Gala   Fixup native buil...
24
25
  	    -e s/ppc64/powerpc/ \
  	    -e s/ppc/powerpc/ \
8d1f63554   Nobuhiro Iwamatsu   sh: Fix build on ...
26
27
  	    -e s/macppc/powerpc/\
  	    -e s/sh.*/sh/)
7ebf7443a   wdenk   Initial revision
28

f9d77ed38   Wolfgang Denk   Make "tr" command...
29
  HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
7ebf7443a   wdenk   Initial revision
30
  	    sed -e 's/\(cygwin\).*/cygwin/')
120ae6091   Benoît Thébaudeau   Makefile: Move SH...
31
  export	HOSTARCH HOSTOS
7ebf7443a   wdenk   Initial revision
32
33
34
35
36
  
  # Deal with colliding definitions from tcsh etc.
  VENDOR=
  
  #########################################################################
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
37
38
39
40
41
42
43
44
  # Allow for silent builds
  ifeq (,$(findstring s,$(MAKEFLAGS)))
  XECHO = echo
  else
  XECHO = :
  endif
  
  #########################################################################
f93286397   Marian Balakowicz   Add support for a...
45
  #
1bce2aeb6   Robert P. J. Day   Cosmetic: Fix a n...
46
  # U-boot build supports generating object files in a separate external
f93286397   Marian Balakowicz   Add support for a...
47
  # directory. Two use cases are supported:
887e2ec9e   Stefan Roese   Add support for A...
48
  #
f93286397   Marian Balakowicz   Add support for a...
49
50
51
  # 1) Add O= to the make command line
  # 'make O=/tmp/build all'
  #
1bce2aeb6   Robert P. J. Day   Cosmetic: Fix a n...
52
  # 2) Set environment variable BUILD_DIR to point to the desired location
f93286397   Marian Balakowicz   Add support for a...
53
54
55
56
57
58
  # 'export BUILD_DIR=/tmp/build'
  # 'make'
  #
  # The second approach can also be used with a MAKEALL script
  # 'export BUILD_DIR=/tmp/build'
  # './MAKEALL'
887e2ec9e   Stefan Roese   Add support for A...
59
  #
1bce2aeb6   Robert P. J. Day   Cosmetic: Fix a n...
60
  # Command line 'O=' setting overrides BUILD_DIR environment variable.
887e2ec9e   Stefan Roese   Add support for A...
61
  #
f93286397   Marian Balakowicz   Add support for a...
62
63
  # When none of the above methods is used the local build is performed and
  # the object files are placed in the source directory.
887e2ec9e   Stefan Roese   Add support for A...
64
  #
f93286397   Marian Balakowicz   Add support for a...
65

f93286397   Marian Balakowicz   Add support for a...
66
67
68
  ifeq ("$(origin O)", "command line")
  BUILD_DIR := $(O)
  endif
f93286397   Marian Balakowicz   Add support for a...
69

4ab64933e   Kim Phillips   add check infrast...
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  # Call a source code checker (by default, "sparse") as part of the
  # C compilation.
  #
  # Use 'make C=1' to enable checking of re-compiled files.
  #
  # See the linux kernel file "Documentation/sparse.txt" for more details,
  # including where to get the "sparse" utility.
  
  ifdef C
  ifeq ("$(origin C)", "command line")
  CHECKSRC := $(C)
  endif
  endif
  ifndef CHECKSRC
    CHECKSRC = 0
  endif
  export CHECKSRC
f93286397   Marian Balakowicz   Add support for a...
87
88
  ifneq ($(BUILD_DIR),)
  saved-output := $(BUILD_DIR)
4f0645eb7   Marian Balakowicz   Fix LOG_DIR direc...
89
90
91
  
  # Attempt to create a output directory.
  $(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})
a73c8dbb4   Stefan Roese   Update NAND boot ...
92
  # Verify if it was successful.
f93286397   Marian Balakowicz   Add support for a...
93
94
95
96
97
  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))
c8f9c302c   Daniel Schwierzeck   Extend build-syst...
98
  SPLTREE		:= $(OBJTREE)/spl
3aa29de0b   Ying Zhang   TPL : introduce t...
99
  TPLTREE		:= $(OBJTREE)/tpl
f93286397   Marian Balakowicz   Add support for a...
100
101
102
  SRCTREE		:= $(CURDIR)
  TOPDIR		:= $(SRCTREE)
  LNDIR		:= $(OBJTREE)
3aa29de0b   Ying Zhang   TPL : introduce t...
103
  export	TOPDIR SRCTREE OBJTREE SPLTREE TPLTREE
f93286397   Marian Balakowicz   Add support for a...
104
105
106
  
  MKCONFIG	:= $(SRCTREE)/mkconfig
  export MKCONFIG
7ebf7443a   wdenk   Initial revision
107

f93286397   Marian Balakowicz   Add support for a...
108
  ifneq ($(OBJTREE),$(SRCTREE))
dd520bf31   Wolfgang Denk   Code cleanup.
109
  REMOTE_BUILD	:= 1
f93286397   Marian Balakowicz   Add support for a...
110
111
112
113
114
115
116
117
118
119
120
121
  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 :=
887e2ec9e   Stefan Roese   Add support for A...
122
  endif
f93286397   Marian Balakowicz   Add support for a...
123
  export obj src
5013c09f7   Wolfgang Denk   Makefile: cleanup...
124
125
  # Make sure CDPATH settings don't interfere
  unexport CDPATH
f93286397   Marian Balakowicz   Add support for a...
126
  #########################################################################
7ebf7443a   wdenk   Initial revision
127

6d1ce3878   Mike Frysinger   make sure topleve...
128
129
  # The "tools" are needed early, so put this first
  # Don't include stuff already done in $(LIBS)
349e83f07   Che-liang Chiou   examples: api: al...
130
131
132
  # The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC
  # is "yes"), so compile examples after U-Boot is compiled.
  SUBDIR_TOOLS = tools
349e83f07   Che-liang Chiou   examples: api: al...
133
  SUBDIRS = $(SUBDIR_TOOLS)
6d1ce3878   Mike Frysinger   make sure topleve...
134

249b53a61   Loïc Minier   Build timestamp_a...
135
  .PHONY : $(SUBDIRS) $(VERSION_FILE) $(TIMESTAMP_FILE)
6d1ce3878   Mike Frysinger   make sure topleve...
136

ae6d1056d   Wolfgang Denk   Fix Makefile depe...
137
  ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk))
7ebf7443a   wdenk   Initial revision
138

2632c008e   Mike Frysinger   autoconf.mk: incl...
139
140
141
142
143
144
  # 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
8a7e7d569   Masahiro Yamada   Makefile: descend...
145
146
  SUBDIR_EXAMPLES-y := examples/standalone
  SUBDIR_EXAMPLES-$(CONFIG_API) += examples/api
b5728756e   Simon Glass   sandbox: Adjust M...
147
  ifndef CONFIG_SANDBOX
8a7e7d569   Masahiro Yamada   Makefile: descend...
148
  SUBDIRS += $(SUBDIR_EXAMPLES-y)
b5728756e   Simon Glass   sandbox: Adjust M...
149
  endif
7ebf7443a   wdenk   Initial revision
150
  # load ARCH, BOARD, and CPU configuration
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
151
  include $(obj)include/config.mk
1d9f41050   wdenk   Patch by Steven S...
152
  export	ARCH CPU BOARD VENDOR SOC
f93286397   Marian Balakowicz   Add support for a...
153

1ea6bcd85   Mike Frysinger   push CROSS_COMPIL...
154
  # set default to nothing for native builds
a5284efd1   Wolfgang Denk   Fix HOSTARCH hand...
155
  ifeq ($(HOSTARCH),$(ARCH))
1ea6bcd85   Mike Frysinger   push CROSS_COMPIL...
156
  CROSS_COMPILE ?=
5c952cf02   wdenk   Patches by Scott ...
157
  endif
7ebf7443a   wdenk   Initial revision
158

92b197f0d   Wolfgang Denk   Fix Makefile: inc...
159
160
  # load other configuration
  include $(TOPDIR)/config.mk
fada9e204   Simon Glass   Trigger generic b...
161
162
163
164
165
166
167
168
169
  # Targets which don't build the source code
  NON_BUILD_TARGETS = backup clean clobber distclean mkproper tidy unconfig
  
  # Only do the generic board check when actually building, not configuring
  ifeq ($(filter $(NON_BUILD_TARGETS),$(MAKECMDGOALS)),)
  ifeq ($(findstring _config,$(MAKECMDGOALS)),)
  $(CHECK_GENERIC_BOARD)
  endif
  endif
d51dfff7a   Ilya Yanok   config.mk: move L...
170
171
172
  # 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.
ee60197e6   Simon Glass   Allow arch direct...
173
  LDSCRIPT_MAKEFILE_DIR = $(dir $(LDSCRIPT))
d51dfff7a   Ilya Yanok   config.mk: move L...
174
175
176
177
178
179
180
  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
ee60197e6   Simon Glass   Allow arch direct...
181
  # If there is no specified link script, we look in a number of places for it
d51dfff7a   Ilya Yanok   config.mk: move L...
182
183
184
185
186
187
188
189
190
191
192
193
194
195
  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)),)
ee60197e6   Simon Glass   Allow arch direct...
196
197
198
199
200
  		LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds
  		# We don't expect a Makefile here
  		LDSCRIPT_MAKEFILE_DIR =
  	endif
  	ifeq ($(wildcard $(LDSCRIPT)),)
d51dfff7a   Ilya Yanok   config.mk: move L...
201
202
203
  $(error could not find linker script)
  	endif
  endif
7ebf7443a   wdenk   Initial revision
204
205
  #########################################################################
  # U-Boot objects....order is important (i.e. start must be first)
03b7004dd   Peter Tyser   Create CPUDIR var...
206
  OBJS  = $(CPUDIR)/start.o
7ebf7443a   wdenk   Initial revision
207
  ifeq ($(CPU),ppc4xx)
03b7004dd   Peter Tyser   Create CPUDIR var...
208
  OBJS += $(CPUDIR)/resetvec.o
7ebf7443a   wdenk   Initial revision
209
  endif
42d1f0394   wdenk   * Patches by Xian...
210
  ifeq ($(CPU),mpc85xx)
03b7004dd   Peter Tyser   Create CPUDIR var...
211
  OBJS += $(CPUDIR)/resetvec.o
42d1f0394   wdenk   * Patches by Xian...
212
  endif
7ebf7443a   wdenk   Initial revision
213

a32e626f9   Simon Glass   x86: Remove unnee...
214
  OBJS := $(addprefix $(obj),$(OBJS))
f93286397   Marian Balakowicz   Add support for a...
215

e66443fdb   Scott Wood   Makefile: fix HAV...
216
  HAVE_VENDOR_COMMON_LIB = $(if $(wildcard board/$(VENDOR)/common/Makefile),y,n)
8b5a02640   Daniel Schwierzeck   Makefile: cosmeti...
217

e2906a594   Masahiro Yamada   Makefile: rename ...
218
  LIBS-y += lib/
e2906a594   Masahiro Yamada   Makefile: rename ...
219
220
  LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
  LIBS-y += $(CPUDIR)/
1d9f41050   wdenk   Patch by Steven S...
221
  ifdef SOC
e2906a594   Masahiro Yamada   Makefile: rename ...
222
  LIBS-y += $(CPUDIR)/$(SOC)/
1d9f41050   wdenk   Patch by Steven S...
223
  endif
e2906a594   Masahiro Yamada   Makefile: rename ...
224
225
226
  LIBS-$(CONFIG_IXP4XX_NPE) += drivers/net/npe/
  LIBS-$(CONFIG_OF_EMBED) += dts/
  LIBS-y += arch/$(ARCH)/lib/
57c3e5fcf   Masahiro Yamada   Makefile: move fs...
227
  LIBS-y += fs/
e2906a594   Masahiro Yamada   Makefile: rename ...
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
254
255
256
257
258
259
260
  LIBS-y += net/
  LIBS-y += disk/
  LIBS-y += drivers/
  LIBS-y += drivers/dma/
  LIBS-y += drivers/gpio/
  LIBS-y += drivers/i2c/
  LIBS-y += drivers/input/
  LIBS-y += drivers/mmc/
  LIBS-y += drivers/mtd/
  LIBS-y += drivers/mtd/nand/
  LIBS-y += drivers/mtd/onenand/
  LIBS-y += drivers/mtd/ubi/
  LIBS-y += drivers/mtd/spi/
  LIBS-y += drivers/net/
  LIBS-y += drivers/net/phy/
  LIBS-y += drivers/pci/
  LIBS-y += drivers/power/ \
  	drivers/power/fuel_gauge/ \
  	drivers/power/mfd/ \
  	drivers/power/pmic/ \
  	drivers/power/battery/
  LIBS-y += drivers/spi/
  LIBS-$(CONFIG_FMAN_ENET) += drivers/net/fm/
  LIBS-y += drivers/serial/
  LIBS-y += drivers/usb/eth/
  LIBS-y += drivers/usb/gadget/
  LIBS-y += drivers/usb/host/
  LIBS-y += drivers/usb/musb/
  LIBS-y += drivers/usb/musb-new/
  LIBS-y += drivers/usb/phy/
  LIBS-y += drivers/usb/ulpi/
  LIBS-y += common/
  LIBS-y += lib/libfdt/
8a7e7d569   Masahiro Yamada   Makefile: descend...
261
  LIBS-$(CONFIG_API) += api/
e2906a594   Masahiro Yamada   Makefile: rename ...
262
263
  LIBS-y += post/
  LIBS-y += test/
f93286397   Marian Balakowicz   Add support for a...
264

24e8bee50   Alison Wang   arm: vf610: Add V...
265
  ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610))
e2906a594   Masahiro Yamada   Makefile: rename ...
266
  LIBS-y += arch/$(ARCH)/imx-common/
18936ee2a   Jason Liu   i.mx: introduce t...
267
  endif
e2906a594   Masahiro Yamada   Makefile: rename ...
268
269
  LIBS-$(CONFIG_ARM) += arch/arm/cpu/
  LIBS-$(CONFIG_PPC) += arch/powerpc/cpu/
852bd07c8   Minkyu Kang   ARMV7: S5P: make ...
270

e2906a594   Masahiro Yamada   Makefile: rename ...
271
  LIBS-y += board/$(BOARDDIR)/
08e39a843   Masahiro Yamada   Makefile: merge $...
272

e2906a594   Masahiro Yamada   Makefile: rename ...
273
  LIBS-y := $(patsubst %/, %/built-in.o, $(LIBS-y))
f52d7b352   Daniel Schwierzeck   Makefile: replace...
274
  LIBS := $(addprefix $(obj),$(sort $(LIBS-y)))
249b53a61   Loïc Minier   Build timestamp_a...
275
  .PHONY : $(LIBS)
a8c7c708a   wdenk   * Patch by Gleb N...
276

4f7cb08ee   wdenk   * Patch by Martin...
277
  # Add GCC lib
52b1bf2c5   Wolfgang Denk   Make linking agai...
278
279
  ifdef USE_PRIVATE_LIBGCC
  ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
635d1b3e1   Matthias Weisser   Makefile: Fix bui...
280
  PLATFORM_LIBGCC = $(OBJTREE)/arch/$(ARCH)/lib/libgcc.o
52b1bf2c5   Wolfgang Denk   Make linking agai...
281
282
283
284
  else
  PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
  endif
  else
cca4e4aec   Wolfgang Denk   Reduce build times
285
  PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
52b1bf2c5   Wolfgang Denk   Make linking agai...
286
287
288
  endif
  PLATFORM_LIBS += $(PLATFORM_LIBGCC)
  export PLATFORM_LIBS
3d3befa75   wdenk   * Patch by Philip...
289

6ac9f4797   Mike Frysinger   start a linker sc...
290
291
292
293
294
  # 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 \
7e6403a66   Simon Glass   Define CPUDIR for...
295
  	-DCPUDIR=$(CPUDIR) \
6ac9f4797   Mike Frysinger   start a linker sc...
296
297
  	$(shell $(LD) --version | \
  	  sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
f93286397   Marian Balakowicz   Add support for a...
298
  __OBJS := $(subst $(obj),,$(OBJS))
08e39a843   Masahiro Yamada   Makefile: merge $...
299
  __LIBS := $(subst $(obj),,$(LIBS))
f93286397   Marian Balakowicz   Add support for a...
300

7ebf7443a   wdenk   Initial revision
301
  #########################################################################
bdccc4fed   wdenk   * Map ISP1362 USB...
302
  #########################################################################
7ebf7443a   wdenk   Initial revision
303

f3a14d377   Mike Frysinger   Makefile: allow b...
304
305
306
  ifneq ($(CONFIG_BOARD_SIZE_LIMIT),)
  BOARD_SIZE_CHECK = \
  	@actual=`wc -c $@ | awk '{print $$1}'`; \
d060e6f44   Joe Hershberger   Allow CONFIG_BOAR...
307
  	limit=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
f3a14d377   Mike Frysinger   Makefile: allow b...
308
  	if test $$actual -gt $$limit; then \
d060e6f44   Joe Hershberger   Allow CONFIG_BOAR...
309
310
311
312
  		echo "$@ exceeds file size limit:" >&2 ; \
  		echo "  limit:  $$limit bytes" >&2 ; \
  		echo "  actual: $$actual bytes" >&2 ; \
  		echo "  excess: $$((actual - limit)) bytes" >&2; \
f3a14d377   Mike Frysinger   Makefile: allow b...
313
314
315
316
317
  		exit 1; \
  	fi
  else
  BOARD_SIZE_CHECK =
  endif
3e88337b2   Mike Frysinger   Blackfin: move AL...
318
  # Always append ALL so that arch config.mk's can add custom ones
4e0fbb98f   Daniel Schwierzeck   Use ALL-y style i...
319
  ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
e935a374d   Haiying Wang   Fix NAND_SPL and ...
320

4e0fbb98f   Daniel Schwierzeck   Use ALL-y style i...
321
322
  ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
  ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
262737f05   Shaohui Xie   powerpc/tool/pbl:...
323
  ALL-$(CONFIG_RAMBOOT_PBL) += $(obj)u-boot.pbl
5df2ee27d   Daniel Schwierzeck   Hook SPL build-sy...
324
  ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
4c267374a   Henrik Nordström   Always build u-bo...
325
  ALL-$(CONFIG_SPL_FRAMEWORK) += $(obj)u-boot.img
3aa29de0b   Ying Zhang   TPL : introduce t...
326
  ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin
2c0f79e44   Simon Glass   fdt: Add support ...
327
  ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
b343bbb52   Vadim Bendebury   build: Fix make e...
328
329
330
  ifneq ($(CONFIG_SPL_TARGET),)
  ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
  endif
0d3c62e46   Chander Kashyap   ARMV7: MMC SPL Bo...
331

12b7b70cb   Allen Martin   tegra20: enable S...
332
  # enable combined SPL/u-boot/dtb rules for tegra
6d6c0baeb   Tom Warren   Tegra30: Add gene...
333
  ifneq ($(CONFIG_TEGRA),)
12b7b70cb   Allen Martin   tegra20: enable S...
334
335
336
337
338
339
  ifeq ($(CONFIG_OF_SEPARATE),y)
  ALL-y += $(obj)u-boot-dtb-tegra.bin
  else
  ALL-y += $(obj)u-boot-nodtb-tegra.bin
  endif
  endif
71f84ef07   Masahiro Yamada   ARM: imx-common: ...
340
  build := -f $(TOPDIR)/scripts/Makefile.build -C
8a7e7d569   Masahiro Yamada   Makefile: descend...
341
  all:		$(ALL-y) $(SUBDIR_EXAMPLES-y)
7ebf7443a   wdenk   Initial revision
342

501ebdf28   Stephen Warren   Validate dtc is n...
343
  $(obj)u-boot.dtb:	checkdtc $(obj)u-boot
bcfe8fdf3   Masahiro Yamada   dts, api, test: c...
344
  		$(MAKE) $(build) dts binary
2c0f79e44   Simon Glass   fdt: Add support ...
345
346
347
348
  		mv $(obj)dts/dt.dtb $@
  
  $(obj)u-boot-dtb.bin:	$(obj)u-boot.bin $(obj)u-boot.dtb
  		cat $^ >$@
f93286397   Marian Balakowicz   Add support for a...
349
  $(obj)u-boot.hex:	$(obj)u-boot
6310eb9da   wdenk   Patches by David ...
350
  		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
f93286397   Marian Balakowicz   Add support for a...
351
  $(obj)u-boot.srec:	$(obj)u-boot
0817d688f   Ricardo Ribalda Delgado   Remove gap fill i...
352
  		$(OBJCOPY) -O srec $< $@
7ebf7443a   wdenk   Initial revision
353

f93286397   Marian Balakowicz   Add support for a...
354
  $(obj)u-boot.bin:	$(obj)u-boot
7ebf7443a   wdenk   Initial revision
355
  		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
f3a14d377   Mike Frysinger   Makefile: allow b...
356
  		$(BOARD_SIZE_CHECK)
7ebf7443a   wdenk   Initial revision
357

94a91e248   Mike Frysinger   generate u-boot.l...
358
  $(obj)u-boot.ldr:	$(obj)u-boot
76d82187c   Mike Frysinger   Blackfin: tweak e...
359
  		$(CREATE_LDR_ENV)
68e563249   Mike Frysinger   Blackfin: dont ge...
360
  		$(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
f3a14d377   Mike Frysinger   Makefile: allow b...
361
  		$(BOARD_SIZE_CHECK)
94a91e248   Mike Frysinger   generate u-boot.l...
362
363
364
365
366
367
  
  $(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
b40bda6bd   Stefan Roese   Makefile: Add pos...
368
369
370
371
372
373
374
  #
  # U-Boot entry point, needed for booting of full-blown U-Boot
  # from the SPL U-Boot version.
  #
  ifndef CONFIG_SYS_UBOOT_START
  CONFIG_SYS_UBOOT_START := 0
  endif
f93286397   Marian Balakowicz   Add support for a...
375
  $(obj)u-boot.img:	$(obj)u-boot.bin
a2a0a7171   Wolfgang Denk   Makefile: fix out...
376
  		$(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
b40bda6bd   Stefan Roese   Makefile: Add pos...
377
378
  		-O u-boot -a $(CONFIG_SYS_TEXT_BASE) \
  		-e $(CONFIG_SYS_UBOOT_START) \
881a87ecb   Wolfgang Denk   Add GIT version i...
379
  		-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
bdccc4fed   wdenk   * Map ISP1362 USB...
380
381
  			sed -e 's/"[	 ]*$$/ for $(BOARD) board"/') \
  		-d $< $@
291b3dcd4   Otavio Salvador   build: imx: Fix '...
382
  $(obj)u-boot.imx: $(obj)u-boot.bin depend
71f84ef07   Masahiro Yamada   ARM: imx-common: ...
383
  		$(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common $(OBJTREE)/u-boot.imx
8edcde5e4   Stefano Babic   mkimage: Add Free...
384

aa0c7a86c   Prafulla Wadaskar   mkimage: Add Kirk...
385
  $(obj)u-boot.kwb:       $(obj)u-boot.bin
31d80c77f   Prafulla Wadaskar   kirkwood: get rid...
386
  		$(obj)tools/mkimage -n $(CONFIG_SYS_KWD_CONFIG) -T kwbimage \
2ea88b063   Eric Cooper   Makefile: rename ...
387
  		-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
aa0c7a86c   Prafulla Wadaskar   mkimage: Add Kirk...
388

5d898a00f   Shaohui Xie   powerpc/CoreNet: ...
389
390
391
392
  $(obj)u-boot.pbl:	$(obj)u-boot.bin
  		$(obj)tools/mkimage -n $(CONFIG_PBLRCW_CONFIG) \
  		-R $(CONFIG_PBLPBI_CONFIG) -T pblimage \
  		-d $< $@
566a494f5   Heiko Schocher   [PCS440EP] u...
393
  $(obj)u-boot.sha1:	$(obj)u-boot.bin
011595307   Heiko Schocher   [PCS440EP] - fix...
394
  		$(obj)tools/ubsha1 $(obj)u-boot.bin
566a494f5   Heiko Schocher   [PCS440EP] u...
395

f93286397   Marian Balakowicz   Add support for a...
396
  $(obj)u-boot.dis:	$(obj)u-boot
7ebf7443a   wdenk   Initial revision
397
  		$(OBJDUMP) -d $< > $@
3aa29de0b   Ying Zhang   TPL : introduce t...
398
399
400
401
402
  # $@ is output, $(1) and $(2) are inputs, $(3) is padded intermediate,
  # $(4) is pad-to
  SPL_PAD_APPEND = \
  		$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(4) -I binary -O binary \
  		$(1) $(obj)$(3); \
b6df9b01f   York Sun   Makefile: Fix bui...
403
  		cat $(obj)$(3) $(2) > $@; \
3aa29de0b   Ying Zhang   TPL : introduce t...
404
  		rm $(obj)$(3)
74752baa7   Scott Wood   spl: Change PAD_T...
405

3aa29de0b   Ying Zhang   TPL : introduce t...
406
407
408
409
410
  ifdef CONFIG_TPL
  SPL_PAYLOAD := $(obj)tpl/u-boot-with-tpl.bin
  else
  SPL_PAYLOAD := $(obj)u-boot.bin
  endif
74752baa7   Scott Wood   spl: Change PAD_T...
411

3aa29de0b   Ying Zhang   TPL : introduce t...
412
413
414
415
  $(obj)u-boot-with-spl.bin: $(obj)spl/u-boot-spl.bin $(SPL_PAYLOAD)
  		$(call SPL_PAD_APPEND,$<,$(SPL_PAYLOAD),spl/u-boot-spl-pad.bin,$(CONFIG_SPL_PAD_TO))
  
  $(obj)tpl/u-boot-with-tpl.bin: $(obj)tpl/u-boot-tpl.bin $(obj)u-boot.bin
b6df9b01f   York Sun   Makefile: Fix bui...
416
  		$(call SPL_PAD_APPEND,$<,$(obj)u-boot.bin,tpl/u-boot-tpl-pad.bin,$(CONFIG_TPL_PAD_TO))
7816f2cf8   Heiko Schocher   mkimage: add UBL ...
417

ba5976092   Benoît Thébaudeau   imx: Add u-boot-w...
418
  $(obj)u-boot-with-spl.imx: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
71f84ef07   Masahiro Yamada   ARM: imx-common: ...
419
  		$(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common \
ba5976092   Benoît Thébaudeau   imx: Add u-boot-w...
420
  			$(OBJTREE)/u-boot-with-spl.imx
7d5a5c79c   Benoît Thébaudeau   imx: Add u-boot-w...
421
  $(obj)u-boot-with-nand-spl.imx: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
71f84ef07   Masahiro Yamada   ARM: imx-common: ...
422
  		$(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common \
7d5a5c79c   Benoît Thébaudeau   imx: Add u-boot-w...
423
  			$(OBJTREE)/u-boot-with-nand-spl.imx
5364add4e   Scott Wood   spl: rename u-boo...
424
  $(obj)u-boot.ubl:       $(obj)u-boot-with-spl.bin
277f00f5b   José Miguel Gonçalves   Add u-boot-pad.bi...
425
  		$(obj)tools/mkimage -n $(UBL_CONFIG) -T ublimage \
5364add4e   Scott Wood   spl: rename u-boo...
426
  		-e $(CONFIG_SYS_TEXT_BASE) -d $< $(obj)u-boot.ubl
277f00f5b   José Miguel Gonçalves   Add u-boot-pad.bi...
427

3f7f2414e   Tom Rini   ARM: SPL: Convert...
428
  $(obj)u-boot.ais:       $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
6d660e773   Sughosh Ganu   hawkboard/omapl-1...
429
430
  		$(obj)tools/mkimage -s -n $(if $(CONFIG_AIS_CONFIG_FILE),$(CONFIG_AIS_CONFIG_FILE),"/dev/null") \
  			-T aisimage \
d36d88598   Christian Riesch   arm, davinci: Add...
431
432
433
434
435
436
  			-e $(CONFIG_SPL_TEXT_BASE) \
  			-d $(obj)spl/u-boot-spl.bin \
  			$(obj)spl/u-boot-spl.ais
  		$(OBJCOPY) ${OBJCFLAGS} -I binary \
  			--pad-to=$(CONFIG_SPL_MAX_SIZE) -O binary \
  			$(obj)spl/u-boot-spl.ais $(obj)spl/u-boot-spl-pad.ais
3f7f2414e   Tom Rini   ARM: SPL: Convert...
437
  		cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.img > \
d36d88598   Christian Riesch   arm, davinci: Add...
438
  			$(obj)u-boot.ais
d36d88598   Christian Riesch   arm, davinci: Add...
439

a54535551   Otavio Salvador   MX28: config: All...
440

30b9b932a   Marek Vasut   iMX28: Add u-boot...
441
  $(obj)u-boot.sb:       $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
edabc1bc6   Masahiro Yamada   Makfile: fix a ru...
442
  		$(MAKE) $(build) $(SRCTREE)/$(CPUDIR)/$(SOC)/ $(OBJTREE)/u-boot.sb
30b9b932a   Marek Vasut   iMX28: Add u-boot...
443

94aebe6cc   Stefan Roese   Makefile: Add u-b...
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
  # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
  # Both images are created using mkimage (crc etc), so that the ROM
  # bootloader can check its integrity. Padding needs to be done to the
  # SPL image (with mkimage header) and not the binary. Otherwise the resulting image
  # which is loaded/copied by the ROM bootloader to SRAM doesn't fit.
  # The resulting image containing both U-Boot images is called u-boot.spr
  $(obj)u-boot.spr:	$(obj)u-boot.img $(obj)spl/u-boot-spl.bin
  		$(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
  		-a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER \
  		-d $(obj)spl/u-boot-spl.bin $(obj)spl/u-boot-spl.img
  		tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_SPL_PAD_TO) \
  			of=$(obj)spl/u-boot-spl-pad.img 2>/dev/null
  		dd if=$(obj)spl/u-boot-spl.img of=$(obj)spl/u-boot-spl-pad.img \
  			conv=notrunc 2>/dev/null
  		cat $(obj)spl/u-boot-spl-pad.img $(obj)u-boot.img > $@
6d6c0baeb   Tom Warren   Tegra30: Add gene...
459
  ifneq ($(CONFIG_TEGRA),)
9972db5cf   Stephen Warren   tegra: always bui...
460
  $(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
984df4ec9   Allen Martin   tegra20: add u-bo...
461
  		$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin
9972db5cf   Stephen Warren   tegra: always bui...
462
  		cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@
984df4ec9   Allen Martin   tegra20: add u-bo...
463
  		rm $(obj)spl/u-boot-spl-pad.bin
9972db5cf   Stephen Warren   tegra: always bui...
464
465
466
467
468
  
  ifeq ($(CONFIG_OF_SEPARATE),y)
  $(obj)u-boot-dtb-tegra.bin: $(obj)u-boot-nodtb-tegra.bin $(obj)u-boot.dtb
  		cat $(obj)u-boot-nodtb-tegra.bin $(obj)u-boot.dtb > $@
  endif
984df4ec9   Allen Martin   tegra20: add u-bo...
469
  endif
984df4ec9   Allen Martin   tegra20: add u-bo...
470

fb3d2b8a3   Stefan Roese   Makefile: Add tar...
471
472
  $(obj)u-boot-img.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
  		cat $(obj)spl/u-boot-spl.bin $(obj)u-boot.img > $@
ecddccd00   Stefan Roese   Makefile: Add tar...
473
474
475
476
477
478
479
480
481
482
483
  # PPC4xx needs the SPL at the end of the image, since the reset vector
  # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
  # and need to introduce a new build target with the full blown U-Boot
  # at the start padded up to the start of the SPL image. And then concat
  # the SPL image to the end.
  $(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
  		tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_UBOOT_PAD_TO) \
  			of=$(obj)u-boot-pad.img 2>/dev/null
  		dd if=$(obj)u-boot.img of=$(obj)u-boot-pad.img \
  			conv=notrunc 2>/dev/null
  		cat $(obj)u-boot-pad.img $(obj)spl/u-boot-spl.bin > $@
86eb49b3e   Simon Glass   sandbox: Makefile...
484
485
486
487
488
489
  ifeq ($(CONFIG_SANDBOX),y)
  GEN_UBOOT = \
  		cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \
  			-Wl,--start-group $(__LIBS) -Wl,--end-group \
  			$(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -o u-boot
  else
ecb1dc892   Mike Frysinger   Add support for L...
490
  GEN_UBOOT = \
97b24d3d5   Marek Vasut   common: Add symbo...
491
  		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
ef123c525   Albert ARIBAUD   Refactor linker-g...
492
  			$(__OBJS) \
f93286397   Marian Balakowicz   Add support for a...
493
  			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
b2184c314   wdenk   * Patch by Daniel...
494
  			-Map u-boot.map -o u-boot
86eb49b3e   Simon Glass   sandbox: Makefile...
495
  endif
16a354f92   Wolfgang Denk   include/asm-offse...
496
  $(obj)u-boot:	depend \
08e39a843   Masahiro Yamada   Makefile: merge $...
497
  		$(SUBDIR_TOOLS) $(OBJS) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
ecb1dc892   Mike Frysinger   Add support for L...
498
499
  		$(GEN_UBOOT)
  ifeq ($(CONFIG_KALLSYMS),y)
8a156fb6e   Mike Frysinger   fix out of tree b...
500
  		smap=`$(call SYSTEM_MAP,$(obj)u-boot) | \
1aada9cd6   Wolfgang Denk   Fix all linker sc...
501
502
503
  			awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
  		$(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
  			-c common/system_map.c -o $(obj)common/system_map.o
ecb1dc892   Mike Frysinger   Add support for L...
504
505
  		$(GEN_UBOOT) $(obj)common/system_map.o
  endif
7ebf7443a   wdenk   Initial revision
506

3bddafaab   Masahiro Yamada   Makefile: convert...
507
508
  $(OBJS):
  	@:
f93286397   Marian Balakowicz   Add support for a...
509

349e83f07   Che-liang Chiou   examples: api: al...
510
  $(LIBS):	depend $(SUBDIR_TOOLS)
3bddafaab   Masahiro Yamada   Makefile: convert...
511
  		$(MAKE) $(build) $(dir $(subst $(obj),,$@))
a8c7c708a   wdenk   * Patch by Gleb N...
512

d0d6144e0   Peter Tyser   Makefile: Make au...
513
  $(SUBDIRS):	depend
b028f7151   wdenk   * Patch by Yuli B...
514
  		$(MAKE) -C $@ all
7ebf7443a   wdenk   Initial revision
515

8a7e7d569   Masahiro Yamada   Makefile: descend...
516
  $(SUBDIR_EXAMPLES-y): $(obj)u-boot
349e83f07   Che-liang Chiou   examples: api: al...
517

d0d6144e0   Peter Tyser   Makefile: Make au...
518
  $(LDSCRIPT):	depend
f65c98129   Mike Frysinger   Makefile: add tar...
519
  		$(MAKE) -C $(dir $@) $(notdir $@)
ef123c525   Albert ARIBAUD   Refactor linker-g...
520
  $(obj)u-boot.lds: $(LDSCRIPT)
97b24d3d5   Marek Vasut   common: Add symbo...
521
  		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
1aada9cd6   Wolfgang Denk   Fix all linker sc...
522

e935a374d   Haiying Wang   Fix NAND_SPL and ...
523
  nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
8318fbf8c   Marian Balakowicz   Fix sequoia separ...
524
  		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
887e2ec9e   Stefan Roese   Add support for A...
525

e935a374d   Haiying Wang   Fix NAND_SPL and ...
526
  $(obj)u-boot-nand.bin:	nand_spl $(obj)u-boot.bin
8318fbf8c   Marian Balakowicz   Fix sequoia separ...
527
  		cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
887e2ec9e   Stefan Roese   Add support for A...
528

bd25fdba4   Aneesh V   Makefile: Add the...
529
  $(obj)spl/u-boot-spl.bin:	$(SUBDIR_TOOLS) depend
5df2ee27d   Daniel Schwierzeck   Hook SPL build-sy...
530
  		$(MAKE) -C spl all
3aa29de0b   Ying Zhang   TPL : introduce t...
531
532
  $(obj)tpl/u-boot-tpl.bin:	$(SUBDIR_TOOLS) depend
  		$(MAKE) -C spl all CONFIG_TPL_BUILD=y
2a9987935   Daniel Hobi   Makefile: fix par...
533
534
  # Explicitly make _depend in subdirs containing multiple targets to prevent
  # parallel sub-makes creating .depend files simultaneously.
16a354f92   Wolfgang Denk   include/asm-offse...
535
  depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
536
  		$(obj)include/spl-autoconf.mk \
3aa29de0b   Ying Zhang   TPL : introduce t...
537
  		$(obj)include/tpl-autoconf.mk \
16a354f92   Wolfgang Denk   include/asm-offse...
538
  		$(obj)include/autoconf.mk \
a4814a69d   Stefano Babic   Makefile : fix ge...
539
540
  		$(obj)include/generated/generic-asm-offsets.h \
  		$(obj)include/generated/asm-offsets.h
7ebf7443a   wdenk   Initial revision
541

e5e4e705c   Li Yang   Update Makefile f...
542
543
  TAG_SUBDIRS = $(SUBDIRS)
  TAG_SUBDIRS += $(dir $(__LIBS))
a340c325e   Jean-Christophe PLAGNIOL-VILLARD   Makefile : fix ta...
544
  TAG_SUBDIRS += include
a340c325e   Jean-Christophe PLAGNIOL-VILLARD   Makefile : fix ta...
545

857d9ea67   Horst Kronstorfer   Let source cross-...
546
547
  FIND := find
  FINDFLAGS := -L
1064d980b   Tom Rini   tools: checkstack...
548
549
550
551
  checkstack:
  		$(CROSS_COMPILE)objdump -d $(obj)u-boot \
  			`$(FIND) $(obj) -name u-boot-spl -print` | \
  			perl $(src)tools/checkstack.pl $(ARCH)
f93286397   Marian Balakowicz   Add support for a...
552
  tags ctags:
857d9ea67   Horst Kronstorfer   Let source cross-...
553
  		ctags -w -o $(obj)ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
e5e4e705c   Li Yang   Update Makefile f...
554
  						-name '*.[chS]' -print`
7ebf7443a   wdenk   Initial revision
555
556
  
  etags:
857d9ea67   Horst Kronstorfer   Let source cross-...
557
  		etags -a -o $(obj)etags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
e5e4e705c   Li Yang   Update Makefile f...
558
  						-name '*.[chS]' -print`
ffda586fc   Li Yang   add cscope build ...
559
  cscope:
857d9ea67   Horst Kronstorfer   Let source cross-...
560
561
  		$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) -name '*.[chS]' -print > \
  						cscope.files
ffda586fc   Li Yang   add cscope build ...
562
  		cscope -b -q -k
7ebf7443a   wdenk   Initial revision
563

ecb1dc892   Mike Frysinger   Add support for L...
564
565
  SYSTEM_MAP = \
  		$(NM) $1 | \
7ebf7443a   wdenk   Initial revision
566
  		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
ecb1dc892   Mike Frysinger   Add support for L...
567
568
  		LC_ALL=C sort
  $(obj)System.map:	$(obj)u-boot
bc8bb6ec0   Masahiro Yamada   Makefile: refacto...
569
  		@$(call SYSTEM_MAP,$<) > $@
7ebf7443a   wdenk   Initial revision
570

06a119a03   Tom Rini   Makefile: Add a '...
571
572
573
574
575
576
577
  checkthumb:
  	@if test $(call cc-version) -lt 0404; then \
  		echo -n '*** Your GCC does not produce working '; \
  		echo 'binaries in THUMB mode.'; \
  		echo '*** Your board is configured for THUMB mode.'; \
  		false; \
  	fi
6ec63f411   Scott Wood   powerpc: change ....
578
579
580
581
582
583
584
585
586
  
  # GCC 3.x is reported to have problems generating the type of relocation
  # that U-Boot wants.
  # See http://lists.denx.de/pipermail/u-boot/2012-September/135156.html
  checkgcc4:
  	@if test $(call cc-version) -lt 0400; then \
  		echo -n '*** Your GCC is too old, please upgrade to GCC 4.x or newer'; \
  		false; \
  	fi
501ebdf28   Stephen Warren   Validate dtc is n...
587
588
589
590
591
  checkdtc:
  	@if test $(call dtc-version) -lt 0104; then \
  		echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \
  		false; \
  	fi
2f155f6c0   Grant Likely   [BUILD] Generate ...
592
593
594
595
596
597
  #
  # 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.
1510b82d5   Wolfgang Denk   Makefile: fix "er...
598
599
  $(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
  	@$(XECHO) Generating $@ ; \
16fe77752   Mike Frysinger   error check autoc...
600
  	set -e ; \
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
601
  	: Generate the dependancies ; \
4c34b2a09   Mike Frysinger   autoconf.mk.dep: ...
602
  	$(CC) -x c -DDO_DEPS_ONLY -M $(CFLAGS) $(CPPFLAGS) \
1510b82d5   Wolfgang Denk   Makefile: fix "er...
603
604
605
606
607
  		-MQ $(obj)include/autoconf.mk include/common.h > $@
  
  $(obj)include/autoconf.mk: $(obj)include/config.h
  	@$(XECHO) Generating $@ ; \
  	set -e ; \
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
608
  	: Extract the config macros ; \
1510b82d5   Wolfgang Denk   Makefile: fix "er...
609
  	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
4a0f7538c   Wolfgang Denk   Makefile: fix dep...
610
611
  		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
  	mv $@.tmp $@
2f155f6c0   Grant Likely   [BUILD] Generate ...
612

39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
613
  # Auto-generate the spl-autoconf.mk file (which is included by all makefiles for SPL)
3aa29de0b   Ying Zhang   TPL : introduce t...
614
615
616
617
618
619
620
621
  $(obj)include/tpl-autoconf.mk: $(obj)include/config.h
  	@$(XECHO) Generating $@ ; \
  	set -e ; \
  	: Extract the config macros ; \
  	$(CPP) $(CFLAGS) -DCONFIG_TPL_BUILD  -DCONFIG_SPL_BUILD\
  			-DDO_DEPS_ONLY -dM include/common.h | \
  	sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
  	mv $@.tmp $@
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
622
623
624
625
626
627
628
  $(obj)include/spl-autoconf.mk: $(obj)include/config.h
  	@$(XECHO) Generating $@ ; \
  	set -e ; \
  	: Extract the config macros ; \
  	$(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM include/common.h | \
  	sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
  	mv $@.tmp $@
16a354f92   Wolfgang Denk   include/asm-offse...
629
  $(obj)include/generated/generic-asm-offsets.h:	$(obj)include/autoconf.mk.dep \
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
630
  	$(obj)include/spl-autoconf.mk \
3aa29de0b   Ying Zhang   TPL : introduce t...
631
  	$(obj)include/tpl-autoconf.mk \
16a354f92   Wolfgang Denk   include/asm-offse...
632
633
634
635
636
  	$(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 \
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
637
  	$(obj)include/spl-autoconf.mk \
3aa29de0b   Ying Zhang   TPL : introduce t...
638
  	$(obj)include/tpl-autoconf.mk \
16a354f92   Wolfgang Denk   include/asm-offse...
639
640
641
642
643
  	$(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
a4814a69d   Stefano Babic   Makefile : fix ge...
644
  $(obj)include/generated/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
645
  	$(obj)include/spl-autoconf.mk \
3aa29de0b   Ying Zhang   TPL : introduce t...
646
  	$(obj)include/tpl-autoconf.mk \
a4814a69d   Stefano Babic   Makefile : fix ge...
647
  	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
b12734eed   Wolfgang Denk   Makefile: avoid "...
648
  	@$(XECHO) Generating $@
a4814a69d   Stefano Babic   Makefile : fix ge...
649
  	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
650
  $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
3aa29de0b   Ying Zhang   TPL : introduce t...
651
652
  	$(obj)include/spl-autoconf.mk \
  	$(obj)include/tpl-autoconf.mk
a4814a69d   Stefano Babic   Makefile : fix ge...
653
654
655
656
657
658
659
660
  	@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
7ebf7443a   wdenk   Initial revision
661
  #########################################################################
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
662
  else	# !config.mk
f93286397   Marian Balakowicz   Add support for a...
663
664
  all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
  $(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
249b53a61   Loïc Minier   Build timestamp_a...
665
  $(filter-out tools,$(SUBDIRS)) \
2e78e75e1   Masahiro Yamada   tools: updater: R...
666
  depend dep tags ctags etags cscope $(obj)System.map:
7ebf7443a   wdenk   Initial revision
667
668
  	@echo "System not configured - see README" >&2
  	@ exit 1
c7c0d542a   Mike Frysinger   tools: allow peop...
669

249b53a61   Loïc Minier   Build timestamp_a...
670
  tools: $(VERSION_FILE) $(TIMESTAMP_FILE)
0358df427   Mike Frysinger   unify toplevel to...
671
  	$(MAKE) -C $@ all
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
672
  endif	# config.mk
7ebf7443a   wdenk   Initial revision
673

c37980c31   Albert ARIBAUD   arm: ensure u-boo...
674
675
676
  # ARM relocations should all be R_ARM_RELATIVE.
  checkarmreloc: $(obj)u-boot
  	@if test "R_ARM_RELATIVE" != \
c1273d716   Andreas Bießmann   Makefile: fix rea...
677
  		"`$(CROSS_COMPILE)readelf -r $< | cut -d ' ' -f 4 | grep R_ARM | sort -u`"; \
c37980c31   Albert ARIBAUD   arm: ensure u-boo...
678
679
  		then echo "$< contains relocations other than \
  		R_ARM_RELATIVE"; false; fi
28abd48f5   Ilya Yanok   Makefile: move $(...
680
  $(VERSION_FILE):
14ce91b11   Mike Frysinger   fix unconfigured ...
681
  		@mkdir -p $(dir $(VERSION_FILE))
28abd48f5   Ilya Yanok   Makefile: move $(...
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
  		@( localvers='$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ; \
  		   printf '#define PLAIN_VERSION "%s%s"
  ' \
  			"$(U_BOOT_VERSION)" "$${localvers}" ; \
  		   printf '#define U_BOOT_VERSION "U-Boot %s%s"
  ' \
  			"$(U_BOOT_VERSION)" "$${localvers}" ; \
  		) > $@.tmp
  		@( printf '#define CC_VERSION_STRING "%s"
  ' \
  		 '$(shell $(CC) --version | head -n 1)' )>>  $@.tmp
  		@( printf '#define LD_VERSION_STRING "%s"
  ' \
  		 '$(shell $(LD) -v | head -n 1)' )>>  $@.tmp
  		@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
249b53a61   Loïc Minier   Build timestamp_a...
697
698
  $(TIMESTAMP_FILE):
  		@mkdir -p $(dir $(TIMESTAMP_FILE))
a76406fb0   Loïc Minier   Safer timestamp_a...
699
700
701
  		@LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@.tmp
  		@LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@.tmp
  		@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
249b53a61   Loïc Minier   Build timestamp_a...
702

0358df427   Mike Frysinger   unify toplevel to...
703
704
705
  easylogo env gdb:
  	$(MAKE) -C tools/$@ all MTD_VERSION=${MTD_VERSION}
  gdbtools: gdb
30ff89189   Marek Vasut   kerneldoc: Implan...
706
707
  xmldocs pdfdocs psdocs htmldocs mandocs: tools/kernel-doc/docproc
  	$(MAKE) U_BOOT_VERSION=$(U_BOOT_VERSION) -C doc/DocBook/ $@
249b53a61   Loïc Minier   Build timestamp_a...
708
  tools-all: easylogo env gdb $(VERSION_FILE) $(TIMESTAMP_FILE)
0358df427   Mike Frysinger   unify toplevel to...
709
  	$(MAKE) -C tools HOST_TOOLS_ALL=y
4e53a2585   Wolfgang Denk   Fix Makefile for ...
710
711
  .PHONY : CHANGELOG
  CHANGELOG:
b985b5d6e   Ben Warren   Fix TSEC driver: ...
712
713
  	git log --no-merges U-Boot-1_1_5.. | \
  	unexpand -a | sed -e 's/\s\s*$$//' > $@
4e53a2585   Wolfgang Denk   Fix Makefile for ...
714

0a823aa2a   Harald Welte   Add 'license' com...
715
  include/license.h: tools/bin2header COPYING
0e42ada31   Wolfgang Denk   Fix printing of m...
716
  	cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
7ebf7443a   wdenk   Initial revision
717
718
719
  #########################################################################
  
  unconfig:
887e2ec9e   Stefan Roese   Add support for A...
720
  	@rm -f $(obj)include/config.h $(obj)include/config.mk \
2f155f6c0   Grant Likely   [BUILD] Generate ...
721
  		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
39bc12ddc   Joel Fernandes   SPL: Makefile: Bu...
722
  		$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep \
3aa29de0b   Ying Zhang   TPL : introduce t...
723
724
  		$(obj)include/spl-autoconf.mk \
  		$(obj)include/tpl-autoconf.mk
7ebf7443a   wdenk   Initial revision
725

a6862bc12   Wolfgang Denk   Makefile/mkconfig...
726
727
  %_config::	unconfig
  	@$(MKCONFIG) -A $(@:_config=)
d6a5e6d53   Loïc Minier   Cleanup .boards.d...
728
729
  sinclude $(obj).boards.depend
  $(obj).boards.depend:	boards.cfg
50c2a91b6   Masahiro Yamada   Makefile: Do not ...
730
  	@awk '(NF && $$1 !~ /^#/) { print $$7 ": " $$7 "_config; $$(MAKE)" }' $< > $@
9f4a42066   Mike Frysinger   new default short...
731

699f05125   Wolfgang Denk   Prepare v1.3.4-rc...
732
  #########################################################################
3e38691e8   wdenk   * Patch by Arun D...
733
  #########################################################################
7ebf7443a   wdenk   Initial revision
734
735
  
  clean:
1bc153861   Peter Tyser   Move examples/ to...
736
  	@rm -f $(obj)examples/standalone/82559_eeprom			  \
d640ac58d   Wolfgang Denk   Remove "atmel_df_...
737
  	       $(obj)examples/standalone/atmel_df_pow2			  \
1bc153861   Peter Tyser   Move examples/ to...
738
739
740
741
742
  	       $(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				  \
201a017c2   Mike Frysinger   examples: add smc...
743
  	       $(obj)examples/standalone/smc911{11,x}_eeprom		  \
1bc153861   Peter Tyser   Move examples/ to...
744
745
  	       $(obj)examples/standalone/test_burst			  \
  	       $(obj)examples/standalone/timer
d4abc757c   Peter Tyser   Move api_examples...
746
  	@rm -f $(obj)examples/api/demo{,.bin}
f9301e1cd   Wolfgang Denk   Makefile: fix pro...
747
748
749
750
751
  	@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		  \
7717fe10b   Horst Kronstorfer   Makefile: add too...
752
  	       $(obj)tools/mk{env,}image   $(obj)tools/mpc86x_clk	  \
ad403e71b   Chander Kashyap   CONFIG: EXYNOS5: ...
753
  	       $(obj)tools/mk{$(BOARD),}spl				  \
8aa090265   Marek Vasut   MX28: Cleanup mxs...
754
  	       $(obj)tools/mxsboot					  \
30ff89189   Marek Vasut   kerneldoc: Implan...
755
  	       $(obj)tools/ncb		   $(obj)tools/ubsha1		  \
6c887b2ac   Simon Glass   Add proftool to d...
756
757
  	       $(obj)tools/kernel-doc/docproc				  \
  	       $(obj)tools/proftool
f9301e1cd   Wolfgang Denk   Makefile: fix pro...
758
  	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
74c7a95f2   Wolfgang Denk   Makefile: clean M...
759
  	       $(obj)board/matrix_vision/*/bootscript.img		  \
566e5cf45   Wolfgang Denk   ARM: drop unsuppo...
760
  	       $(obj)board/voiceblue/eeprom 				  \
1aada9cd6   Wolfgang Denk   Fix all linker sc...
761
  	       $(obj)u-boot.lds						  \
fb5166ce3   Mike Frysinger   Blackfin: add ini...
762
763
  	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
  	       $(obj)arch/blackfin/cpu/init.{lds,elf}
dc7746d86   Wolfgang Denk   Makefile: remove ...
764
  	@rm -f $(obj)include/bmp_logo.h
c270730f5   Che-Liang Chiou   tools: logo: spli...
765
  	@rm -f $(obj)include/bmp_logo_data.h
16a354f92   Wolfgang Denk   include/asm-offse...
766
  	@rm -f $(obj)lib/asm-offsets.s
a4814a69d   Stefano Babic   Makefile : fix ge...
767
768
  	@rm -f $(obj)include/generated/asm-offsets.h
  	@rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
d4abc757c   Peter Tyser   Move api_examples...
769
  	@rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
b3141fdb9   Andreas Bießmann   Makefile: silence...
770
  	@$(MAKE) -s -C doc/DocBook/ cleandocs
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
771
  	@find $(OBJTREE) -type f \
4a30f1e87   Tom Rini   config.mk: Check ...
772
  		\( -name 'core' -o -name '*.bak' -o -name '*~' -o -name '*.su' \
71a988aa6   Troy Kisky   imximage.cfg: run...
773
774
  		-o -name '*.o'	-o -name '*.a' -o -name '*.exe' \
  		-o -name '*.cfgtmp' \) -print \
7ebf7443a   wdenk   Initial revision
775
  		| xargs rm -f
7ebf7443a   wdenk   Initial revision
776

734329f96   Andy Fleming   Add a "tidy" buil...
777
778
779
780
781
782
783
784
  # Removes everything not needed for testing u-boot
  tidy:	clean
  	@find $(OBJTREE) -type f \( -name '*.depend*' \) -print | xargs rm -f
  
  clobber:	tidy
  	@find $(OBJTREE) -type f \( -name '*.srec' \
  		-o -name '*.bin' -o -name u-boot.img \) \
  		-print0 | xargs -0 rm -f
ffda586fc   Li Yang   add cscope build ...
785
  	@rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \
5013c09f7   Wolfgang Denk   Makefile: cleanup...
786
  		$(obj)cscope.* $(obj)*.*~
4e0fbb98f   Daniel Schwierzeck   Use ALL-y style i...
787
  	@rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL-y)
aa0c7a86c   Prafulla Wadaskar   mkimage: Add Kirk...
788
  	@rm -f $(obj)u-boot.kwb
5d898a00f   Shaohui Xie   powerpc/CoreNet: ...
789
  	@rm -f $(obj)u-boot.pbl
c5fb70c91   Stefano Babic   Add initial suppo...
790
  	@rm -f $(obj)u-boot.imx
ba5976092   Benoît Thébaudeau   imx: Add u-boot-w...
791
  	@rm -f $(obj)u-boot-with-spl.imx
7d5a5c79c   Benoît Thébaudeau   imx: Add u-boot-w...
792
  	@rm -f $(obj)u-boot-with-nand-spl.imx
7816f2cf8   Heiko Schocher   mkimage: add UBL ...
793
  	@rm -f $(obj)u-boot.ubl
d36d88598   Christian Riesch   arm, davinci: Add...
794
  	@rm -f $(obj)u-boot.ais
bbb0b128c   Simon Glass   fdt: Add support ...
795
  	@rm -f $(obj)u-boot.dtb
30b9b932a   Marek Vasut   iMX28: Add u-boot...
796
  	@rm -f $(obj)u-boot.sb
714dc001f   Marek Vasut   arm: mxs: Preproc...
797
  	@rm -f $(obj)u-boot.bd
94aebe6cc   Stefan Roese   Makefile: Add u-b...
798
  	@rm -f $(obj)u-boot.spr
97b24d3d5   Marek Vasut   common: Add symbo...
799
800
801
  	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
  	@rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
  	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
ef123c525   Albert ARIBAUD   Refactor linker-g...
802
  	@rm -f $(obj)spl/u-boot-spl.lds
3aa29de0b   Ying Zhang   TPL : introduce t...
803
804
  	@rm -f $(obj)tpl/{u-boot-tpl,u-boot-tpl.bin,u-boot-tpl.map}
  	@rm -f $(obj)tpl/u-boot-spl.lds
94bcfe524   Nishanth Menon   Makefile: remove ...
805
  	@rm -f $(obj)MLO MLO.byteswap
a3cbc3969   Stefano Babic   ARM: Add SPL targ...
806
  	@rm -f $(obj)SPL
8b425b3f8   Daniel Schwierzeck   MIPS: fix renamin...
807
  	@rm -f $(obj)tools/xway-swap-bytes
a9d8bc980   Loïc Minier   Don't add symlink...
808
  	@rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
16a354f92   Wolfgang Denk   include/asm-offse...
809
  	@rm -fr $(obj)include/generated
a958b663d   Jean-Christophe PLAGNIOL-VILLARD   Makefile: fix pos...
810
  	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
bbb0b128c   Simon Glass   fdt: Add support ...
811
  	@rm -f $(obj)dts/*.tmp
6d660e773   Sughosh Ganu   hawkboard/omapl-1...
812
  	@rm -f $(obj)spl/u-boot-spl{,-pad}.ais
f93286397   Marian Balakowicz   Add support for a...
813

f93286397   Marian Balakowicz   Add support for a...
814
815
  mrproper \
  distclean:	clobber unconfig
afd077bd1   Mike Frysinger   simplify clobber ...
816
  ifneq ($(OBJTREE),$(SRCTREE))
ae6d1056d   Wolfgang Denk   Fix Makefile depe...
817
  	rm -rf $(obj)*
f93286397   Marian Balakowicz   Add support for a...
818
  endif
7ebf7443a   wdenk   Initial revision
819
820
821
  
  backup:
  	F=`basename $(TOPDIR)` ; cd .. ; \
d6b937142   Ilya Yanok   Makefile: always ...
822
  	gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
7ebf7443a   wdenk   Initial revision
823
824
  
  #########################################################################