3 EAGLE_CFLAGS = -I../eagle
4 EAGLE_LDLIBS = -L../eagle -leagle
6 clients = flower pointer background window
7 compositors = egl-compositor.so glx-compositor.so
9 all : wayland libwayland.so $(compositors) $(clients)
18 wayland : CFLAGS += $(shell pkg-config --cflags libffi)
19 wayland : LDLIBS += $(shell pkg-config --libs libffi) -ldl -rdynamic
21 wayland : $(wayland_objs)
22 gcc -o $@ $(LDLIBS) $(wayland_objs)
24 libwayland_objs = wayland-client.o connection.o
26 libwayland.so : $(libwayland_objs)
28 $(compositors) $(clients) : CFLAGS += $(shell pkg-config --cflags libdrm)
30 egl_compositor_objs = egl-compositor.o
31 egl-compositor.so : CFLAGS += $(EAGLE_CFLAGS)
32 egl-compositor.so : LDLIBS += $(EAGLE_LDLIBS) -rdynamic
34 egl-compositor.so : $(egl_compositor_objs)
36 glx_compositor_objs = glx-compositor.o
37 glx-compositor.so : LDLIBS += -lGL
39 glx-compositor.so : $(glx_compositor_objs)
42 libwayland.so $(compositors) :
43 gcc -o $@ $^ $(LDLIBS) -shared
45 flower_objs = flower.o wayland-glib.o
46 pointer_objs = pointer.o wayland-glib.o
47 background_objs = background.o wayland-glib.o
48 window_objs = window.o gears.o wayland-glib.o
50 $(clients) : CFLAGS += $(shell pkg-config --cflags cairo glib-2.0)
51 $(clients) : LDLIBS += $(shell pkg-config --libs cairo glib-2.0) -lrt
53 background : CFLAGS += $(shell pkg-config --cflags gdk-pixbuf-2.0)
54 background : LDLIBS += $(shell pkg-config --libs gdk-pixbuf-2.0)
56 window : CFLAGS += $(EAGLE_CFLAGS)
57 window : LDLIBS += $(EAGLE_LDLIBS)
59 define client_template
60 $(1): $$($(1)_objs) libwayland.so
63 $(foreach c,$(clients),$(eval $(call client_template,$(c))))
66 gcc -o $@ -L. -lwayland $(LDLIBS) $^
69 rm -f $(clients) wayland *.o *.so