From 51559dfe84d3c19fce5103a06c0d85174d03763f Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Tue, 13 Jan 2026 11:54:00 -0500 Subject: [PATCH] clean up Makefile --- Makefile | 58 ++++++++++++++++++-------------------------------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index e622fd6..a46e475 100644 --- a/Makefile +++ b/Makefile @@ -12,20 +12,14 @@ TEST_DIR = tests TEST_TARGET = orbit_test # Source files -CPP_SOURCES = $(SRC_DIR)/main.cpp \ - $(SRC_DIR)/physics.cpp \ - $(SRC_DIR)/simulation.cpp \ - $(SRC_DIR)/config_loader.cpp \ - $(SRC_DIR)/renderer.cpp - -C_SOURCES = $(SRC_DIR)/../ext/tomlc17/src/tomlc17.c - -SOURCES = $(CPP_SOURCES) $(C_SOURCES) +CPP_SOURCES := $(wildcard $(SRC_DIR)/*.cpp) +C_SOURCES = ext/tomlc17/src/tomlc17.c +TEST_SOURCES := $(wildcard $(TEST_DIR)/*.cpp) # Object files CPP_OBJECTS = $(CPP_SOURCES:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/%.o) -C_OBJECTS = $(C_SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o) -OBJECTS = $(CPP_OBJECTS) $(C_OBJECTS) +C_OBJECTS = $(BUILD_DIR)/tomlc17.o +TEST_OBJECTS := $(patsubst $(TEST_DIR)/%.cpp, $(BUILD_DIR)/%.o, $(TEST_SOURCES)) # Default target all: raylib $(BUILD_DIR) $(TARGET) @@ -42,20 +36,20 @@ $(BUILD_DIR): mkdir -p $(BUILD_DIR) # Link the executable -$(TARGET): $(OBJECTS) raylib - $(CXX) $(OBJECTS) -o $(TARGET) $(LDFLAGS) +$(TARGET): $(C_OBJECTS) $(CPP_OBJECTS) raylib + $(CXX) $(C_OBJECTS) $(CPP_OBJECTS) -o $(TARGET) $(LDFLAGS) # Compile C++ source files -$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp +$(CPP_OBJECTS): $(BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ # Compile C source files -$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c +$(C_OBJECTS): $(BUILD_DIR)/%.o : $(C_SOURCES) $(CC) -Wall -Wextra -g -ggdb3 -std=c99 -I./src -I./ext/tomlc17/src -c $< -o $@ # Clean build files clean: - rm -rf $(BUILD_DIR) $(TARGET) + rm -rf $(BUILD_DIR) $(TARGET) $(TEST_TARGET) # Clean everything including raylib clean-all: clean @@ -68,32 +62,16 @@ rebuild: clean all run: $(TARGET) ./$(TARGET) +$(TEST_OBJECTS): $(BUILD_DIR)/%.o : $(TEST_DIR)/%.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ # Build automated test suite -test-build: - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_main.cpp -o build/test_main.o - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_integration.cpp -o build/test_integration.o - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_energy.cpp -o build/test_energy.o - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_orbital_period.cpp -o build/test_orbital_period.o - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_comet_orbit.cpp -o build/test_comet_orbit.o - $(CXX) $(CXXFLAGS) -I/usr/include/catch2 \ - -c $(TEST_DIR)/test_moon_orbits.cpp -o build/test_moon_orbits.o - $(CXX) $(CXXFLAGS) \ - -c $(SRC_DIR)/test_utilities.cpp -o build/test_utilities.o - $(CXX) $(CXXFLAGS) \ - -c $(SRC_DIR)/physics.cpp -o build/test_physics.o - $(CXX) $(CXXFLAGS) \ - -c $(SRC_DIR)/simulation.cpp -o build/test_simulation.o - $(CXX) $(CXXFLAGS) \ - -c $(SRC_DIR)/config_loader.cpp -o build/test_config_loader.o - $(CC) -Wall -Wextra -g -ggdb3 -std=c99 -I./src -I./ext/tomlc17/src \ - -c $(SRC_DIR)/../ext/tomlc17/src/tomlc17.c -o build/test_tomlc17.o - $(CXX) build/test_main.o build/test_integration.o build/test_energy.o build/test_orbital_period.o build/test_comet_orbit.o build/test_moon_orbits.o build/test_utilities.o build/test_physics.o build/test_simulation.o build/test_config_loader.o build/test_tomlc17.o \ +test-build: $(BUILD_DIR) $(C_OBJECTS) $(CPP_OBJECTS) $(TEST_OBJECTS) + $(CXX) $(C_OBJECTS) $(TEST_OBJECTS) \ + build/test_utilities.o \ + build/physics.o \ + build/simulation.o \ + build/config_loader.o \ -o $(TEST_TARGET) -lCatch2Main -lCatch2 -lm # Run automated test suite