summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon TURNEY <[email protected]>2014-05-12 10:17:06 +0100
committerJon TURNEY <[email protected]>2014-05-23 15:24:04 +0100
commit45f9aae004f7bd723c3f313ee3dd8a25aa420ffa (patch)
tree1dc94055f8be1c6bfbc8671c914cea2f0c5d1681
parentff90a8784cf22ada7bba75f90460b063818abda7 (diff)
Make DRI dependencies and build depend on the target
- Don't require xcb-dri[23] etc. if we aren't building for a target with DRM, as we won't be using dri[23] - Enable a more fine-grained control of what DRI code is built, so that a libGL using direct swrast can be built on targets which don't have DRM. The HAVE_DRI automake conditional is retired in favour of a number of other conditionals: HAVE_DRI2 enables building of code using the DRI2 interface (and possibly DRI3 with HAVE_DRI3) HAVE_DRISW enables building of DRI swrast HAVE_DRICOMMON enables building of target-independent DRI code, and also enables some makefile cases where a more detailled decision is made at a lower level. HAVE_APPLEDRI enables building of an Apple-specific direct rendering interface, still which requires additional fixing up to build properly. v2: Place xfont.c and drisw_glx.c into correct categories. Update 'make check' as well Signed-off-by: Jon TURNEY <[email protected]> Reviewed-by: Jeremy Huddleston Sequoia <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
-rw-r--r--configure.ac55
-rw-r--r--src/gallium/state_trackers/Makefile.am2
-rw-r--r--src/gallium/state_trackers/dri/Makefile.am6
-rw-r--r--src/gallium/targets/Makefile.am18
-rw-r--r--src/gallium/targets/gbm/Makefile.am2
-rw-r--r--src/gallium/targets/opencl/Makefile.am2
-rw-r--r--src/gallium/targets/xa/Makefile.am2
-rw-r--r--src/gallium/tests/trivial/Makefile.am2
-rw-r--r--src/gallium/winsys/Makefile.am2
-rw-r--r--src/gbm/Makefile.am2
-rw-r--r--src/glx/Makefile.am28
-rw-r--r--src/glx/tests/Makefile.am6
-rw-r--r--src/mesa/Makefile.am2
13 files changed, 88 insertions, 41 deletions
diff --git a/configure.ac b/configure.ac
index 675a4a67faa..b91520246bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -786,8 +786,22 @@ fi
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
"x$enable_dri" = xyes)
-AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
-AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes)
+
+# Select which platform-dependent DRI code gets built
+case "$host_os" in
+darwin*)
+ dri_platform='apple' ;;
+gnu*|mingw*|cygwin*)
+ dri_platform='none' ;;
+*)
+ dri_platform='drm' ;;
+esac
+
+AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
+AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
+AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes && test "x$dri_platform" = xdrm )
+AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes && test "x$dri_platform" = xdrm )
+AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes && test "x$dri_platform" = xapple )
AC_ARG_ENABLE([shared-glapi],
[AS_HELP_STRING([--enable-shared-glapi],
@@ -912,23 +926,30 @@ xyesyes)
xyesno)
# DRI-based GLX
PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
- if test x"$driglx_direct" = xyes; then
- if test "x$have_libdrm" != xyes; then
- AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
- fi
- PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
- GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
- if test x"$enable_dri3" = xyes; then
- PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
- PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
- fi
- fi
# find the DRI deps for libGL
- dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED xcb-dri2 >= $XCBDRI2_REQUIRED"
+ dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED"
- if test x"$enable_dri3" = xyes; then
- dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
+ if test x"$driglx_direct" = xyes; then
+ if test x"$dri_platform" = xdrm ; then
+ if test "x$have_libdrm" != xyes; then
+ AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
+ fi
+
+ PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
+ GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
+ if test x"$enable_dri3" = xyes; then
+ PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
+ PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
+ fi
+
+ if test x"$enable_dri" = xyes; then
+ dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
+ fi
+
+ if test x"$enable_dri3" = xyes; then
+ dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
+ fi
fi
# add xf86vidmode if available
@@ -2283,7 +2304,9 @@ xnono)
;;
esac
+echo ""
if test "x$enable_dri" != xno; then
+ echo " DRI platform: $dri_platform"
if test -z "$DRI_DIRS"; then
echo " DRI drivers: no"
else
diff --git a/src/gallium/state_trackers/Makefile.am b/src/gallium/state_trackers/Makefile.am
index 209856041ee..3ced6adb482 100644
--- a/src/gallium/state_trackers/Makefile.am
+++ b/src/gallium/state_trackers/Makefile.am
@@ -29,7 +29,7 @@ if HAVE_GALLIUM_OSMESA
SUBDIRS += osmesa
endif
-if HAVE_DRI
+if HAVE_DRICOMMON
SUBDIRS += dri
endif
diff --git a/src/gallium/state_trackers/dri/Makefile.am b/src/gallium/state_trackers/dri/Makefile.am
index 9428b555512..b89d02f2a2b 100644
--- a/src/gallium/state_trackers/dri/Makefile.am
+++ b/src/gallium/state_trackers/dri/Makefile.am
@@ -20,7 +20,11 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
-SUBDIRS = sw
+SUBDIRS =
+
+if HAVE_DRISW
+SUBDIRS += sw
+endif
if HAVE_LIBDRM
SUBDIRS += drm
diff --git a/src/gallium/targets/Makefile.am b/src/gallium/targets/Makefile.am
index 5023dbc3bff..36d359ce772 100644
--- a/src/gallium/targets/Makefile.am
+++ b/src/gallium/targets/Makefile.am
@@ -43,37 +43,37 @@ SUBDIRS += opencl
endif
if HAVE_GALLIUM_SVGA
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += dri-vmwgfx
endif
endif
if HAVE_GALLIUM_FREEDRENO
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += dri-freedreno
endif
endif
if HAVE_GALLIUM_I915
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += dri-i915
endif
endif
if HAVE_GALLIUM_ILO
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += dri-ilo
endif
endif
if HAVE_GALLIUM_R300
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += r300/dri
endif
endif
if HAVE_GALLIUM_R600
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += r600/dri
endif
@@ -91,7 +91,7 @@ endif
endif
if HAVE_GALLIUM_RADEONSI
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += radeonsi/dri
endif
@@ -105,7 +105,7 @@ endif
endif
if HAVE_GALLIUM_NOUVEAU
-if HAVE_DRI
+if HAVE_DRI2
SUBDIRS += dri-nouveau
endif
@@ -123,7 +123,7 @@ endif
endif
if HAVE_GALLIUM_SOFTPIPE
-if HAVE_DRI
+if HAVE_DRISW
SUBDIRS += dri-swrast
endif
endif
diff --git a/src/gallium/targets/gbm/Makefile.am b/src/gallium/targets/gbm/Makefile.am
index bfc03073b3c..ccfddacd865 100644
--- a/src/gallium/targets/gbm/Makefile.am
+++ b/src/gallium/targets/gbm/Makefile.am
@@ -51,7 +51,7 @@ gbm_gallium_drm_la_LIBADD = \
$(LIBDRM_LIBS) \
$(GALLIUM_COMMON_LIB_DEPS)
-if HAVE_DRI
+if HAVE_DRISW
gbm_gallium_drm_la_LIBADD += \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la
endif
diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am
index f8c591d6281..55a73b49ecd 100644
--- a/src/gallium/targets/opencl/Makefile.am
+++ b/src/gallium/targets/opencl/Makefile.am
@@ -35,7 +35,7 @@ lib@OPENCL_LIBNAME@_la_LIBADD = \
-lclangBasic \
$(LLVM_LIBS)
-if HAVE_DRI
+if HAVE_DRISW
lib@OPENCL_LIBNAME@_la_LIBADD += \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la
endif
diff --git a/src/gallium/targets/xa/Makefile.am b/src/gallium/targets/xa/Makefile.am
index 2619e57e142..0d3945430a1 100644
--- a/src/gallium/targets/xa/Makefile.am
+++ b/src/gallium/targets/xa/Makefile.am
@@ -48,7 +48,7 @@ libxatracker_la_LIBADD = \
$(LIBDRM_LIBS) \
$(GALLIUM_COMMON_LIB_DEPS)
-if HAVE_DRI
+if HAVE_DRISW
libxatracker_la_LIBADD += \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la
endif
diff --git a/src/gallium/tests/trivial/Makefile.am b/src/gallium/tests/trivial/Makefile.am
index d795ab164d7..8a8fad138e3 100644
--- a/src/gallium/tests/trivial/Makefile.am
+++ b/src/gallium/tests/trivial/Makefile.am
@@ -17,7 +17,7 @@ LDADD = $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(GALLIUM_COMMON_LIB_DEPS)
-if HAVE_DRI
+if HAVE_DRISW
LDADD += \
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la
endif
diff --git a/src/gallium/winsys/Makefile.am b/src/gallium/winsys/Makefile.am
index ab1acc37b4a..7d7a0b11f7a 100644
--- a/src/gallium/winsys/Makefile.am
+++ b/src/gallium/winsys/Makefile.am
@@ -26,7 +26,7 @@ if NEED_WINSYS_XLIB
SUBDIRS += sw/xlib
endif
-if HAVE_DRI
+if HAVE_DRISW
SUBDIRS += sw/dri
endif
diff --git a/src/gbm/Makefile.am b/src/gbm/Makefile.am
index f6545ee5b7d..08369f234cf 100644
--- a/src/gbm/Makefile.am
+++ b/src/gbm/Makefile.am
@@ -40,7 +40,7 @@ AM_CFLAGS += $(WAYLAND_CFLAGS)
libgbm_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la $(WAYLAND_LIBS)
endif
-if HAVE_DRI
+if HAVE_DRI2
noinst_LTLIBRARIES = libgbm_dri.la
libgbm_dri_la_SOURCES = \
backends/dri/gbm_dri.c \
diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
index 0cf65e50732..4553de01a17 100644
--- a/src/glx/Makefile.am
+++ b/src/glx/Makefile.am
@@ -82,24 +82,40 @@ libglx_la_SOURCES = \
single2.c \
singlepix.c \
vertarr.c \
- xfont.c \
glx_pbuffer.c \
glx_query.c \
- drisw_glx.c \
- dri_common.c \
+ glxhash.c
+
+if HAVE_DRISW
+libglx_la_SOURCES += \
+ drisw_glx.c
+endif
+
+if HAVE_DRICOMMON
+libglx_la_SOURCES += \
+ xfont.c \
+ dri_common.c
+endif
+
+if HAVE_DRI2
+libglx_la_SOURCES += \
dri_glx.c \
XF86dri.c \
- glxhash.c \
dri2_glx.c \
dri2.c \
- dri2_query_renderer.c \
- applegl_glx.c
+ dri2_query_renderer.c
+endif
if HAVE_DRI3
libglx_la_SOURCES += \
dri3_glx.c
endif
+if HAVE_APPLEDRI
+libglx_la_SOURCES += \
+ applegl_glx.c
+endif
+
libglx_la_LIBADD = $(top_builddir)/src/loader/libloader.la
GL_LIBS = \
diff --git a/src/glx/tests/Makefile.am b/src/glx/tests/Makefile.am
index 4dc358c3261..3599b3d55e8 100644
--- a/src/glx/tests/Makefile.am
+++ b/src/glx/tests/Makefile.am
@@ -20,9 +20,13 @@ glx_test_SOURCES = \
enum_sizes.cpp \
fake_glx_screen.cpp \
indirect_api.cpp \
- query_renderer_implementation_unittest.cpp \
query_renderer_unittest.cpp
+if HAVE_DRI2
+glx_test_SOURCES += \
+ query_renderer_implementation_unittest.cpp
+endif
+
glx_test_LDADD = \
$(top_builddir)/src/glx/libglx.la \
$(top_builddir)/src/gtest/libgtest.la \
diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
index 0fdc8f3150c..88eeff9ee50 100644
--- a/src/mesa/Makefile.am
+++ b/src/mesa/Makefile.am
@@ -25,7 +25,7 @@ if HAVE_X11_DRIVER
SUBDIRS += drivers/x11
endif
-if HAVE_DRI
+if HAVE_DRICOMMON
SUBDIRS += drivers/dri
endif