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