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