xref: /rk3399_rockchip-uboot/tools/Makefile (revision 8edcde5e4e2e7f6bc7e277011fed71e64fd9d294)
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
41c7c0d542SMike Frysinger# Enable all the config-independent tools
42c7c0d542SMike Frysingerifneq ($(HOST_TOOLS_ALL),)
43c7c0d542SMike FrysingerCONFIG_LCD_LOGO = y
44c7c0d542SMike FrysingerCONFIG_CMD_NET = y
45c7c0d542SMike FrysingerCONFIG_INCA_IP = y
46c7c0d542SMike FrysingerCONFIG_NETCONSOLE = y
47c7c0d542SMike FrysingerCONFIG_SHA1_CHECK_UB_IMG = y
48c7c0d542SMike Frysingerendif
49c7c0d542SMike Frysinger
50ee3584a5SPeter Tyser# Generated executable files
5114821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX)
5214821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX)
534d93a0a8SPeter TyserBIN_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc$(SFX)
54a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_DATAFLASH) += envcrc$(SFX)
55a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_EEPROM) += envcrc$(SFX)
56a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_FLASH) += envcrc$(SFX)
57a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_ONENAND) += envcrc$(SFX)
58a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NAND) += envcrc$(SFX)
59a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NVRAM) += envcrc$(SFX)
60a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_SPI_FLASH) += envcrc$(SFX)
61123c48a2SPeter TyserBIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX)
6214821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
63cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX)
6414821d7dSPrafulla WadaskarBIN_FILES-y += mkimage$(SFX)
651cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX)
6614821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX)
67ee3584a5SPeter Tyser
68fb8b33c1SPeter Tyser# Source files which exist outside the tools directory
69fb8b33c1SPeter TyserEXT_OBJ_FILES-y += common/env_embedded.o
7014821d7dSPrafulla WadaskarEXT_OBJ_FILES-y += common/image.o
71fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/crc32.o
72fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/md5.o
73fb8b33c1SPeter TyserEXT_OBJ_FILES-y += lib_generic/sha1.o
74ee3584a5SPeter Tyser
75ee3584a5SPeter Tyser# Source files located in the tools directory
76335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
77335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o
78d984fed0SScott WoodNOPED_OBJ_FILES-y += default_image.o
79d984fed0SScott WoodOBJ_FILES-y += envcrc.o
80d984fed0SScott WoodNOPED_OBJ_FILES-y += fit_image.o
8114821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
8214821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
83cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o
84d984fed0SScott WoodNOPED_OBJ_FILES-y += kwbimage.o
85*8edcde5eSStefano BabicNOPED_OBJ_FILES-y += imximage.o
86d984fed0SScott WoodNOPED_OBJ_FILES-y += mkimage.o
871cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o
88d984fed0SScott WoodNOPED_OBJ_FILES-y += os_support.o
8914821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o
90ee3584a5SPeter Tyser
91ee3584a5SPeter Tyser# Don't build by default
92ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc)
93ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX)
94ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o
95ee3584a5SPeter Tyser#endif
96ee3584a5SPeter Tyser
97ee3584a5SPeter Tyser# Flattened device tree objects
98ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o
99ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o
100ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o
101ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o
102ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o
103ee3584a5SPeter Tyser
104335ffe7eSPeter Tyser# Generated LCD/video logo
105ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h
106335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
107335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
108ee3584a5SPeter Tyser
109ee3584a5SPeter Tyserifeq ($(LOGO_BMP),)
110ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp
111ee3584a5SPeter Tyserendif
112ee3584a5SPeter Tyserifeq ($(VENDOR),atmel)
113ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp
114ee3584a5SPeter Tyserendif
115f0a2c7b4SIlko Ilievifeq ($(VENDOR),ronetix)
116f0a2c7b4SIlko IlievLOGO_BMP= logos/ronetix.bmp
117f0a2c7b4SIlko Ilievendif
118ee3584a5SPeter Tyser
119f9328639SMarian Balakowicz# now $(obj) is defined
120d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c))
121d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c))
122d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c))
123afcbce07SWolfgang DenkBINS	:= $(addprefix $(obj),$(sort $(BIN_FILES-y)))
124ee3584a5SPeter TyserLIBFDT_OBJS	:= $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y))
125f9328639SMarian Balakowicz
126d984fed0SScott WoodHOSTOBJS := $(addprefix $(obj),$(OBJ_FILES-y))
127d984fed0SScott WoodNOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y))
128d984fed0SScott Wood
129efee1709Swdenk#
130efee1709Swdenk# Use native tools and options
1312f8d396bSPeter Tyser# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
132efee1709Swdenk#
133d984fed0SScott WoodHOSTCPPFLAGS =	-idirafter $(SRCTREE)/include \
134f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include2 \
135f9328639SMarian Balakowicz		-idirafter $(OBJTREE)/include \
13645d6bdffSPeter Tyser	        -I $(SRCTREE)/libfdt \
13740b8d909SPeter Tyser		-I $(SRCTREE)/tools \
1382f8d396bSPeter Tyser		-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC \
1392f8d396bSPeter Tyser		-D__KERNEL_STRICT_NAMES
1408cf30809SBartlomiej Sieka
141efee1709Swdenk
142335ffe7eSPeter Tyserall:	$(obj).depend $(BINS) $(LOGO-y) subdirs
143efee1709Swdenk
14414821d7dSPrafulla Wadaskar$(obj)bin2header$(SFX): $(obj)bin2header.o
145d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
146d984fed0SScott Wood	$(HOSTSTRIP) $@
147efee1709Swdenk
148f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX):	$(obj)bmp_logo.o
149d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
150d984fed0SScott Wood	$(HOSTSTRIP) $@
151efee1709Swdenk
15214821d7dSPrafulla Wadaskar$(obj)envcrc$(SFX):	$(obj)crc32.o $(obj)env_embedded.o $(obj)envcrc.o $(obj)sha1.o
153d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
15414821d7dSPrafulla Wadaskar
15514821d7dSPrafulla Wadaskar$(obj)gen_eth_addr$(SFX):	$(obj)gen_eth_addr.o
156d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
157d984fed0SScott Wood	$(HOSTSTRIP) $@
15814821d7dSPrafulla Wadaskar
15914821d7dSPrafulla Wadaskar$(obj)img2srec$(SFX):	$(obj)img2srec.o
160d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
161d984fed0SScott Wood	$(HOSTSTRIP) $@
16214821d7dSPrafulla Wadaskar
163f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX):	$(obj)inca-swap-bytes.o
164d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
165d984fed0SScott Wood	$(HOSTSTRIP) $@
1663e38691eSwdenk
16789a4d6b1SPrafulla Wadaskar$(obj)mkimage$(SFX):	$(obj)crc32.o \
16889a4d6b1SPrafulla Wadaskar			$(obj)default_image.o \
16989a4d6b1SPrafulla Wadaskar			$(obj)fit_image.o \
17089a4d6b1SPrafulla Wadaskar			$(obj)image.o \
171*8edcde5eSStefano Babic			$(obj)imximage.o \
172aa0c7a86SPrafulla Wadaskar			$(obj)kwbimage.o \
17389a4d6b1SPrafulla Wadaskar			$(obj)md5.o \
17489a4d6b1SPrafulla Wadaskar			$(obj)mkimage.o \
17589a4d6b1SPrafulla Wadaskar			$(obj)os_support.o \
17689a4d6b1SPrafulla Wadaskar			$(obj)sha1.o \
17789a4d6b1SPrafulla Wadaskar			$(LIBFDT_OBJS)
178d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
179d984fed0SScott Wood	$(HOSTSTRIP) $@
18014821d7dSPrafulla Wadaskar
181f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX):	$(obj)mpc86x_clk.o
182d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
183d984fed0SScott Wood	$(HOSTSTRIP) $@
184ef1464ccSwdenk
18514821d7dSPrafulla Wadaskar$(obj)ncb$(SFX):	$(obj)ncb.o
186d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
187d984fed0SScott Wood	$(HOSTSTRIP) $@
1880a823aa2SHarald Welte
18914821d7dSPrafulla Wadaskar$(obj)ubsha1$(SFX):	$(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o
190d984fed0SScott Wood	$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
1912f8d396bSPeter Tyser
192b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory
193b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/common/%.c
194d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
195b0d4d721SPeter Tyser
196b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/lib_generic/%.c
197d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $<
198eedcd078Swdenk
199b0d4d721SPeter Tyser$(LIBFDT_OBJS):
200d984fed0SScott Wood	$(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
2018cf30809SBartlomiej Sieka
202efee1709Swdenksubdirs:
203e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),)
204e0ac62d7Swdenk	@:
205e0ac62d7Swdenkelse
206efee1709Swdenk	@for dir in $(TOOLSUBDIRS) ; do \
207efee1709Swdenk	    $(MAKE) \
208efee1709Swdenk		HOSTOS=$(HOSTOS) \
209efee1709Swdenk		HOSTARCH=$(HOSTARCH) \
210efee1709Swdenk		-C $$dir || exit 1 ; \
211efee1709Swdenk	done
212e0ac62d7Swdenkendif
213e0ac62d7Swdenk
214f9328639SMarian Balakowicz$(LOGO_H):	$(obj)bmp_logo $(LOGO_BMP)
215f9328639SMarian Balakowicz	$(obj)./bmp_logo $(LOGO_BMP) >$@
216efee1709Swdenk
217efee1709Swdenk#########################################################################
218efee1709Swdenk
219f9328639SMarian Balakowicz# defines $(obj).depend target
220f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk
221efee1709Swdenk
222f9328639SMarian Balakowiczsinclude $(obj).depend
223efee1709Swdenk
224efee1709Swdenk#########################################################################
225