# Variables comunes
SOURCE          := source/*.cpp
EXECUTABLE_NAME := logo_02
CXXFLAGS        := -std=c++20 -Wall -Os -ffunction-sections -fdata-sections # Opciones comunes de compilación
LDFLAGS         := -lSDL3 # Flags de enlace comunes
OUTPUT_EXT      :=

# Detectar plataforma y configurar
ifeq ($(OS),Windows_NT)
    LDFLAGS += -lmingw32 -lws2_32
    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)