xref: /rk3399_rockchip-uboot/tools/Makefile (revision e50abf662efbf4ce0e731062c8d3c8ec54763ae2)
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#
38*e50abf66SPeter Tyser
39*e50abf66SPeter TyserHOST_CFLAGS = -Wall
40*e50abf66SPeter TyserHOST_LDFLAGS =
41*e50abf66SPeter Tyser
42efee1709Swdenkifeq ($(HOSTOS)-$(HOSTARCH),darwin-ppc)
43*e50abf66SPeter TyserHOST_CFLAGS += -traditional-cpp
44*e50abf66SPeter TyserHOST_LDFLAGS += -multiply_defined suppress
45efee1709Swdenkelse
46*e50abf66SPeter TyserHOST_CFLAGS += -pedantic
47efee1709Swdenkendif
48efee1709Swdenk
49efee1709Swdenk#
50efee1709Swdenk# Cygwin needs .exe files :-(
51efee1709Swdenk#
52efee1709Swdenkifeq ($(HOSTOS),cygwin)
53efee1709SwdenkSFX = .exe
54883e3925Sraptorbrino@aim.comHOST_CFLAGS += -ansi
55efee1709Swdenkelse
56efee1709SwdenkSFX =
57efee1709Swdenkendif
58efee1709Swdenk
59efee1709Swdenk#
60efee1709Swdenk# Include this after HOSTOS HOSTARCH check
61efee1709Swdenk# so that we can act intelligently.
62efee1709Swdenk#
63efee1709Swdenkinclude $(TOPDIR)/config.mk
64efee1709Swdenk
65ee3584a5SPeter Tyser# Generated executable files
66eeba8617SPeter TyserBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
67ee3584a5SPeter TyserBIN_FILES-y += mkimage$(SFX)
684d93a0a8SPeter TyserBIN_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc$(SFX)
697cd5cbc3SPeter TyserBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX)
70123c48a2SPeter TyserBIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX)
71335ffe7eSPeter TyserBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
72335ffe7eSPeter TyserBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
73cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX)
741cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX)
75ee3584a5SPeter Tyser
76fb8b33c1SPeter Tyser# Source files which exist outside the tools directory
77fb8b33c1SPeter TyserEXT_OBJ_FILES-y += common/env_embedded.o
78fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/crc32.o
79fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/md5.o
80fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/sha1.o
81fb8b33c1SPeter TyserEXT_OBJ_FILES-y += common/image.o
82ee3584a5SPeter Tyser
83ee3584a5SPeter Tyser# Source files located in the tools directory
84eeba8617SPeter TyserOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
85ee3584a5SPeter TyserOBJ_FILES-y += mkimage.o
864d93a0a8SPeter TyserOBJ_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc.o
877cd5cbc3SPeter TyserOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o
88123c48a2SPeter TyserOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
89335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
90335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
91cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o
921cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o
93ee3584a5SPeter Tyser
94ee3584a5SPeter Tyser# Don't build by default
95ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc)
96ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX)
97ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o
98ee3584a5SPeter Tyser#endif
99ee3584a5SPeter Tyser
100ee3584a5SPeter Tyser# Flattened device tree objects
101ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o
102ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o
103ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o
104ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o
105ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o
106ee3584a5SPeter Tyser
107335ffe7eSPeter Tyser# Generated LCD/video logo
108ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h
109335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
110335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
111ee3584a5SPeter Tyser
112ee3584a5SPeter Tyserifeq ($(LOGO_BMP),)
113ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp
114ee3584a5SPeter Tyserendif
115ee3584a5SPeter Tyserifeq ($(VENDOR),atmel)
116ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp
117ee3584a5SPeter Tyserendif
118ee3584a5SPeter Tyser
119f9328639SMarian Balakowicz# now $(obj) is defined
120fb8b33c1SPeter TyserSRCS	+= $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c))
121b0d4d721SPeter TyserSRCS	+= $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c))
122eed07331SPeter TyserSRCS	+= $(addprefix $(SRCTREE)/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c))
123ee3584a5SPeter TyserBINS	:= $(addprefix $(obj),$(BIN_FILES-y))
124ee3584a5SPeter TyserLIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
125f9328639SMarian Balakowicz
126efee1709Swdenk#
127efee1709Swdenk# Use native tools and options
128efee1709Swdenk#
129f9328639SMarian BalakowiczCPPFLAGS   = -idirafter $(SRCTREE)/include \
130f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
131f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
13245d6bdffSPeter Tyser	        -I $(SRCTREE)/libfdt \
13340b8d909SPeter Tyser		-I $(SRCTREE)/tools \
134f9328639SMarian Balakowicz		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
135efee1709SwdenkCFLAGS     = $(HOST_CFLAGS) $(CPPFLAGS) -O
1368cf30809SBartlomiej Sieka
1378cf30809SBartlomiej Sieka# No -pedantic switch to avoid libfdt compilation warnings
1388cf30809SBartlomiej SiekaFIT_CFLAGS = -Wall $(CPPFLAGS) -O
1398cf30809SBartlomiej Sieka
140efee1709SwdenkAFLAGS	   = -D__ASSEMBLY__ $(CPPFLAGS)
141efee1709SwdenkCC	   = $(HOSTCC)
142efee1709SwdenkSTRIP	   = $(HOSTSTRIP)
143efee1709SwdenkMAKEDEPEND = makedepend
144efee1709Swdenk
145335ffe7eSPeter Tyserall:	$(obj).depend $(BINS) $(LOGO-y) subdirs
146efee1709Swdenk
1470cf4fd3cSJean-Christophe PLAGNIOL-VILLARD$(obj)envcrc$(SFX):	$(obj)envcrc.o $(obj)crc32.o $(obj)env_embedded.o $(obj)sha1.o
148566a494fSHeiko Schocher	$(CC) $(CFLAGS) -o $@ $^
149566a494fSHeiko Schocher
150566a494fSHeiko Schocher$(obj)ubsha1$(SFX):	$(obj)ubsha1.o $(obj)sha1.o
151efee1709Swdenk	$(CC) $(CFLAGS) -o $@ $^
152efee1709Swdenk
153f9328639SMarian Balakowicz$(obj)img2srec$(SFX):	$(obj)img2srec.o
154efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
155efee1709Swdenk	$(STRIP) $@
156efee1709Swdenk
15721d28e95SPeter Tyser$(obj)mkimage$(SFX):	$(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o \
158ee3584a5SPeter Tyser			$(obj)sha1.o $(LIBFDT_OBJS)
159efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
160efee1709Swdenk	$(STRIP) $@
161efee1709Swdenk
162f9328639SMarian Balakowicz$(obj)ncb$(SFX):	$(obj)ncb.o
163eedcd078Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
164eedcd078Swdenk	$(STRIP) $@
165eedcd078Swdenk
166f9328639SMarian Balakowicz$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
167efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
168efee1709Swdenk	$(STRIP) $@
169efee1709Swdenk
170f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
171efee1709Swdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
172efee1709Swdenk	$(STRIP) $@
173efee1709Swdenk
174f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
1753e38691eSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1763e38691eSwdenk	$(STRIP) $@
1773e38691eSwdenk
178f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
179ef1464ccSwdenk	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
180ef1464ccSwdenk	$(STRIP) $@
181ef1464ccSwdenk
1820a823aa2SHarald Welte$(obj)bin2header$(SFX): $(obj)bin2header.o
1830a823aa2SHarald Welte	$(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^
1840a823aa2SHarald Welte	$(STRIP) $@
1850a823aa2SHarald Welte
186b0d4d721SPeter Tyser# image.c and mkimage.c require FIT_CFLAGS instead of standard CFLAGS
187b0d4d721SPeter Tyser$(obj)image.o: $(SRCTREE)/tools/image.c
1888cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
189b97a2a0aSMarian Balakowicz
190b0d4d721SPeter Tyser$(obj)mkimage.o: $(SRCTREE)/tools/mkimage.c
1918cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
192efee1709Swdenk
193b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory
194b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/common/%.c
195b0d4d721SPeter Tyser	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
196b0d4d721SPeter Tyser
197b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/lib_generic/%.c
198f9328639SMarian Balakowicz	$(CC) -g $(CFLAGS) -c -o $@ $<
199eedcd078Swdenk
200b0d4d721SPeter Tyser$(LIBFDT_OBJS):
2018cf30809SBartlomiej Sieka	$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
2028cf30809SBartlomiej Sieka
203efee1709Swdenksubdirs:
204e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
205e0ac62d7Swdenk	@:
206e0ac62d7Swdenkelse
207efee1709Swdenk	@for dir in $(TOOLSUBDIRS) ; do \
208efee1709Swdenk	    $(MAKE) \
209efee1709Swdenk		HOSTOS=$(HOSTOS) \
210efee1709Swdenk		HOSTARCH=$(HOSTARCH) \
211efee1709Swdenk		HOST_CFLAGS="$(HOST_CFLAGS)" \
212efee1709Swdenk		HOST_LDFLAGS="$(HOST_LDFLAGS)" \
213efee1709Swdenk		-C $$dir || exit 1 ; \
214efee1709Swdenk	done
215e0ac62d7Swdenkendif
216e0ac62d7Swdenk
217f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
218f9328639SMarian Balakowicz	$(obj)./bmp_logo $(LOGO_BMP) >$@
219efee1709Swdenk
220efee1709Swdenk#########################################################################
221efee1709Swdenk
222f9328639SMarian Balakowicz# defines $(obj).depend target
223f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
224efee1709Swdenk
225f9328639SMarian Balakowiczsinclude $(obj).depend
226efee1709Swdenk
227efee1709Swdenk#########################################################################
228