30 lines
958 B
Makefile
30 lines
958 B
Makefile
# Use clang / llvm toolchain
|
|
CC = clang
|
|
CXX = clang++
|
|
# linker je vlastně ld.lld
|
|
LD = clang++
|
|
# Zde kvůli jednoduchosti použijeme arm-none-eabi-g++ jako linker.
|
|
# Clang nemá některé ABI funkce, toolchain je v zásadě kompatibilní,
|
|
# takže než to hledat někde po webu, raději použijeme rovnou libc.
|
|
# Bez složité matematiky jde použít ld.lld nebo přidat libaeabi-cortexm0.a
|
|
# LD = arm-none-eabi-g++
|
|
SIZE = llvm-size
|
|
DUMP = llvm-objdump
|
|
COPY = llvm-objcopy
|
|
|
|
CCPU = -mcpu=cortex-m0
|
|
MCPU = -mthumb $(CCPU)
|
|
TRIP = thumbv6-none-eabi
|
|
CFLAGS+= -Oz -flto
|
|
#CFLAGS+= -Wno-deprecated-volatile
|
|
CFLAGS+= --target=$(TRIP) $(MCPU)
|
|
LFLAGS+= --target=$(TRIP)
|
|
#LFLAGS+= $(MCPU)
|
|
#LFLAGS+= -nostartfiles
|
|
LFLAGS+= -nostdlib -lto-O3
|
|
LFLAGS+= -Wl,--Map=$(@:%.elf=%.map),--gc-sections
|
|
LDLIBS+= -L./stm32f051 -T script.ld
|
|
LDLIBS+= -L/usr/lib/gcc/arm-none-eabi/9.2.1/thumb/v6-m/nofp -lgcc
|
|
DFLAGS+= --triple=$(TRIP) $(CCPU)
|
|
OBJS += startup.o system.o gpio.o
|
|
|