xref: /rk3399_rockchip-uboot/tools/Makefile (revision b97a2a0a21f279d66de8a9bdbfe21920968bcb1c)
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*b97a2a0aSMarian BalakowiczOBJ_LINKS	= environment.o crc32.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
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
775dfaa50eSAubrey.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
100883e3925Sraptorbrino@aim.comHOST_CFLAGS += -ansi
101efee1709Swdenkelse
102efee1709SwdenkSFX =
103efee1709Swdenkendif
104efee1709Swdenk
105efee1709Swdenk#
106efee1709Swdenk# Include this after HOSTOS HOSTARCH check
107efee1709Swdenk# so that we can act intelligently.
108efee1709Swdenk#
109efee1709Swdenkinclude $(TOPDIR)/config.mk
110efee1709Swdenk
111f9328639SMarian Balakowicz# now $(obj) is defined
112f9328639SMarian BalakowiczSRCS	:= $(addprefix $(obj),$(OBJ_LINKS:.o=.c)) $(OBJ_FILES:.o=.c)
113f9328639SMarian BalakowiczBINS	:= $(addprefix $(obj),$(BIN_FILES))
114f9328639SMarian Balakowicz
115efee1709Swdenk#
116efee1709Swdenk# Use native tools and options
117efee1709Swdenk#
118f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
119f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
120f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
121f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
122efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
123efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
124efee1709SwdenkCC	   = $(HOSTCC)
125efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
126efee1709SwdenkMAKEDEPEND = makedepend
127efee1709Swdenk
128f9328639SMarian Balakowiczall:	$(obj).depend $(BINS) $(LOGO_H) subdirs
129efee1709Swdenk
130566a494fSHeiko Schocher$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)environment.o $(obj)sha1.o
131566a494fSHeiko Schocher		$(CC) $(CFLAGS) -o $@ $^
132566a494fSHeiko Schocher
133566a494fSHeiko Schocher$(obj)ubsha1$(SFX):	$(obj)ubsha1.o $(obj)sha1.o
134efee1709Swdenk		$(CC) $(CFLAGS) -o $@ $^
135efee1709Swdenk
136f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
137efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
138efee1709Swdenk		$(STRIP) $@
139efee1709Swdenk
140*b97a2a0aSMarian Balakowicz$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o $(obj)image.o
141efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
142efee1709Swdenk		$(STRIP) $@
143efee1709Swdenk
144f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
145eedcd078Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
146eedcd078Swdenk		$(STRIP) $@
147eedcd078Swdenk
148f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
149efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
150efee1709Swdenk		$(STRIP) $@
151efee1709Swdenk
152f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
153efee1709Swdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
154efee1709Swdenk		$(STRIP) $@
155efee1709Swdenk
156f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1573e38691eSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1583e38691eSwdenk		$(STRIP) $@
1593e38691eSwdenk
160f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
161ef1464ccSwdenk		$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
162ef1464ccSwdenk		$(STRIP) $@
163ef1464ccSwdenk
164f9328639SMarian Balakowicz$(obj)envcrc.o:	$(src)envcrc.c
165f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
166efee1709Swdenk
167566a494fSHeiko Schocher$(obj)ubsha1.o:	$(src)ubsha1.c
168566a494fSHeiko Schocher		$(CC) -g $(CFLAGS) -c -o $@ $<
169566a494fSHeiko Schocher
170f9328639SMarian Balakowicz$(obj)crc32.o:	$(obj)crc32.c
171f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
172efee1709Swdenk
173566a494fSHeiko Schocher$(obj)sha1.o:	$(obj)sha1.c
174566a494fSHeiko Schocher		$(CC) -g $(CFLAGS) -c -o $@ $<
175566a494fSHeiko Schocher
176*b97a2a0aSMarian Balakowicz$(obj)image.o:	$(obj)image.c
177*b97a2a0aSMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
178*b97a2a0aSMarian Balakowicz
179f9328639SMarian Balakowicz$(obj)mkimage.o:	$(src)mkimage.c
180f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
181efee1709Swdenk
182f9328639SMarian Balakowicz$(obj)ncb.o:		$(src)ncb.c
183f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
184eedcd078Swdenk
185f9328639SMarian Balakowicz$(obj)gen_eth_addr.o:	$(src)gen_eth_addr.c
186f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
187efee1709Swdenk
188f9328639SMarian Balakowicz$(obj)inca-swap-bytes.o:	$(src)inca-swap-bytes.c
189f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
1903e38691eSwdenk
191f9328639SMarian Balakowicz$(obj)mpc86x_clk.o:	$(src)mpc86x_clk.c
192f9328639SMarian Balakowicz		$(CC) -g $(CFLAGS) -c -o $@ $<
193ef1464ccSwdenk
194efee1709Swdenksubdirs:
195e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
196e0ac62d7Swdenk		@:
197e0ac62d7Swdenkelse
198efee1709Swdenk		@for dir in $(TOOLSUBDIRS) ; do \
199efee1709Swdenk		    $(MAKE) \
200efee1709Swdenk			HOSTOS=$(HOSTOS) \
201efee1709Swdenk			HOSTARCH=$(HOSTARCH) \
202efee1709Swdenk			HOST_CFLAGS="$(HOST_CFLAGS)" \
203efee1709Swdenk		   	HOST_LDFLAGS="$(HOST_LDFLAGS)" \
204efee1709Swdenk			-C $$dir || exit 1 ; \
205efee1709Swdenk		done
206e0ac62d7Swdenkendif
207e0ac62d7Swdenk
208f9328639SMarian Balakowicz$(obj)environment.c:
209f9328639SMarian Balakowicz		@rm -f $(obj)environment.c
210f9328639SMarian Balakowicz		ln -s $(src)../common/environment.c $(obj)environment.c
211efee1709Swdenk
212f9328639SMarian Balakowicz$(obj)environment.o:	$(obj)environment.c
213f9328639SMarian Balakowicz		$(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $<
214efee1709Swdenk
215f9328639SMarian Balakowicz$(obj)crc32.c:
216f9328639SMarian Balakowicz		@rm -f $(obj)crc32.c
217f9328639SMarian Balakowicz		ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
218efee1709Swdenk
219566a494fSHeiko Schocher$(obj)sha1.c:
220566a494fSHeiko Schocher		@rm -f $(obj)sha1.c
221566a494fSHeiko Schocher		ln -s $(src)../lib_generic/sha1.c $(obj)sha1.c
222566a494fSHeiko Schocher
223*b97a2a0aSMarian Balakowicz$(obj)image.c:
224*b97a2a0aSMarian Balakowicz		@rm -f $(obj)image.c
225*b97a2a0aSMarian Balakowicz		ln -s $(src)../common/image.c $(obj)image.c
226*b97a2a0aSMarian Balakowicz
227f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
228f9328639SMarian Balakowicz		$(obj)./bmp_logo $(LOGO_BMP) >$@
229efee1709Swdenk
230efee1709Swdenk#########################################################################
231efee1709Swdenk
232f9328639SMarian Balakowicz# defines $(obj).depend target
233f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
234efee1709Swdenk
235f9328639SMarian Balakowiczsinclude $(obj).depend
236efee1709Swdenk
237efee1709Swdenk#########################################################################
238