|
|
|
|
@@ -1,35 +1,35 @@
|
|
|
|
|
RISCV_TOOLCHAIN_PATH ?= ~/dev/riscv-gnu-toolchain/drops
|
|
|
|
|
VORTEX_RT_PATH ?= $(wildcard ../..)
|
|
|
|
|
|
|
|
|
|
RISCV_TOOLCHAIN_PATH ?= $(wildcard ../../../../riscv-gnu-toolchain/drops)
|
|
|
|
|
CC = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc
|
|
|
|
|
AR = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-gcc-ar
|
|
|
|
|
DP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objdump
|
|
|
|
|
CP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objcopy
|
|
|
|
|
|
|
|
|
|
COMP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-g++
|
|
|
|
|
# CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib
|
|
|
|
|
# CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostartfiles
|
|
|
|
|
CC_FLAGS = -ffreestanding -O0 -Wl,--gc-sections -nostartfiles -nostdlib -nostartfiles -nodefaultlibs -Wl,-Bstatic,-T,../../startup/vx_link.ld -march=rv32im -mabi=ilp32
|
|
|
|
|
CFLAGS += -march=rv32im -mabi=ilp32 -O3 -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link.ld
|
|
|
|
|
CFLAGS += -nostartfiles -ffreestanding -fno-exceptions -Wl,--gc-sections
|
|
|
|
|
CFLAGS += -I$(VORTEX_RT_PATH)/include -I./include
|
|
|
|
|
|
|
|
|
|
DMP = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objdump
|
|
|
|
|
CPY = $(RISCV_TOOLCHAIN_PATH)/bin/riscv32-unknown-elf-objcopy
|
|
|
|
|
LDFLAGS += $(VORTEX_RT_PATH)/libvortexrt.a
|
|
|
|
|
LDFLAGS += ./libs/libOpenCL.a
|
|
|
|
|
|
|
|
|
|
# VX_STR = ../../startup/vx_start.S
|
|
|
|
|
PROJECT = vx_pocl_main
|
|
|
|
|
|
|
|
|
|
SRCS = vx_pocl_main.c
|
|
|
|
|
|
|
|
|
|
all: $(PROJECT).elf $(PROJECT).hex $(PROJECT).dump
|
|
|
|
|
|
|
|
|
|
NEWLIB = ../../newlib/newlib.c
|
|
|
|
|
VX_STR = ../../startup/vx_start.S
|
|
|
|
|
VX_INT = ../../intrinsics/vx_intrinsics.S
|
|
|
|
|
VX_IO = ../../io/vx_io.S ../../io/vx_io.c
|
|
|
|
|
VX_API = ../../vx_api/vx_api.c
|
|
|
|
|
VX_FIO = ../../fileio/fileio.S
|
|
|
|
|
LIBS = -Wl,--whole-archive ./libs/libvecadd.a -Wl,--no-whole-archive ./libs/libOpenCL.a ../../../../riscv-gnu-toolchain/drops/riscv32-unknown-elf/lib/libc.a ../../../../riscv-gnu-toolchain/drops/riscv32-unknown-elf/lib/libstdc++.a -static-libgcc -lgcc
|
|
|
|
|
$(PROJECT).dump: $(PROJECT).elf
|
|
|
|
|
$(DP) -D $(PROJECT).elf > $(PROJECT).dump
|
|
|
|
|
|
|
|
|
|
VX_MAIN = vx_pocl_main
|
|
|
|
|
$(PROJECT).hex: $(PROJECT).elf
|
|
|
|
|
$(CP) -O ihex $(PROJECT).elf $(PROJECT).hex
|
|
|
|
|
|
|
|
|
|
all: HEX DUMP ELF
|
|
|
|
|
$(PROJECT).elf: $(SRCS)
|
|
|
|
|
$(CC) $(CFLAGS) $(SRCS) $(LDFLAGS) -o $(PROJECT).elf
|
|
|
|
|
|
|
|
|
|
DUMP: ELF
|
|
|
|
|
$(DMP) -D $(VX_MAIN).elf > $(VX_MAIN).dump
|
|
|
|
|
.depend: $(SRCS)
|
|
|
|
|
$(CC) $(CFLAGS) -MM $^ > .depend;
|
|
|
|
|
|
|
|
|
|
HEX: ELF
|
|
|
|
|
$(CPY) -O ihex $(VX_MAIN).elf $(VX_MAIN).hex
|
|
|
|
|
|
|
|
|
|
ELF:
|
|
|
|
|
$(COMP) $(CC_FLAGS) $(VX_STR) $(VX_FIO) $(NEWLIB) $(VX_INT) $(VX_IO) $(VX_API) $(VX_MAIN).c $(LIBS) -Iinclude -o $(VX_MAIN).elf
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf *.elf *.hex *.dump .depend
|
|
|
|
|
|