1 # src/gallium/targets/egl/Makefile
3 # This is the Makefile for EGL Gallium driver package. The package consists of
5 # egl_gallium.so - EGL driver
6 # pipe_<HW>.so - pipe drivers
7 # st_<API>.so - client API state trackers
9 # The following variables are examined
11 # EGL_PLATFORMS - platforms to support
12 # GALLIUM_WINSYS_DIRS - pipe drivers to support
13 # EGL_CLIENT_APIS - state trackers to support
17 include $(TOP
)/configs
/current
24 -I
$(TOP
)/src
/gallium
/auxiliary \
25 -I
$(TOP
)/src
/gallium
/drivers \
26 -I
$(TOP
)/src
/gallium
/include \
27 -I
$(TOP
)/src
/gallium
/winsys
30 $(TOP
)/src
/gallium
/drivers
/identity
/libidentity.a \
31 $(TOP
)/src
/gallium
/drivers
/trace
/libtrace.a \
32 $(TOP
)/src
/gallium
/drivers
/rbug
/librbug.a \
33 $(GALLIUM_AUXILIARIES
)
37 -I
$(TOP
)/src
/gallium
/state_trackers
/egl \
38 -I
$(TOP
)/src
/egl
/main \
39 -DPIPE_PREFIX
=\"$(PIPE_PREFIX
)\" -DST_PREFIX
=\"$(ST_PREFIX
)\"
40 egl_SYS
:= -lm
-ldl
-L
$(TOP
)/$(LIB_DIR
) -lEGL
41 egl_LIBS
:= $(TOP
)/src
/gallium
/state_trackers
/egl
/libegl.a
43 ifneq ($(findstring x11
, $(EGL_PLATFORMS
)),)
44 egl_SYS
+= -lX11
-lXext
-lXfixes
45 egl_LIBS
+= $(TOP
)/src
/gallium
/winsys
/sw
/xlib
/libws_xlib.a
47 ifneq ($(findstring kms
, $(EGL_PLATFORMS
)),)
50 ifneq ($(findstring fbdev
, $(EGL_PLATFORMS
)),)
51 egl_LIBS
+= $(TOP
)/src
/gallium
/winsys
/sw
/fbdev
/libfbdev.a
54 # EGL_RENDERABLE_TYPE is a compile time attribute
55 egl_CPPFLAGS
+= $(API_DEFINES
)
56 ifneq ($(filter $(GL_LIB
), $(EGL_CLIENT_APIS
)),)
57 egl_CPPFLAGS
+= -DFEATURE_GL
=1
59 ifneq ($(filter $(GLESv1_CM_LIB
), $(EGL_CLIENT_APIS
)),)
60 egl_CPPFLAGS
+= -DFEATURE_ES1
=1
62 ifneq ($(filter $(GLESv2_LIB
), $(EGL_CLIENT_APIS
)),)
63 egl_CPPFLAGS
+= -DFEATURE_ES2
=1
65 ifneq ($(filter $(VG_LIB
), $(EGL_CLIENT_APIS
)),)
66 egl_CPPFLAGS
+= -DFEATURE_VG
=1
68 egl_CPPFLAGS
:= $(sort $(egl_CPPFLAGS
))
72 i915_SYS
:= -ldrm_intel
74 $(TOP
)/src
/gallium
/winsys
/i915
/drm
/libi915drm.a \
75 $(TOP
)/src
/gallium
/drivers
/i915
/libi915.a
79 i965_SYS
:= -ldrm_intel
81 $(TOP
)/src
/gallium
/winsys
/i965
/drm
/libi965drm.a \
82 $(TOP
)/src
/gallium
/drivers
/i965
/libi965.a
86 nouveau_SYS
:= -ldrm_nouveau
88 $(TOP
)/src
/gallium
/winsys
/nouveau
/drm
/libnouveaudrm.a \
89 $(TOP
)/src
/gallium
/drivers
/nvfx
/libnvfx.a \
90 $(TOP
)/src
/gallium
/drivers
/nv50
/libnv50.a \
91 $(TOP
)/src
/gallium
/drivers
/nouveau
/libnouveau.a
95 radeon_SYS
:= -ldrm
-ldrm_radeon
97 $(TOP
)/src
/gallium
/winsys
/radeon
/drm
/libradeonwinsys.a \
98 $(TOP
)/src
/gallium
/drivers
/r300
/libr300.a
104 $(TOP
)/src
/gallium
/winsys
/svga
/drm
/libsvgadrm.a \
105 $(TOP
)/src
/gallium
/drivers
/svga
/libsvga.a
107 # swrast (pseudo) pipe driver
108 swrast_CPPFLAGS
:= -DGALLIUM_SOFTPIPE
-DGALLIUM_RBUG
-DGALLIUM_TRACE
110 swrast_LIBS
:= $(TOP
)/src
/gallium
/drivers
/softpipe
/libsoftpipe.a
113 ifeq ($(MESA_LLVM
),1)
114 common_SYS
+= $(LLVM_LIBS
)
115 swrast_CPPFLAGS
+= -DGALLIUM_LLVMPIPE
116 swrast_LIBS
+= $(TOP
)/src
/gallium
/drivers
/llvmpipe
/libllvmpipe.a
117 LDFLAGS
+= $(LLVM_LDFLAGS
)
120 # OpenGL state tracker
121 GL_CPPFLAGS
:= -I
$(TOP
)/src
/mesa
$(API_DEFINES
)
122 GL_SYS
:= -lpthread
-lm
-L
$(TOP
)/$(LIB_DIR
) -l
$(GL_LIB
)
123 GL_LIBS
:= $(TOP
)/src
/mesa
/libmesagallium.a
125 # OpenGL ES 1.x state tracker
126 GLESv1_CM_CPPFLAGS
:= -I
$(TOP
)/src
/mesa
127 GLESv1_CM_SYS
:= -lpthread
-lm
-L
$(TOP
)/$(LIB_DIR
) -l
$(GLESv1_CM_LIB
)
128 GLESv1_CM_LIBS
:= $(TOP
)/src
/mesa
/libes1gallium.a
130 # OpenGL ES 2.x state tracker
131 GLESv2_CPPFLAGS
:= -I
$(TOP
)/src
/mesa
132 GLESv2_SYS
:= -lpthread
-lm
-L
$(TOP
)/$(LIB_DIR
) -l
$(GLESv2_LIB
)
133 GLESv2_LIBS
:= $(TOP
)/src
/mesa
/libes2gallium.a
135 # OpenVG state tracker
136 OpenVG_CPPFLAGS
:= -I
$(TOP
)/src
/gallium
/state_trackers
/vega
137 OpenVG_SYS
:= -lm
-L
$(TOP
)/$(LIB_DIR
) -l
$(VG_LIB
)
138 OpenVG_LIBS
:= $(TOP
)/src
/gallium
/state_trackers
/vega
/libvega.a
141 OUTPUT_PATH
:= $(TOP
)/$(LIB_DIR
)/egl
143 # determine the outputs
144 ifneq ($(findstring i915
,$(GALLIUM_WINSYS_DIRS
)),)
147 ifneq ($(findstring i965
,$(GALLIUM_WINSYS_DIRS
)),)
150 ifneq ($(findstring nouveau
,$(GALLIUM_WINSYS_DIRS
)),)
153 ifneq ($(findstring r300
,$(GALLIUM_WINSYS_DIRS
)),)
156 ifneq ($(findstring svga
,$(GALLIUM_WINSYS_DIRS
)),)
160 OUTPUTS
:= $(addprefix $(PIPE_PREFIX
), $(OUTPUTS
))
162 # EGL driver and state trackers
163 OUTPUTS
+= egl_gallium
$(addprefix $(ST_PREFIX
), $(EGL_CLIENT_APIS
))
165 OUTPUTS
:= $(addsuffix .so
, $(OUTPUTS
))
166 OUTPUTS
:= $(addprefix $(OUTPUT_PATH
)/, $(OUTPUTS
))
171 $(MKLIB
) -o
$(notdir $@
) -noprefix
-linker
'$(CC)' -ldflags '$(LDFLAGS)' \
172 -install $(OUTPUT_PATH
) $(MKLIB_OPTIONS
) $< \
173 -Wl
,--start-group
$(common_LIBS
) $($(1)_LIBS
) -Wl
,--end-group \
174 $(common_SYS
) $($(1)_SYS
)
178 $(OUTPUT_PATH
)/egl_gallium.so
: egl.o
$(egl_LIBS
)
182 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)i915.so
: pipe_i915.o
$(i915_LIBS
)
185 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)i965.so
: pipe_i965.o
$(i965_LIBS
)
188 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)nouveau.so
: pipe_nouveau.o
$(nouveau_LIBS
)
189 $(call mklib
,nouveau
)
191 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)radeon.so
: pipe_radeon.o
$(radeon_LIBS
)
194 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)vmwgfx.so
: pipe_vmwgfx.o
$(vmwgfx_LIBS
)
197 $(OUTPUT_PATH
)/$(PIPE_PREFIX
)swrast.so
: pipe_swrast.o
$(swrast_LIBS
)
201 $(OUTPUT_PATH
)/$(ST_PREFIX
)$(GL_LIB
).so
: st_GL.o
$(GL_LIBS
)
204 $(OUTPUT_PATH
)/$(ST_PREFIX
)$(GLESv1_CM_LIB
).so
: st_GLESv1_CM.o
$(GLESv1_CM_LIBS
)
205 $(call mklib
,GLESv1_CM
)
207 $(OUTPUT_PATH
)/$(ST_PREFIX
)$(GLESv2_LIB
).so
: st_GLESv2.o
$(GLESv2_LIBS
)
210 $(OUTPUT_PATH
)/$(ST_PREFIX
)$(VG_LIB
).so
: st_OpenVG.o
$(OpenVG_LIBS
)
214 $(CC
) -c
-o
$@
$< $(common_CPPFLAGS
) $(egl_CPPFLAGS
) $(DEFINES
) $(CFLAGS
)
217 $(CC
) -c
-o
$@
$< $(common_CPPFLAGS
) $($*_CPPFLAGS
) $(DEFINES
) $(CFLAGS
)
220 $(CC
) -c
-o
$@
$< $(common_CPPFLAGS
) $($*_CPPFLAGS
) $(DEFINES
) $(CFLAGS
)
223 $(INSTALL
) -d
$(DESTDIR
)$(EGL_DRIVER_INSTALL_DIR
)
224 for out in
$(OUTPUTS
); do \
225 $(MINSTALL
) -m
755 "$$out" $(DESTDIR
)$(EGL_DRIVER_INSTALL_DIR
); \