CC ?= gcc CFLAGS := -Wall -Wextra -O2 $(shell pkg-config --cflags wayland-client 2>/dev/null) LDFLAGS := $(shell pkg-config --libs wayland-client 2>/dev/null) # Fallback if pkg-config is unavailable or returns nothing. ifeq ($(LDFLAGS),) LDFLAGS := -lwayland-client -lm endif LIB_SRC := waymini.c xdg-shell-client-protocol.c LIB_OBJ := $(LIB_SRC:.c=.o) .PHONY: all clean all: libwaymini.a test waymini libwaymini.a: $(LIB_OBJ) ar rcs $@ $^ test: test.cpp libwaymini.a g++ $(CFLAGS) -o $@ test.cpp -L. -lwaymini $(LDFLAGS) waymini: waymini_standalone.c waymini.c xdg-shell-client-protocol.c $(CC) $(CFLAGS) -o $@ waymini_standalone.c waymini.c xdg-shell-client-protocol.c $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f $(LIB_OBJ) libwaymini.a test waymini xdg-shell-client-protocol.c xdg-shell-client-protocol.h: gen-protocols.sh bash gen-protocols.sh