MPGC/Makefile
2025-04-02 20:05:40 -05:00

40 lines
859 B
Makefile

# 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