st/egl: Add wayland platform
[mesa.git] / src / gallium / state_trackers / egl / Makefile
1 TOP = ../../../..
2 include $(TOP)/configs/current
3
4 common_INCLUDES = \
5 -I. \
6 -I$(TOP)/src/gallium/include \
7 -I$(TOP)/src/gallium/auxiliary \
8 -I$(TOP)/src/egl/main \
9 -I$(TOP)/include
10
11 common_SOURCES = $(wildcard common/*.c)
12 common_OBJECTS = $(common_SOURCES:.c=.o)
13
14 x11_INCLUDES = \
15 -I$(TOP)/src/gallium/drivers \
16 -I$(TOP)/src/glx \
17 -I$(TOP)/src/mapi \
18 -I$(TOP)/src/mesa \
19 $(X11_CFLAGS) \
20 $(shell pkg-config --cflags-only-I libdrm dri2proto)
21
22 x11_SOURCES = $(wildcard x11/*.c) \
23 $(TOP)/src/glx/dri2.c
24 x11_OBJECTS = $(x11_SOURCES:.c=.o)
25
26 wayland_INCLUDES = \
27 -I$(TOP)/src/gallium/winsys \
28 -I$(TOP)/src/egl/wayland \
29 $(shell pkg-config --cflags-only-I libdrm wayland-client)
30
31 wayland_SOURCES = $(wildcard wayland/*.c)
32 wayland_OBJECTS = $(wayland_SOURCES:.c=.o)
33
34 drm_INCLUDES = -I$(TOP)/src/gallium/winsys $(shell pkg-config --cflags-only-I libdrm)
35 drm_SOURCES = $(wildcard drm/*.c)
36 drm_OBJECTS = $(drm_SOURCES:.c=.o)
37
38
39 fbdev_INCLUDES = -I$(TOP)/src/gallium/winsys/sw
40 fbdev_SOURCES = $(wildcard fbdev/*.c)
41 fbdev_OBJECTS = $(fbdev_SOURCES:.c=.o)
42
43
44 ALL_INCLUDES = $(common_INCLUDES) $(x11_INCLUDES) $(drm_INCLUDES) $(fbdev_INCLUDES)
45 ALL_SOURCES = $(common_SOURCES) $(x11_SOURCES) $(drm_SOURCES) $(fbdev_SOURCES)
46
47 EGL_OBJECTS = $(common_OBJECTS)
48 EGL_CPPFLAGS = $(common_INCLUDES)
49
50 # add backends
51 ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
52 EGL_OBJECTS += $(x11_OBJECTS)
53 EGL_CPPFLAGS += -DHAVE_X11_BACKEND
54 endif
55 ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
56 EGL_OBJECTS += $(wayland_OBJECTS)
57 EGL_CPPFLAGS += -DHAVE_WAYLAND_BACKEND
58 endif
59 ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
60 EGL_OBJECTS += $(drm_OBJECTS)
61 EGL_CPPFLAGS += -DHAVE_DRM_BACKEND
62 endif
63 ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
64 EGL_OBJECTS += $(fbdev_OBJECTS)
65 EGL_CPPFLAGS += -DHAVE_FBDEV_BACKEND
66 endif
67
68 ##### TARGETS #####
69
70 default: depend libegl.a
71
72 libegl.a: $(EGL_OBJECTS) Makefile
73 $(MKLIB) -o egl -static $(EGL_OBJECTS)
74
75 depend:
76 rm -f depend
77 touch depend
78 $(MKDEP) $(MKDEP_OPTIONS) $(ALL_INCLUDES) $(ALL_SOURCES) 2> /dev/null
79
80 clean:
81 rm -f libegl.a
82 rm -f $(EGL_OBJECTS)
83 rm -f depend depend.bak
84
85 # Dummy target
86 install:
87 @echo -n ""
88
89 ##### RULES #####
90
91 define egl-cc
92 $(CC) -c $(common_INCLUDES) $($(1)_INCLUDES) $(DEFINES) $(CFLAGS) $< -o $@
93 endef
94
95 $(common_OBJECTS): %.o: %.c
96 $(CC) -c $(EGL_CPPFLAGS) $(DEFINES) $(CFLAGS) $< -o $@
97
98 $(x11_OBJECTS): %.o: %.c
99 $(call egl-cc,x11)
100
101 $(wayland_OBJECTS): %.o: %.c
102 $(call egl-cc,wayland)
103
104 $(drm_OBJECTS): %.o: %.c
105 $(call egl-cc,drm)
106
107 $(fbdev_OBJECTS): %.o: %.c
108 $(call egl-cc,fbdev)
109
110 sinclude depend