47 lines
1021 B
Makefile
47 lines
1021 B
Makefile
|
# Set the project name here
|
||
|
NAME = gauntlet
|
||
|
|
||
|
OUTPUTDIR = output
|
||
|
TOOLCHAIN_ARCH := v810
|
||
|
TOOLCHAIN_DIR := $(HOME)/llvm-v810
|
||
|
|
||
|
# The rest of the Makefile should not need changing ...
|
||
|
BINDIR = $(TOOLCHAIN_DIR)/bin
|
||
|
INCDIR = $(TOOLCHAIN_DIR)/include
|
||
|
LIBDIR = $(TOOLCHAIN_DIR)/lib
|
||
|
|
||
|
AS = $(BINDIR)/llvm-mc
|
||
|
CC = $(BINDIR)/clang
|
||
|
LD = $(BINDIR)/ld.lld
|
||
|
OBJCOPY = $(BINDIR)/llvm-objcopy
|
||
|
|
||
|
ASFLAGS += --triple v810-unknown-vb -mcpu=vb --filetype=obj -g
|
||
|
LDFLAGS += -target v810-unknown-vb -mcpu=vb --ld-path=$(LD) -L$(LIBDIR) -Tvb.ld -nolibc -flto
|
||
|
|
||
|
SFILES := $(foreach dir,./,$(notdir $(wildcard $(dir)/*.s)))
|
||
|
|
||
|
SOBJS := $(OUTPUTDIR)/$(SFILES:.s=.o)
|
||
|
|
||
|
OFILES := $(SOBJS)
|
||
|
ELFFILES := $(OUTPUTDIR)/$(NAME).elf
|
||
|
VBFILES := $(OUTPUTDIR)/$(NAME).vb
|
||
|
|
||
|
.PHONY: all clean distclean
|
||
|
|
||
|
all: $(VBFILES)
|
||
|
|
||
|
$(VBFILES): $(ELFFILES)
|
||
|
@$(OBJCOPY) -S -O binary $< $@
|
||
|
|
||
|
$(ELFFILES): $(OFILES)
|
||
|
@$(CC) $(OFILES) $(LDFLAGS) -o $@
|
||
|
|
||
|
$(SOBJS): $(SFILES)
|
||
|
@$(AS) $(ASFLAGS) -o $@ $<
|
||
|
|
||
|
clean:
|
||
|
# @rm -f $(OFILES) $(VBFILES) $(ELFFILES)
|
||
|
@rm -f output/*
|
||
|
|
||
|
distclean: clean
|