NAME=vriscv CC=gcc CFLAGS=-O3 -Wall -I src LDFLAGS=-lpthread BUILD_DIR=build C_FILES := $(shell find src/ -name '*.c') all: $(BUILD_DIR)/$(NAME) # Top-level targets $(BUILD_DIR)/$(NAME): $(C_FILES) | $(BUILD_DIR) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) # Build directory $(BUILD_DIR): mkdir -p $(BUILD_DIR) # Phony targets .PHONY: clean clean: rm -rf $(BUILD_DIR) .PHONY: run .SILENT: run run: all ./$(BUILD_DIR)/$(NAME) .PHONY: tests .SILENT: tests tests: all make -C tests