# Compiler CC = gcc # Paths SRC_DIR = src BUILD_DIR = build OUT = main.exe # Source files SRC = \ $(SRC_DIR)\main.c \ $(SRC_DIR)\net.c \ $(SRC_DIR)\event.c \ $(SRC_DIR)\player.c # Object files OBJ = $(patsubst $(SRC_DIR)\%.c, $(BUILD_DIR)\%.o, $(SRC)) # Include and linker flags INCLUDE_FLAGS = -IC:/msys64/mingw64/include LIBS = -LC:/msys64/mingw64/lib -static -lws2_32 -lSDL2main -lSDL2 -lwinmm -limm32 -lole32 -loleaut32 -lversion -lsetupapi -lgdi32 -lshell32 -luser32 -mconsole CFLAGS = -Wall -Wextra -g $(INCLUDE_FLAGS) LDFLAGS = $(LIBS) # Default target all: $(OUT) $(OUT): $(OBJ) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) # Compile each .c into .o $(BUILD_DIR)\%.o: $(SRC_DIR)\%.c @if not exist $(BUILD_DIR) mkdir $(BUILD_DIR) $(CC) $(CFLAGS) -c $< -o $@ # Clean clean: del /Q $(BUILD_DIR)\*.o 2>nul || exit 0 del /Q $(OUT) 2>nul || exit 0