summaryrefslogtreecommitdiffstats
path: root/arch/sandbox/Makefile
blob: ba2614ea5f44242c3fe2a8e4b1c5cc2e205ffccf (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
78
79
80
81
82
83
84
KBUILD_DEFCONFIG := sandbox_defconfig

KBUILD_CPPFLAGS += -D__SANDBOX__ -fno-strict-aliasing -fvisibility=hidden


machine-y := sandbox

board-y := arch/sandbox/board
BOARD	:= $(board-y)/
lds-y   := $(BOARD)/barebox.lds


TEXT_BASE = $(CONFIG_TEXT_BASE)
KBUILD_CFLAGS += -Dmalloc=barebox_malloc -Dcalloc=barebox_calloc \
		-Dmalloc_stats=barebox_malloc_stats -Dmemalign=barebox_memalign \
		-Dfree=barebox_free -Drealloc=barebox_realloc \
		-Dread=barebox_read -Dwrite=barebox_write \
		-Dopen=barebox_open -Dclose=barebox_close \
		-Dlseek=barebox_lseek -Dperror=barebox_perror \
		-Derrno=barebox_errno -Dgetc=barebox_getc \
		-Dputc=barebox_putc -Dfgetc=barebox_fgetc \
		-Dfputc=barebox_fputc -Dfgets=barebox_fgets \
		-Dfputs=barebox_fputs -Dsetenv=barebox_setenv \
		-Dgetenv=barebox_getenv -Dprintf=barebox_printf \
		-Dglob=barebox_glob -Dglobfree=barebox_globfree \
		-Dioctl=barebox_ioctl -Dfstat=barebox_fstat \
		-Dftruncate=barebox_ftruncate -Dasprintf=barebox_asprintf \
		-Dopendir=barebox_opendir -Dreaddir=barebox_readdir \
		-Dclosedir=barebox_closedir -Dreadlink=barebox_readlink \
		-Doptarg=barebox_optarg -Doptind=barebox_optind \
		-Dsetjmp=barebox_setjmp -Dlongjmp=barebox_longjmp

machdirs := $(patsubst %,arch/sandbox/mach-%/,$(machine-y))

KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))

archprepare: maketools

PHONY += maketools

ifeq ($(CONFIG_SDL),y)
SDL_LIBS := $(shell pkg-config sdl2 --libs)
endif

ifeq ($(CONFIG_GPIO_LIBFTDI1),y)
FTDI1_LIBS := $(shell pkg-config libftdi1 --libs)
endif

ifeq ($(CONFIG_ASAN),y)
KBUILD_CPPFLAGS += -fsanitize=address
SANITIZER_LIBS += -fsanitize=address
endif

ifeq ($(CONFIG_UBSAN),y)
SANITIZER_LIBS += -fsanitize=undefined
endif

ifeq ($(CONFIG_SANDBOX_LINUX_I386),y)
KBUILD_CFLAGS += -m32
KBUILD_LDFLAGS += -m elf_i386
KBUILD_AFLAGS += -m32
BAREBOX_LDFLAGS += -m32
endif

BAREBOX_LDFLAGS += \
	-Wl,-T,$(BAREBOX_LDS) \
	-Wl,--whole-archive $(BAREBOX_OBJS) -Wl,--no-whole-archive \
	-lrt -pthread $(SDL_LIBS) $(FTDI1_LIBS) \
	$(SANITIZER_LIBS)

cmd_barebox__ = $(CC) -o $@ $(BAREBOX_LDFLAGS)

common-y += $(BOARD) arch/sandbox/os/ arch/sandbox/lib/

common-$(CONFIG_OFTREE) += arch/sandbox/dts/

CLEAN_FILES += $(BOARD)/barebox.lds

OBJCOPYFLAGS_stickypage.bin = -O binary

stickypage.bin: arch/sandbox/board/stickypage.o
	$(call if_changed,objcopy)

all: stickypage.bin