CFLAGS = -Wall -Wextra -I./include/ -g LIBS = $(shell pkg-config --libs wayland-client wayland-egl egl glesv2 wayland-cursor) build/main: src/main.cpp build/shader.o build/state.o build/renderer.o build/window.o build/window_wayland.o build/input_wayland.o build/xdg-shell-protocol.o g++ -o build/main $(CFLAGS) src/main.cpp build/shader.o build/state.o build/renderer.o build/window.o build/window_wayland.o build/input_wayland.o build/xdg-shell-protocol.o $(LIBS) build/shader.o: src/shader.cpp include/shader.h g++ -o build/shader.o $(CFLAGS) -c src/shader.cpp # TODO: dynamic state impl selection depending on platform (wayland/x11) build/state.o: src/state/wayland.cpp include/state/wayland.h g++ -o build/state.o $(CFLAGS) -c src/state/wayland.cpp build/renderer.o: src/renderer.cpp include/renderer.h g++ -o build/renderer.o $(CFLAGS) -c src/renderer.cpp build/window.o: src/window.cpp include/window.h g++ -o build/window.o $(CFLAGS) -c src/window.cpp # TODO: dynamic window impl selection depending on platform (wayland/x11) build/window_wayland.o: include/window/wayland.h src/window/wayland.cpp g++ -o build/window_wayland.o $(CFLAGS) -c src/window/wayland.cpp # TODO: dynamic input impl selection depending on platform (wayland/x11) build/input_wayland.o: include/input/wayland.h src/input/wayland.cpp g++ -o build/input_wayland.o $(CFLAGS) -c src/input/wayland.cpp build/xdg-shell-protocol.o: src/xdg-shell-protocol.c gcc -o build/xdg-shell-protocol.o -c $(CFLAGS) $(LIBS) src/xdg-shell-protocol.c