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# 27*a98ae78fSFrançois Revol# Include this after HOSTOS HOSTARCH check 28*a98ae78fSFrançois Revol# so that we can act intelligently. 29*a98ae78fSFrançois Revol# 30*a98ae78fSFrançois Revolinclude $(TOPDIR)/config.mk 31*a98ae78fSFrançois Revol 32*a98ae78fSFrançois Revol# 332f8d396bSPeter Tyser# toolchains targeting win32 generate .exe files 342f8d396bSPeter Tyser# 352f8d396bSPeter Tyserifneq (,$(findstring WIN32 ,$(shell $(HOSTCC) -E -dM -xc /dev/null))) 362f8d396bSPeter TyserSFX = .exe 37efee1709Swdenkelse 38efee1709SwdenkSFX = 39efee1709Swdenkendif 40efee1709Swdenk 41c7c0d542SMike Frysinger# Enable all the config-independent tools 42c7c0d542SMike Frysingerifneq ($(HOST_TOOLS_ALL),) 43c7c0d542SMike FrysingerCONFIG_LCD_LOGO = y 44570d7d50SMike FrysingerCONFIG_CMD_LOADS = y 45c7c0d542SMike FrysingerCONFIG_CMD_NET = y 46c7c0d542SMike FrysingerCONFIG_INCA_IP = y 47c7c0d542SMike FrysingerCONFIG_NETCONSOLE = y 48c7c0d542SMike FrysingerCONFIG_SHA1_CHECK_UB_IMG = y 49c7c0d542SMike Frysingerendif 50c7c0d542SMike Frysinger 51ee3584a5SPeter Tyser# Generated executable files 5214821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX) 5314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX) 544d93a0a8SPeter TyserBIN_FILES-$(CONFIG_ENV_IS_EMBEDDED) += envcrc$(SFX) 55a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_DATAFLASH) += envcrc$(SFX) 56a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_EEPROM) += envcrc$(SFX) 57a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_FLASH) += envcrc$(SFX) 58a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_ONENAND) += envcrc$(SFX) 59a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NAND) += envcrc$(SFX) 60a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_NVRAM) += envcrc$(SFX) 61a747a7f3SWolfgang DenkBIN_FILES-$(CONFIG_ENV_IS_IN_SPI_FLASH) += envcrc$(SFX) 62123c48a2SPeter TyserBIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX) 6314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX) 64cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX) 6514821d7dSPrafulla WadaskarBIN_FILES-y += mkimage$(SFX) 661cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX) 6714821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX) 68ee3584a5SPeter Tyser 69fb8b33c1SPeter Tyser# Source files which exist outside the tools directory 70fb8b33c1SPeter TyserEXT_OBJ_FILES-y += common/env_embedded.o 7114821d7dSPrafulla WadaskarEXT_OBJ_FILES-y += common/image.o 7278acc472SPeter TyserEXT_OBJ_FILES-y += lib/crc32.o 7378acc472SPeter TyserEXT_OBJ_FILES-y += lib/md5.o 7478acc472SPeter TyserEXT_OBJ_FILES-y += lib/sha1.o 75ee3584a5SPeter Tyser 76ee3584a5SPeter Tyser# Source files located in the tools directory 77335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o 78335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o 79d984fed0SScott WoodNOPED_OBJ_FILES-y += default_image.o 80d984fed0SScott WoodOBJ_FILES-y += envcrc.o 81d984fed0SScott WoodNOPED_OBJ_FILES-y += fit_image.o 8214821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o 8314821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o 84cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o 85d984fed0SScott WoodNOPED_OBJ_FILES-y += kwbimage.o 868edcde5eSStefano BabicNOPED_OBJ_FILES-y += imximage.o 87d984fed0SScott WoodNOPED_OBJ_FILES-y += mkimage.o 881cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o 89d984fed0SScott WoodNOPED_OBJ_FILES-y += os_support.o 9014821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o 91ee3584a5SPeter Tyser 92ee3584a5SPeter Tyser# Don't build by default 93ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc) 94ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX) 95ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o 96ee3584a5SPeter Tyser#endif 97ee3584a5SPeter Tyser 98ee3584a5SPeter Tyser# Flattened device tree objects 99ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o 100ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o 101ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o 102ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o 103ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o 104ee3584a5SPeter Tyser 105335ffe7eSPeter Tyser# Generated LCD/video logo 106ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h 107335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H) 108335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H) 109ee3584a5SPeter Tyser 110ee3584a5SPeter Tyserifeq ($(LOGO_BMP),) 111ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp 112ee3584a5SPeter Tyserendif 113ee3584a5SPeter Tyserifeq ($(VENDOR),atmel) 114ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp 115ee3584a5SPeter Tyserendif 11644d80256SDaniel Gorsulowskiifeq ($(VENDOR),esd) 11744d80256SDaniel GorsulowskiLOGO_BMP= logos/esd.bmp 11844d80256SDaniel Gorsulowskiendif 119ef351fe1STimur Tabiifeq ($(VENDOR),freescale) 120ef351fe1STimur TabiLOGO_BMP= logos/freescale.bmp 121ef351fe1STimur Tabiendif 122f0a2c7b4SIlko Ilievifeq ($(VENDOR),ronetix) 123f0a2c7b4SIlko IlievLOGO_BMP= logos/ronetix.bmp 124f0a2c7b4SIlko Ilievendif 12518a056a1SMatthias Weisserifeq ($(VENDOR),syteco) 12618a056a1SMatthias WeisserLOGO_BMP= logos/syteco.bmp 12718a056a1SMatthias Weisserendif 128ee3584a5SPeter Tyser 129f9328639SMarian Balakowicz# now $(obj) is defined 130d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c)) 131d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c)) 1320de71d50SPeter TyserHOSTSRCS += $(addprefix $(SRCTREE)/lib/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c)) 133afcbce07SWolfgang DenkBINS := $(addprefix $(obj),$(sort $(BIN_FILES-y))) 134ee3584a5SPeter TyserLIBFDT_OBJS := $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y)) 135f9328639SMarian Balakowicz 136d984fed0SScott WoodHOSTOBJS := $(addprefix $(obj),$(OBJ_FILES-y)) 137d984fed0SScott WoodNOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y)) 138d984fed0SScott Wood 139efee1709Swdenk# 140efee1709Swdenk# Use native tools and options 1412f8d396bSPeter Tyser# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps 142efee1709Swdenk# 143d984fed0SScott WoodHOSTCPPFLAGS = -idirafter $(SRCTREE)/include \ 144f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include2 \ 145f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include \ 1460de71d50SPeter Tyser -I $(SRCTREE)/lib/libfdt \ 14740b8d909SPeter Tyser -I $(SRCTREE)/tools \ 14814d0a02aSWolfgang Denk -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \ 14914d0a02aSWolfgang Denk -DUSE_HOSTCC \ 1502f8d396bSPeter Tyser -D__KERNEL_STRICT_NAMES 1518cf30809SBartlomiej Sieka 152efee1709Swdenk 153335ffe7eSPeter Tyserall: $(obj).depend $(BINS) $(LOGO-y) subdirs 154efee1709Swdenk 15514821d7dSPrafulla Wadaskar$(obj)bin2header$(SFX): $(obj)bin2header.o 156d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 157d984fed0SScott Wood $(HOSTSTRIP) $@ 158efee1709Swdenk 159f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX): $(obj)bmp_logo.o 160d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 161d984fed0SScott Wood $(HOSTSTRIP) $@ 162efee1709Swdenk 16314821d7dSPrafulla Wadaskar$(obj)envcrc$(SFX): $(obj)crc32.o $(obj)env_embedded.o $(obj)envcrc.o $(obj)sha1.o 164d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 16514821d7dSPrafulla Wadaskar 16614821d7dSPrafulla Wadaskar$(obj)gen_eth_addr$(SFX): $(obj)gen_eth_addr.o 167d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 168d984fed0SScott Wood $(HOSTSTRIP) $@ 16914821d7dSPrafulla Wadaskar 17014821d7dSPrafulla Wadaskar$(obj)img2srec$(SFX): $(obj)img2srec.o 171d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 172d984fed0SScott Wood $(HOSTSTRIP) $@ 17314821d7dSPrafulla Wadaskar 174f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX): $(obj)inca-swap-bytes.o 175d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 176d984fed0SScott Wood $(HOSTSTRIP) $@ 1773e38691eSwdenk 17889a4d6b1SPrafulla Wadaskar$(obj)mkimage$(SFX): $(obj)crc32.o \ 17989a4d6b1SPrafulla Wadaskar $(obj)default_image.o \ 18089a4d6b1SPrafulla Wadaskar $(obj)fit_image.o \ 18189a4d6b1SPrafulla Wadaskar $(obj)image.o \ 1828edcde5eSStefano Babic $(obj)imximage.o \ 183aa0c7a86SPrafulla Wadaskar $(obj)kwbimage.o \ 18489a4d6b1SPrafulla Wadaskar $(obj)md5.o \ 18589a4d6b1SPrafulla Wadaskar $(obj)mkimage.o \ 18689a4d6b1SPrafulla Wadaskar $(obj)os_support.o \ 18789a4d6b1SPrafulla Wadaskar $(obj)sha1.o \ 18889a4d6b1SPrafulla Wadaskar $(LIBFDT_OBJS) 189d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 190d984fed0SScott Wood $(HOSTSTRIP) $@ 19114821d7dSPrafulla Wadaskar 192f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX): $(obj)mpc86x_clk.o 193d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 194d984fed0SScott Wood $(HOSTSTRIP) $@ 195ef1464ccSwdenk 19614821d7dSPrafulla Wadaskar$(obj)ncb$(SFX): $(obj)ncb.o 197d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 198d984fed0SScott Wood $(HOSTSTRIP) $@ 1990a823aa2SHarald Welte 20014821d7dSPrafulla Wadaskar$(obj)ubsha1$(SFX): $(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o 201d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 2022f8d396bSPeter Tyser 203b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory 204b0d4d721SPeter Tyser$(obj)%.o: $(SRCTREE)/common/%.c 205d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 206b0d4d721SPeter Tyser 20778acc472SPeter Tyser$(obj)%.o: $(SRCTREE)/lib/%.c 208d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $< 209eedcd078Swdenk 2100de71d50SPeter Tyser$(obj)%.o: $(SRCTREE)/lib/libfdt/%.c 211d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 2128cf30809SBartlomiej Sieka 213efee1709Swdenksubdirs: 214e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),) 215e0ac62d7Swdenk @: 216e0ac62d7Swdenkelse 217efee1709Swdenk @for dir in $(TOOLSUBDIRS) ; do \ 218efee1709Swdenk $(MAKE) \ 219efee1709Swdenk HOSTOS=$(HOSTOS) \ 220efee1709Swdenk HOSTARCH=$(HOSTARCH) \ 221efee1709Swdenk -C $$dir || exit 1 ; \ 222efee1709Swdenk done 223e0ac62d7Swdenkendif 224e0ac62d7Swdenk 225f9328639SMarian Balakowicz$(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) 226f9328639SMarian Balakowicz $(obj)./bmp_logo $(LOGO_BMP) >$@ 227efee1709Swdenk 228efee1709Swdenk######################################################################### 229efee1709Swdenk 230f9328639SMarian Balakowicz# defines $(obj).depend target 231f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk 232efee1709Swdenk 233f9328639SMarian Balakowiczsinclude $(obj).depend 234efee1709Swdenk 235efee1709Swdenk######################################################################### 236