INTERFACEDIR:=$(shell pkg-config --variable=pkgdatadir wayland-protocols)
CFLAGS=-Wall -Wextra -Og -ggdb3 -Wno-unused-but-set-variable -Wno-unused-parameter -Wl,--export-dynamic
LIBS=-lwayland-client -lwayland-egl -lEGL -lOpenGL -lxkbcommon -levdev

default: game.so wayland

wayland: wayland.c xdg-shell-protocol.c xdg-shell-client-protocol.h zwp-text-input-unstable-v3-client-protocol.c zwp-text-input-unstable-v3-protocol.h xdg-decoration-unstable-v1.c xdg-decoration-unstable-v1.h game.h
	gcc $(CFLAGS) $(LIBS) $^ -o wayland

# TODO: Normalize these annoying names
xdg-shell-protocol.c:
	wayland-scanner private-code  $(INTERFACEDIR)/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.c
xdg-shell-client-protocol.h:
	wayland-scanner client-header $(INTERFACEDIR)/stable/xdg-shell/xdg-shell.xml xdg-shell-client-protocol.h
zwp-text-input-unstable-v3-client-protocol.c:
	wayland-scanner private-code $(INTERFACEDIR)/unstable/text-input/text-input-unstable-v3.xml zwp-text-input-unstable-v3-client-protocol.c
zwp-text-input-unstable-v3-protocol.h:
	wayland-scanner client-header $(INTERFACEDIR)/unstable/text-input/text-input-unstable-v3.xml zwp-text-input-unstable-v3-protocol.h
xdg-decoration-unstable-v1.c:
	wayland-scanner private-code $(INTERFACEDIR)/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml xdg-decoration-unstable-v1.c
xdg-decoration-unstable-v1.h:
	wayland-scanner client-header $(INTERFACEDIR)/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml xdg-decoration-unstable-v1.h

game.so: game.c game.h
	gcc $(CFLAGS) game.c -shared -o game.so
