CXX = g++ CXXFLAGS = -Wall -Wextra -g -ggdb3 -std=c++14 \ -I./src \ -I../src \ -isystem./ext/raylib/src \ -isystem./ext/raygui/src \ -isystem./ext/raygui/styles LDFLAGS = -L./ext/raylib/src -lraylib -lm -lpthread -ldl -lrt -lX11 SRC_DIR = src BUILD_DIR ?= build RAYLIB_DIR = ext/raylib/src CPP_SOURCES := $(wildcard $(SRC_DIR)/*.cpp) CPP_OBJECTS = $(CPP_SOURCES:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/%.o) TARGET = ${BUILD_DIR}/orbit_sim raylib: @if [ ! -f $(RAYLIB_DIR)/libraylib.a ]; then \ cd $(RAYLIB_DIR) && $(MAKE) PLATFORM=PLATFORM_DESKTOP; \ fi $(BUILD_DIR): mkdir -p $(BUILD_DIR) $(TARGET): $(CPP_OBJECTS) raylib $(CXX) $(CPP_OBJECTS) -o $(TARGET) -L$(BUILD_DIR) -lorbit $(LDFLAGS) $(CPP_OBJECTS): $(BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp $(CXX) $(CXXFLAGS) -c $< -o $@ clean: rm -f $(TARGET) @for f in $(CPP_SOURCES); do rm -f $(BUILD_DIR)/$$(basename $${f%.cpp}.o); done rebuild: clean all all: raylib $(BUILD_DIR) $(TARGET) .PHONY: all clean raylib rebuild