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# 27a98ae78fSFrançois Revol# Include this after HOSTOS HOSTARCH check 28a98ae78fSFrançois Revol# so that we can act intelligently. 29a98ae78fSFrançois Revol# 30a98ae78fSFrançois Revolinclude $(TOPDIR)/config.mk 31a98ae78fSFrançois Revol 32a98ae78fSFranç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 51*2ad6e27dSMike Frysinger# Merge all the different vars for envcrc into one 52*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_EMBEDDED) = y 53*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_DATAFLASH) = y 54*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_EEPROM) = y 55*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y 56*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y 57*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y 58*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y 59*2ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = y 60*2ad6e27dSMike FrysingerCONFIG_BUILD_ENVCRC ?= $(ENVCRC-y) 61*2ad6e27dSMike Frysinger 62ee3584a5SPeter Tyser# Generated executable files 6314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX) 6414821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX) 65*2ad6e27dSMike FrysingerBIN_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc$(SFX) 66123c48a2SPeter TyserBIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX) 6714821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX) 68cd26a31aSPeter TyserBIN_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes$(SFX) 6914821d7dSPrafulla WadaskarBIN_FILES-y += mkimage$(SFX) 701cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX) 7114821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX) 72ee3584a5SPeter Tyser 73fb8b33c1SPeter Tyser# Source files which exist outside the tools directory 74*2ad6e27dSMike FrysingerEXT_OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += common/env_embedded.o 7514821d7dSPrafulla WadaskarEXT_OBJ_FILES-y += common/image.o 7678acc472SPeter TyserEXT_OBJ_FILES-y += lib/crc32.o 7778acc472SPeter TyserEXT_OBJ_FILES-y += lib/md5.o 7878acc472SPeter TyserEXT_OBJ_FILES-y += lib/sha1.o 79ee3584a5SPeter Tyser 80ee3584a5SPeter Tyser# Source files located in the tools directory 81335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o 82335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o 83d984fed0SScott WoodNOPED_OBJ_FILES-y += default_image.o 84*2ad6e27dSMike FrysingerOBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o 85d984fed0SScott WoodNOPED_OBJ_FILES-y += fit_image.o 8614821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o 8714821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o 88cd26a31aSPeter TyserOBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o 89d984fed0SScott WoodNOPED_OBJ_FILES-y += kwbimage.o 908edcde5eSStefano BabicNOPED_OBJ_FILES-y += imximage.o 91d984fed0SScott WoodNOPED_OBJ_FILES-y += mkimage.o 921cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o 93d984fed0SScott WoodNOPED_OBJ_FILES-y += os_support.o 9414821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o 95ee3584a5SPeter Tyser 96ee3584a5SPeter Tyser# Don't build by default 97ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc) 98ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX) 99ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o 100ee3584a5SPeter Tyser#endif 101ee3584a5SPeter Tyser 102ee3584a5SPeter Tyser# Flattened device tree objects 103ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o 104ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o 105ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o 106ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o 107ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o 108ee3584a5SPeter Tyser 109335ffe7eSPeter Tyser# Generated LCD/video logo 110ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h 111335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H) 112335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H) 113ee3584a5SPeter Tyser 114ee3584a5SPeter Tyserifeq ($(LOGO_BMP),) 115ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp 116ee3584a5SPeter Tyserendif 117ee3584a5SPeter Tyserifeq ($(VENDOR),atmel) 118ee3584a5SPeter TyserLOGO_BMP= logos/atmel.bmp 119ee3584a5SPeter Tyserendif 12044d80256SDaniel Gorsulowskiifeq ($(VENDOR),esd) 12144d80256SDaniel GorsulowskiLOGO_BMP= logos/esd.bmp 12244d80256SDaniel Gorsulowskiendif 123ef351fe1STimur Tabiifeq ($(VENDOR),freescale) 124ef351fe1STimur TabiLOGO_BMP= logos/freescale.bmp 125ef351fe1STimur Tabiendif 126f0a2c7b4SIlko Ilievifeq ($(VENDOR),ronetix) 127f0a2c7b4SIlko IlievLOGO_BMP= logos/ronetix.bmp 128f0a2c7b4SIlko Ilievendif 12918a056a1SMatthias Weisserifeq ($(VENDOR),syteco) 13018a056a1SMatthias WeisserLOGO_BMP= logos/syteco.bmp 13118a056a1SMatthias Weisserendif 132ee3584a5SPeter Tyser 133f9328639SMarian Balakowicz# now $(obj) is defined 134d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c)) 135d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c)) 1360de71d50SPeter TyserHOSTSRCS += $(addprefix $(SRCTREE)/lib/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c)) 137afcbce07SWolfgang DenkBINS := $(addprefix $(obj),$(sort $(BIN_FILES-y))) 138ee3584a5SPeter TyserLIBFDT_OBJS := $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y)) 139f9328639SMarian Balakowicz 140d984fed0SScott WoodHOSTOBJS := $(addprefix $(obj),$(OBJ_FILES-y)) 141d984fed0SScott WoodNOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y)) 142d984fed0SScott Wood 143efee1709Swdenk# 144efee1709Swdenk# Use native tools and options 1452f8d396bSPeter Tyser# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps 146efee1709Swdenk# 14791081e01SWolfgang DenkHOSTCPPFLAGS = -idirafter $(SRCTREE)/include \ 148f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include2 \ 149f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include \ 1500de71d50SPeter Tyser -I $(SRCTREE)/lib/libfdt \ 15140b8d909SPeter Tyser -I $(SRCTREE)/tools \ 15214d0a02aSWolfgang Denk -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \ 15314d0a02aSWolfgang Denk -DUSE_HOSTCC \ 1542f8d396bSPeter Tyser -D__KERNEL_STRICT_NAMES 1558cf30809SBartlomiej Sieka 156efee1709Swdenk 157335ffe7eSPeter Tyserall: $(obj).depend $(BINS) $(LOGO-y) subdirs 158efee1709Swdenk 15914821d7dSPrafulla Wadaskar$(obj)bin2header$(SFX): $(obj)bin2header.o 160d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 161d984fed0SScott Wood $(HOSTSTRIP) $@ 162efee1709Swdenk 163f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX): $(obj)bmp_logo.o 164d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 165d984fed0SScott Wood $(HOSTSTRIP) $@ 166efee1709Swdenk 16714821d7dSPrafulla Wadaskar$(obj)envcrc$(SFX): $(obj)crc32.o $(obj)env_embedded.o $(obj)envcrc.o $(obj)sha1.o 168d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 16914821d7dSPrafulla Wadaskar 17014821d7dSPrafulla Wadaskar$(obj)gen_eth_addr$(SFX): $(obj)gen_eth_addr.o 171d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 172d984fed0SScott Wood $(HOSTSTRIP) $@ 17314821d7dSPrafulla Wadaskar 17414821d7dSPrafulla Wadaskar$(obj)img2srec$(SFX): $(obj)img2srec.o 175d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 176d984fed0SScott Wood $(HOSTSTRIP) $@ 17714821d7dSPrafulla Wadaskar 178f9328639SMarian Balakowicz$(obj)inca-swap-bytes$(SFX): $(obj)inca-swap-bytes.o 179d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 180d984fed0SScott Wood $(HOSTSTRIP) $@ 1813e38691eSwdenk 18289a4d6b1SPrafulla Wadaskar$(obj)mkimage$(SFX): $(obj)crc32.o \ 18389a4d6b1SPrafulla Wadaskar $(obj)default_image.o \ 18489a4d6b1SPrafulla Wadaskar $(obj)fit_image.o \ 18589a4d6b1SPrafulla Wadaskar $(obj)image.o \ 1868edcde5eSStefano Babic $(obj)imximage.o \ 187aa0c7a86SPrafulla Wadaskar $(obj)kwbimage.o \ 18889a4d6b1SPrafulla Wadaskar $(obj)md5.o \ 18989a4d6b1SPrafulla Wadaskar $(obj)mkimage.o \ 19089a4d6b1SPrafulla Wadaskar $(obj)os_support.o \ 19189a4d6b1SPrafulla Wadaskar $(obj)sha1.o \ 19289a4d6b1SPrafulla Wadaskar $(LIBFDT_OBJS) 193d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 194d984fed0SScott Wood $(HOSTSTRIP) $@ 19514821d7dSPrafulla Wadaskar 196f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX): $(obj)mpc86x_clk.o 197d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 198d984fed0SScott Wood $(HOSTSTRIP) $@ 199ef1464ccSwdenk 20014821d7dSPrafulla Wadaskar$(obj)ncb$(SFX): $(obj)ncb.o 201d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 202d984fed0SScott Wood $(HOSTSTRIP) $@ 2030a823aa2SHarald Welte 20414821d7dSPrafulla Wadaskar$(obj)ubsha1$(SFX): $(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o 205d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 2062f8d396bSPeter Tyser 207b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory 20891081e01SWolfgang Denk$(obj)%.o: $(SRCTREE)/common/%.c 209d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 210b0d4d721SPeter Tyser 21191081e01SWolfgang Denk$(obj)%.o: $(SRCTREE)/lib/%.c 212d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $< 213eedcd078Swdenk 2140de71d50SPeter Tyser$(obj)%.o: $(SRCTREE)/lib/libfdt/%.c 215d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 2168cf30809SBartlomiej Sieka 217efee1709Swdenksubdirs: 218e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),) 219e0ac62d7Swdenk @: 220e0ac62d7Swdenkelse 221efee1709Swdenk @for dir in $(TOOLSUBDIRS) ; do \ 222efee1709Swdenk $(MAKE) \ 223efee1709Swdenk HOSTOS=$(HOSTOS) \ 224efee1709Swdenk HOSTARCH=$(HOSTARCH) \ 225efee1709Swdenk -C $$dir || exit 1 ; \ 226efee1709Swdenk done 227e0ac62d7Swdenkendif 228e0ac62d7Swdenk 229f9328639SMarian Balakowicz$(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) 230f9328639SMarian Balakowicz $(obj)./bmp_logo $(LOGO_BMP) >$@ 231efee1709Swdenk 232efee1709Swdenk######################################################################### 233efee1709Swdenk 234f9328639SMarian Balakowicz# defines $(obj).depend target 235f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk 236efee1709Swdenk 237f9328639SMarian Balakowiczsinclude $(obj).depend 238efee1709Swdenk 239efee1709Swdenk######################################################################### 240