RISC-V/V003/stm32f051/clang.mk
2024-05-07 11:46:49 +02:00

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