43 lines
1.1 KiB
Makefile
43 lines
1.1 KiB
Makefile
# Variables comunes
|
|
source := source/*.cpp
|
|
executable_name := demo_pelotas2
|
|
CXX := g++ # Cambiar a clang++ si lo prefieres
|
|
CXXFLAGS := -std=c++11 -Wall # Opciones comunes de compilación
|
|
LDFLAGS := -lSDL2 # Opciones comunes de enlace
|
|
|
|
# Detectar plataforma
|
|
ifeq ($(OS),Windows_NT)
|
|
PLATFORM := windows
|
|
LDFLAGS += -lmingw32 -lws2_32 -lSDL2main
|
|
OUTPUT_EXT := .exe
|
|
else
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Linux)
|
|
PLATFORM := linux
|
|
OUTPUT_EXT := .out
|
|
endif
|
|
ifeq ($(UNAME_S),Darwin) # macOS
|
|
PLATFORM := macos
|
|
CXX := clang++ # Usar clang++ en macOS
|
|
OUTPUT_EXT := .out
|
|
endif
|
|
endif
|
|
|
|
# Regla principal: compilar según la plataforma detectada
|
|
all: $(PLATFORM)
|
|
|
|
# Regla para Windows
|
|
windows:
|
|
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
|
|
|
# Regla para Linux
|
|
linux:
|
|
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
|
|
|
# Regla para macOS
|
|
macos:
|
|
$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)
|
|
|
|
# Regla para limpiar los archivos generados
|
|
clean:
|
|
rm -f $(executable_name)*
|