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 2430ff8918SMarek VasutTOOLSUBDIRS = kernel-doc 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 4660b74bdeSDaniel SchwierzeckCONFIG_XWAY_SWAP_BYTES = y 47c7c0d542SMike FrysingerCONFIG_NETCONSOLE = y 48c7c0d542SMike FrysingerCONFIG_SHA1_CHECK_UB_IMG = y 49c7c0d542SMike Frysingerendif 50c7c0d542SMike Frysinger 512ad6e27dSMike Frysinger# Merge all the different vars for envcrc into one 522ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_EMBEDDED) = y 532ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_DATAFLASH) = y 542ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_EEPROM) = y 552ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y 562ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y 572ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y 582ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y 592ad6e27dSMike FrysingerENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = y 602ad6e27dSMike FrysingerCONFIG_BUILD_ENVCRC ?= $(ENVCRC-y) 612ad6e27dSMike Frysinger 62ee3584a5SPeter Tyser# Generated executable files 6314821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_LCD_LOGO) += bmp_logo$(SFX) 6414821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo$(SFX) 652ad6e27dSMike 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) 6860b74bdeSDaniel SchwierzeckBIN_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes$(SFX) 69a6337e6fSDavid WagnerBIN_FILES-y += mkenvimage$(SFX) 7014821d7dSPrafulla WadaskarBIN_FILES-y += mkimage$(SFX) 7181e35203SChander KashyapBIN_FILES-$(CONFIG_SMDK5250) += mksmdk5250spl$(SFX) 72deb0757cSOtavio SalvadorBIN_FILES-$(CONFIG_MX23) += mxsboot$(SFX) 73f29f7e02SMarek VasutBIN_FILES-$(CONFIG_MX28) += mxsboot$(SFX) 741cd300deSPeter TyserBIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX) 7514821d7dSPrafulla WadaskarBIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX) 76d131ad68SLuka PerkovBIN_FILES-$(CONFIG_KIRKWOOD) += kwboot$(SFX) 77*6c887b2aSSimon GlassBIN_FILES-y += proftool(SFX) 78ee3584a5SPeter Tyser 79fb8b33c1SPeter Tyser# Source files which exist outside the tools directory 802ad6e27dSMike FrysingerEXT_OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += common/env_embedded.o 8114821d7dSPrafulla WadaskarEXT_OBJ_FILES-y += common/image.o 8253fbb7e8SSimon GlassEXT_OBJ_FILES-$(CONFIG_FIT) += common/image-fit.o 8378acc472SPeter TyserEXT_OBJ_FILES-y += lib/crc32.o 8478acc472SPeter TyserEXT_OBJ_FILES-y += lib/md5.o 8578acc472SPeter TyserEXT_OBJ_FILES-y += lib/sha1.o 86ee3584a5SPeter Tyser 87ee3584a5SPeter Tyser# Source files located in the tools directory 88335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o 89335ffe7eSPeter TyserOBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o 90d984fed0SScott WoodNOPED_OBJ_FILES-y += default_image.o 91*6c887b2aSSimon GlassNOPED_OBJ_FILES-y += proftool.o 922ad6e27dSMike FrysingerOBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o 93d984fed0SScott WoodNOPED_OBJ_FILES-y += fit_image.o 9414821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o 9514821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o 9660b74bdeSDaniel SchwierzeckOBJ_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes.o 974962e38eSStefano BabicNOPED_OBJ_FILES-y += aisimage.o 98d984fed0SScott WoodNOPED_OBJ_FILES-y += kwbimage.o 995d898a00SShaohui XieNOPED_OBJ_FILES-y += pblimage.o 1008edcde5eSStefano BabicNOPED_OBJ_FILES-y += imximage.o 101604f23ddSSimon GlassNOPED_OBJ_FILES-y += image-host.o 1023decb14aSJohn RigbyNOPED_OBJ_FILES-y += omapimage.o 103a6337e6fSDavid WagnerNOPED_OBJ_FILES-y += mkenvimage.o 104d984fed0SScott WoodNOPED_OBJ_FILES-y += mkimage.o 10581e35203SChander KashyapOBJ_FILES-$(CONFIG_SMDK5250) += mkexynosspl.o 106deb0757cSOtavio SalvadorOBJ_FILES-$(CONFIG_MX23) += mxsboot.o 107f29f7e02SMarek VasutOBJ_FILES-$(CONFIG_MX28) += mxsboot.o 1081cd300deSPeter TyserOBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o 109d984fed0SScott WoodNOPED_OBJ_FILES-y += os_support.o 11014821d7dSPrafulla WadaskarOBJ_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1.o 1117816f2cfSHeiko SchocherNOPED_OBJ_FILES-y += ublimage.o 112d131ad68SLuka PerkovOBJ_FILES-$(CONFIG_KIRKWOOD) += kwboot.o 113ee3584a5SPeter Tyser 114ee3584a5SPeter Tyser# Don't build by default 115ee3584a5SPeter Tyser#ifeq ($(ARCH),ppc) 116ee3584a5SPeter Tyser#BIN_FILES-y += mpc86x_clk$(SFX) 117ee3584a5SPeter Tyser#OBJ_FILES-y += mpc86x_clk.o 118ee3584a5SPeter Tyser#endif 119ee3584a5SPeter Tyser 120ee3584a5SPeter Tyser# Flattened device tree objects 121ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt.o 122ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_ro.o 123ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_rw.o 124ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_strerror.o 125ee3584a5SPeter TyserLIBFDT_OBJ_FILES-y += fdt_wip.o 126ee3584a5SPeter Tyser 127335ffe7eSPeter Tyser# Generated LCD/video logo 128ee3584a5SPeter TyserLOGO_H = $(OBJTREE)/include/bmp_logo.h 129c270730fSChe-Liang ChiouLOGO_DATA_H = $(OBJTREE)/include/bmp_logo_data.h 130335ffe7eSPeter TyserLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H) 131c270730fSChe-Liang ChiouLOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H) 132335ffe7eSPeter TyserLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H) 133c270730fSChe-Liang ChiouLOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H) 134ee3584a5SPeter Tyser 13596903daeSOtavio Salvador# Generic logo 136ee3584a5SPeter Tyserifeq ($(LOGO_BMP),) 137ee3584a5SPeter TyserLOGO_BMP= logos/denx.bmp 13896903daeSOtavio Salvador 13996903daeSOtavio Salvador# Use board logo and fallback to vendor 14096903daeSOtavio Salvadorifneq ($(wildcard logos/$(BOARD).bmp),) 14196903daeSOtavio SalvadorLOGO_BMP= logos/$(BOARD).bmp 14296903daeSOtavio Salvadorelse 14396903daeSOtavio Salvadorifneq ($(wildcard logos/$(VENDOR).bmp),) 14496903daeSOtavio SalvadorLOGO_BMP= logos/$(VENDOR).bmp 145ee3584a5SPeter Tyserendif 146ee3584a5SPeter Tyserendif 14796903daeSOtavio Salvador 14896903daeSOtavio Salvadorendif # !LOGO_BMP 149ee3584a5SPeter Tyser 150f9328639SMarian Balakowicz# now $(obj) is defined 151d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/,$(EXT_OBJ_FILES-y:.o=.c)) 152d984fed0SScott WoodHOSTSRCS += $(addprefix $(SRCTREE)/tools/,$(OBJ_FILES-y:.o=.c)) 1530de71d50SPeter TyserHOSTSRCS += $(addprefix $(SRCTREE)/lib/libfdt/,$(LIBFDT_OBJ_FILES-y:.o=.c)) 154afcbce07SWolfgang DenkBINS := $(addprefix $(obj),$(sort $(BIN_FILES-y))) 155ee3584a5SPeter TyserLIBFDT_OBJS := $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y)) 156f9328639SMarian Balakowicz 157d984fed0SScott WoodHOSTOBJS := $(addprefix $(obj),$(OBJ_FILES-y)) 158d984fed0SScott WoodNOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y)) 159d984fed0SScott Wood 160efee1709Swdenk# 161efee1709Swdenk# Use native tools and options 1622f8d396bSPeter Tyser# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps 163efee1709Swdenk# 164669dfc2eSSimon GlassHOSTCPPFLAGS = -include $(SRCTREE)/include/libfdt_env.h \ 165669dfc2eSSimon Glass -idirafter $(SRCTREE)/include \ 166f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include2 \ 167f9328639SMarian Balakowicz -idirafter $(OBJTREE)/include \ 1680de71d50SPeter Tyser -I $(SRCTREE)/lib/libfdt \ 16940b8d909SPeter Tyser -I $(SRCTREE)/tools \ 17014d0a02aSWolfgang Denk -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \ 17114d0a02aSWolfgang Denk -DUSE_HOSTCC \ 1722f8d396bSPeter Tyser -D__KERNEL_STRICT_NAMES 1738cf30809SBartlomiej Sieka 174efee1709Swdenk 175335ffe7eSPeter Tyserall: $(obj).depend $(BINS) $(LOGO-y) subdirs 176efee1709Swdenk 17714821d7dSPrafulla Wadaskar$(obj)bin2header$(SFX): $(obj)bin2header.o 178d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 179d984fed0SScott Wood $(HOSTSTRIP) $@ 180efee1709Swdenk 181f9328639SMarian Balakowicz$(obj)bmp_logo$(SFX): $(obj)bmp_logo.o 182d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 183d984fed0SScott Wood $(HOSTSTRIP) $@ 184efee1709Swdenk 185*6c887b2aSSimon Glass$(obj)proftool(SFX): $(obj)proftool.o 186*6c887b2aSSimon Glass $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 187*6c887b2aSSimon Glass $(HOSTSTRIP) $@ 188*6c887b2aSSimon Glass 18914821d7dSPrafulla Wadaskar$(obj)envcrc$(SFX): $(obj)crc32.o $(obj)env_embedded.o $(obj)envcrc.o $(obj)sha1.o 190d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 19114821d7dSPrafulla Wadaskar 19214821d7dSPrafulla Wadaskar$(obj)gen_eth_addr$(SFX): $(obj)gen_eth_addr.o 193d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 194d984fed0SScott Wood $(HOSTSTRIP) $@ 19514821d7dSPrafulla Wadaskar 19614821d7dSPrafulla Wadaskar$(obj)img2srec$(SFX): $(obj)img2srec.o 197d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 198d984fed0SScott Wood $(HOSTSTRIP) $@ 19914821d7dSPrafulla Wadaskar 20060b74bdeSDaniel Schwierzeck$(obj)xway-swap-bytes$(SFX): $(obj)xway-swap-bytes.o 201d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 202d984fed0SScott Wood $(HOSTSTRIP) $@ 2033e38691eSwdenk 2048b6a4952SVladimir Yakovlev$(obj)mkenvimage$(SFX): $(obj)crc32.o $(obj)mkenvimage.o \ 2058b6a4952SVladimir Yakovlev $(obj)os_support.o 206a6337e6fSDavid Wagner $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 20730de1014SDavid Wagner $(HOSTSTRIP) $@ 208a6337e6fSDavid Wagner 2094962e38eSStefano Babic$(obj)mkimage$(SFX): $(obj)aisimage.o \ 2104962e38eSStefano Babic $(obj)crc32.o \ 21189a4d6b1SPrafulla Wadaskar $(obj)default_image.o \ 21289a4d6b1SPrafulla Wadaskar $(obj)fit_image.o \ 21353fbb7e8SSimon Glass $(obj)image-fit.o \ 21489a4d6b1SPrafulla Wadaskar $(obj)image.o \ 215604f23ddSSimon Glass $(obj)image-host.o \ 2168edcde5eSStefano Babic $(obj)imximage.o \ 217aa0c7a86SPrafulla Wadaskar $(obj)kwbimage.o \ 2185d898a00SShaohui Xie $(obj)pblimage.o \ 21989a4d6b1SPrafulla Wadaskar $(obj)md5.o \ 22089a4d6b1SPrafulla Wadaskar $(obj)mkimage.o \ 22189a4d6b1SPrafulla Wadaskar $(obj)os_support.o \ 2223decb14aSJohn Rigby $(obj)omapimage.o \ 22389a4d6b1SPrafulla Wadaskar $(obj)sha1.o \ 2247816f2cfSHeiko Schocher $(obj)ublimage.o \ 22589a4d6b1SPrafulla Wadaskar $(LIBFDT_OBJS) 226d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 227d984fed0SScott Wood $(HOSTSTRIP) $@ 22814821d7dSPrafulla Wadaskar 22981e35203SChander Kashyap$(obj)mk$(BOARD)spl$(SFX): $(obj)mkexynosspl.o 23081e35203SChander Kashyap $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 23181e35203SChander Kashyap $(HOSTSTRIP) $@ 23281e35203SChander Kashyap 233f9328639SMarian Balakowicz$(obj)mpc86x_clk$(SFX): $(obj)mpc86x_clk.o 234d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 235d984fed0SScott Wood $(HOSTSTRIP) $@ 236ef1464ccSwdenk 237f29f7e02SMarek Vasut$(obj)mxsboot$(SFX): $(obj)mxsboot.o 238f29f7e02SMarek Vasut $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 239f29f7e02SMarek Vasut $(HOSTSTRIP) $@ 240f29f7e02SMarek Vasut 24114821d7dSPrafulla Wadaskar$(obj)ncb$(SFX): $(obj)ncb.o 242d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 243d984fed0SScott Wood $(HOSTSTRIP) $@ 2440a823aa2SHarald Welte 24514821d7dSPrafulla Wadaskar$(obj)ubsha1$(SFX): $(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o 246d984fed0SScott Wood $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 2472f8d396bSPeter Tyser 248d131ad68SLuka Perkov$(obj)kwboot$(SFX): $(obj)kwboot.o 249d131ad68SLuka Perkov $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ 250d131ad68SLuka Perkov $(HOSTSTRIP) $@ 251d131ad68SLuka Perkov 252b0d4d721SPeter Tyser# Some of the tool objects need to be accessed from outside the tools directory 25391081e01SWolfgang Denk$(obj)%.o: $(SRCTREE)/common/%.c 254d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 255b0d4d721SPeter Tyser 25691081e01SWolfgang Denk$(obj)%.o: $(SRCTREE)/lib/%.c 257d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $< 258eedcd078Swdenk 2590de71d50SPeter Tyser$(obj)%.o: $(SRCTREE)/lib/libfdt/%.c 260d984fed0SScott Wood $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $< 2618cf30809SBartlomiej Sieka 262efee1709Swdenksubdirs: 263e0ac62d7Swdenkifeq ($(TOOLSUBDIRS),) 264e0ac62d7Swdenk @: 265e0ac62d7Swdenkelse 266efee1709Swdenk @for dir in $(TOOLSUBDIRS) ; do \ 267efee1709Swdenk $(MAKE) \ 268efee1709Swdenk HOSTOS=$(HOSTOS) \ 269efee1709Swdenk HOSTARCH=$(HOSTARCH) \ 270efee1709Swdenk -C $$dir || exit 1 ; \ 271efee1709Swdenk done 272e0ac62d7Swdenkendif 273e0ac62d7Swdenk 274f9328639SMarian Balakowicz$(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) 275c270730fSChe-Liang Chiou $(obj)./bmp_logo --gen-info $(LOGO_BMP) > $@ 276c270730fSChe-Liang Chiou 277c270730fSChe-Liang Chiou$(LOGO_DATA_H): $(obj)bmp_logo $(LOGO_BMP) 278c270730fSChe-Liang Chiou $(obj)./bmp_logo --gen-data $(LOGO_BMP) > $@ 279efee1709Swdenk 280efee1709Swdenk######################################################################### 281efee1709Swdenk 282f9328639SMarian Balakowicz# defines $(obj).depend target 283f9328639SMarian Balakowiczinclude $(SRCTREE)/rules.mk 284efee1709Swdenk 285f9328639SMarian Balakowiczsinclude $(obj).depend 286efee1709Swdenk 287efee1709Swdenk######################################################################### 288