CFLAGS += -Wall -g $(shell pkg-config --cflags libffi libdrm)
LDLIBS += $(shell pkg-config --libs libffi libdrm)
-all : wayland client
+clients = flower
+
+all : wayland $(clients)
wayland_objs = wayland.o event-loop.o connection.o hash.o input.o egl-compositor.o
wayland : CFLAGS += -I../eagle
libwayland.so : $(libwayland_objs)
gcc -o $@ $(libwayland_objs) -shared
-client_objs = client.o
-client : CFLAGS += $(shell pkg-config --cflags cairo)
-client : LDLIBS += $(shell pkg-config --libs cairo)
+flower_objs = flower.o
+
+$(clients) : CFLAGS += $(shell pkg-config --cflags cairo)
+$(clients) : LDLIBS += $(shell pkg-config --libs cairo)
+
+define client_template
+$(1): $$($(1)_objs) libwayland.so
+endef
+
+$(foreach c,$(clients),$(eval $(call client_template,$(c))))
-client : $(client_objs) libwayland.so
- gcc -o $@ -L. -lwayland $(LDLIBS) $(client_objs)
+$(clients) :
+ gcc -o $@ -L. -lwayland $(LDLIBS) $^
clean :
- rm -f client wayland *.o libwayland.so
\ No newline at end of file
+ rm -f $(clients) wayland *.o libwayland.so
\ No newline at end of file