xref: /rk3399_rockchip-uboot/tools/Makefile (revision 335ffe7e0e0a30e90ce409c3279016a582157d8e)
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
76ee3584a5SPeter TyserBIN_FILES-y += img2srec$(SFX)
77ee3584a5SPeter TyserBIN_FILES-y += mkimage$(SFX)
78ee3584a5SPeter TyserBIN_FILES-y += envcrc$(SFX)
79ee3584a5SPeter TyserBIN_FILES-y += ubsha1$(SFX)
80ee3584a5SPeter TyserBIN_FILES-y += gen_eth_addr$(SFX)
81*335ffe7eSPeter TyserBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
82*335ffe7eSPeter TyserBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
83ee3584a5SPeter Tyser
84ee3584a5SPeter Tyser# Source files which are symlinked from elsewhere in U-Boot
85ee3584a5SPeter TyserOBJ_LINKS-y += env_embedded.o
86ee3584a5SPeter TyserOBJ_LINKS-y += crc32.o md5.o
87ee3584a5SPeter TyserOBJ_LINKS-y += sha1.o
88ee3584a5SPeter TyserOBJ_LINKS-y += image.o
89ee3584a5SPeter Tyser
90ee3584a5SPeter Tyser# Source files located in the tools directory
91ee3584a5SPeter TyserOBJ_FILES-y += img2srec.o
92ee3584a5SPeter TyserOBJ_FILES-y += mkimage.o
93ee3584a5SPeter TyserOBJ_FILES-y += envcrc.o
94ee3584a5SPeter TyserOBJ_FILES-y += ubsha1.o
95ee3584a5SPeter TyserOBJ_FILES-y += gen_eth_addr.o
96*335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
97*335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
98ee3584a5SPeter Tyser
99ee3584a5SPeter Tyserifeq ($(ARCH),mips)
100ee3584a5SPeter TyserBIN_FILES-y += inca-swap-bytes$(SFX)
101ee3584a5SPeter TyserOBJ_FILES-y += inca-swap-bytes.o
102ee3584a5SPeter Tyserendif
103ee3584a5SPeter Tyser
104ee3584a5SPeter Tyser# Don't build by default
105ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc)
106ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX)
107ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o
108ee3584a5SPeter Tyser#endif
109ee3584a5SPeter Tyser
110ee3584a5SPeter Tyser# Flattened device tree objects
111ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o
112ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o
113ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o
114ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o
115ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o
116ee3584a5SPeter Tyser
117*335ffe7eSPeter Tyser# Generated LCD/video logo
118ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h
119*335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
120*335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
121ee3584a5SPeter Tyser
122ee3584a5SPeter Tyserifeq ($(LOGO_BMP),)
123ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp
124ee3584a5SPeter Tyserendif
125ee3584a5SPeter Tyserifeq ($(VENDOR),atmel)
126ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp
127ee3584a5SPeter Tyserendif
128ee3584a5SPeter Tyser
129f9328639SMarian Balakowicz# now $(obj) is defined
130ee3584a5SPeter TyserSRCS	:= $(addprefix $(obj),$(OBJ_LINKS-y:.o=.c)) $(OBJ_FILES-y:.o=.c)
131ee3584a5SPeter TyserBINS	:= $(addprefix $(obj),$(BIN_FILES-y))
132ee3584a5SPeter TyserLIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
133f9328639SMarian Balakowicz
134efee1709Swdenk#
135efee1709Swdenk# Use native tools and options
136efee1709Swdenk#
137f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
138f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
139f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
140f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
141efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
1428cf30809SBartlomiej Sieka
1438cf30809SBartlomiej Sieka# No -pedantic switch to avoid libfdt compilation warnings
1448cf30809SBartlomiej SiekaFIT_CFLAGS = -Wall $(CPPFLAGS) -O
1458cf30809SBartlomiej Sieka
146efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
147efee1709SwdenkCC	   = $(HOSTCC)
148efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
149efee1709SwdenkMAKEDEPEND = makedepend
150efee1709Swdenk
151*335ffe7eSPeter Tyserall:	$(obj).depend $(BINS) $(LOGO-y) subdirs
152efee1709Swdenk
1530cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)env_embedded.o $(obj)sha1.o
154566a494fSHeiko Schocher	$(CC) $(CFLAGS) -o $@ $^
155566a494fSHeiko Schocher
156566a494fSHeiko Schocher$(obj)ubsha1$(SFX):	$(obj)ubsha1.o $(obj)sha1.o
157efee1709Swdenk	$(CC) $(CFLAGS) -o $@ $^
158efee1709Swdenk
159f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
160efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
161efee1709Swdenk	$(STRIP) $@
162efee1709Swdenk
16321d28e95SPeter Tyser$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o \
164ee3584a5SPeter Tyser			$(obj)sha1.o $(LIBFDT_OBJS)
165efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
166efee1709Swdenk	$(STRIP) $@
167efee1709Swdenk
168f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
169eedcd078Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
170eedcd078Swdenk	$(STRIP) $@
171eedcd078Swdenk
172f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
173efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
174efee1709Swdenk	$(STRIP) $@
175efee1709Swdenk
176f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
177efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
178efee1709Swdenk	$(STRIP) $@
179efee1709Swdenk
180f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1813e38691eSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1823e38691eSwdenk	$(STRIP) $@
1833e38691eSwdenk
184f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
185ef1464ccSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
186ef1464ccSwdenk	$(STRIP) $@
187ef1464ccSwdenk
1880a823aa2SHarald Welte$(obj)bin2header$(SFX): $(obj)bin2header.o
1890a823aa2SHarald Welte	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1900a823aa2SHarald Welte	$(STRIP) $@
1910a823aa2SHarald Welte
192f9328639SMarian Balakowicz$(obj)envcrc.o:	$(src)envcrc.c
193f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
194efee1709Swdenk
195566a494fSHeiko Schocher$(obj)ubsha1.o:	$(src)ubsha1.c
196566a494fSHeiko Schocher	$(CC) -g $(CFLAGS) -c -o $@ $<
197566a494fSHeiko Schocher
198f9328639SMarian Balakowicz$(obj)crc32.o:	$(obj)crc32.c
199f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
200efee1709Swdenk
201766529fcSBartlomiej Sieka$(obj)md5.o:	$(obj)md5.c
202766529fcSBartlomiej Sieka	$(CC) -g $(CFLAGS) -c -o $@ $<
203766529fcSBartlomiej Sieka
204566a494fSHeiko Schocher$(obj)sha1.o:	$(obj)sha1.c
205566a494fSHeiko Schocher	$(CC) -g $(CFLAGS) -c -o $@ $<
206566a494fSHeiko Schocher
207b97a2a0aSMarian Balakowicz$(obj)image.o:	$(obj)image.c
2088cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
209b97a2a0aSMarian Balakowicz
210f9328639SMarian Balakowicz$(obj)mkimage.o:	$(src)mkimage.c
2118cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
212efee1709Swdenk
213f9328639SMarian Balakowicz$(obj)ncb.o:		$(src)ncb.c
214f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
215eedcd078Swdenk
216f9328639SMarian Balakowicz$(obj)gen_eth_addr.o:	$(src)gen_eth_addr.c
217f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
218efee1709Swdenk
219f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o:	$(src)inca-swap-bytes.c
220f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
2213e38691eSwdenk
222f9328639SMarian Balakowicz$(obj)mpc86x_clk.o:	$(src)mpc86x_clk.c
223f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
224ef1464ccSwdenk
2258cf30809SBartlomiej Sieka$(obj)fdt.o:	$(obj)fdt.c
2268cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2278cf30809SBartlomiej Sieka
2288cf30809SBartlomiej Sieka$(obj)fdt_ro.o:	$(obj)fdt_ro.c
2298cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2308cf30809SBartlomiej Sieka
2318cf30809SBartlomiej Sieka$(obj)fdt_rw.o:	$(obj)fdt_rw.c
2328cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2338cf30809SBartlomiej Sieka
2348cf30809SBartlomiej Sieka$(obj)fdt_strerror.o:	$(obj)fdt_strerror.c
2358cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2368cf30809SBartlomiej Sieka
2378cf30809SBartlomiej Sieka$(obj)fdt_wip.o:	$(obj)fdt_wip.c
2388cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2398cf30809SBartlomiej Sieka
240efee1709Swdenksubdirs:
241e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
242e0ac62d7Swdenk	@:
243e0ac62d7Swdenkelse
244efee1709Swdenk	@for dir in $(TOOLSUBDIRS) ; do \
245efee1709Swdenk	    $(MAKE) \
246efee1709Swdenk		HOSTOS=$(HOSTOS) \
247efee1709Swdenk		HOSTARCH=$(HOSTARCH) \
248efee1709Swdenk		HOST_CFLAGS="$(HOST_CFLAGS)" \
249efee1709Swdenk		HOST_LDFLAGS="$(HOST_LDFLAGS)" \
250efee1709Swdenk		-C $$dir || exit 1 ; \
251efee1709Swdenk	done
252e0ac62d7Swdenkendif
253e0ac62d7Swdenk
2540cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)env_embedded.c:
2550cf4fd3cSJean-Christophe PLAGNIOL-VILLARD	@rm -f $(obj)env_embedded.c
2560cf4fd3cSJean-Christophe PLAGNIOL-VILLARD	ln -s $(src)../common/env_embedded.c $(obj)env_embedded.c
257efee1709Swdenk
2580cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)env_embedded.o:	$(obj)env_embedded.c
259f9328639SMarian Balakowicz	$(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $<
260efee1709Swdenk
26189cdab78SMike Frysinger$(obj)zlib.h:
26289cdab78SMike Frysinger	@rm -f $@
26389cdab78SMike Frysinger	ln -s $(src)../include/zlib.h $@
26489cdab78SMike Frysinger
26589cdab78SMike Frysinger$(obj)crc32.c: $(obj)zlib.h
266f9328639SMarian Balakowicz	@rm -f $(obj)crc32.c
267f9328639SMarian Balakowicz	ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
268efee1709Swdenk
269766529fcSBartlomiej Sieka$(obj)md5.c:
270766529fcSBartlomiej Sieka	@rm -f $(obj)md5.c
271766529fcSBartlomiej Sieka	ln -s $(src)../lib_generic/md5.c $(obj)md5.c
272766529fcSBartlomiej Sieka
273566a494fSHeiko Schocher$(obj)sha1.c:
274566a494fSHeiko Schocher	@rm -f $(obj)sha1.c
275566a494fSHeiko Schocher	ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c
276566a494fSHeiko Schocher
277b97a2a0aSMarian Balakowicz$(obj)image.c:
278b97a2a0aSMarian Balakowicz	@rm -f $(obj)image.c
279b97a2a0aSMarian Balakowicz	ln -s $(src)../common/image.c $(obj)image.c
280b9670dd8SAnatolij Gustschin	if [ ! -f $(obj)mkimage.h ] ; then \
281b9670dd8SAnatolij Gustschin		ln -s $(src)../tools/mkimage.h $(obj)mkimage.h; \
282b9670dd8SAnatolij Gustschin	fi
283b9670dd8SAnatolij Gustschin	if [ ! -f $(obj)fdt_host.h ] ; then \
284b9670dd8SAnatolij Gustschin		ln -s $(src)../tools/fdt_host.h $(obj)fdt_host.h; \
285b9670dd8SAnatolij Gustschin	fi
286b97a2a0aSMarian Balakowicz
287b9670dd8SAnatolij Gustschin$(obj)fdt.c:	$(obj)libfdt_internal.h
2888cf30809SBartlomiej Sieka	@rm -f $(obj)fdt.c
2898cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt.c $(obj)fdt.c
2908cf30809SBartlomiej Sieka
291b9670dd8SAnatolij Gustschin$(obj)fdt_ro.c:	$(obj)libfdt_internal.h
2928cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_ro.c
2938cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_ro.c $(obj)fdt_ro.c
2948cf30809SBartlomiej Sieka
295b9670dd8SAnatolij Gustschin$(obj)fdt_rw.c:	$(obj)libfdt_internal.h
2968cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_rw.c
2978cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_rw.c $(obj)fdt_rw.c
2988cf30809SBartlomiej Sieka
299b9670dd8SAnatolij Gustschin$(obj)fdt_strerror.c:	$(obj)libfdt_internal.h
3008cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_strerror.c
3018cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_strerror.c $(obj)fdt_strerror.c
3028cf30809SBartlomiej Sieka
303b9670dd8SAnatolij Gustschin$(obj)fdt_wip.c:	$(obj)libfdt_internal.h
3048cf30809SBartlomiej Sieka	@rm -f $(obj)fdt_wip.c
3058cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/fdt_wip.c $(obj)fdt_wip.c
3068cf30809SBartlomiej Sieka
3078cf30809SBartlomiej Sieka$(obj)libfdt_internal.h:
3088cf30809SBartlomiej Sieka	@rm -f $(obj)libfdt_internal.h
3098cf30809SBartlomiej Sieka	ln -s $(src)../libfdt/libfdt_internal.h $(obj)libfdt_internal.h
3108cf30809SBartlomiej Sieka
311f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
312f9328639SMarian Balakowicz	$(obj)./bmp_logo $(LOGO_BMP) >$@
313efee1709Swdenk
314efee1709Swdenk#########################################################################
315efee1709Swdenk
316f9328639SMarian Balakowicz# defines $(obj).depend target
317f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
318efee1709Swdenk
319f9328639SMarian Balakowiczsinclude $(obj).depend
320efee1709Swdenk
321efee1709Swdenk#########################################################################
322