Blob


1 AS = clang
2 CXX = clang++
3 LD = ld.lld
4 OBJCOPY = llvm-objcopy
6 ARCH = aarch64
7 TARGET = ${ARCH}-none-elf
8 -include config.mk
9 #BOARD ?= virt
10 BOARD ?= pinephone
12 ASFLAGS = -target ${TARGET}
13 ASFILES += boot.S
15 CXXFLAGS += -target ${TARGET}
16 CXXFLAGS +=-Wall -Wextra -Werror
17 CXXFLAGS +=-nostdlib -fno-exceptions -std=c++11
18 CXXFLAGS +=-ffreestanding -mgeneral-regs-only
19 CXXFLAGS +=-Iinclude
20 CXXFILES += kernel.cc uart_${BOARD}.cc
22 OBJS = ${ASFILES:.S=.o} ${CXXFILES:.cc=.o}
25 .PHONY: all clean qemu gdb-remote tools
27 all: squat-${BOARD}.img
29 squat-${BOARD}.img: squat-${BOARD}.elf
30 ${OBJCOPY} squat-${BOARD}.elf -O binary squat-${BOARD}.img
32 squat-${BOARD}.elf: linker.ld ${OBJS}
33 ${LD} -T linker.ld -o squat-${BOARD}.elf ${OBJS}
35 .S.o:
36 ${AS} ${ASFLAGS} -c $< -o $@
38 clean:
39 rm -rf *.o squat-*.elf squat-*.img
40 ${MAKE} -C tools/img_eGON.BT0 clean
42 tools:
43 ${MAKE} -C tools/img_eGON.BT0 img_eGON.BT0