-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuild.mk
More file actions
40 lines (30 loc) · 817 Bytes
/
build.mk
File metadata and controls
40 lines (30 loc) · 817 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PREFIX ?= riscv-none-elf
OBJCOPY = $(PREFIX)-objcopy
CC = $(PREFIX)-gcc
SIZE = $(PREFIX)-size
READELF = $(PREFIX)-readelf
OBJDUMP = $(PREFIX)-objdump
NM = $(PREFIX)-nm
# -march=rv32imac_zicsr_zifencei_zba_zbb_zbkb_zbs_zcmp
CFLAGS = -Wall -Os -ggdb3 -mabi=ilp32 -march=rv32i_zicsr -ffunction-sections
LDFLAGS = --specs=nano.specs -Wl,--gc-sections -Wl,-Map,$(TARGET).map -Wl,-T../ld/spram.ld
# -nostdlib -ffreestanding
FLAGS = $(CFLAGS) $(LDFLAGS)
all: $(TARGET).elf
$(TARGET).elf: $(SRC)
$(CC) $(FLAGS) -o $@ $^
$(TARGET).bin: $(TARGET).elf
$(OBJCOPY) -O binary $^ $@
clean:
$(RM) *.elf
$(RM) *.bin
$(RM) *.map
bin: $(TARGET).bin
size: $(TARGET).elf
$(SIZE) --format=SysV $^
readelf: $(TARGET).elf
$(READELF) $^ -a
objdump: $(TARGET).elf
$(OBJDUMP) -D > $(TARGET).dmp $^
nm: $(TARGET).elf
$(NM) $^