

SDSFLAGS := -sds-pf ${PLATFORM} -D${OS}

APPSOURCES := main.cpp 

ifeq (${OS}, LINUX)
$(info Building for Linux)
else
ifeq (${OS}, STANDALONE)
$(info Building for standalone)
SDSFLAGS += -target-os standalone
else
$(error Please define OS to either STANDALONE or LINUX)
endif
endif

ifndef PLATFORM
$(error Please define PLATFORM defining path to platform)
endif

EXECUTABLE = main.elf

CC = sds++ ${SDSFLAGS}

CFLAGS = -Wall -O0 -c -sds-sys-config standalone -mno-boot-files
#-mno-bitstream  -mno-boot-files
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
LFLAGS = -O1 -sds-sys-config standalone -mno-boot-files
#-mno-bitstream  -mno-boot-files

OBJECTS := $(APPSOURCES:.cpp=.o)
DEPS := $(OBJECTS:.o=.d)

.PHONY: all

all: ${EXECUTABLE}

${EXECUTABLE}: ${OBJECTS}
	${CC} ${LFLAGS} ${OBJECTS} -o $@ 

-include ${DEPS}

%.o: %.cpp
	${CC} ${CFLAGS} $< -o $@

clean:
	${RM} ${EXECUTABLE} ${OBJECTS} ${DEPS}
	${RM} ${EXECUTABLE}.bit
	${RM} -rf _sds sd_card

