CC ?= gcc
TARGET := arielo_calculator_amd64
SRC := arielo_calculator.c

SDL_CFLAGS := $(shell pkg-config --cflags sdl2 2>/dev/null || sdl2-config --cflags 2>/dev/null)
SDL_LIBS := $(shell pkg-config --libs sdl2 2>/dev/null || sdl2-config --libs 2>/dev/null)

CPPFLAGS += $(SDL_CFLAGS)
CFLAGS ?= -O2
CFLAGS += -std=c11 -Wall -Wextra -Wpedantic
LDLIBS += $(SDL_LIBS)

.PHONY: all check-amd64 check-sdl clean run install uninstall

all: check-amd64 check-sdl $(TARGET)

check-amd64:
	@arch=$$(uname -m); bits=$$(getconf LONG_BIT 2>/dev/null || echo desconocido); \
	if [ "$$arch" != "x86_64" ] || [ "$$bits" != "64" ]; then \
		echo "ERROR: este paquete requiere Ubuntu AMD64/x86_64 de 64 bits."; \
		echo "Arquitectura actual: $$arch, $$bits bits"; \
		exit 1; \
	fi

check-sdl:
	@command -v pkg-config >/dev/null 2>&1 || { \
		echo "ERROR: falta pkg-config"; \
		echo "Instala con: sudo apt update && sudo apt install build-essential pkg-config libsdl2-dev"; \
		exit 1; \
	}
	@pkg-config --exists sdl2 2>/dev/null || command -v sdl2-config >/dev/null 2>&1 || { \
		echo "ERROR: falta libsdl2-dev"; \
		echo "Instala con: sudo apt update && sudo apt install build-essential pkg-config libsdl2-dev"; \
		exit 1; \
	}

$(TARGET): $(SRC)
	$(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ $(LDFLAGS) $(LDLIBS)

run: all
	./$(TARGET)

install: all
	./install.sh

uninstall:
	./uninstall.sh

clean:
	rm -f $(TARGET)
