Files @ 81af28f44609
Branch filter:

Location: therm/Makefile

Ethan Zonca
Cleanup and includes fixes

TARGET:=therm
TOOLCHAIN_PATH:=/usr/bin
TOOLCHAIN_PREFIX:=arm-none-eabi
OPTLVL:=3 # Optimization level, can be [0, 1, 2, 3, s].

#PROJECT_NAME:=$(notdir $(lastword $(CURDIR)))
TOP:=$(shell readlink -f "../..")
STMLIB:=libraries
OLEDDRV:=oleddrv
USBDRV:=USB
STD_PERIPH:=$(STMLIB)/STM32F0xx_StdPeriph_Driver
STARTUP:=$(STMLIB)/CMSIS/Device/ST/STM32F0xx/Source/Templates/gcc_ride7
LINKER_SCRIPT:=$(CURDIR)/stm32-flash.ld
#LINKER_SCRIPT:=$(CURDIR)/../stm32_flash.ld

INCLUDE=-I$(CURDIR)
INCLUDE+=-I$(STMLIB)/CMSIS/Include
INCLUDE+=-I$(STMLIB)/CMSIS/Device/ST/STM32F0xx/Include
INCLUDE+=-I$(STD_PERIPH)/inc
INCLUDE+=-I$(STMLIB)/$(OLEDDRV)
INCLUDE+=-I$(STMLIB)/$(USBDRV)

# vpath is used so object files are written to the current directory instead
# of the same directory as their source files
vpath %.c $(DISCOVERY) $(STD_PERIPH)/src \
          $(STMLIB)/USB \
          $(STMLIB)/STM32_USB-FS_Device_Library/Class/hid/src \
          $(STMLIB)/STM32_USB-FS_Device_Library/Core/src
vpath %.s $(STARTUP)

ASRC=startup_stm32f042.s

# Project Source Files
SRC=main.c
SRC+=stm32l1xx_it.c
SRC+=system_stm32l1xx.c
SRC+=stm32l100c_discovery.c
SRC+=ssd1306.c
SRC+=eeprom_min.c
SRC+=gpio.c
SRC+=spi.c
SRC+=stringhelpers.c

# Discovery Source Files
#SRC+=stm32f4_discovery_lis302dl.c
#SRC+=stm32f4_discovery.c
#SRC+=stm32f4_discovery_audio_codec.c

# Standard Peripheral Source Files
SRC+=stm32f0xx_syscfg.c
SRC+=misc.c
SRC+=stm32f0xx_adc.c
SRC+=stm32f0xx_dac.c
SRC+=stm32f0xx_dma.c
SRC+=stm32f0xx_exti.c
SRC+=stm32f0xx_flash.c
SRC+=stm32f0xx_gpio.c
SRC+=stm32f0xx_i2c.c
SRC+=stm32f0xx_rcc.c
SRC+=stm32f0xx_spi.c
SRC+=stm32f0xx_tim.c

# USB Source Files
SRC+=usb_core.c
SRC+=usb_init.c
SRC+=usb_int.c
SRC+=usb_mem.c
SRC+=usb_regs.c
SRC+=usb_sil.c
SRC+=hw_config.c
SRC+=usb_desc.c
SRC+=usb_endp.c
SRC+=usb_istr.c
SRC+=usb_prop.c
SRC+=usb_pwr.c

CDEFS=-DUSE_STDPERIPH_DRIVER
CDEFS+=-DSTM32F0XX
CDEFS+=-DMANGUSTA_DISCOVERY
#CDEFS+=-DUSE_USB_OTG_FS

# EMZ FIXME
CDEFS+=-DHSE_VALUE=8000000


#EMZ Optimized: 
MCUFLAGS=-mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -mfloat-abi=soft

# Default:  MCUFLAGS=-mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections

#MCUFLAGS=-mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpa -mfloat-abi=hard -mthumb-interwork
#MCUFLAGS=-mcpu=cortex-m4 -mfpu=vfpv4-sp-d16 -mfloat-abi=hard
COMMONFLAGS=-O$(OPTLVL) -g -Wall
CFLAGS=$(COMMONFLAGS) $(MCUFLAGS) $(INCLUDE) $(CDEFS)

LDLIBS=
LDFLAGS=$(COMMONFLAGS) -fno-exceptions -ffunction-sections -fdata-sections \
        -nostartfiles -Wl,--gc-sections,-T$(LINKER_SCRIPT)

#####
#####

OBJ = $(SRC:%.c=%.o) $(ASRC:%.s=%.o)

CC=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
LD=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gcc
OBJCOPY=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-objcopy
AS=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-as
AR=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-ar
GDB=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-gdb
SIZE=$(TOOLCHAIN_PATH)/$(TOOLCHAIN_PREFIX)-size


all: $(OBJ)
	$(CC) -o $(TARGET).elf $(LDFLAGS) $(OBJ)	$(LDLIBS)
	$(OBJCOPY) -O ihex   $(TARGET).elf $(TARGET).hex
	$(OBJCOPY) -O binary $(TARGET).elf $(TARGET).bin

.PHONY: clean

clean:
	rm -f $(OBJ)
	rm -f $(TARGET).elf
	rm -f $(TARGET).hex
	rm -f $(TARGET).bin

# Display size
size: $(TARGET).elf
	@echo Invoking: ARM GNU Print Size
	$(SIZE) --format=berkeley $<
	@echo