xref: /rk3399_rockchip-uboot/tools/Makefile (revision 766529fccc860ecb9e955b4239dff69cd9e4ea09)
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
24566a494fSHeiko SchocherBIN_FILES	= img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) ubsha1$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX)
25efee1709Swdenk
26*766529fcSBartlomiej SiekaOBJ_LINKS	= environment.o crc32.o md5.o sha1.o image.o
27566a494fSHeiko SchocherOBJ_FILES	= img2srec.o mkimage.o envcrc.o ubsha1.o gen_eth_addr.o bmp_logo.o
28efee1709Swdenk
293e38691eSwdenkifeq ($(ARCH),mips)
30f9328639SMarian BalakowiczBIN_FILES	+= inca-swap-bytes$(SFX)
31f9328639SMarian BalakowiczOBJ_FILES	+= inca-swap-bytes.o
323e38691eSwdenkendif
333e38691eSwdenk
34ef1464ccSwdenk# Don't build by default
35ef1464ccSwdenk#ifeq ($(ARCH),ppc)
36f9328639SMarian Balakowicz#BIN_FILES		+= mpc86x_clk$(SFX)
37f9328639SMarian Balakowicz#OBJ_FILES	+= mpc86x_clk.o
38ef1464ccSwdenk#endif
39ef1464ccSwdenk
408cf30809SBartlomiej SiekaLIBFDT_OBJ_FILES	= fdt.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_wip.o
418cf30809SBartlomiej Sieka
42f9328639SMarian BalakowiczLOGO_H	= $(OBJTREE)/include/bmp_logo.h
43efee1709Swdenk
44efee1709Swdenkifeq ($(LOGO_BMP),)
45efee1709SwdenkLOGO_BMP= logos/denx.bmp
46efee1709Swdenkendif
47efee1709Swdenk
48efee1709Swdenk#-------------------------------------------------------------------------
49efee1709Swdenk
50efee1709SwdenkHOSTARCH := $(shell uname -m | \
51efee1709Swdenk	sed -e s/i.86/i386/ \
52efee1709Swdenk	    -e s/sun4u/sparc64/ \
53efee1709Swdenk	    -e s/arm.*/arm/ \
54efee1709Swdenk	    -e s/sa110/arm/ \
55efee1709Swdenk	    -e s/powerpc/ppc/ \
56efee1709Swdenk	    -e s/Power\ Macintosh/ppc/ \
57efee1709Swdenk	    -e s/macppc/ppc/)
58efee1709Swdenk
59efee1709SwdenkHOSTOS := $(shell uname -s | tr A-Z a-z | \
60efee1709Swdenk	sed -e 's/\(cygwin\).*/cygwin/')
61efee1709Swdenk
62efee1709SwdenkTOOLSUBDIRS =
63efee1709Swdenk
64efee1709Swdenk#
65efee1709Swdenk# Mac OS X / Darwin's C preprocessor is Apple specific.  It
66efee1709Swdenk# generates numerous errors and warnings.  We want to bypass it
67efee1709Swdenk# and use GNU C's cpp.  To do this we pass the -traditional-cpp
68efee1709Swdenk# option to the compiler.  Note that the -traditional-cpp flag
69efee1709Swdenk# DOES NOT have the same semantics as GNU C's flag, all it does
70efee1709Swdenk# is invoke the GNU preprocessor in stock ANSI/ISO C fashion.
71efee1709Swdenk#
72efee1709Swdenk# Apple's linker is similar, thanks to the new 2 stage linking
73efee1709Swdenk# multiple symbol definitions are treated as errors, hence the
74efee1709Swdenk# -multiply_defined suppress option to turn off this error.
75efee1709Swdenk#
76efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
77efee1709SwdenkHOST_CFLAGS = -traditional-cpp -Wall
78efee1709SwdenkHOST_LDFLAGS =-multiply_defined suppress
795dfaa50eSAubrey.LiHOST_ENVIRO_CFLAGS =
80efee1709Swdenk
81efee1709Swdenkelse
82efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),netbsd-ppc)
83efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
84efee1709SwdenkHOST_LDFLAGS =
85efee1709SwdenkHOST_ENVIRO_CFLAGS =
86efee1709Swdenk
87efee1709Swdenk#
88efee1709Swdenk# Everyone else
89efee1709Swdenk#
90efee1709Swdenkelse
91efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
92efee1709SwdenkHOST_LDFLAGS =
93efee1709SwdenkHOST_ENVIRO_CFLAGS =
94efee1709Swdenkendif
95efee1709Swdenkendif
96efee1709Swdenk
97efee1709Swdenk#
98efee1709Swdenk# Cygwin needs .exe files :-(
99efee1709Swdenk#
100efee1709Swdenkifeq ($(HOSTOS),cygwin)
101efee1709SwdenkSFX = .exe
102883e3925Sraptorbrino@aim.comHOST_CFLAGS += -ansi
103efee1709Swdenkelse
104efee1709SwdenkSFX =
105efee1709Swdenkendif
106efee1709Swdenk
107efee1709Swdenk#
108efee1709Swdenk# Include this after HOSTOS HOSTARCH check
109efee1709Swdenk# so that we can act intelligently.
110efee1709Swdenk#
111efee1709Swdenkinclude $(TOPDIR)/config.mk
112efee1709Swdenk
113f9328639SMarian Balakowicz# now $(obj) is defined
114f9328639SMarian BalakowiczSRCS	:= $(addprefix $(obj),$(OBJ_LINKS:.o=.c)) $(OBJ_FILES:.o=.c)
115f9328639SMarian BalakowiczBINS	:= $(addprefix $(obj),$(BIN_FILES))
116f9328639SMarian Balakowicz
117efee1709Swdenk#
118efee1709Swdenk# Use native tools and options
119efee1709Swdenk#
120f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
121f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
122f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
123f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
124efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
1258cf30809SBartlomiej Sieka
1268cf30809SBartlomiej Sieka# No -pedantic switch to avoid libfdt compilation warnings
1278cf30809SBartlomiej SiekaFIT_CFLAGS = -Wall $(CPPFLAGS) -O
1288cf30809SBartlomiej Sieka
129efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
130efee1709SwdenkCC	   = $(HOSTCC)
131efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
132efee1709SwdenkMAKEDEPEND = makedepend
133efee1709Swdenk
134f9328639SMarian Balakowiczall:	$(obj).depend $(BINS) $(LOGO_H) subdirs
135efee1709Swdenk
136566a494fSHeiko Schocher$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)environment.o $(obj)sha1.o
137566a494fSHeiko Schocher		$(CC) $(CFLAGS) -o $@ $^
138566a494fSHeiko Schocher
139566a494fSHeiko Schocher$(obj)ubsha1$(SFX):	$(obj)ubsha1.o $(obj)sha1.o
140efee1709Swdenk		$(CC) $(CFLAGS) -o $@ $^
141efee1709Swdenk
142f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
143efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
144efee1709Swdenk		$(STRIP) $@
145efee1709Swdenk
146*766529fcSBartlomiej Sieka$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o $(obj)sha1.o $(LIBFDT_OBJ_FILES)
147efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
148efee1709Swdenk		$(STRIP) $@
149efee1709Swdenk
150f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
151eedcd078Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
152eedcd078Swdenk		$(STRIP) $@
153eedcd078Swdenk
154f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
155efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
156efee1709Swdenk		$(STRIP) $@
157efee1709Swdenk
158f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
159efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
160efee1709Swdenk		$(STRIP) $@
161efee1709Swdenk
162f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1633e38691eSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1643e38691eSwdenk		$(STRIP) $@
1653e38691eSwdenk
166f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
167ef1464ccSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
168ef1464ccSwdenk		$(STRIP) $@
169ef1464ccSwdenk
170f9328639SMarian Balakowicz$(obj)envcrc.o:	$(src)envcrc.c
171f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
172efee1709Swdenk
173566a494fSHeiko Schocher$(obj)ubsha1.o:	$(src)ubsha1.c
174566a494fSHeiko Schocher		$(CC) -g $(CFLAGS) -c -o $@ $<
175566a494fSHeiko Schocher
176f9328639SMarian Balakowicz$(obj)crc32.o:	$(obj)crc32.c
177f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
178efee1709Swdenk
179*766529fcSBartlomiej Sieka$(obj)md5.o:	$(obj)md5.c
180*766529fcSBartlomiej Sieka		$(CC) -g $(CFLAGS) -c -o $@ $<
181*766529fcSBartlomiej Sieka
182566a494fSHeiko Schocher$(obj)sha1.o:	$(obj)sha1.c
183566a494fSHeiko Schocher		$(CC) -g $(CFLAGS) -c -o $@ $<
184566a494fSHeiko Schocher
185b97a2a0aSMarian Balakowicz$(obj)image.o:	$(obj)image.c
1868cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
187b97a2a0aSMarian Balakowicz
188f9328639SMarian Balakowicz$(obj)mkimage.o:	$(src)mkimage.c
1898cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
190efee1709Swdenk
191f9328639SMarian Balakowicz$(obj)ncb.o:		$(src)ncb.c
192f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
193eedcd078Swdenk
194f9328639SMarian Balakowicz$(obj)gen_eth_addr.o:	$(src)gen_eth_addr.c
195f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
196efee1709Swdenk
197f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o:	$(src)inca-swap-bytes.c
198f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
1993e38691eSwdenk
200f9328639SMarian Balakowicz$(obj)mpc86x_clk.o:	$(src)mpc86x_clk.c
201f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
202ef1464ccSwdenk
2038cf30809SBartlomiej Sieka$(obj)fdt.o:	$(obj)fdt.c
2048cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2058cf30809SBartlomiej Sieka
2068cf30809SBartlomiej Sieka$(obj)fdt_ro.o:	$(obj)fdt_ro.c
2078cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2088cf30809SBartlomiej Sieka
2098cf30809SBartlomiej Sieka$(obj)fdt_rw.o:	$(obj)fdt_rw.c
2108cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2118cf30809SBartlomiej Sieka
2128cf30809SBartlomiej Sieka$(obj)fdt_strerror.o:	$(obj)fdt_strerror.c
2138cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2148cf30809SBartlomiej Sieka
2158cf30809SBartlomiej Sieka$(obj)fdt_wip.o:	$(obj)fdt_wip.c
2168cf30809SBartlomiej Sieka		$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2178cf30809SBartlomiej Sieka
218efee1709Swdenksubdirs:
219e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
220e0ac62d7Swdenk		@:
221e0ac62d7Swdenkelse
222efee1709Swdenk		@for dir in $(TOOLSUBDIRS) ; do \
223efee1709Swdenk		    $(MAKE) \
224efee1709Swdenk			HOSTOS=$(HOSTOS) \
225efee1709Swdenk			HOSTARCH=$(HOSTARCH) \
226efee1709Swdenk			HOST_CFLAGS="$(HOST_CFLAGS)" \
227efee1709Swdenk		   	HOST_LDFLAGS="$(HOST_LDFLAGS)" \
228efee1709Swdenk			-C $$dir || exit 1 ; \
229efee1709Swdenk		done
230e0ac62d7Swdenkendif
231e0ac62d7Swdenk
232f9328639SMarian Balakowicz$(obj)environment.c:
233f9328639SMarian Balakowicz		@rm -f $(obj)environment.c
234f9328639SMarian Balakowicz		ln -s $(src)../common/environment.c $(obj)environment.c
235efee1709Swdenk
236f9328639SMarian Balakowicz$(obj)environment.o:	$(obj)environment.c
237f9328639SMarian Balakowicz		$(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $<
238efee1709Swdenk
239f9328639SMarian Balakowicz$(obj)crc32.c:
240f9328639SMarian Balakowicz		@rm -f $(obj)crc32.c
241f9328639SMarian Balakowicz		ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
242efee1709Swdenk
243*766529fcSBartlomiej Sieka$(obj)md5.c:
244*766529fcSBartlomiej Sieka		@rm -f $(obj)md5.c
245*766529fcSBartlomiej Sieka		ln -s $(src)../lib_generic/md5.c $(obj)md5.c
246*766529fcSBartlomiej Sieka
247566a494fSHeiko Schocher$(obj)sha1.c:
248566a494fSHeiko Schocher		@rm -f $(obj)sha1.c
249566a494fSHeiko Schocher		ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c
250566a494fSHeiko Schocher
251b97a2a0aSMarian Balakowicz$(obj)image.c:
252b97a2a0aSMarian Balakowicz		@rm -f $(obj)image.c
253b97a2a0aSMarian Balakowicz		ln -s $(src)../common/image.c $(obj)image.c
254b97a2a0aSMarian Balakowicz
2558cf30809SBartlomiej Sieka$(obj)fdt.c:	libfdt_internal.h
2568cf30809SBartlomiej Sieka		@rm -f $(obj)fdt.c
2578cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/fdt.c $(obj)fdt.c
2588cf30809SBartlomiej Sieka
2598cf30809SBartlomiej Sieka$(obj)fdt_ro.c:	libfdt_internal.h
2608cf30809SBartlomiej Sieka		@rm -f $(obj)fdt_ro.c
2618cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/fdt_ro.c $(obj)fdt_ro.c
2628cf30809SBartlomiej Sieka
2638cf30809SBartlomiej Sieka$(obj)fdt_rw.c:	libfdt_internal.h
2648cf30809SBartlomiej Sieka		@rm -f $(obj)fdt_rw.c
2658cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/fdt_rw.c $(obj)fdt_rw.c
2668cf30809SBartlomiej Sieka
2678cf30809SBartlomiej Sieka$(obj)fdt_strerror.c:	libfdt_internal.h
2688cf30809SBartlomiej Sieka		@rm -f $(obj)fdt_strerror.c
2698cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/fdt_strerror.c $(obj)fdt_strerror.c
2708cf30809SBartlomiej Sieka
2718cf30809SBartlomiej Sieka$(obj)fdt_wip.c:	libfdt_internal.h
2728cf30809SBartlomiej Sieka		@rm -f $(obj)fdt_wip.c
2738cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/fdt_wip.c $(obj)fdt_wip.c
2748cf30809SBartlomiej Sieka
2758cf30809SBartlomiej Sieka$(obj)libfdt_internal.h:
2768cf30809SBartlomiej Sieka		@rm -f $(obj)libfdt_internal.h
2778cf30809SBartlomiej Sieka		ln -s $(src)../libfdt/libfdt_internal.h $(obj)libfdt_internal.h
2788cf30809SBartlomiej Sieka
279f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
280f9328639SMarian Balakowicz		$(obj)./bmp_logo $(LOGO_BMP) >$@
281efee1709Swdenk
282efee1709Swdenk#########################################################################
283efee1709Swdenk
284f9328639SMarian Balakowicz# defines $(obj).depend target
285f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
286efee1709Swdenk
287f9328639SMarian Balakowiczsinclude $(obj).depend
288efee1709Swdenk
289efee1709Swdenk#########################################################################
290