uboot/tools/Makefile
<<
>>
Prefs
   1#
   2# (C) Copyright 2000-2006
   3# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4#
   5# SPDX-License-Identifier:      GPL-2.0+
   6#
   7
   8# Enable all the config-independent tools
   9ifneq ($(HOST_TOOLS_ALL),)
  10CONFIG_LCD_LOGO = y
  11CONFIG_CMD_LOADS = y
  12CONFIG_CMD_NET = y
  13CONFIG_XWAY_SWAP_BYTES = y
  14CONFIG_NETCONSOLE = y
  15CONFIG_SHA1_CHECK_UB_IMG = y
  16endif
  17
  18subdir-$(HOST_TOOLS_ALL) += easylogo
  19subdir-$(HOST_TOOLS_ALL) += gdb
  20
  21# Merge all the different vars for envcrc into one
  22ENVCRC-$(CONFIG_ENV_IS_EMBEDDED) = y
  23ENVCRC-$(CONFIG_ENV_IS_IN_DATAFLASH) = y
  24ENVCRC-$(CONFIG_ENV_IS_IN_EEPROM) = y
  25ENVCRC-$(CONFIG_ENV_IS_IN_FLASH) = y
  26ENVCRC-$(CONFIG_ENV_IS_IN_ONENAND) = y
  27ENVCRC-$(CONFIG_ENV_IS_IN_NAND) = y
  28ENVCRC-$(CONFIG_ENV_IS_IN_NVRAM) = y
  29ENVCRC-$(CONFIG_ENV_IS_IN_SPI_FLASH) = y
  30CONFIG_BUILD_ENVCRC ?= $(ENVCRC-y)
  31
  32hostprogs-$(CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER) += atmel_pmecc_params
  33
  34# TODO: CONFIG_CMD_LICENSE does not work
  35hostprogs-$(CONFIG_CMD_LICENSE) += bin2header
  36hostprogs-$(CONFIG_LCD_LOGO) += bmp_logo
  37hostprogs-$(CONFIG_VIDEO_LOGO) += bmp_logo
  38HOSTCFLAGS_bmp_logo.o := -pedantic
  39
  40hostprogs-$(CONFIG_BUILD_ENVCRC) += envcrc
  41envcrc-objs := envcrc.o lib/crc32.o common/env_embedded.o lib/sha1.o
  42
  43hostprogs-$(CONFIG_CMD_NET) += gen_eth_addr
  44HOSTCFLAGS_gen_eth_addr.o := -pedantic
  45
  46hostprogs-$(CONFIG_CMD_LOADS) += img2srec
  47HOSTCFLAGS_img2srec.o := -pedantic
  48
  49hostprogs-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes
  50HOSTCFLAGS_xway-swap-bytes.o := -pedantic
  51
  52hostprogs-y += mkenvimage
  53mkenvimage-objs := mkenvimage.o os_support.o lib/crc32.o
  54
  55hostprogs-y += dumpimage mkimage
  56hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_info fit_check_sign
  57
  58FIT_SIG_OBJS-$(CONFIG_FIT_SIGNATURE) := common/image-sig.o
  59# Flattened device tree objects
  60LIBFDT_OBJS := $(addprefix lib/libfdt/, \
  61                        fdt.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_wip.o \
  62                        fdt_region.o)
  63RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := $(addprefix lib/rsa/, \
  64                                        rsa-sign.o rsa-verify.o rsa-checksum.o \
  65                                        rsa-mod-exp.o)
  66
  67ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
  68
  69# common objs for dumpimage and mkimage
  70dumpimage-mkimage-objs := aisimage.o \
  71                        atmelimage.o \
  72                        $(FIT_SIG_OBJS-y) \
  73                        common/bootm.o \
  74                        lib/crc32.o \
  75                        default_image.o \
  76                        lib/fdtdec_common.o \
  77                        lib/fdtdec.o \
  78                        fit_common.o \
  79                        fit_image.o \
  80                        gpimage.o \
  81                        gpimage-common.o \
  82                        common/image-fit.o \
  83                        image-host.o \
  84                        common/image.o \
  85                        imagetool.o \
  86                        imximage.o \
  87                        kwbimage.o \
  88                        lib/md5.o \
  89                        lpc32xximage.o \
  90                        mxsimage.o \
  91                        omapimage.o \
  92                        os_support.o \
  93                        pblimage.o \
  94                        pbl_crc32.o \
  95                        $(ROCKCHIP_OBS) \
  96                        socfpgaimage.o \
  97                        lib/sha1.o \
  98                        lib/sha256.o \
  99                        common/hash.o \
 100                        ublimage.o \
 101                        zynqimage.o \
 102                        $(LIBFDT_OBJS) \
 103                        $(RSA_OBJS-y)
 104
 105dumpimage-objs := $(dumpimage-mkimage-objs) dumpimage.o
 106mkimage-objs   := $(dumpimage-mkimage-objs) mkimage.o
 107fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
 108fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
 109
 110# TODO(sjg@chromium.org): Is this correct on Mac OS?
 111
 112ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
 113# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
 114# the mxsimage support within tools/mxsimage.c .
 115HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
 116endif
 117
 118ifdef CONFIG_FIT_SIGNATURE
 119# This affects include/image.h, but including the board config file
 120# is tricky, so manually define this options here.
 121HOST_EXTRACFLAGS        += -DCONFIG_FIT_SIGNATURE
 122endif
 123
 124ifdef CONFIG_SYS_U_BOOT_OFFS
 125HOSTCFLAGS_kwbimage.o += -DCONFIG_SYS_U_BOOT_OFFS=$(CONFIG_SYS_U_BOOT_OFFS)
 126endif
 127
 128# MXSImage needs LibSSL
 129ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),)
 130HOSTLOADLIBES_mkimage += \
 131        $(shell pkg-config --libs libssl libcrypto 2> /dev/null || echo "-lssl -lcrypto")
 132endif
 133
 134HOSTLOADLIBES_dumpimage := $(HOSTLOADLIBES_mkimage)
 135HOSTLOADLIBES_fit_info := $(HOSTLOADLIBES_mkimage)
 136HOSTLOADLIBES_fit_check_sign := $(HOSTLOADLIBES_mkimage)
 137
 138hostprogs-$(CONFIG_EXYNOS5250) += mkexynosspl
 139hostprogs-$(CONFIG_EXYNOS5420) += mkexynosspl
 140HOSTCFLAGS_mkexynosspl.o := -pedantic
 141
 142ifdtool-objs := $(LIBFDT_OBJS) ifdtool.o
 143hostprogs-$(CONFIG_X86) += ifdtool
 144
 145hostprogs-$(CONFIG_MX23) += mxsboot
 146hostprogs-$(CONFIG_MX28) += mxsboot
 147HOSTCFLAGS_mxsboot.o := -pedantic
 148
 149hostprogs-$(CONFIG_SUNXI) += mksunxiboot
 150
 151hostprogs-$(CONFIG_NETCONSOLE) += ncb
 152hostprogs-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1
 153
 154ubsha1-objs := os_support.o ubsha1.o lib/sha1.o
 155
 156HOSTCFLAGS_ubsha1.o := -pedantic
 157
 158hostprogs-$(CONFIG_KIRKWOOD) += kwboot
 159hostprogs-$(CONFIG_ARMADA_XP) += kwboot
 160hostprogs-y += proftool
 161hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela
 162
 163hostprogs-y += fdtgrep
 164fdtgrep-objs += $(LIBFDT_OBJS) fdtgrep.o
 165
 166# We build some files with extra pedantic flags to try to minimize things
 167# that won't build on some weird host compiler -- though there are lots of
 168# exceptions for files that aren't complaint.
 169HOSTCFLAGS_crc32.o := -pedantic
 170HOSTCFLAGS_md5.o := -pedantic
 171HOSTCFLAGS_sha1.o := -pedantic
 172HOSTCFLAGS_sha256.o := -pedantic
 173
 174quiet_cmd_wrap = WRAP    $@
 175cmd_wrap = echo "\#include <../$(patsubst $(obj)/%,%,$@)>" >$@
 176
 177$(obj)/lib/%.c $(obj)/common/%.c:
 178        $(call cmd,wrap)
 179
 180clean-dirs := lib common
 181
 182always := $(hostprogs-y)
 183
 184# Generated LCD/video logo
 185LOGO_H = $(objtree)/include/bmp_logo.h
 186LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
 187LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
 188LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
 189LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
 190LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)
 191
 192# Generic logo
 193ifeq ($(LOGO_BMP),)
 194LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
 195
 196# Use board logo and fallback to vendor
 197ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
 198LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
 199else
 200ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
 201LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
 202endif
 203endif
 204
 205endif # !LOGO_BMP
 206
 207#
 208# Use native tools and options
 209# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
 210# Define _GNU_SOURCE to obtain the getline prototype from stdio.h
 211#
 212HOST_EXTRACFLAGS += -include $(srctree)/include/libfdt_env.h \
 213                $(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
 214                -I$(srctree)/lib/libfdt \
 215                -I$(srctree)/tools \
 216                -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \
 217                -DUSE_HOSTCC \
 218                -D__KERNEL_STRICT_NAMES \
 219                -D_GNU_SOURCE
 220
 221__build:        $(LOGO-y)
 222
 223$(LOGO_H):      $(obj)/bmp_logo $(LOGO_BMP)
 224        $(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@
 225
 226$(LOGO_DATA_H): $(obj)/bmp_logo $(LOGO_BMP)
 227        $(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@
 228
 229# Let clean descend into subdirs
 230subdir- += env
 231
 232ifneq ($(CROSS_BUILD_TOOLS),)
 233HOSTCC = $(CC)
 234
 235quiet_cmd_crosstools_strip = STRIP   $^
 236      cmd_crosstools_strip = $(STRIP) $^; touch $@
 237$(obj)/.strip: $(call objectify,$(filter $(always),$(hostprogs-y)))
 238        $(call cmd,crosstools_strip)
 239
 240always += .strip
 241endif
 242clean-files += .strip
 243