# Variables comunes
source := source/*.cpp
executable_name := demo4_sprites
CXXFLAGS := -std=c++20 -Wall -Os # Opciones comunes de compilación
LDFLAGS := -lSDL2 # Flags de enlace comunes
OUTPUT_EXT :=

# Detectar plataforma y configurar
ifeq ($(OS),Windows_NT)
    LDFLAGS += -lmingw32 -lws2_32 -lSDL2main
    OUTPUT_EXT := .exe
else
    OUTPUT_EXT := .out
endif

# Regla principal: compilar el ejecutable
all:
	$(CXX) $(source) $(CXXFLAGS) $(LDFLAGS) -o $(executable_name)$(OUTPUT_EXT)

# Regla para limpiar archivos generados
clean:
	rm -f $(executable_name)$(OUTPUT_EXT)