Initial commit
This commit is contained in:
38
Makefile
Normal file
38
Makefile
Normal file
@@ -0,0 +1,38 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user