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