# Sim Unit Test Makefile CC := g++ CFLAGS := -Wall -Wextra -std=gnu++17 -I/usr/local/include -g3 -ggdb LDFLAGS := -L/usr/local/lib -lm -lsystemc -lstdc++ # Directories SRC_DIR := . BUILD_DIR := build BIN_DIR := bin # Source and object files SOURCES := $(wildcard $(SRC_DIR)/*.cpp) OBJECTS := $(SOURCES:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/%.o) TARGET := $(BIN_DIR)/sim_test # Default target all: $(TARGET) # Create directories $(BUILD_DIR) $(BIN_DIR): mkdir -p $@ # Link executable $(TARGET): $(OBJECTS) | $(BIN_DIR) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) # Compile objects $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BUILD_DIR) $(CC) $(CFLAGS) -c -o $@ $< # Run tests run: $(TARGET) ./$(TARGET) # Clean build artifacts clean: rm -rf $(BUILD_DIR) $(BIN_DIR) # Phony targets .PHONY: all run clean test_EDORam.exe: $(BUILD_DIR)/test_EDORam.o $(CC) $(CFLAGS) -o $(BIN_DIR)/test_EDORam $^ $(LDFLAGS)