# 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)*