https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4710 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Wed, 12 Jun 2024 10:01:52 -0600 Subject: [PATCH 1/2] tinywl: split compilation into two steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While we are at it also respect LDFLAGS and optimize pkg-config usage Signed-off-by: Leonardo Hernández Hernández --- a/tinywl/Makefile +++ b/tinywl/Makefile @@ -1,9 +1,9 @@ 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 >= 0.17.0") \ - $(shell pkg-config --cflags --libs wayland-server) \ - $(shell pkg-config --cflags --libs xkbcommon) + +PKGS="wlroots" wayland-server xkbcommon +CFLAGS+=$(shell pkg-config --cflags $(PKGS)) +LIBS=$(shell pkg-config --libs $(PKGS)) # 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 @@ -12,15 +12,13 @@ xdg-shell-protocol.h: $(WAYLAND_SCANNER) server-header \ $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ -tinywl: tinywl.c xdg-shell-protocol.h - $(CC) $(CFLAGS) \ - -g -Werror -I. \ - -DWLR_USE_UNSTABLE \ - -o $@ $< \ - $(LIBS) +tinywl.o: tinywl.c xdg-shell-protocol.h + $(CC) -g -Werror $(CFLAGS) -I. -DWLR_USE_UNSTABLE -o $@ -c $< +tinywl: tinywl.o + $(CC) $< -g -Werror $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ clean: - rm -f tinywl xdg-shell-protocol.h xdg-shell-protocol.c + rm -f tinywl tinywl.o xdg-shell-protocol.h .DEFAULT_GOAL=tinywl .PHONY: clean -- 2.45.2 From 29451c3dd28ffd52eb3dcf20e47399a26ecafb3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Wed, 12 Jun 2024 17:58:54 -0600 Subject: [PATCH 2/2] tinywl: allow specify pkg-config binary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Leonardo Hernández Hernández --- a/tinywl/Makefile +++ b/tinywl/Makefile @@ -1,9 +1,10 @@ -WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols) -WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner) +PKG_CONFIG?=pkg-config +WAYLAND_PROTOCOLS=$(shell $(PKG_CONFIG) --variable=pkgdatadir wayland-protocols) +WAYLAND_SCANNER=$(shell $(PKG_CONFIG) --variable=wayland_scanner wayland-scanner) -PKGS="wlroots" wayland-server xkbcommon -CFLAGS+=$(shell pkg-config --cflags $(PKGS)) -LIBS=$(shell pkg-config --libs $(PKGS)) +PKGS=wlroots wayland-server xkbcommon +CFLAGS+=$(shell $(PKG_CONFIG) --cflags $(PKGS)) +LIBS=$(shell $(PKG_CONFIG) --libs $(PKGS)) # 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 -- 2.45.2