CFLAGS?=\ -Wall \ -Wextra \ -fvisibility=hidden \ -flto \ -Os LDFLAGS?=\ -flto \ -Os \ -s \ -lwayland-client \ -lrt protocols:=\ /usr/share/wayland-protocols wl_headers:=\ xdg-shell.h targets:=pui sample.pui lib_objects:=\ font.o \ font_cp00.o \ font_cp04.o \ pui.o bin_objects:=\ main.o \ xdg-shell.o \ libpui.a all: $(targets) pui: $(bin_objects) $(CC) $(LDFLAGS) $^ -o $@ libpui.a: $(lib_objects) $(AR) rs $@ $^ %.o: %.c *.h $(wl_headers) $(CC) $(CFLAGS) -c $< -o $@ %.h: $(protocols)/*/*/%.xml wayland-scanner client-header $< $@ %.c: $(protocols)/*/*/%.xml wayland-scanner private-code $< $@ sample.pui: convert sample.bmp sample.ini ./$^ > $@ convert: convert.c $(CC) $(CFLAGS) -s $< -o $@ clean: -rm \ $(bin_objects) \ $(lib_objects) \ $(targets) \ $(wl_headers) \ convert \ libpui.a \ sample.pui .PHONY: all clean .PRECIOUS: $(wl_headers)