summaryrefslogtreecommitdiff
path: root/tools/binman/test/Makefile
blob: 6e6cc6de49180f715b4d9e6fc7d9f360d807db68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#
# Builds test programs. This is launched from elf_test.BuildElfTestFiles()
#
# Copyright (C) 2017 Google, Inc
# Written by Simon Glass <sjg@chromium.org>
#
# SPDX-License-Identifier:      GPL-2.0+
#

HOSTARCH := $(shell uname -m | sed -e s/i.86/x86/ )
ifeq ($(findstring $(HOSTARCH),"x86" "x86_64"),)
ifeq ($(findstring $(MAKECMDGOALS),"help" "clean"),)
ifndef CROSS_COMPILE
$(error Binman tests need to compile to x86, but the CPU arch of your \
	machine is $(HOSTARCH). Set CROSS_COMPILE to a suitable cross compiler)
endif
endif
endif

CC		= $(CROSS_COMPILE)gcc
OBJCOPY		= $(CROSS_COMPILE)objcopy

VPATH := $(SRC)
CFLAGS := -march=i386 -m32 -nostdlib -I $(SRC)../../../include \
	-Wl,--no-dynamic-linker

LDS_UCODE := -T $(SRC)u_boot_ucode_ptr.lds
LDS_BINMAN := -T $(SRC)u_boot_binman_syms.lds
LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds

TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data \
	u_boot_binman_syms u_boot_binman_syms.bin u_boot_binman_syms_bad \
	u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data

all: $(TARGETS)

u_boot_no_ucode_ptr: CFLAGS += $(LDS_UCODE)
u_boot_no_ucode_ptr: u_boot_no_ucode_ptr.c

u_boot_ucode_ptr: CFLAGS += $(LDS_UCODE)
u_boot_ucode_ptr: u_boot_ucode_ptr.c

bss_data: CFLAGS += $(SRC)bss_data.lds
bss_data: bss_data.c

embed_data: CFLAGS += $(SRC)embed_data.lds
embed_data: embed_data.c

u_boot_binman_syms.bin: u_boot_binman_syms
	$(OBJCOPY) -O binary $< -R .note.gnu.build-id $@

u_boot_binman_syms: CFLAGS += $(LDS_BINMAN)
u_boot_binman_syms: u_boot_binman_syms.c

u_boot_binman_syms_x86: CFLAGS += $(LDS_BINMAN_X86)
u_boot_binman_syms_x86: u_boot_binman_syms_x86.c

u_boot_binman_syms_bad: CFLAGS += $(LDS_BINMAN_BAD)
u_boot_binman_syms_bad: u_boot_binman_syms_bad.c

u_boot_binman_syms_size: CFLAGS += $(LDS_BINMAN)
u_boot_binman_syms_size: u_boot_binman_syms_size.c

clean:
	rm -f $(TARGETS)

help:
	@echo "Makefile for binman test programs"
	@echo
	@echo "Intended for use on x86 hosts"
	@echo
	@echo "Targets:"
	@echo
	@echo -e "\thelp	- Print help (this is it!)"
	@echo -e "\tall	- Builds test programs (default targget)"
	@echo -e "\tclean	- Delete output files"