# See LICENSE for license details. SHARED_DIR = $(SWDIR)/shared ASM_SRCS += $(SHARED_DIR)/entry.S C_SRCS += $(SHARED_DIR)/init.c C_SRCS += $(SHARED_DIR)/syscall.c C_SRCS += $(SHARED_DIR)/drivers_sifive/plic.c PLATFORM ?= freedom-e300 LINKER_SCRIPT := $(SWDIR)/../riscv-tests/debug/targets/$(PLATFORM)/link.lds HEADERS += $(SHARED_DIR)/*.h C_SRCS += $(TARGET).c INCLUDES += -I . INCLUDES += -I $(SHARED_DIR) INCLUDES += -I $(SWDIR)/../riscv-tests/env INCLUDES += -I$(SHARED_DIR)/drivers_sifive/ CC = $(SWDIR)/../toolchain/bin/riscv32-unknown-elf-gcc CFLAGS += $(CDEFINES) LDFLAGS := -T $(LINKER_SCRIPT) -nostdlib -nostartfiles -lc -lgcc LDFLAGS += -L$(SHARED_DIR) LDFLAGS += -L$(SHARED_DIR)/drivers LDFLAGS += -L$(SHARED_DIR)/hal ASM_OBJS := $(patsubst %.S,%.o,$(ASM_SRCS)) C_OBJS := $(patsubst %.c,%.o,$(C_SRCS)) $(TARGET): $(ASM_OBJS) $(C_OBJS) $(LINKER_SCRIPT) $(CC) $(CFLAGS) $(INCLUDES) $(C_OBJS) $(ASM_OBJS) -o $@ $(LDFLAGS) $(ASM_OBJS): %.o: %.S $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< $(C_OBJS): %.o: %.c $(HEADERS) $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< all: default clean: rm -f $(TARGET) *.o $(SHARED_DIR)/*.o $(SHARED_DIR)/drivers/*/*.o $(SHARED_DIR)/drivers_sifive/*.o .PHONY: clean all default