From: Rob Clark <robdclark@gmail.com>
To: dri-devel@lists.freedesktop.org
Cc: Emil Velikov <emil.l.velikov@gmail.com>,
Rob Clark <robclark@freedesktop.org>
Subject: [PATCHv2 1/4] pipe-loader: split out "client" version
Date: Mon, 10 Feb 2014 13:34:18 -0500 [thread overview]
Message-ID: <1392057261-25942-2-git-send-email-robdclark@gmail.com> (raw)
In-Reply-To: <1392057261-25942-1-git-send-email-robdclark@gmail.com>
From: Rob Clark <robclark@freedesktop.org>
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@freedesktop.org>
---
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
next prev parent reply other threads:[~2014-02-10 18:34 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-10 18:34 [PATCHv2 0/4] enable XA for freedreno Rob Clark
2014-02-10 18:34 ` Rob Clark [this message]
2014-02-11 19:12 ` [PATCHv2 1/4] pipe-loader: split out "client" version Emil Velikov
2014-02-10 18:34 ` [PATCHv2 2/4] st/xa: use pipe-loader to get screen Rob Clark
2014-02-11 4:36 ` Emil Velikov
2014-02-11 12:08 ` Rob Clark
2014-02-11 12:38 ` Emil Velikov
2014-02-11 13:19 ` Rob Clark
2014-02-10 18:34 ` [PATCHv2 3/4] st/xa: missing handle type Rob Clark
2014-02-10 18:34 ` [PATCHv2 4/4] pipe-loader: add pipe loader for freedreno/msm Rob Clark
2014-02-11 4:30 ` Emil Velikov
2014-02-11 12:09 ` Rob Clark
2014-02-11 12:30 ` Emil Velikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1392057261-25942-2-git-send-email-robdclark@gmail.com \
--to=robdclark@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=emil.l.velikov@gmail.com \
--cc=robclark@freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.