#########################################
# Vault Keeper TA library
# Revision
# - V1.0 : First draft (12/27/2019)
#########################################
VERSION_LIB=1.0

### Do not edit here
###############################################################
OUTPUT_DIR = $(COMP_PATH_SECAPP)/vkmanager/lib
OUTPUT_LIB = vkmanager_qsee_$(MODEL)_v$(VERSION_LIB)_x$(ARCH).a
###############################################################

$(info Toolchain path : $(LLVMROOT))
CC = $(LLVMROOT)/bin/clang
AR = $(LLVMROOT)/bin/llvm-ar

CFLAGS += \
-DVK_SWD_QSEE \
-D__TIME__=\"ss:mm:hh\" -D__DATE__=\"mmmddyyyy\" \
-Wno-builtin-macro-redefined \
-mcpu=cortex-a53 \
-nostdinc \
-mno-unaligned-access \
-Wno-tautological-constant-out-of-range-compare \
-Otime -Os \
-Wno-incompatible-library-redeclaration \

ifeq ($(ARCH), 64)
CFLAGS += \
-target aarch64-linux-gnu \
$(INCLUDES)
endif

ifeq ($(ARCH), 32)
CFLAGS += \
-m32 -fPIC \
$(INCLUDES)
endif

LDFLAGS = -init main -march aarch64 -z now -static -no-undefined -Bsymbolic -Bdynamic -gc-sections -std=c99

LIB_STATIC = $(OUTPUT_LIB)

OBJECTS = $(SOURCES:.c=.o)

all: $(LIB_STATIC)

INCLUDES = \
-I$(LLVMROOT)/aarch64-none-elf/libc/include/ \
-I$(LLVMROOT)/lib/clang/$(LLVM_VERSION)/include/ \
-I../inc/ \
-I../inc/services/ \
-I../vkmanager/ \
-I../vkmanager/lib/ \
-I../../../../app/include/

SOURCES = \
VaultKeeperAPI.c

$(LIB_STATIC): $(OBJECTS)
	$(AR) r $@ $(OBJECTS)

%.o:%.c
	$(COMPILE.c) $< -o $@

clean:
	rm -f *.o *.a
