# La Abadía del Crimen (PC, 1988) rebuilt in C.
#   make            the game: ./abadia (SDL2 window) or ./abadia --verificar GUION --salida DIR
#   make pruebas    the capture test runner: pruebas/prueba CAPTURES_DIR... -r res [FUNCTION...]
#   make prueba FUENTES="src/chr.c src/iso.c"   a runner with only those game files (every other
#                   function runs from the original code in Unicorn): pruebas/prueba_parcial
#   make recursos   res/ from the original disk image (herramientas/extrae_recursos.py)
#   make gen        headers and glue from the analysis files and c/interfaz (herramientas/genera.py)
#   make install    for the current user: ~/.local/share/abadia (game + res), ~/.local/bin/abadia,
#                   the KDE/freedesktop menu entry and icon (PREFIX=~/.local by default)
CC      = gcc
CFLAGS  = -std=c11 -O2 -g -Wall -Wextra -Wno-unused-parameter -Iinclude -Isrc $(shell pkg-config --cflags sdl2)
LDLIBS  = $(shell pkg-config --libs sdl2) -lz -lm
GAME    = $(filter-out src/main.c src/plat_sdl.c src/plat_ejec.c, $(wildcard src/*.c)) src/gen/despacho.c
HOST    = src/main.c src/plat_ejec.c src/plat_sdl.c

abadia: $(GAME) $(HOST) $(wildcard include/*.h src/*.h)
	$(CC) $(CFLAGS) -o $@ $(GAME) $(HOST) $(LDLIBS)

pruebas/prueba: $(GAME) pruebas/prueba.c pruebas/prueba.h pruebas/gen/adaptadores.c pruebas/gen/sustitutos.c pruebas/gen/nombres.c pruebas/gen/puntos.c $(wildcard include/*.h src/*.h)
	$(CC) $(CFLAGS) -Ipruebas -o $@ $(GAME) pruebas/prueba.c pruebas/gen/adaptadores.c pruebas/gen/sustitutos.c pruebas/gen/nombres.c pruebas/gen/puntos.c -lunicorn -lz -lm

pruebas: pruebas/prueba

PLAT    = src/plat.c src/plat_util.c src/gen/despacho.c
GLUE    = pruebas/prueba.c pruebas/gen/adaptadores.c pruebas/gen/sustitutos.c pruebas/gen/nombres.c pruebas/gen/puntos.c
prueba: pruebas/prueba_parcial
pruebas/prueba_parcial: $(PLAT) $(GLUE) $(FUENTES) pruebas/prueba.h $(wildcard include/*.h src/*.h)
	$(CC) $(CFLAGS) -Ipruebas -o $@ $(PLAT) $(FUENTES) $(GLUE) -lunicorn -lz -lm

gen:
	python3 -I herramientas/genera.py

recursos:
	python3 -I herramientas/extrae_recursos.py

PREFIX ?= $(HOME)/.local
install: abadia
	mkdir -p $(PREFIX)/share/abadia $(PREFIX)/bin $(PREFIX)/share/applications $(PREFIX)/share/icons/hicolor/128x128/apps
	install -m 755 abadia $(PREFIX)/share/abadia/abadia
	rm -rf $(PREFIX)/share/abadia/res && cp -r res $(PREFIX)/share/abadia/res
	ln -sf $(PREFIX)/share/abadia/abadia $(PREFIX)/bin/abadia
	sed 's|^Exec=abadia|Exec=$(PREFIX)/share/abadia/abadia|' abadia.desktop > $(PREFIX)/share/applications/abadia.desktop
	install -m 644 res/icono.png $(PREFIX)/share/icons/hicolor/128x128/apps/abadia.png

uninstall:
	rm -rf $(PREFIX)/share/abadia $(PREFIX)/bin/abadia $(PREFIX)/share/applications/abadia.desktop $(PREFIX)/share/icons/hicolor/128x128/apps/abadia.png

clean:
	rm -f abadia pruebas/prueba pruebas/prueba_*

.PHONY: pruebas prueba gen recursos clean install uninstall
