Files
punk-n-spray-raylib-c/Makefile
2026-03-05 15:11:09 +01:00

45 lines
875 B
Makefile

# Compiler
CC = gcc
# Build mode
BUILD_MODE ?= RELEASE
INCLUDE_DIRS := $(shell find src -type d)
ifeq ($(BUILD_MODE),DEBUG)
CFLAGS = -Wall -Wextra -std=c11 $(addprefix -I,$(INCLUDE_DIRS)) -g -O0
else
CFLAGS = -Wall -Wextra -std=c11 $(addprefix -I,$(INCLUDE_DIRS)) -O2
endif
# Linker flags
LDFLAGS = -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
# Carpeta de build
BUILD_DIR = build
# Target final
TARGET = $(BUILD_DIR)/pns
# Fuentes y objetos
SRC = $(shell find src -name "*.c")
OBJ = $(patsubst src/%.c,$(BUILD_DIR)/%.o,$(SRC))
# Phony targets
.PHONY: all clean
# Target por defecto
all: $(TARGET)
# Linking
$(TARGET): $(OBJ)
$(CC) $(OBJ) -o $@ $(LDFLAGS)
# Compilación de objetos
# mkdir -p crea la carpeta automáticamente si no existe
$(BUILD_DIR)/%.o: src/%.c
mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
# Limpiar todo
clean:
rm -rf $(BUILD_DIR)