xref: /rk3399_rockchip-uboot/tools/Makefile (revision d984fed068b3bec8a7edaf7a3de71479abde080a)
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#
272f8d396bSPeter Tyser# toolchains targeting win32 generate .exe files
282f8d396bSPeter Tyser#
292f8d396bSPeter Tyserifneq (,$(findstring WIN32 ,$(shell $(HOSTCC) -E -dM -xc /dev/null)))
302f8d396bSPeter TyserSFX = .exe
31efee1709Swdenkelse
32efee1709SwdenkSFX =
33efee1709Swdenkendif
34efee1709Swdenk
35efee1709Swdenk#
36efee1709Swdenk# Include this after HOSTOS HOSTARCH check
37efee1709Swdenk# so that we can act intelligently.
38efee1709Swdenk#
39efee1709Swdenkinclude $(TOPDIR)/config.mk
40efee1709Swdenk
41ee3584a5SPeter Tyser# Generated executable files
4214821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
4314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
444d93a0a8SPeter TyserBIN_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc$(SFX)
45a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_DATAFLASH) += envcrc$(SFX)
46a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_EEPROM) += envcrc$(SFX)
47a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_FLASH) += envcrc$(SFX)
48a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_ONENAND) += envcrc$(SFX)
49a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NAND) += envcrc$(SFX)
50a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NVRAM) += envcrc$(SFX)
51a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_SPI_FLASH) += envcrc$(SFX)
52123c48a2SPeter TyserBIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX)
5314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
54cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX)
5514821d7dSPrafulla WadaskarBIN_FILES-y += mkimage$(SFX)
561cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX)
5714821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX)
58ee3584a5SPeter Tyser
59fb8b33c1SPeter Tyser# Source files which exist outside the tools directory
60fb8b33c1SPeter TyserEXT_OBJ_FILES-y += common/env_embedded.o
6114821d7dSPrafulla WadaskarEXT_OBJ_FILES-y += common/image.o
62fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/crc32.o
63fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/md5.o
64fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/sha1.o
65ee3584a5SPeter Tyser
66ee3584a5SPeter Tyser# Source files located in the tools directory
67335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
68335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
69*d984fed0SScott WoodNOPED_OBJ_FILES-y += default_image.o
70*d984fed0SScott WoodOBJ_FILES-y += envcrc.o
71*d984fed0SScott WoodNOPED_OBJ_FILES-y += fit_image.o
7214821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
7314821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
74cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o
75*d984fed0SScott WoodNOPED_OBJ_FILES-y += kwbimage.o
76*d984fed0SScott WoodNOPED_OBJ_FILES-y += mkimage.o
771cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o
78*d984fed0SScott WoodNOPED_OBJ_FILES-y += os_support.o
7914821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o
80ee3584a5SPeter Tyser
81ee3584a5SPeter Tyser# Don't build by default
82ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc)
83ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX)
84ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o
85ee3584a5SPeter Tyser#endif
86ee3584a5SPeter Tyser
87ee3584a5SPeter Tyser# Flattened device tree objects
88ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o
89ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o
90ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o
91ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o
92ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o
93ee3584a5SPeter Tyser
94335ffe7eSPeter Tyser# Generated LCD/video logo
95ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h
96335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
97335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
98ee3584a5SPeter Tyser
99ee3584a5SPeter Tyserifeq ($(LOGO_BMP),)
100ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp
101ee3584a5SPeter Tyserendif
102ee3584a5SPeter Tyserifeq ($(VENDOR),atmel)
103ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp
104ee3584a5SPeter Tyserendif
105f0a2c7b4SIlko Ilievifeq ($(VENDOR),ronetix)
106f0a2c7b4SIlko IlievLOGO_BMP= logos/ronetix.bmp
107f0a2c7b4SIlko Ilievendif
108ee3584a5SPeter Tyser
109f9328639SMarian Balakowicz# now $(obj) is defined
110*d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c))
111*d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c))
112*d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c))
113afcbce07SWolfgang DenkBINS	:= $(addprefix $(obj),$(sort $(BIN_FILES-y)))
114ee3584a5SPeter TyserLIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
115f9328639SMarian Balakowicz
116*d984fed0SScott WoodHOSTOBJS := $(addprefix $(obj),$(OBJ_FILES-y))
117*d984fed0SScott WoodNOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y))
118*d984fed0SScott Wood
119efee1709Swdenk#
120efee1709Swdenk# Use native tools and options
1212f8d396bSPeter Tyser# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
122efee1709Swdenk#
123*d984fed0SScott WoodHOSTCPPFLAGS =	-idirafter $(SRCTREE)/include \
124f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
125f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
12645d6bdffSPeter Tyser	        -I $(SRCTREE)/libfdt \
12740b8d909SPeter Tyser		-I $(SRCTREE)/tools \
1282f8d396bSPeter Tyser		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC \
1292f8d396bSPeter Tyser		-D__KERNEL_STRICT_NAMES
1308cf30809SBartlomiej Sieka
131efee1709Swdenk
132335ffe7eSPeter Tyserall:	$(obj).depend $(BINS) $(LOGO-y) subdirs
133efee1709Swdenk
13414821d7dSPrafulla Wadaskar$(obj)bin2header$(SFX): $(obj)bin2header.o
135*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
136*d984fed0SScott Wood	$(HOSTSTRIP) $@
137efee1709Swdenk
138f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
139*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
140*d984fed0SScott Wood	$(HOSTSTRIP) $@
141efee1709Swdenk
14214821d7dSPrafulla Wadaskar$(obj)envcrc$(SFX):	$(obj)crc32.o $(obj)env_embedded.o $(obj)envcrc.o $(obj)sha1.o
143*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
14414821d7dSPrafulla Wadaskar
14514821d7dSPrafulla Wadaskar$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
146*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
147*d984fed0SScott Wood	$(HOSTSTRIP) $@
14814821d7dSPrafulla Wadaskar
14914821d7dSPrafulla Wadaskar$(obj)img2srec$(SFX):	$(obj)img2srec.o
150*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
151*d984fed0SScott Wood	$(HOSTSTRIP) $@
15214821d7dSPrafulla Wadaskar
153f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
154*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
155*d984fed0SScott Wood	$(HOSTSTRIP) $@
1563e38691eSwdenk
15789a4d6b1SPrafulla Wadaskar$(obj)mkimage$(SFX):	$(obj)crc32.o \
15889a4d6b1SPrafulla Wadaskar			$(obj)default_image.o \
15989a4d6b1SPrafulla Wadaskar			$(obj)fit_image.o \
16089a4d6b1SPrafulla Wadaskar			$(obj)image.o \
161aa0c7a86SPrafulla Wadaskar			$(obj)kwbimage.o \
16289a4d6b1SPrafulla Wadaskar			$(obj)md5.o \
16389a4d6b1SPrafulla Wadaskar			$(obj)mkimage.o \
16489a4d6b1SPrafulla Wadaskar			$(obj)os_support.o \
16589a4d6b1SPrafulla Wadaskar			$(obj)sha1.o \
16689a4d6b1SPrafulla Wadaskar			$(LIBFDT_OBJS)
167*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
168*d984fed0SScott Wood	$(HOSTSTRIP) $@
16914821d7dSPrafulla Wadaskar
170f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
171*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
172*d984fed0SScott Wood	$(HOSTSTRIP) $@
173ef1464ccSwdenk
17414821d7dSPrafulla Wadaskar$(obj)ncb$(SFX):	$(obj)ncb.o
175*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
176*d984fed0SScott Wood	$(HOSTSTRIP) $@
1770a823aa2SHarald Welte
17814821d7dSPrafulla Wadaskar$(obj)ubsha1$(SFX):	$(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o
179*d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
1802f8d396bSPeter Tyser
181b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory
182b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/common/%.c
183*d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
184b0d4d721SPeter Tyser
185b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/lib_generic/%.c
186*d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $<
187eedcd078Swdenk
188b0d4d721SPeter Tyser$(LIBFDT_OBJS):
189*d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
1908cf30809SBartlomiej Sieka
191efee1709Swdenksubdirs:
192e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
193e0ac62d7Swdenk	@:
194e0ac62d7Swdenkelse
195efee1709Swdenk	@for dir in $(TOOLSUBDIRS) ; do \
196efee1709Swdenk	    $(MAKE) \
197efee1709Swdenk		HOSTOS=$(HOSTOS) \
198efee1709Swdenk		HOSTARCH=$(HOSTARCH) \
199efee1709Swdenk		-C $$dir || exit 1 ; \
200efee1709Swdenk	done
201e0ac62d7Swdenkendif
202e0ac62d7Swdenk
203f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
204f9328639SMarian Balakowicz	$(obj)./bmp_logo $(LOGO_BMP) >$@
205efee1709Swdenk
206efee1709Swdenk#########################################################################
207efee1709Swdenk
208f9328639SMarian Balakowicz# defines $(obj).depend target
209f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
210efee1709Swdenk
211f9328639SMarian Balakowiczsinclude $(obj).depend
212efee1709Swdenk
213efee1709Swdenk#########################################################################
214