Makefile revision 381ea0d67a6d84a34d23571c49bbf4339ffda364
1TOP = ../../../..
2include $(TOP)/configs/current
3
4common_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
11common_SOURCES = $(wildcard common/*.c)
12common_OBJECTS = $(common_SOURCES:.c=.o)
13
14x11_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
22x11_SOURCES = $(wildcard x11/*.c) \
23	      $(TOP)/src/glx/dri2.c
24x11_OBJECTS = $(x11_SOURCES:.c=.o)
25
26wayland_INCLUDES = \
27	-I$(TOP)/src/gallium/winsys \
28	-I$(TOP)/src/egl/wayland \
29	$(shell pkg-config --cflags-only-I libdrm wayland-client)
30
31wayland_SOURCES = $(wildcard wayland/*.c)
32wayland_OBJECTS = $(wayland_SOURCES:.c=.o)
33
34drm_INCLUDES = -I$(TOP)/src/gallium/winsys $(shell pkg-config --cflags-only-I libdrm)
35drm_SOURCES = $(wildcard drm/*.c)
36drm_OBJECTS = $(drm_SOURCES:.c=.o)
37
38
39fbdev_INCLUDES = -I$(TOP)/src/gallium/winsys/sw
40fbdev_SOURCES = $(wildcard fbdev/*.c)
41fbdev_OBJECTS = $(fbdev_SOURCES:.c=.o)
42
43
44ALL_INCLUDES = $(common_INCLUDES) $(x11_INCLUDES) $(drm_INCLUDES) $(fbdev_INCLUDES)
45ALL_SOURCES = $(common_SOURCES) $(x11_SOURCES) $(drm_SOURCES) $(fbdev_SOURCES)
46
47EGL_OBJECTS = $(common_OBJECTS)
48EGL_CPPFLAGS = $(common_INCLUDES)
49
50# add backends
51ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
52EGL_OBJECTS += $(x11_OBJECTS)
53EGL_CPPFLAGS += -DHAVE_X11_BACKEND
54endif
55ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
56EGL_OBJECTS += $(wayland_OBJECTS)
57EGL_CPPFLAGS += -DHAVE_WAYLAND_BACKEND
58endif
59ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
60EGL_OBJECTS += $(drm_OBJECTS)
61EGL_CPPFLAGS += -DHAVE_DRM_BACKEND
62endif
63ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
64EGL_OBJECTS += $(fbdev_OBJECTS)
65EGL_CPPFLAGS += -DHAVE_FBDEV_BACKEND
66endif
67
68##### TARGETS #####
69
70default: depend libegl.a
71
72libegl.a: $(EGL_OBJECTS) Makefile
73	$(MKLIB) -o egl -static $(EGL_OBJECTS)
74
75depend: 
76	rm -f depend
77	touch depend
78	$(MKDEP) $(MKDEP_OPTIONS) $(ALL_INCLUDES) $(ALL_SOURCES) 2> /dev/null
79
80clean:
81	rm -f libegl.a
82	rm -f $(EGL_OBJECTS)
83	rm -f depend depend.bak
84
85# Dummy target
86install:
87	@echo -n ""
88
89##### RULES #####
90
91define egl-cc
92$(CC) -c $(common_INCLUDES) $($(1)_INCLUDES) $(DEFINES) $(CFLAGS) $< -o $@
93endef
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
110sinclude depend
111