CM_INC = /opt/libopencm3/include
CORE_FLAGS = -mthumb -mcpu=cortex-m0
CFLAGS := -Os -Wall -g $(CORE_FLAGS) -I $(CM_INC) -DSTM32F0

TOOL_PPREFIX = /usr/bin/arm-none-eabi-
CC = $(TOOL_PPREFIX)gcc
CXX = $(TOOL_PPREFIX)g++

LD_SCRIPT = libopencm3_stm32f0.ld

LD_FLAGS = $(CORE_FLAGS) -T$(LD_SCRIPT) -Wl,--gc-sections -nostartfiles

LIBS = -L /opt/libopencm3/lib/ -lopencm3_stm32f0

RTOS_ROOT=/opt/FreeRTOSV8.2.3

RTOS_SOURCE_DIR=$(RTOS_ROOT)/FreeRTOS/Source
DEMO_SOURCE_DIR=$(RTOS_ROOT)/FreeRTOS/Demo/Common/Minimal

VPATH=${RTOS_SOURCE_DIR}:${RTOS_SOURCE_DIR}/portable/MemMang:${RTOS_SOURCE_DIR}/portable/GCC/ARM_CM0:${DEMO_SOURCE_DIR}

CFLAGS+= -I . -I ${RTOS_SOURCE_DIR}/include \
         -I ${RTOS_SOURCE_DIR}/portable/GCC/ARM_CM0

OBJS= main.o blinky.o list.o queue.o tasks.o port.o heap_1.o timers.o

rtos_demo.elf: ${INIT_OBJS} ${OBJS}
	$(CXX) $(LD_FLAGS) ${INIT_OBJS} ${OBJS} ${LIBS} $(LIBS) -o $@

%.o: %.c
	$(CC) $(CFLAGS) -c $<
