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