# Compilador CC = gcc CFLAGS = -Wall -Wextra -g -Iincludes $(shell sdl2-config --cflags) LDFLAGS = $(shell sdl2-config --libs) -lm # Carpetas SRC_DIR = src OBJ_DIR = build BIN_DIR = bin # Fuentes y objetos SRC = $(wildcard $(SRC_DIR)/*.c) OBJ = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC)) TARGET = $(BIN_DIR)/graphs # Regla por defecto all: $(TARGET) # Linkar el ejecutable $(TARGET): $(OBJ) | $(BIN_DIR) $(CC) -o $@ $^ $(LDFLAGS) # Compilar cada .c a .o en build/ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) $(CC) -c $(CFLAGS) $< -o $@ # Crear carpetas si no existen $(OBJ_DIR): mkdir -p $(OBJ_DIR) $(BIN_DIR): mkdir -p $(BIN_DIR) # Limpiar objetos y binario clean: rm -rf $(OBJ_DIR)/* $(BIN_DIR)/* .PHONY: all clean