31 lines
849 B
Makefile
31 lines
849 B
Makefile
# Variables comunes
|
|
source := source/*.cpp
|
|
executable_name := demo_pelotas1
|
|
CXX := g++ # Cambiar a clang++ si prefieres
|
|
CXXFLAGS := -std=c++11 -Wall # Opciones comunes de compilación
|
|
LDFLAGS := -lSDL2 # Flags de enlace comunes
|
|
|
|
# Detectar plataforma
|
|
ifeq ($(OS),Windows_NT)
|
|
PLATFORM := windows
|
|
LDFLAGS += -lmingw32 -lws2_32 -lSDL2main
|
|
OUTPUT_EXT := .exe
|
|
else
|
|
PLATFORM := unix # Unificación para macOS y Linux
|
|
OUTPUT_EXT := .out
|
|
endif
|
|
|
|
# Regla principal: compilar según la plataforma detectada
|
|
all: $(PLATFORM)
|
|
|
|
# Compilación para Windows
|
|
windows:
|
|
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
|
|
|
# Compilación para Unix (Linux y macOS)
|
|
unix:
|
|
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
|
|
|
# Regla para limpiar archivos generados
|
|
clean:
|
|
rm -f $(executable_name)*
|