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