38 lines
1.3 KiB
Makefile
38 lines
1.3 KiB
Makefile
RISCV_TOOL_PATH ?= $(wildcard ~/dev/riscv-gnu-toolchain/drops)
|
|
VX_RT_PATH ?= $(wildcard ../../runtime)
|
|
|
|
CC = $(RISCV_TOOL_PATH)/bin/riscv32-unknown-elf-gcc
|
|
CXX = $(RISCV_TOOL_PATH)/bin/riscv32-unknown-elf-g++
|
|
DMP = $(RISCV_TOOL_PATH)/bin/riscv32-unknown-elf-objdump
|
|
HEX = $(RISCV_TOOL_PATH)/bin/riscv32-unknown-elf-objcopy
|
|
GDB = $(RISCV_TOOL_PATH)/bin/riscv32-unknown-elf-gdb
|
|
|
|
NEWLIB = $(VX_RT_PATH)/newlib/newlib.c
|
|
VX_STR = $(VX_RT_PATH)/startup/vx_start.s
|
|
VX_INT = $(VX_RT_PATH)/intrinsics/vx_intrinsics.s
|
|
VX_IO = $(VX_RT_PATH)/io/vx_io.s $(VX_RT_PATH)/io/vx_io.c
|
|
VX_API = $(VX_RT_PATH)/vx_api/vx_api.c
|
|
VX_FIO = $(VX_RT_PATH)/fileio/fileio.s
|
|
|
|
CFLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,$(VX_RT_PATH)/mains/vortex_link.ld -ffreestanding -nostdlib
|
|
|
|
LIBS = $(RISCV_TOOL_PATH)/riscv32-unknown-elf/lib/libc.a $(RISCV_TOOL_PATH)/riscv32-unknown-elf/lib/libstdc++.a -static-libgcc -lgcc
|
|
|
|
PROJECT = demo
|
|
|
|
SRCS = main.c
|
|
|
|
all: $(PROJECT).dump $(PROJECT).hex
|
|
|
|
$(PROJECT).dump: $(PROJECT).elf
|
|
$(DMP) -D $(PROJECT).elf > $(PROJECT).dump
|
|
|
|
$(PROJECT).hex: $(PROJECT).elf
|
|
$(HEX) -O ihex $(PROJECT).elf $(PROJECT).hex
|
|
|
|
$(PROJECT).elf: $(SRCS)
|
|
$(CC) $(CFLAGS) $(VX_STR) $(VX_FIO) $(NEWLIB) $(VX_INT) $(VX_IO) $(VX_API) $(SRCS) $(LIBS) -I$(VX_RT_PATH) -o $(PROJECT).elf
|
|
|
|
clean:
|
|
rm -rf *.o *.elf *.dump *.hex *.qemu *.log *.debug
|