egl: add null platform
[mesa.git] / src / egl / main / Makefile
1 # src/egl/main/Makefile
2
3 TOP = ../../..
4 include $(TOP)/configs/current
5
6
7 EGL_MAJOR = 1
8 EGL_MINOR = 0
9
10 INCLUDE_DIRS = -I$(TOP)/include
11
12 HEADERS = \
13 eglcompiler.h \
14 eglconfig.h \
15 eglcontext.h \
16 eglcurrent.h \
17 egldefines.h \
18 egldisplay.h \
19 egldriver.h \
20 eglglobals.h \
21 eglimage.h \
22 egllog.h \
23 eglmisc.h \
24 eglmode.h \
25 eglmutex.h \
26 eglscreen.h \
27 eglstring.h \
28 eglsurface.h \
29 eglsync.h
30
31 SOURCES = \
32 eglapi.c \
33 eglarray.c \
34 eglconfig.c \
35 eglcontext.c \
36 eglcurrent.c \
37 egldisplay.c \
38 egldriver.c \
39 eglfallbacks.c \
40 eglglobals.c \
41 eglimage.c \
42 egllog.c \
43 eglmisc.c \
44 eglmode.c \
45 eglscreen.c \
46 eglstring.c \
47 eglsurface.c \
48 eglsync.c
49
50 OBJECTS = $(SOURCES:.c=.o)
51
52
53 # use dl*() to load drivers
54 LOCAL_CFLAGS = -D_EGL_OS_UNIX=1
55 LOCAL_LIBS =
56
57 # egl_dri2 and egl_glx are built-ins
58 ifeq ($(filter dri2, $(EGL_DRIVERS_DIRS)),dri2)
59 LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
60 LOCAL_LIBS += $(TOP)/src/egl/drivers/dri2/libegl_dri2.a
61 ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
62 EGL_LIB_DEPS += $(XCB_DRI2_LIBS)
63 endif
64 EGL_LIB_DEPS += $(LIBUDEV_LIBS) $(DLOPEN_LIBS) $(LIBDRM_LIB)
65 endif
66 ifeq ($(filter glx, $(EGL_DRIVERS_DIRS)),glx)
67 LOCAL_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GLX
68 LOCAL_LIBS += $(TOP)/src/egl/drivers/glx/libegl_glx.a
69 EGL_LIB_DEPS += $(X11_LIBS) $(DLOPEN_LIBS)
70 endif
71
72 # libs/cflags for display type autodetection
73 ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
74 LOCAL_LIBS += $(TOP)/src/egl/wayland/wayland-drm/libwayland-drm.a
75 EGL_LIB_DEPS += $(WAYLAND_LIBS)
76 INCLUDE_DIRS += $(WAYLAND_CFLAGS)
77 endif
78 ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
79 EGL_LIB_DEPS += -lgbm
80 INCLUDE_DIRS += -I$(TOP)/src/gbm/main
81 endif
82
83 # translate --with-egl-platforms to _EGLPlatformType
84 EGL_NATIVE_PLATFORM=_EGL_INVALID_PLATFORM
85 ifeq ($(firstword $(EGL_PLATFORMS)),x11)
86 EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11
87 endif
88 ifeq ($(firstword $(EGL_PLATFORMS)),wayland)
89 EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WAYLAND
90 endif
91 ifeq ($(firstword $(EGL_PLATFORMS)),drm)
92 EGL_NATIVE_PLATFORM=_EGL_PLATFORM_DRM
93 endif
94 ifeq ($(firstword $(EGL_PLATFORMS)),fbdev)
95 EGL_NATIVE_PLATFORM=_EGL_PLATFORM_FBDEV
96 endif
97 ifeq ($(firstword $(EGL_PLATFORMS)),null)
98 EGL_NATIVE_PLATFORM=_EGL_PLATFORM_NULL
99 endif
100
101 ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
102 LOCAL_CFLAGS += -DHAVE_X11_PLATFORM
103 endif
104 ifneq ($(findstring wayland, $(EGL_PLATFORMS)),)
105 LOCAL_CFLAGS += -DHAVE_WAYLAND_PLATFORM
106 endif
107 ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
108 LOCAL_CFLAGS += -DHAVE_DRM_PLATFORM
109 endif
110 ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
111 LOCAL_CFLAGS += -DHAVE_FBDEV_PLATFORM
112 endif
113 ifneq ($(findstring null, $(EGL_PLATFORMS)),)
114 LOCAL_CFLAGS += -DHAVE_NULL_PLATFORM
115 endif
116
117 LOCAL_CFLAGS += \
118 -D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM) \
119 -D_EGL_DRIVER_SEARCH_DIR=\"$(EGL_DRIVER_INSTALL_DIR)\"
120
121 .c.o:
122 $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(LOCAL_CFLAGS) $< -o $@
123
124
125
126 default: depend library
127
128
129 # EGL Library
130 library: $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME)
131
132 $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME): $(OBJECTS) $(LOCAL_LIBS)
133 $(MKLIB) -o $(EGL_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
134 -major $(EGL_MAJOR) -minor $(EGL_MINOR) \
135 -install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
136 -L$(TOP)/$(LIB_DIR) $(EGL_LIB_DEPS) \
137 $(OBJECTS) $(LOCAL_LIBS)
138
139 install-headers:
140 $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/KHR
141 $(INSTALL) -m 644 $(TOP)/include/KHR/*.h \
142 $(DESTDIR)$(INSTALL_INC_DIR)/KHR
143 $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/EGL
144 $(INSTALL) -m 644 $(TOP)/include/EGL/*.h \
145 $(DESTDIR)$(INSTALL_INC_DIR)/EGL
146
147 PKG_CONFIG_DIR = $(INSTALL_LIB_DIR)/pkgconfig
148
149 gl_pcedit = sed \
150 -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \
151 -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \
152 -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \
153 -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \
154 -e 's,@EGL_PC_REQ_PRIV@,$(EGL_PC_REQ_PRIV),' \
155 -e 's,@EGL_PC_LIB_PRIV@,$(EGL_PC_LIB_PRIV),' \
156 -e 's,@EGL_PC_CFLAGS@,$(EGL_PC_CFLAGS),' \
157 -e 's,@EGL_LIB@,$(EGL_LIB),'
158
159 egl.pc: egl.pc.in
160 $(gl_pcedit) $< > $@
161
162 install: default install-headers egl.pc
163 $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
164 $(MINSTALL) $(TOP)/$(LIB_DIR)/$(EGL_LIB_GLOB) \
165 $(DESTDIR)$(INSTALL_LIB_DIR)
166 $(INSTALL) -d $(DESTDIR)$(PKG_CONFIG_DIR)
167 $(INSTALL) -m 644 egl.pc $(DESTDIR)$(PKG_CONFIG_DIR)
168
169 clean:
170 -rm -f *.o
171 -rm -f depend depend.bak
172
173
174 depend: $(SOURCES) $(HEADERS)
175 @ echo "running $(MKDEP)"
176 @ rm -f depend
177 @ touch depend
178 $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) \
179 $(SOURCES) $(HEADERS) > /dev/null 2>/dev/null
180
181
182 -include depend
183 # DO NOT DELETE