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