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/waymini.c waymini/xdg-shell-client-protocol.c LIB_OBJ := $(LIB_SRC:.c=.o) .PHONY: all clean all: waymini/libwaymini.a example waymini waymini/libwaymini.a: $(LIB_OBJ) ar rcs -rpath=./waymini $@ $^ example: example.cpp waymini/libwaymini.a g++ $(CFLAGS) -o $@ example.cpp -L. -lwaymini $(LDFLAGS) waymini: waymini/waymini_standalone.c waymini/waymini.c waymini/xdg-shell-client-protocol.c $(CC) $(CFLAGS) -o $@ waymini/waymini_standalone.c waymini/waymini.c waymini/xdg-shell-client-protocol.c $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f $(LIB_OBJ) waymini/libwaymini.a example waymini/waymini xdg-shell-client-protocol.c xdg-shell-client-protocol.h: gen-protocols.sh bash waymini/gen-protocols.sh