uboot/tools/binman/test/Makefile
<<
>>
Prefs
   1#
   2# Builds test programs. This is launched from elf_test.BuildElfTestFiles()
   3#
   4# Copyright (C) 2017 Google, Inc
   5# Written by Simon Glass <sjg@chromium.org>
   6#
   7# SPDX-License-Identifier:      GPL-2.0+
   8#
   9
  10HOSTARCH := $(shell uname -m | sed -e s/i.86/x86/ )
  11ifeq ($(findstring $(HOSTARCH),"x86" "x86_64"),)
  12ifeq ($(findstring $(MAKECMDGOALS),"help" "clean"),)
  13ifndef CROSS_COMPILE
  14$(error Binman tests need to compile to x86, but the CPU arch of your \
  15        machine is $(HOSTARCH). Set CROSS_COMPILE to a suitable cross compiler)
  16endif
  17endif
  18endif
  19
  20CC              = $(CROSS_COMPILE)gcc
  21OBJCOPY         = $(CROSS_COMPILE)objcopy
  22
  23VPATH := $(SRC)
  24CFLAGS := -march=i386 -m32 -nostdlib -I $(SRC)../../../include \
  25        -Wl,--no-dynamic-linker
  26
  27LDS_UCODE := -T $(SRC)u_boot_ucode_ptr.lds
  28LDS_BINMAN := -T $(SRC)u_boot_binman_syms.lds
  29LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
  30LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
  31LDS_BINMAN_EMBED := -T $(SRC)u_boot_binman_embed.lds
  32
  33TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data \
  34        u_boot_binman_syms u_boot_binman_syms.bin u_boot_binman_syms_bad \
  35        u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data \
  36        u_boot_binman_embed u_boot_binman_embed_sm
  37
  38all: $(TARGETS)
  39
  40u_boot_no_ucode_ptr: CFLAGS += $(LDS_UCODE)
  41u_boot_no_ucode_ptr: u_boot_no_ucode_ptr.c
  42
  43u_boot_ucode_ptr: CFLAGS += $(LDS_UCODE)
  44u_boot_ucode_ptr: u_boot_ucode_ptr.c
  45
  46bss_data: CFLAGS += $(SRC)bss_data.lds
  47bss_data: bss_data.c
  48
  49embed_data: CFLAGS += $(SRC)embed_data.lds
  50embed_data: embed_data.c
  51
  52u_boot_binman_syms.bin: u_boot_binman_syms
  53        $(OBJCOPY) -O binary $< -R .note.gnu.build-id $@
  54
  55u_boot_binman_syms: CFLAGS += $(LDS_BINMAN)
  56u_boot_binman_syms: u_boot_binman_syms.c
  57
  58u_boot_binman_syms_x86: CFLAGS += $(LDS_BINMAN_X86)
  59u_boot_binman_syms_x86: u_boot_binman_syms_x86.c
  60
  61u_boot_binman_syms_bad: CFLAGS += $(LDS_BINMAN_BAD)
  62u_boot_binman_syms_bad: u_boot_binman_syms_bad.c
  63
  64u_boot_binman_syms_size: CFLAGS += $(LDS_BINMAN)
  65u_boot_binman_syms_size: u_boot_binman_syms_size.c
  66
  67u_boot_binman_embed: CFLAGS += $(LDS_BINMAN_EMBED)
  68u_boot_binman_embed: u_boot_binman_embed.c
  69
  70u_boot_binman_embed_sm: CFLAGS += $(LDS_BINMAN_EMBED)
  71u_boot_binman_embed_sm: u_boot_binman_embed_sm.c
  72
  73clean:
  74        rm -f $(TARGETS)
  75
  76help:
  77        @echo "Makefile for binman test programs"
  78        @echo
  79        @echo "Intended for use on x86 hosts"
  80        @echo
  81        @echo "Targets:"
  82        @echo
  83        @echo -e "\thelp        - Print help (this is it!)"
  84        @echo -e "\tall - Builds test programs (default targget)"
  85        @echo -e "\tclean       - Delete output files"
  86