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