|
|
|
|
@ -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
|
|
|
|
|
|