xref: /rk3399_rockchip-uboot/tools/Makefile (revision cd26a31a23f9a58ba52870f8ffb57d77d1baee20)
1efee1709Swdenk#
2f9328639SMarian Balakowicz# (C) Copyright 2000-2006
3efee1709Swdenk# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4efee1709Swdenk#
5efee1709Swdenk# See file CREDITS for list of people who contributed to this
6efee1709Swdenk# project.
7efee1709Swdenk#
8efee1709Swdenk# This program is free software; you can redistribute it and/or
9efee1709Swdenk# modify it under the terms of the GNU General Public License as
10efee1709Swdenk# published by the Free Software Foundation; either version 2 of
11efee1709Swdenk# the License, or (at your option) any later version.
12efee1709Swdenk#
13efee1709Swdenk# This program is distributed in the hope that it will be useful,
14efee1709Swdenk# but WITHOUT ANY WARRANTY; without even the implied warranty of
15efee1709Swdenk# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16efee1709Swdenk# GNU General Public License for more details.
17efee1709Swdenk#
18efee1709Swdenk# You should have received a copy of the GNU General Public License
19efee1709Swdenk# along with this program; if not, write to the Free Software
20efee1709Swdenk# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21efee1709Swdenk# MA 02111-1307 USA
22efee1709Swdenk#
23efee1709Swdenk
24efee1709SwdenkTOOLSUBDIRS =
25efee1709Swdenk
26efee1709Swdenk#
27efee1709Swdenk# Mac OS X / Darwin's C preprocessor is Apple specific.  It
28efee1709Swdenk# generates numerous errors and warnings.  We want to bypass it
29efee1709Swdenk# and use GNU C's cpp.  To do this we pass the -traditional-cpp
30efee1709Swdenk# option to the compiler.  Note that the -traditional-cpp flag
31efee1709Swdenk# DOES NOT have the same semantics as GNU C's flag, all it does
32efee1709Swdenk# is invoke the GNU preprocessor in stock ANSI/ISO C fashion.
33efee1709Swdenk#
34efee1709Swdenk# Apple's linker is similar, thanks to the new 2 stage linking
35efee1709Swdenk# multiple symbol definitions are treated as errors, hence the
36efee1709Swdenk# -multiply_defined suppress option to turn off this error.
37efee1709Swdenk#
38efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
39efee1709SwdenkHOST_CFLAGS = -traditional-cpp -Wall
40efee1709SwdenkHOST_LDFLAGS =-multiply_defined suppress
415dfaa50eSAubrey.LiHOST_ENVIRO_CFLAGS =
42efee1709Swdenk
43efee1709Swdenkelse
44efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),netbsd-ppc)
45efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
46efee1709SwdenkHOST_LDFLAGS =
47efee1709SwdenkHOST_ENVIRO_CFLAGS =
48efee1709Swdenk
49efee1709Swdenk#
50efee1709Swdenk# Everyone else
51efee1709Swdenk#
52efee1709Swdenkelse
53efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
54efee1709SwdenkHOST_LDFLAGS =
55efee1709SwdenkHOST_ENVIRO_CFLAGS =
56efee1709Swdenkendif
57efee1709Swdenkendif
58efee1709Swdenk
59efee1709Swdenk#
60efee1709Swdenk# Cygwin needs .exe files :-(
61efee1709Swdenk#
62efee1709Swdenkifeq ($(HOSTOS),cygwin)
63efee1709SwdenkSFX = .exe
64883e3925Sraptorbrino@aim.comHOST_CFLAGS += -ansi
65efee1709Swdenkelse
66efee1709SwdenkSFX =
67efee1709Swdenkendif
68efee1709Swdenk
69efee1709Swdenk#
70efee1709Swdenk# Include this after HOSTOS HOSTARCH check
71efee1709Swdenk# so that we can act intelligently.
72efee1709Swdenk#
73efee1709Swdenkinclude $(TOPDIR)/config.mk
74efee1709Swdenk
75ee3584a5SPeter Tyser# Generated executable files
76eeba8617SPeter TyserBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
77ee3584a5SPeter TyserBIN_FILES-y += mkimage$(SFX)
78ee3584a5SPeter TyserBIN_FILES-y += envcrc$(SFX)
797cd5cbc3SPeter TyserBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX)
80ee3584a5SPeter TyserBIN_FILES-y += gen_eth_addr$(SFX)
81335ffe7eSPeter TyserBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
82335ffe7eSPeter TyserBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
83*cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX)
84ee3584a5SPeter Tyser
85ee3584a5SPeter Tyser# Source files which are symlinked from elsewhere in U-Boot
86ee3584a5SPeter TyserOBJ_LINKS-y += env_embedded.o
87ee3584a5SPeter TyserOBJ_LINKS-y += crc32.o md5.o
88ee3584a5SPeter TyserOBJ_LINKS-y += sha1.o
89ee3584a5SPeter TyserOBJ_LINKS-y += image.o
90ee3584a5SPeter Tyser
91ee3584a5SPeter Tyser# Source files located in the tools directory
92eeba8617SPeter TyserOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
93ee3584a5SPeter TyserOBJ_FILES-y += mkimage.o
94ee3584a5SPeter TyserOBJ_FILES-y += envcrc.o
957cd5cbc3SPeter TyserOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o
96ee3584a5SPeter TyserOBJ_FILES-y += gen_eth_addr.o
97335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
98335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
99*cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o
100ee3584a5SPeter Tyser
101ee3584a5SPeter Tyser# Don't build by default
102ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc)
103ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX)
104ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o
105ee3584a5SPeter Tyser#endif
106ee3584a5SPeter Tyser
107ee3584a5SPeter Tyser# Flattened device tree objects
108ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o
109ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o
110ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o
111ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o
112ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o
113ee3584a5SPeter Tyser
114335ffe7eSPeter Tyser# Generated LCD/video logo
115ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h
116335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
117335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
118ee3584a5SPeter Tyser
119ee3584a5SPeter Tyserifeq ($(LOGO_BMP),)
120ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp
121ee3584a5SPeter Tyserendif
122ee3584a5SPeter Tyserifeq ($(VENDOR),atmel)
123ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp
124ee3584a5SPeter Tyserendif
125ee3584a5SPeter Tyser
126f9328639SMarian Balakowicz# now $(obj) is defined
127ee3584a5SPeter TyserSRCS	:= $(addprefix $(obj),$(OBJ_LINKS-y:.o=.c)) $(OBJ_FILES-y:.o=.c)
128ee3584a5SPeter TyserBINS	:= $(addprefix $(obj),$(BIN_FILES-y))
129ee3584a5SPeter TyserLIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
130f9328639SMarian Balakowicz
131efee1709Swdenk#
132efee1709Swdenk# Use native tools and options
133efee1709Swdenk#
134f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
135f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
136f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
137f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
138efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
1398cf30809SBartlomiej Sieka
1408cf30809SBartlomiej Sieka# No -pedantic switch to avoid libfdt compilation warnings
1418cf30809SBartlomiej SiekaFIT_CFLAGS = -Wall $(CPPFLAGS) -O
1428cf30809SBartlomiej Sieka
143efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
144efee1709SwdenkCC	   = $(HOSTCC)
145efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
146efee1709SwdenkMAKEDEPEND = makedepend
147efee1709Swdenk
148335ffe7eSPeter Tyserall:	$(obj).depend $(BINS) $(LOGO-y) subdirs
149efee1709Swdenk
1500cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)env_embedded.o $(obj)sha1.o
151566a494fSHeiko Schocher	$(CC) $(CFLAGS) -o $@ $^
152566a494fSHeiko Schocher
153566a494fSHeiko Schocher$(obj)ubsha1$(SFX):	$(obj)ubsha1.o $(obj)sha1.o
154efee1709Swdenk	$(CC) $(CFLAGS) -o $@ $^
155efee1709Swdenk
156f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
157efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
158efee1709Swdenk	$(STRIP) $@
159efee1709Swdenk
16021d28e95SPeter Tyser$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o \
161ee3584a5SPeter Tyser			$(obj)sha1.o $(LIBFDT_OBJS)
162efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
163efee1709Swdenk	$(STRIP) $@
164efee1709Swdenk
165f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
166eedcd078Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
167eedcd078Swdenk	$(STRIP) $@
168eedcd078Swdenk
169f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
170efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
171efee1709Swdenk	$(STRIP) $@
172efee1709Swdenk
173f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
174efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
175efee1709Swdenk	$(STRIP) $@
176efee1709Swdenk
177f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1783e38691eSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1793e38691eSwdenk	$(STRIP) $@
1803e38691eSwdenk
181f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
182ef1464ccSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
183ef1464ccSwdenk	$(STRIP) $@
184ef1464ccSwdenk
1850a823aa2SHarald Welte$(obj)bin2header$(SFX): $(obj)bin2header.o
1860a823aa2SHarald Welte	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1870a823aa2SHarald Welte	$(STRIP) $@
1880a823aa2SHarald Welte
189f9328639SMarian Balakowicz$(obj)envcrc.o:	$(src)envcrc.c
190f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
191efee1709Swdenk
192566a494fSHeiko Schocher$(obj)ubsha1.o:	$(src)ubsha1.c
193566a494fSHeiko Schocher	$(CC) -g $(CFLAGS) -c -o $@ $<
194566a494fSHeiko Schocher
195f9328639SMarian Balakowicz$(obj)crc32.o:	$(obj)crc32.c
196f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
197efee1709Swdenk
198766529fcSBartlomiej Sieka$(obj)md5.o:	$(obj)md5.c
199766529fcSBartlomiej Sieka	$(CC) -g $(CFLAGS) -c -o $@ $<
200766529fcSBartlomiej Sieka
201566a494fSHeiko Schocher$(obj)sha1.o:	$(obj)sha1.c
202566a494fSHeiko Schocher	$(CC) -g $(CFLAGS) -c -o $@ $<
203566a494fSHeiko Schocher
204b97a2a0aSMarian Balakowicz$(obj)image.o:	$(obj)image.c
2058cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
206b97a2a0aSMarian Balakowicz
207f9328639SMarian Balakowicz$(obj)mkimage.o:	$(src)mkimage.c
2088cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
209efee1709Swdenk
210f9328639SMarian Balakowicz$(obj)ncb.o:		$(src)ncb.c
211f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
212eedcd078Swdenk
213f9328639SMarian Balakowicz$(obj)gen_eth_addr.o:	$(src)gen_eth_addr.c
214f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
215efee1709Swdenk
216f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o:	$(src)inca-swap-bytes.c
217f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
2183e38691eSwdenk
219f9328639SMarian Balakowicz$(obj)mpc86x_clk.o:	$(src)mpc86x_clk.c
220f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
221ef1464ccSwdenk
2228cf30809SBartlomiej Sieka$(obj)fdt.o:	$(obj)fdt.c
2238cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2248cf30809SBartlomiej Sieka
2258cf30809SBartlomiej Sieka$(obj)fdt_ro.o:	$(obj)fdt_ro.c
2268cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2278cf30809SBartlomiej Sieka
2288cf30809SBartlomiej Sieka$(obj)fdt_rw.o:	$(obj)fdt_rw.c
2298cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2308cf30809SBartlomiej Sieka
2318cf30809SBartlomiej Sieka$(obj)fdt_strerror.o:	$(obj)fdt_strerror.c
2328cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2338cf30809SBartlomiej Sieka
2348cf30809SBartlomiej Sieka$(obj)fdt_wip.o:	$(obj)fdt_wip.c
2358cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2368cf30809SBartlomiej Sieka
237efee1709Swdenksubdirs:
238e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
239e0ac62d7Swdenk	@:
240e0ac62d7Swdenkelse
241efee1709Swdenk	@for dir in $(TOOLSUBDIRS) ; do \
242efee1709Swdenk	    $(MAKE) \
243efee1709Swdenk		HOSTOS=$(HOSTOS) \
244efee1709Swdenk		HOSTARCH=$(HOSTARCH) \
245efee1709Swdenk		HOST_CFLAGS="$(HOST_CFLAGS)" \
246efee1709Swdenk		HOST_LDFLAGS="$(HOST_LDFLAGS)" \
247efee1709Swdenk		-C $$dir || exit 1 ; \
248efee1709Swdenk	done
249e0ac62d7Swdenkendif
250e0ac62d7Swdenk
2510cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)env_embedded.c:
2520cf4fd3cSJean-Christophe PLAGNIOL-VILLARD	@rm -f $(obj)env_embedded.c
2530cf4fd3cSJean-Christophe PLAGNIOL-VILLARD	ln -s $(src)../common/env_embedded.c $(obj)env_embedded.c
254efee1709Swdenk
2550cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)env_embedded.o:	$(obj)env_embedded.c
256f9328639SMarian Balakowicz	$(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $<
257efee1709Swdenk
25889cdab78SMike Frysinger$(obj)zlib.h:
25989cdab78SMike Frysinger	@rm -f $@
26089cdab78SMike Frysinger	ln -s $(src)../include/zlib.h $@
26189cdab78SMike Frysinger
26289cdab78SMike Frysinger$(obj)crc32.c: $(obj)zlib.h
263f9328639SMarian Balakowicz	@rm -f $(obj)crc32.c
264f9328639SMarian Balakowicz	ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
265efee1709Swdenk
266766529fcSBartlomiej Sieka$(obj)md5.c:
267766529fcSBartlomiej Sieka	@rm -f $(obj)md5.c
268766529fcSBartlomiej Sieka	ln -s $(src)../lib_generic/md5.c $(obj)md5.c
269766529fcSBartlomiej Sieka
270566a494fSHeiko Schocher$(obj)sha1.c:
271566a494fSHeiko Schocher	@rm -f $(obj)sha1.c
272566a494fSHeiko Schocher	ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c
273566a494fSHeiko Schocher
274b97a2a0aSMarian Balakowicz$(obj)image.c:
275b97a2a0aSMarian Balakowicz	@rm -f $(obj)image.c
276b97a2a0aSMarian Balakowicz	ln -s $(src)../common/image.c $(obj)image.c
277b9670dd8SAnatolij Gustschin	if [ ! -f $(obj)mkimage.h ] ; then \
278b9670dd8SAnatolij Gustschin		ln -s $(src)../tools/mkimage.h $(obj)mkimage.h; \
279b9670dd8SAnatolij Gustschin	fi
280b9670dd8SAnatolij Gustschin	if [ ! -f $(obj)fdt_host.h ] ; then \
281b9670dd8SAnatolij Gustschin		ln -s $(src)../tools/fdt_host.h $(obj)fdt_host.h; \
282b9670dd8SAnatolij Gustschin	fi
283b97a2a0aSMarian Balakowicz
284b9670dd8SAnatolij Gustschin$(obj)fdt.c:	$(obj)libfdt_internal.h
2858cf30809SBartlomiej Sieka	@rm -f $(obj)fdt.c
2868cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt.c $(obj)fdt.c
2878cf30809SBartlomiej Sieka
288b9670dd8SAnatolij Gustschin$(obj)fdt_ro.c:	$(obj)libfdt_internal.h
2898cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_ro.c
2908cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_ro.c $(obj)fdt_ro.c
2918cf30809SBartlomiej Sieka
292b9670dd8SAnatolij Gustschin$(obj)fdt_rw.c:	$(obj)libfdt_internal.h
2938cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_rw.c
2948cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_rw.c $(obj)fdt_rw.c
2958cf30809SBartlomiej Sieka
296b9670dd8SAnatolij Gustschin$(obj)fdt_strerror.c:	$(obj)libfdt_internal.h
2978cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_strerror.c
2988cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_strerror.c $(obj)fdt_strerror.c
2998cf30809SBartlomiej Sieka
300b9670dd8SAnatolij Gustschin$(obj)fdt_wip.c:	$(obj)libfdt_internal.h
3018cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_wip.c
3028cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_wip.c $(obj)fdt_wip.c
3038cf30809SBartlomiej Sieka
3048cf30809SBartlomiej Sieka$(obj)libfdt_internal.h:
3058cf30809SBartlomiej Sieka	@rm -f $(obj)libfdt_internal.h
3068cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/libfdt_internal.h $(obj)libfdt_internal.h
3078cf30809SBartlomiej Sieka
308f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
309f9328639SMarian Balakowicz	$(obj)./bmp_logo $(LOGO_BMP) >$@
310efee1709Swdenk
311efee1709Swdenk#########################################################################
312efee1709Swdenk
313f9328639SMarian Balakowicz# defines $(obj).depend target
314f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
315efee1709Swdenk
316f9328639SMarian Balakowiczsinclude $(obj).depend
317efee1709Swdenk
318efee1709Swdenk#########################################################################
319