44 lines
897 B
Makefile
44 lines
897 B
Makefile
# 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)
|