Generate protocol types and metadata from xml
[profile/ivi/wayland.git] / Makefile
1 include config.mk
2
3 subdirs = clients spec
4 libs = libwayland-server.so libwayland.so
5
6 all : $(libs) compositor subdirs-all scanner
7
8 libwayland-server.so :                          \
9         wayland-protocol.o                      \
10         wayland.o                               \
11         event-loop.o                            \
12         connection.o                            \
13         wayland-util.o                          \
14         wayland-hash.o
15
16 libwayland.so :                                 \
17         wayland-protocol.o                      \
18         wayland-client.o                        \
19         connection.o                            \
20         wayland-util.o                          \
21         wayland-hash.o
22
23 wayland.o : wayland-server-protocol.h
24 wayland-client.o : wayland-client-protocol.h
25
26 wayland-protocol.c : protocol.xml scanner
27         ./scanner code < $< > $@
28
29 wayland-server-protocol.h : protocol.xml scanner
30         ./scanner server-header < $< > $@
31
32 wayland-client-protocol.h : protocol.xml scanner
33         ./scanner client-header < $< > $@
34
35 $(libs) : CFLAGS += -fPIC $(FFI_CFLAGS)
36 $(libs) : LDLIBS += $(FFI_LIBS)
37 $(libs) :
38         gcc -shared $^ $(LDLIBS)  -o $@
39
40 compositor :                                    \
41         compositor.o                            \
42         compositor-drm.o                        \
43         compositor-x11.o                        \
44         screenshooter.o                         \
45         cairo-util.o
46
47 compositor : CFLAGS += $(COMPOSITOR_CFLAGS)
48 compositor : LDLIBS += ./libwayland-server.so $(COMPOSITOR_LIBS) -rdynamic -lrt -lEGL -lm
49
50 scanner :                                       \
51         scanner.o                               \
52         wayland-util.o
53
54 scanner : LDLIBS += $(EXPAT_LIBS)
55
56 subdirs-all subdirs-clean :
57         for f in $(subdirs); do $(MAKE) -C $$f $(@:subdirs-%=%); done
58
59 install : $(libs) compositor
60         install -d $(libdir) $(libdir)/pkgconfig ${udev_rules_dir}
61         install $(libs) $(libdir)
62         install wayland-server.pc wayland.pc $(libdir)/pkgconfig
63         install wayland-util.h wayland-client.h $(includedir)
64         install 70-wayland.rules ${udev_rules_dir}
65
66 clean : subdirs-clean
67         rm -f compositor scanner *.o *.so
68         rm -f wayland-protocol.c \
69                 wayland-server-protocol.h wayland-client-protocol.h
70
71 config.mk : config.mk.in
72         ./config.status