WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols) WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner) LIBS=\ $(shell pkg-config --cflags --libs wlroots) \ $(shell pkg-config --cflags --libs wayland-server) \ $(shell pkg-config --cflags --libs xkbcommon) OBJS=\ diyac.c \ cursor.c \ output.c \ seat.c \ node.c \ view.c \ xdg.c \ xdg-shell-protocol.c \ layer.c \ wlr-layer-shell-unstable-v1-protocol.c # wayland-scanner is a tool which generates C headers and rigging for Wayland # protocols, which are specified in XML. wlroots requires you to rig these up # to your build system yourself and provide them in the include path. xdg-shell-protocol.h: $(WAYLAND_SCANNER) server-header \ $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ xdg-shell-protocol.c: xdg-shell-protocol.h $(WAYLAND_SCANNER) private-code \ $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ wlr-layer-shell-unstable-v1-protocol.c: wlr-layer-shell-unstable-v1-protocol.h $(WAYLAND_SCANNER) private-code \ protocol/wlr-layer-shell-unstable-v1.xml $@ wlr-layer-shell-unstable-v1-protocol.h: $(WAYLAND_SCANNER) server-header \ protocol/wlr-layer-shell-unstable-v1.xml $@ diyac: $(OBJS) echo "Object is $(OBJS)" $(CC) $(CFLAGS) \ -g -Werror -I. \ -DWLR_USE_UNSTABLE \ -o $@ $(OBJS) \ $(LIBS) clean: rm -f diyac xdg-shell-protocol.* wlr-layer-shell-unstable-v1-protocol.* .DEFAULT_GOAL=diyac .PHONY: clean