CC      ?= $(CROSS_COMPILE)gcc
LD      ?= $(CROSS_COMPILE)ld
AR      ?= $(CROSS_COMPILE)ar
NM      ?= $(CROSS_COMPILE)nm
OBJCOPY ?= $(CROSS_COMPILE)objcopy
OBJDUMP ?= $(CROSS_COMPILE)objdump
READELF ?= $(CROSS_COMPILE)readelf

ifneq ($O,)
out-dir := $O
else
out-dir := .
endif

OBJS = main.o
OOBJS = $(foreach obj, $(OBJS), $(out-dir)/$(obj))

CFLAGS += -Wall -I../ta/include -I./include
CFLAGS += -I$(TEEC_EXPORT)/include
LDADD += -lteec -L$(TEEC_EXPORT)/lib $(LDFLAGS)

BINARY = $(out-dir)/optee_example_random

.PHONY: all
all: $(BINARY)

$(BINARY): $(OOBJS)
	$(CC) -o $@ $< $(LDADD)

.PHONY: clean
clean:
	rm -f $(OOBJS) $(BINARY)

$(out-dir)/%.o: %.c
	mkdir -p $(dir $@);
	$(CC) $(CFLAGS) -c $< -o $@
