From: Rob Clark <robclark@xxxxxxxxxxxxxxx> Build two versions of pipe-loader, with only the client version linking in x11 client side dependencies. This will allow the XA state tracker to use pipe-loader. Signed-off-by: Rob Clark <robclark@xxxxxxxxxxxxxxx> --- configure.ac | 14 +++++++++++-- src/gallium/auxiliary/pipe-loader/Makefile.am | 24 ++++++++++++++++++---- src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c | 2 ++ src/gallium/targets/gbm/Makefile.am | 4 ++-- src/gallium/targets/opencl/Makefile.am | 4 ++-- src/gallium/tests/trivial/Makefile.am | 4 ++-- 6 files changed, 40 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index ba158e8..cba6301 100644 --- a/configure.ac +++ b/configure.ac @@ -1895,6 +1895,11 @@ AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes - "x$HAVE_GALLIUM_SOFTPIPE" = xyes \ && test "x$MESA_LLVM" = x1) +# NOTE: anything using xcb or other client side libs ends up in separate +# _CLIENT variables. The pipe loader is built in two variants, +# one that is standalone and does not link any x client libs (for +# use by XA tracker in particular, but could be used in any case +# where communication with xserver is not desired). if test "x$enable_gallium_loader" = xyes; then GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null" @@ -1903,13 +1908,18 @@ if test "x$enable_gallium_loader" = xyes; then PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2], pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no) if test "x$pipe_loader_have_xcb" = xyes; then - GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XCB" - GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS" + GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES -DHAVE_PIPE_LOADER_XCB" + GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS" fi fi + GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES $GALLIUM_PIPE_LOADER_DEFINES" + GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_LIBS" + AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES]) AC_SUBST([GALLIUM_PIPE_LOADER_LIBS]) + AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_DEFINES]) + AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_LIBS]) fi AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes) diff --git a/src/gallium/auxiliary/pipe-loader/Makefile.am b/src/gallium/auxiliary/pipe-loader/Makefile.am index 8e4d034..72b4798 100644 --- a/src/gallium/auxiliary/pipe-loader/Makefile.am +++ b/src/gallium/auxiliary/pipe-loader/Makefile.am @@ -1,7 +1,6 @@ AUTOMAKE_OPTIONS = subdir-objects AM_CPPFLAGS = $(DEFINES) \ - $(GALLIUM_PIPE_LOADER_DEFINES) \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src/loader \ -I$(top_srcdir)/src/gallium/include \ @@ -12,8 +11,9 @@ noinst_LTLIBRARIES = if HAVE_LOADER_GALLIUM noinst_LTLIBRARIES += libpipe_loader.la +noinst_LTLIBRARIES += libpipe_loader_client.la -libpipe_loader_la_SOURCES = \ +COMMON_SOURCES = \ pipe_loader.h \ pipe_loader_priv.h \ pipe_loader.c \ @@ -22,10 +22,26 @@ libpipe_loader_la_SOURCES = \ if HAVE_DRM_LOADER_GALLIUM AM_CFLAGS = $(LIBDRM_CFLAGS) -libpipe_loader_la_SOURCES += pipe_loader_drm.c +COMMON_SOURCES += pipe_loader_drm.c -libpipe_loader_la_LIBADD = \ +COMMON_LIBADD = \ $(top_builddir)/src/loader/libloader.la endif + +libpipe_loader_la_CFLAGS = \ + -DSTANDALONE_LOADER \ + $(GALLIUM_PIPE_LOADER_DEFINES) \ + $(AM_CFLAGS) $(AM_CPPFLAGS) +libpipe_loader_la_SOURCES = $(COMMON_SOURCES) +libpipe_loader_la_LIBADD = $(COMMON_LIBADD) \ + $(GALLIUM_PIPE_LOADER_LIBS) + +libpipe_loader_client_la_CFLAGS = \ + $(GALLIUM_PIPE_LOADER_CLIENT_DEFINES) \ + $(AM_CFLAGS) $(AM_CPPFLAGS) +libpipe_loader_client_la_SOURCES = $(COMMON_SOURCES) +libpipe_loader_client_la_LIBADD = $(COMMON_LIBADD) \ + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) + endif diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c index 95a4f84..e53e8af 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c @@ -47,7 +47,9 @@ static struct sw_winsys *(*backends[])() = { #ifdef HAVE_WINSYS_XLIB x11_sw_create, #endif +#ifndef STANDALONE_LOADER null_sw_create +#endif }; int diff --git a/src/gallium/targets/gbm/Makefile.am b/src/gallium/targets/gbm/Makefile.am index 4299d07..30a3427 100644 --- a/src/gallium/targets/gbm/Makefile.am +++ b/src/gallium/targets/gbm/Makefile.am @@ -42,8 +42,8 @@ gbm_LTLIBRARIES = gbm_gallium_drm.la gbm_gallium_drm_la_SOURCES = gbm.c gbm_gallium_drm_la_LIBADD = \ - $(GALLIUM_PIPE_LOADER_LIBS) \ - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \ + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \ + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \ $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \ $(top_builddir)/src/gallium/state_trackers/gbm/libgbm.la \ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am index 653302c..a75b49c 100644 --- a/src/gallium/targets/opencl/Makefile.am +++ b/src/gallium/targets/opencl/Makefile.am @@ -7,11 +7,11 @@ lib@OPENCL_LIBNAME@_la_LDFLAGS = \ -version-number 1:0 lib@OPENCL_LIBNAME@_la_LIBADD = \ - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \ + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \ $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \ $(top_builddir)/src/gallium/state_trackers/clover/libclover.la \ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ - $(GALLIUM_PIPE_LOADER_LIBS) $(LIBUDEV_LIBS) \ + $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) $(LIBUDEV_LIBS) \ -ldl \ -lclangCodeGen \ -lclangFrontendTool \ diff --git a/src/gallium/tests/trivial/Makefile.am b/src/gallium/tests/trivial/Makefile.am index d65eb86..65fa90d 100644 --- a/src/gallium/tests/trivial/Makefile.am +++ b/src/gallium/tests/trivial/Makefile.am @@ -11,8 +11,8 @@ AM_CPPFLAGS = \ -DPIPE_SEARCH_DIR=\"$(PIPE_SRC_DIR)/.libs\" \ $(GALLIUM_PIPE_LOADER_DEFINES) -LDADD = $(GALLIUM_PIPE_LOADER_LIBS) \ - $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \ +LDADD = $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \ + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_client.la \ $(top_builddir)/src/gallium/winsys/sw/null/libws_null.la \ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ $(LIBUDEV_LIBS) \ -- 1.8.5.3 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel