mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
st/egl: Reorganize targets.
Merge all targets into targets/egl/. The target produces egl_gallium_<HW>.so for each pipe driver and st_<API>.so for each client APIs. This enables us to further merge egl_gallium_<HW>.so into egl_gallium.so later.
This commit is contained in:
parent
ea05299ce5
commit
d8e0e11456
24 changed files with 240 additions and 361 deletions
22
configure.ac
22
configure.ac
|
|
@ -1292,7 +1292,7 @@ AC_SUBST([VG_LIB_DEPS])
|
|||
AC_SUBST([EGL_CLIENT_APIS])
|
||||
|
||||
if test "x$HAVE_ST_EGL" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-apis"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
|
||||
fi
|
||||
|
||||
if test "x$HAVE_ST_XORG" = xyes; then
|
||||
|
|
@ -1399,18 +1399,15 @@ dnl
|
|||
dnl Gallium helper functions
|
||||
dnl
|
||||
gallium_check_st() {
|
||||
if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_EGL" = xyes || test "x$HAVE_ST_XORG" = xyes; then
|
||||
if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
|
||||
fi
|
||||
if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
|
||||
fi
|
||||
if test "x$HAVE_ST_EGL" = xyes && test "x$3" != x; then
|
||||
if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
|
||||
fi
|
||||
if test "x$HAVE_ST_XORG" = xyes && test "x$4" != x; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1424,7 +1421,7 @@ AC_ARG_ENABLE([gallium-svga],
|
|||
[enable_gallium_svga=auto])
|
||||
if test "x$enable_gallium_svga" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
|
||||
gallium_check_st "svga/drm" "dri-vmwgfx" "egl-vmwgfx" "xorg-vmwgfx"
|
||||
gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
|
||||
elif test "x$enable_gallium_svga" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
|
||||
fi
|
||||
|
|
@ -1440,7 +1437,7 @@ AC_ARG_ENABLE([gallium-i915],
|
|||
if test "x$enable_gallium_i915" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
|
||||
gallium_check_st "i915/drm" "dri-i915" "egl-i915" "xorg-i915"
|
||||
gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
|
||||
elif test "x$enable_gallium_i915" = xauto; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
|
||||
|
|
@ -1456,7 +1453,7 @@ AC_ARG_ENABLE([gallium-i965],
|
|||
[enable_gallium_i965=auto])
|
||||
if test "x$enable_gallium_i965" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
|
||||
gallium_check_st "i965/drm" "dri-i965" "egl-i965" "xorg-i965"
|
||||
gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
|
||||
elif test "x$enable_gallium_i965" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
|
||||
fi
|
||||
|
|
@ -1471,7 +1468,7 @@ AC_ARG_ENABLE([gallium-radeon],
|
|||
[enable_gallium_radeon=auto])
|
||||
if test "x$enable_gallium_radeon" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
|
||||
gallium_check_st "radeon/drm" "dri-radeong" "egl-radeon" "xorg-radeon"
|
||||
gallium_check_st "radeon/drm" "dri-radeong" "xorg-radeon"
|
||||
elif test "x$enable_gallium_radeon" = xauto; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
|
||||
fi
|
||||
|
|
@ -1499,7 +1496,7 @@ AC_ARG_ENABLE([gallium-nouveau],
|
|||
[enable_gallium_nouveau=no])
|
||||
if test "x$enable_gallium_nouveau" = xyes; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
|
||||
gallium_check_st "nouveau/drm" "dri-nouveau" "egl-nouveau" "xorg-nouveau"
|
||||
gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
|
||||
fi
|
||||
|
||||
dnl
|
||||
|
|
@ -1514,9 +1511,6 @@ if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xau
|
|||
if test "x$HAVE_ST_DRI" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
|
||||
fi
|
||||
if test "x$HAVE_ST_EGL" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-swrast"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl prepend CORE_DIRS to SRC_DIRS
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ ALL_INCLUDES = $(common_INCLUDES) $(x11_INCLUDES) $(kms_INCLUDES) $(fbdev_INCLUD
|
|||
ALL_SOURCES = $(common_SOURCES) $(x11_SOURCES) $(kms_SOURCES) $(fbdev_SOURCES)
|
||||
|
||||
EGL_OBJECTS = $(common_OBJECTS)
|
||||
EGL_CPPFLAGS = $(common_INCLUDES)
|
||||
EGL_CPPFLAGS = $(common_INCLUDES) -DST_MODULE_PREFIX=\"st_\"
|
||||
|
||||
# add backends
|
||||
ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
|
||||
|
|
|
|||
|
|
@ -133,24 +133,24 @@ egl_g3d_init_st_apis(struct st_api *stapis[ST_API_COUNT])
|
|||
case ST_API_OPENGL:
|
||||
skip_checks[api] = "glColor4d";
|
||||
symbols[api] = ST_CREATE_OPENGL_SYMBOL;
|
||||
filenames[api][count++] = "api_GL" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = ST_MODULE_PREFIX "GL" ST_MODULE_SUFFIX;
|
||||
break;
|
||||
case ST_API_OPENGL_ES1:
|
||||
skip_checks[api] = "glColor4x";
|
||||
symbols[api] = ST_CREATE_OPENGL_ES1_SYMBOL;
|
||||
filenames[api][count++] = "api_GLESv1_CM" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = "api_GL" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = ST_MODULE_PREFIX "GLESv1_CM" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = ST_MODULE_PREFIX "GL" ST_MODULE_SUFFIX;
|
||||
break;
|
||||
case ST_API_OPENGL_ES2:
|
||||
skip_checks[api] = "glShaderBinary";
|
||||
symbols[api] = ST_CREATE_OPENGL_ES2_SYMBOL;
|
||||
filenames[api][count++] = "api_GLESv2" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = "api_GL" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = ST_MODULE_PREFIX "GLESv2" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++] = ST_MODULE_PREFIX "GL" ST_MODULE_SUFFIX;
|
||||
break;
|
||||
case ST_API_OPENVG:
|
||||
skip_checks[api] = "vgClear";
|
||||
symbols[api] = ST_CREATE_OPENVG_SYMBOL;
|
||||
filenames[api][count++]= "api_OpenVG" ST_MODULE_SUFFIX;
|
||||
filenames[api][count++]= ST_MODULE_PREFIX "OpenVG" ST_MODULE_SUFFIX;
|
||||
break;
|
||||
default:
|
||||
assert(!"Unknown API Type\n");
|
||||
|
|
|
|||
|
|
@ -1,86 +0,0 @@
|
|||
# src/gallium/winsys/drm/Makefile.egl
|
||||
|
||||
# The driver Makefile should define
|
||||
#
|
||||
# EGL_DRIVER_NAME, the name of the driver
|
||||
# EGL_DRIVER_SOURCES, the sources of the driver
|
||||
# EGL_DRIVER_LIBS, extra libraries needed by the driver
|
||||
# EGL_DRIVER_PIPES, the pipe drivers of the driver
|
||||
#
|
||||
# before including this file.
|
||||
|
||||
EGL_DRIVER_OBJECTS = $(EGL_DRIVER_SOURCES:.c=.o)
|
||||
|
||||
common_LIBS = -ldrm -lm -ldl
|
||||
common_ST = \
|
||||
$(TOP)/src/gallium/state_trackers/egl/libegl.a \
|
||||
$(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a \
|
||||
$(TOP)/src/gallium/drivers/identity/libidentity.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a
|
||||
|
||||
ifeq ($(MESA_LLVM),1)
|
||||
common_ST += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a
|
||||
common_LIBS += $(LLVM_LIBS)
|
||||
LDFLAGS += $(LLVM_LDFLAGS)
|
||||
endif
|
||||
|
||||
ifeq ($(findstring x11, $(EGL_PLATFORMS)),x11)
|
||||
common_LIBS += -lX11 -lXext -lXfixes
|
||||
common_ST += $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a
|
||||
endif
|
||||
|
||||
ifeq ($(findstring kms, $(EGL_PLATFORMS)),kms)
|
||||
endif
|
||||
|
||||
ifeq ($(findstring fbdev, $(EGL_PLATFORMS)),fbdev)
|
||||
common_ST += $(TOP)/src/gallium/winsys/sw/fbdev/libfbdev.a
|
||||
endif
|
||||
|
||||
### Include directories
|
||||
INCLUDES = \
|
||||
-I$(TOP)/include \
|
||||
-I$(TOP)/src/gallium/include \
|
||||
-I$(TOP)/src/gallium/auxiliary \
|
||||
-I$(TOP)/src/gallium/drivers \
|
||||
-I$(TOP)/src/gallium/winsys \
|
||||
-I$(TOP)/src/egl/main \
|
||||
$(LIBDRM_CFLAGS)
|
||||
|
||||
##### RULES #####
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(INCLUDES) $(CFLAGS) $(EGL_DRIVER_DEFINES) $< -o $@
|
||||
|
||||
|
||||
##### TARGETS #####
|
||||
|
||||
EGL_LIB_DIR = $(TOP)/$(LIB_DIR)/egl
|
||||
|
||||
# do not build the driver if the platform is KMS only and the driver is swrast
|
||||
ifneq ($(EGL_PLATFORMS)-$(EGL_DRIVER_NAME),kms-swrast)
|
||||
EGL_DRIVER = egl_gallium_$(EGL_DRIVER_NAME).so
|
||||
endif
|
||||
|
||||
default: $(EGL_LIB_DIR)/$(EGL_DRIVER)
|
||||
|
||||
$(EGL_LIB_DIR)/$(EGL_DRIVER): $(EGL_DRIVER)
|
||||
@$(INSTALL) -d $(EGL_LIB_DIR)
|
||||
$(INSTALL) $< $(EGL_LIB_DIR)
|
||||
|
||||
$(EGL_DRIVER): $(EGL_DRIVER_OBJECTS) $(common_ST) $(EGL_DRIVER_PIPES) $(GALLIUM_AUXILIARIES) Makefile
|
||||
$(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
|
||||
$(MKLIB_OPTIONS) $(EGL_DRIVER_OBJECTS) \
|
||||
-Wl,--start-group $(common_ST) $(EGL_DRIVER_PIPES) \
|
||||
$(GALLIUM_AUXILIARIES) -Wl,--end-group \
|
||||
$(common_LIBS) $(EGL_DRIVER_LIBS) -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB)
|
||||
|
||||
clean:
|
||||
-rm -f $(EGL_DRIVER_OBJECTS)
|
||||
-rm -f $(EGL_DRIVER)
|
||||
|
||||
install: $(EGL_LIB_DIR)/$(EGL_DRIVER)
|
||||
$(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
|
||||
$(MINSTALL) -m 755 $< $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
|
||||
|
||||
depend:
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
# src/gallium/targets/egl-apis
|
||||
|
||||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
OUTPUT_PREFIX := api_
|
||||
OUTPUT_PATH := $(TOP)/$(LIB_DIR)/egl
|
||||
|
||||
OUTPUTS := $(addsuffix .so, $(EGL_CLIENT_APIS))
|
||||
OUTPUTS := $(addprefix $(OUTPUT_PATH)/$(OUTPUT_PREFIX), $(OUTPUTS))
|
||||
|
||||
# include dirs
|
||||
GL_INCLUDES := -I$(TOP)/src/mesa -I$(TOP)/src/gallium/include
|
||||
GLESv1_CM_INCLUDES := $(GL_INCLUDES)
|
||||
GLESv2_INCLUDES := $(GL_INCLUDES)
|
||||
OpenVG_INCLUDES := -I$(TOP)/src/gallium/state_trackers/vega -I$(TOP)/src/gallium/include
|
||||
|
||||
# cflags
|
||||
GL_CFLAGS := $(API_DEFINES)
|
||||
GLESv1_CM_CFLAGS :=
|
||||
GLESv2_CFLAGS :=
|
||||
OpenVG_CFLAGS :=
|
||||
|
||||
# system libs
|
||||
GL_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLESv1_CM_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv1_CM_LIB)
|
||||
GLESv2_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv2_LIB)
|
||||
OpenVG_SYS := -lm -L$(TOP)/$(LIB_DIR) -l$(VG_LIB)
|
||||
|
||||
# $(LLVM_LIBS) will be discarded except for OpenGL, which creates a private
|
||||
# draw context for selection/feedback mode.
|
||||
ifeq ($(MESA_LLVM),1)
|
||||
GL_SYS += $(LLVM_LIBS)
|
||||
GLESv1_CM_SYS += $(LLVM_LIBS)
|
||||
GLESv2_SYS += $(LLVM_LIBS)
|
||||
OpenVG_SYS += $(LLVM_LIBS)
|
||||
LDFLAGS += $(LLVM_LDFLAGS)
|
||||
endif
|
||||
|
||||
# project libs
|
||||
GL_LIBS := $(TOP)/src/mesa/libmesagallium.a
|
||||
GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a
|
||||
GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a
|
||||
OpenVG_LIBS := $(TOP)/src/gallium/state_trackers/vega/libvega.a
|
||||
|
||||
# objects
|
||||
GL_OBJECTS := api_GL.o
|
||||
GLESv1_CM_OBJECTS := api_GLESv1_CM.o
|
||||
GLESv2_OBJECTS := api_GLESv2.o
|
||||
OpenVG_OBJECTS := api_OpenVG.o
|
||||
|
||||
default: $(OUTPUTS)
|
||||
|
||||
api_%.o: api_%.c
|
||||
$(CC) -c -o $@ $< $($*_INCLUDES) $($*_CFLAGS) $(DEFINES) $(CFLAGS)
|
||||
|
||||
define mklib
|
||||
$(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
|
||||
-install $(OUTPUT_PATH) $(MKLIB_OPTIONS) \
|
||||
$($(1)_OBJECTS) $($(1)_LIBS) $(GALLIUM_AUXILIARIES) $($(1)_SYS)
|
||||
endef
|
||||
|
||||
$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GL_LIB).so: $(GL_OBJECTS) $(GL_LIBS)
|
||||
$(call mklib,GL)
|
||||
|
||||
$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv1_CM_LIB).so: $(GLESv1_CM_OBJECTS) $(GLESv1_CM_LIBS)
|
||||
$(call mklib,GLESv1_CM)
|
||||
|
||||
$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(GLESv2_LIB).so: $(GLESv2_OBJECTS) $(GLESv2_LIBS)
|
||||
$(call mklib,GLESv2)
|
||||
|
||||
$(OUTPUT_PATH)/$(OUTPUT_PREFIX)$(VG_LIB).so: $(OpenVG_OBJECTS) $(OpenVG_LIBS)
|
||||
$(call mklib,OpenVG)
|
||||
|
||||
install: $(OUTPUTS)
|
||||
$(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
|
||||
for out in $(OUTPUTS); do \
|
||||
$(MINSTALL) -m 755 "$$out" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \
|
||||
done
|
||||
|
||||
clean:
|
||||
-rm -f $(OUTPUTS)
|
||||
-rm -f *.o
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER_NAME = i915
|
||||
EGL_DRIVER_SOURCES = target.c
|
||||
EGL_DRIVER_LIBS = -ldrm_intel
|
||||
|
||||
EGL_DRIVER_DEFINES = \
|
||||
-DGALLIUM_RBUG -DGALLIUM_TRACE -DGALLIUM_GALAHAD
|
||||
|
||||
EGL_DRIVER_PIPES = \
|
||||
$(TOP)/src/gallium/winsys/i915/drm/libi915drm.a \
|
||||
$(TOP)/src/gallium/drivers/galahad/libgalahad.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(TOP)/src/gallium/drivers/i915/libi915.a
|
||||
|
||||
include ../Makefile.egl
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
|
||||
#include "state_tracker/drm_driver.h"
|
||||
#include "target-helpers/inline_debug_helper.h"
|
||||
#include "i915/drm/i915_drm_public.h"
|
||||
#include "i915/i915_public.h"
|
||||
|
||||
static struct pipe_screen *
|
||||
create_screen(int fd)
|
||||
{
|
||||
struct i915_winsys *iws;
|
||||
struct pipe_screen *screen;
|
||||
|
||||
iws = i915_drm_winsys_create(fd);
|
||||
if (!iws)
|
||||
return NULL;
|
||||
|
||||
screen = i915_screen_create(iws);
|
||||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
screen = debug_screen_wrap(screen);
|
||||
|
||||
return screen;
|
||||
}
|
||||
|
||||
DRM_DRIVER_DESCRIPTOR("i915", "i915", create_screen)
|
||||
|
||||
/* A poor man's --whole-archive for EGL drivers */
|
||||
void *_eglMain(void *);
|
||||
void *_eglWholeArchive = (void *) _eglMain;
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER_NAME = i965
|
||||
EGL_DRIVER_SOURCES = target.c
|
||||
EGL_DRIVER_LIBS = -ldrm_intel
|
||||
|
||||
EGL_DRIVER_DEFINES = \
|
||||
-DGALLIUM_SOFTPIPE -DGALLIUM_RBUG -DGALLIUM_TRACE
|
||||
|
||||
EGL_DRIVER_PIPES = \
|
||||
$(TOP)/src/gallium/winsys/i965/drm/libi965drm.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(TOP)/src/gallium/drivers/i965/libi965.a \
|
||||
$(TOP)/src/gallium/winsys/sw/wrapper/libwsw.a \
|
||||
$(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a
|
||||
|
||||
include ../Makefile.egl
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER_NAME = nouveau
|
||||
EGL_DRIVER_SOURCES = target.c
|
||||
EGL_DRIVER_LIBS = -ldrm_nouveau
|
||||
|
||||
EGL_DRIVER_DEFINES = \
|
||||
-DGALLIUM_RBUG -DGALLIUM_TRACE
|
||||
|
||||
EGL_DRIVER_PIPES = \
|
||||
$(TOP)/src/gallium/winsys/nouveau/drm/libnouveaudrm.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(TOP)/src/gallium/drivers/nvfx/libnvfx.a \
|
||||
$(TOP)/src/gallium/drivers/nv50/libnv50.a \
|
||||
$(TOP)/src/gallium/drivers/nouveau/libnouveau.a
|
||||
|
||||
include ../Makefile.egl
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER_NAME = radeon
|
||||
EGL_DRIVER_SOURCES = target.c
|
||||
EGL_DRIVER_LIBS = -ldrm_radeon
|
||||
|
||||
EGL_DRIVER_DEFINES = \
|
||||
-DGALLIUM_RBUG -DGALLIUM_TRACE -DGALLIUM_GALAHAD
|
||||
|
||||
EGL_DRIVER_PIPES = \
|
||||
$(TOP)/src/gallium/winsys/radeon/drm/libradeonwinsys.a \
|
||||
$(TOP)/src/gallium/drivers/galahad/libgalahad.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(TOP)/src/gallium/drivers/r300/libr300.a
|
||||
|
||||
include ../Makefile.egl
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
# Do propperly
|
||||
CFLAGS+="-I$(TOP)/src/gallium/include"
|
||||
|
||||
EGL_DRIVER_NAME = swrast
|
||||
EGL_DRIVER_SOURCES = swrast_glue.c
|
||||
EGL_DRIVER_LIBS =
|
||||
EGL_DRIVER_PIPES =
|
||||
|
||||
include ../Makefile.egl
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#######################################################################
|
||||
# SConscript for egl-swrast target
|
||||
|
||||
Import('*')
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(LIBS = [
|
||||
'gdi32',
|
||||
'user32',
|
||||
'kernel32',
|
||||
'ws2_32',
|
||||
])
|
||||
|
||||
drivers = [softpipe]
|
||||
if env['llvm']:
|
||||
drivers += [llvmpipe]
|
||||
drivers += [identity, trace, rbug]
|
||||
|
||||
env['no_import_lib'] = 1
|
||||
|
||||
egl_gdi_swrast = env.SharedLibrary(
|
||||
target ='egl_gdi_swrast',
|
||||
source = 'swrast_glue.c',
|
||||
LIBS = st_egl_gdi + ws_gdi + drivers + gallium + egl + env['LIBS'],
|
||||
)
|
||||
|
||||
env.InstallSharedLibrary(egl_gdi_swrast)
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
EGL_DRIVER_NAME = vmwgfx
|
||||
EGL_DRIVER_SOURCES = target.c
|
||||
EGL_DRIVER_LIBS =
|
||||
|
||||
EGL_DRIVER_DEFINES = \
|
||||
-DGALLIUM_RBUG -DGALLIUM_TRACE
|
||||
|
||||
EGL_DRIVER_PIPES = \
|
||||
$(TOP)/src/gallium/winsys/svga/drm/libsvgadrm.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(TOP)/src/gallium/drivers/svga/libsvga.a
|
||||
|
||||
include ../Makefile.egl
|
||||
208
src/gallium/targets/egl/Makefile
Normal file
208
src/gallium/targets/egl/Makefile
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
# src/gallium/targets/egl/Makefile
|
||||
#
|
||||
# This is the Makefile for EGL Gallium driver package. The package consists of
|
||||
#
|
||||
# egl_gallium_<HW>.so - EGL drivers
|
||||
# st_<API>.so - client API state trackers
|
||||
#
|
||||
# The following variables are examined
|
||||
#
|
||||
# EGL_PLATFORMS - platforms to support
|
||||
# GALLIUM_WINSYS_DIRS - pipe drivers to support
|
||||
# EGL_CLIENT_APIS - state trackers to support
|
||||
#
|
||||
|
||||
TOP = ../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
common_CPPFLAGS := \
|
||||
-I$(TOP)/src/gallium/auxiliary \
|
||||
-I$(TOP)/src/gallium/drivers \
|
||||
-I$(TOP)/src/gallium/include \
|
||||
-I$(TOP)/src/gallium/winsys
|
||||
common_SYS :=
|
||||
common_LIBS := \
|
||||
$(TOP)/src/gallium/drivers/identity/libidentity.a \
|
||||
$(TOP)/src/gallium/drivers/trace/libtrace.a \
|
||||
$(TOP)/src/gallium/drivers/rbug/librbug.a \
|
||||
$(GALLIUM_AUXILIARIES)
|
||||
|
||||
# EGL driver
|
||||
egl_CPPFLAGS := \
|
||||
-I$(TOP)/src/gallium/state_trackers/egl \
|
||||
-I$(TOP)/src/egl/main
|
||||
egl_SYS := -lm -ldl -lEGL
|
||||
egl_LIBS := \
|
||||
$(TOP)/src/gallium/state_trackers/egl/libegl.a \
|
||||
$(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a
|
||||
|
||||
ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
|
||||
egl_SYS += -lX11 -lXext -lXfixes
|
||||
egl_LIBS += $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a
|
||||
endif
|
||||
ifneq ($(findstring kms, $(EGL_PLATFORMS)),)
|
||||
egl_SYS += -ldrm
|
||||
endif
|
||||
ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
|
||||
egl_LIBS += $(TOP)/src/gallium/winsys/sw/fbdev/libfbdev.a
|
||||
endif
|
||||
|
||||
# LLVM
|
||||
ifeq ($(MESA_LLVM),1)
|
||||
common_SYS += $(LLVM_LIBS)
|
||||
egl_LIBS += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a
|
||||
LDFLAGS += $(LLVM_LDFLAGS)
|
||||
endif
|
||||
|
||||
# i915 pipe driver
|
||||
i915_CPPFLAGS :=
|
||||
i915_SYS := -ldrm_intel
|
||||
i915_LIBS := \
|
||||
$(TOP)/src/gallium/winsys/i915/drm/libi915drm.a \
|
||||
$(TOP)/src/gallium/drivers/i915/libi915.a
|
||||
|
||||
# i965 pipe driver
|
||||
i965_CPPFLAGS :=
|
||||
i965_SYS := -ldrm_intel
|
||||
i965_LIBS := \
|
||||
$(TOP)/src/gallium/winsys/i965/drm/libi965drm.a \
|
||||
$(TOP)/src/gallium/drivers/i965/libi965.a
|
||||
|
||||
# nouveau pipe driver
|
||||
nouveau_CPPFLAGS :=
|
||||
nouveau_SYS := -ldrm_nouveau
|
||||
nouveau_LIBS := \
|
||||
$(TOP)/src/gallium/winsys/nouveau/drm/libnouveaudrm.a \
|
||||
$(TOP)/src/gallium/drivers/nvfx/libnvfx.a \
|
||||
$(TOP)/src/gallium/drivers/nv50/libnv50.a \
|
||||
$(TOP)/src/gallium/drivers/nouveau/libnouveau.a
|
||||
|
||||
# radeon pipe driver
|
||||
radeon_CPPFLAGS :=
|
||||
radeon_SYS := -ldrm -ldrm_radeon
|
||||
radeon_LIBS := \
|
||||
$(TOP)/src/gallium/winsys/radeon/drm/libradeonwinsys.a \
|
||||
$(TOP)/src/gallium/drivers/r300/libr300.a
|
||||
|
||||
# vmwgfx pipe driver
|
||||
vmwgfx_CPPFLAGS :=
|
||||
vmwgfx_SYS :=
|
||||
vmwgfx_LIBS := \
|
||||
$(TOP)/src/gallium/winsys/svga/drm/libsvgadrm.a \
|
||||
$(TOP)/src/gallium/drivers/svga/libsvga.a
|
||||
|
||||
# swrast (pseudo) pipe driver
|
||||
swrast_CPPFLAGS :=
|
||||
swrast_SYS :=
|
||||
swrast_LIBS :=
|
||||
|
||||
# OpenGL state tracker
|
||||
GL_CPPFLAGS := -I$(TOP)/src/mesa $(API_DEFINES)
|
||||
GL_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GL_LIBS := $(TOP)/src/mesa/libmesagallium.a
|
||||
|
||||
# OpenGL ES 1.x state tracker
|
||||
GLESv1_CM_CPPFLAGS := -I$(TOP)/src/mesa
|
||||
GLESv1_CM_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv1_CM_LIB)
|
||||
GLESv1_CM_LIBS := $(TOP)/src/mesa/libes1gallium.a
|
||||
|
||||
# OpenGL ES 2.x state tracker
|
||||
GLESv2_CPPFLAGS := -I$(TOP)/src/mesa
|
||||
GLESv2_SYS := -lpthread -lm -L$(TOP)/$(LIB_DIR) -l$(GLESv2_LIB)
|
||||
GLESv2_LIBS := $(TOP)/src/mesa/libes2gallium.a
|
||||
|
||||
# OpenVG state tracker
|
||||
OpenVG_CPPFLAGS := -I$(TOP)/src/gallium/state_trackers/vega
|
||||
OpenVG_SYS := -lm -L$(TOP)/$(LIB_DIR) -l$(VG_LIB)
|
||||
OpenVG_LIBS := $(TOP)/src/gallium/state_trackers/vega/libvega.a
|
||||
|
||||
|
||||
OUTPUT_PATH := $(TOP)/$(LIB_DIR)/egl
|
||||
|
||||
# determine the outputs
|
||||
ifneq ($(findstring i915,$(GALLIUM_WINSYS_DIRS)),)
|
||||
OUTPUTS += i915
|
||||
endif
|
||||
ifneq ($(findstring i965,$(GALLIUM_WINSYS_DIRS)),)
|
||||
OUTPUTS += i965
|
||||
endif
|
||||
ifneq ($(findstring nouveau,$(GALLIUM_WINSYS_DIRS)),)
|
||||
OUTPUTS += nouveau
|
||||
endif
|
||||
ifneq ($(findstring r300,$(GALLIUM_WINSYS_DIRS)),)
|
||||
OUTPUTS += radeon
|
||||
endif
|
||||
ifneq ($(findstring svga,$(GALLIUM_WINSYS_DIRS)),)
|
||||
OUTPUTS += vmwgfx
|
||||
endif
|
||||
OUTPUTS += swrast
|
||||
OUTPUTS := $(addprefix egl_gallium_, $(OUTPUTS))
|
||||
|
||||
# state trackers
|
||||
OUTPUTS += $(addprefix st_, $(EGL_CLIENT_APIS))
|
||||
|
||||
OUTPUTS := $(addsuffix .so, $(OUTPUTS))
|
||||
OUTPUTS := $(addprefix $(OUTPUT_PATH)/, $(OUTPUTS))
|
||||
|
||||
default: $(OUTPUTS)
|
||||
|
||||
define mklib-egl
|
||||
$(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
|
||||
-install $(OUTPUT_PATH) $(MKLIB_OPTIONS) $< \
|
||||
-Wl,--start-group $(common_LIBS) $(egl_LIBS) $($(1)_LIBS) -Wl,--end-group \
|
||||
$(common_SYS) $(egl_SYS) $($(1)_SYS)
|
||||
endef
|
||||
|
||||
define mklib
|
||||
$(MKLIB) -o $(notdir $@) -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
|
||||
-install $(OUTPUT_PATH) $(MKLIB_OPTIONS) $< \
|
||||
-Wl,--start-group $(common_LIBS) $($(1)_LIBS) -Wl,--end-group \
|
||||
$(common_SYS) $($(1)_SYS)
|
||||
endef
|
||||
|
||||
# EGL drivers
|
||||
$(OUTPUT_PATH)/egl_gallium_i915.so: pipe_i915.o $(egl_LIBS) $(i915_LIBS)
|
||||
$(call mklib-egl,i915)
|
||||
|
||||
$(OUTPUT_PATH)/egl_gallium_i965.so: pipe_i965.o $(egl_LIBS) $(i965_LIBS)
|
||||
$(call mklib-egl,i965)
|
||||
|
||||
$(OUTPUT_PATH)/egl_gallium_nouveau.so: pipe_nouveau.o $(egl_LIBS) $(nouveau_LIBS)
|
||||
$(call mklib-egl,nouveau)
|
||||
|
||||
$(OUTPUT_PATH)/egl_gallium_radeon.so: pipe_radeon.o $(egl_LIBS) $(radeon_LIBS)
|
||||
$(call mklib-egl,radeon)
|
||||
|
||||
$(OUTPUT_PATH)/egl_gallium_vmwgfx.so: pipe_vmwgfx.o $(egl_LIBS) $(vmwgfx_LIBS)
|
||||
$(call mklib-egl,vmwgfx)
|
||||
|
||||
$(OUTPUT_PATH)/egl_gallium_swrast.so: pipe_swrast.o $(egl_LIBS) $(swrast_LIBS)
|
||||
$(call mklib-egl,swrast)
|
||||
|
||||
# state trackers
|
||||
$(OUTPUT_PATH)/st_$(GL_LIB).so: st_GL.o $(GL_LIBS)
|
||||
$(call mklib,GL)
|
||||
|
||||
$(OUTPUT_PATH)/st_$(GLESv1_CM_LIB).so: st_GLESv1_CM.o $(GLESv1_CM_LIBS)
|
||||
$(call mklib,GLESv1_CM)
|
||||
|
||||
$(OUTPUT_PATH)/st_$(GLESv2_LIB).so: st_GLESv2.o $(GLESv2_LIBS)
|
||||
$(call mklib,GLESv2)
|
||||
|
||||
$(OUTPUT_PATH)/st_$(VG_LIB).so: st_OpenVG.o $(OpenVG_LIBS)
|
||||
$(call mklib,OpenVG)
|
||||
|
||||
pipe_%.o: pipe_%.c
|
||||
$(CC) -c -o $@ $< $(common_CPPFLAGS) $($*_CPPFLAGS) $(DEFINES) $(CFLAGS)
|
||||
|
||||
st_%.o: st_%.c
|
||||
$(CC) -c -o $@ $< $(common_CPPFLAGS) $($*_CPPFLAGS) $(DEFINES) $(CFLAGS)
|
||||
|
||||
install: $(OUTPUTS)
|
||||
$(INSTALL) -d $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR)
|
||||
for out in $(OUTPUTS); do \
|
||||
$(MINSTALL) -m 755 "$$out" $(DESTDIR)$(EGL_DRIVER_INSTALL_DIR); \
|
||||
done
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
|
|
@ -20,14 +20,27 @@ if env['platform'] == 'windows':
|
|||
|
||||
env['no_import_lib'] = 1
|
||||
|
||||
drivers = [softpipe]
|
||||
if env['llvm']:
|
||||
drivers += [llvmpipe]
|
||||
drivers += [identity, trace, rbug]
|
||||
|
||||
egl_gallium_swrast = env.SharedLibrary(
|
||||
target ='egl_gallium_swrast',
|
||||
source = 'pipe_swrast.c',
|
||||
LIBS = st_egl_gdi + ws_gdi + drivers + gallium + egl + env['LIBS'],
|
||||
)
|
||||
|
||||
env.InstallSharedLibrary(egl_gallium_swrast)
|
||||
|
||||
api_libs = {
|
||||
'OpenVG': vgapi + st_vega,
|
||||
}
|
||||
|
||||
for name in api_libs.keys():
|
||||
api = env.SharedLibrary(
|
||||
target = 'api_' + name,
|
||||
source = ['api_' + name + '.c'],
|
||||
target = 'st_' + name,
|
||||
source = ['st_' + name + '.c'],
|
||||
LIBS = api_libs[name] + gallium + env['LIBS'],
|
||||
)
|
||||
env.InstallSharedLibrary(api)
|
||||
|
|
@ -27,7 +27,7 @@ create_screen(int fd)
|
|||
return screen;
|
||||
}
|
||||
|
||||
DRM_DRIVER_DESCRIPTOR("i915", "i965", create_screen)
|
||||
DRM_DRIVER_DESCRIPTOR("i965", "i965", create_screen)
|
||||
|
||||
/* A poor man's --whole-archive for EGL drivers */
|
||||
void *_eglMain(void *);
|
||||
|
|
@ -1,11 +1,7 @@
|
|||
|
||||
#include "state_tracker/drm_driver.h"
|
||||
|
||||
struct drm_driver_descriptor drm_driver = {
|
||||
.name = "swrast",
|
||||
.driver_name = NULL,
|
||||
.create_screen = NULL,
|
||||
};
|
||||
DRM_DRIVER_DESCRIPTOR("swrast", NULL, NULL)
|
||||
|
||||
/* A poor man's --whole-archive for EGL drivers */
|
||||
void *_eglMain(void *);
|
||||
Loading…
Add table
Reference in a new issue