xref: /rk3399_rockchip-uboot/tools/Makefile (revision 5dfaa50eb819686bfba1927e8c5b8a70a4d65fd3)
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
24f9328639SMarian BalakowiczBIN_FILES	= img2srec$(SFX) mkimage$(SFX) envcrc$(SFX) gen_eth_addr$(SFX) bmp_logo$(SFX)
25efee1709Swdenk
26f9328639SMarian BalakowiczOBJ_LINKS	= environment.o crc32.o
27f9328639SMarian BalakowiczOBJ_FILES	= img2srec.o mkimage.o envcrc.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
40f9328639SMarian BalakowiczLOGO_H	= $(OBJTREE)/include/bmp_logo.h
41efee1709Swdenk
42efee1709Swdenkifeq ($(LOGO_BMP),)
43efee1709SwdenkLOGO_BMP= logos/denx.bmp
44efee1709Swdenkendif
45efee1709Swdenk
46efee1709Swdenk#-------------------------------------------------------------------------
47efee1709Swdenk
48efee1709SwdenkHOSTARCH := $(shell uname -m | \
49efee1709Swdenk	sed -e s/i.86/i386/ \
50efee1709Swdenk	    -e s/sun4u/sparc64/ \
51efee1709Swdenk	    -e s/arm.*/arm/ \
52efee1709Swdenk	    -e s/sa110/arm/ \
53efee1709Swdenk	    -e s/powerpc/ppc/ \
54efee1709Swdenk	    -e s/Power\ Macintosh/ppc/ \
55efee1709Swdenk	    -e s/macppc/ppc/)
56efee1709Swdenk
57efee1709SwdenkHOSTOS := $(shell uname -s | tr A-Z a-z | \
58efee1709Swdenk	sed -e 's/\(cygwin\).*/cygwin/')
59efee1709Swdenk
60efee1709SwdenkTOOLSUBDIRS =
61efee1709Swdenk
62efee1709Swdenk#
63efee1709Swdenk# Mac OS X / Darwin's C preprocessor is Apple specific.  It
64efee1709Swdenk# generates numerous errors and warnings.  We want to bypass it
65efee1709Swdenk# and use GNU C's cpp.  To do this we pass the -traditional-cpp
66efee1709Swdenk# option to the compiler.  Note that the -traditional-cpp flag
67efee1709Swdenk# DOES NOT have the same semantics as GNU C's flag, all it does
68efee1709Swdenk# is invoke the GNU preprocessor in stock ANSI/ISO C fashion.
69efee1709Swdenk#
70efee1709Swdenk# Apple's linker is similar, thanks to the new 2 stage linking
71efee1709Swdenk# multiple symbol definitions are treated as errors, hence the
72efee1709Swdenk# -multiply_defined suppress option to turn off this error.
73efee1709Swdenk#
74efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
75efee1709SwdenkHOST_CFLAGS = -traditional-cpp -Wall
76efee1709SwdenkHOST_LDFLAGS =-multiply_defined suppress
77*5dfaa50eSAubrey.LiHOST_ENVIRO_CFLAGS =
78efee1709Swdenk
79efee1709Swdenkelse
80efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),netbsd-ppc)
81efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
82efee1709SwdenkHOST_LDFLAGS =
83efee1709SwdenkHOST_ENVIRO_CFLAGS =
84efee1709Swdenk
85efee1709Swdenk#
86efee1709Swdenk# Everyone else
87efee1709Swdenk#
88efee1709Swdenkelse
89efee1709SwdenkHOST_CFLAGS = -Wall -pedantic
90efee1709SwdenkHOST_LDFLAGS =
91efee1709SwdenkHOST_ENVIRO_CFLAGS =
92efee1709Swdenkendif
93efee1709Swdenkendif
94efee1709Swdenk
95efee1709Swdenk#
96efee1709Swdenk# Cygwin needs .exe files :-(
97efee1709Swdenk#
98efee1709Swdenkifeq ($(HOSTOS),cygwin)
99efee1709SwdenkSFX = .exe
100efee1709Swdenkelse
101efee1709SwdenkSFX =
102efee1709Swdenkendif
103efee1709Swdenk
104efee1709Swdenk#
105efee1709Swdenk# Include this after HOSTOS HOSTARCH check
106efee1709Swdenk# so that we can act intelligently.
107efee1709Swdenk#
108efee1709Swdenkinclude $(TOPDIR)/config.mk
109efee1709Swdenk
110f9328639SMarian Balakowicz# now $(obj) is defined
111f9328639SMarian BalakowiczSRCS	:= $(addprefix $(obj),$(OBJ_LINKS:.o=.c)) $(OBJ_FILES:.o=.c)
112f9328639SMarian BalakowiczBINS	:= $(addprefix $(obj),$(BIN_FILES))
113f9328639SMarian Balakowicz
114efee1709Swdenk#
115efee1709Swdenk# Use native tools and options
116efee1709Swdenk#
117f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
118f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
119f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
120f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
121efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
122efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
123efee1709SwdenkCC	   = $(HOSTCC)
124efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
125efee1709SwdenkMAKEDEPEND = makedepend
126efee1709Swdenk
127f9328639SMarian Balakowiczall:	$(obj).depend $(BINS) $(LOGO_H) subdirs
128efee1709Swdenk
129f9328639SMarian Balakowicz$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)environment.o
130efee1709Swdenk		$(CC) $(CFLAGS) -o $@ $^
131efee1709Swdenk
132f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
133efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
134efee1709Swdenk		$(STRIP) $@
135efee1709Swdenk
136f9328639SMarian Balakowicz$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o
137efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
138efee1709Swdenk		$(STRIP) $@
139efee1709Swdenk
140f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
141eedcd078Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
142eedcd078Swdenk		$(STRIP) $@
143eedcd078Swdenk
144f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
145efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
146efee1709Swdenk		$(STRIP) $@
147efee1709Swdenk
148f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
149efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
150efee1709Swdenk		$(STRIP) $@
151efee1709Swdenk
152f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1533e38691eSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1543e38691eSwdenk		$(STRIP) $@
1553e38691eSwdenk
156f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
157ef1464ccSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
158ef1464ccSwdenk		$(STRIP) $@
159ef1464ccSwdenk
160f9328639SMarian Balakowicz$(obj)envcrc.o:	$(src)envcrc.c
161f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
162efee1709Swdenk
163f9328639SMarian Balakowicz$(obj)crc32.o:	$(obj)crc32.c
164f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
165efee1709Swdenk
166f9328639SMarian Balakowicz$(obj)mkimage.o:	$(src)mkimage.c
167f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
168efee1709Swdenk
169f9328639SMarian Balakowicz$(obj)ncb.o:		$(src)ncb.c
170f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
171eedcd078Swdenk
172f9328639SMarian Balakowicz$(obj)gen_eth_addr.o:	$(src)gen_eth_addr.c
173f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
174efee1709Swdenk
175f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o:	$(src)inca-swap-bytes.c
176f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
1773e38691eSwdenk
178f9328639SMarian Balakowicz$(obj)mpc86x_clk.o:	$(src)mpc86x_clk.c
179f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
180ef1464ccSwdenk
181efee1709Swdenksubdirs:
182e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
183e0ac62d7Swdenk		@:
184e0ac62d7Swdenkelse
185efee1709Swdenk		@for dir in $(TOOLSUBDIRS) ; do \
186efee1709Swdenk		    $(MAKE) \
187efee1709Swdenk			HOSTOS=$(HOSTOS) \
188efee1709Swdenk			HOSTARCH=$(HOSTARCH) \
189efee1709Swdenk			HOST_CFLAGS="$(HOST_CFLAGS)" \
190efee1709Swdenk		   	HOST_LDFLAGS="$(HOST_LDFLAGS)" \
191efee1709Swdenk			-C $$dir || exit 1 ; \
192efee1709Swdenk		done
193e0ac62d7Swdenkendif
194e0ac62d7Swdenk
195f9328639SMarian Balakowicz$(obj)environment.c:
196f9328639SMarian Balakowicz		@rm -f $(obj)environment.c
197f9328639SMarian Balakowicz		ln -s $(src)../common/environment.c $(obj)environment.c
198efee1709Swdenk
199f9328639SMarian Balakowicz$(obj)environment.o:	$(obj)environment.c
200f9328639SMarian Balakowicz		$(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $<
201efee1709Swdenk
202f9328639SMarian Balakowicz$(obj)crc32.c:
203f9328639SMarian Balakowicz		@rm -f $(obj)crc32.c
204f9328639SMarian Balakowicz		ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
205efee1709Swdenk
206f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
207f9328639SMarian Balakowicz		$(obj)./bmp_logo $(LOGO_BMP) >$@
208efee1709Swdenk
209efee1709Swdenk#########################################################################
210efee1709Swdenk
211f9328639SMarian Balakowicz# defines $(obj).depend target
212f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
213efee1709Swdenk
214f9328639SMarian Balakowiczsinclude $(obj).depend
215efee1709Swdenk
216efee1709Swdenk#########################################################################
217