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 example waymini

libwaymini.a: $(LIB_OBJ)
	ar rcs $@ $^

example: example.c libwaymini.a
	$(CC) $(CFLAGS) -o $@ example.c -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 example waymini

xdg-shell-client-protocol.c xdg-shell-client-protocol.h: gen-protocols.sh
	bash gen-protocols.sh
