summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2014-01-19 03:09:03 +0000
committerEmil Velikov <emil.l.velikov@gmail.com>2014-01-19 15:17:00 +0000
commit26d380da69d3fc3a4ced291028c105c0ac0f1a92 (patch)
tree22cc3edfd8c6def10e5dc456d7a2296ed1f52978
parenta33d1339d5bfb32377be92957a493f0e3d84b31e (diff)
loader: ifdef libdrm specific code and include
Mesa provides the flexibility of building without the need to have libdrm present on the system. The situation has regressed with the recent commit commit 8c2e7fd8460750543367053b1be9368cc38e1d6a Author: Emil Velikov <emil.l.velikov@gmail.com> Date: Fri Jan 10 23:36:16 2014 +0000 loader: introduce the loader util lib By isolating libdrm code by #ifndef __NOT_HAVE_DRM_H we can have libdrm-less builds on across all build systems. This patch converts Android's _EGL_NO_DRM to __NOT_HAVE_DRM_H to provide consistency with the other cases within mesa, allows compilation of libloader on libdrm-less scons and conditionally links against libdrm if present under automake. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73776 BUgzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73777 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--configure.ac1
-rw-r--r--src/loader/Android.mk2
-rw-r--r--src/loader/Makefile.am13
-rw-r--r--src/loader/SConscript5
-rw-r--r--src/loader/loader.c7
5 files changed, 20 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac
index 9ca6704a3e..d9e18968c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1935,6 +1935,7 @@ AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
AC_SUBST([ELF_LIB])
AM_CONDITIONAL(DRICOMMON_NEED_LIBDRM, test "x$DRICOMMON_NEED_LIBDRM" = xyes)
+AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
diff --git a/src/loader/Android.mk b/src/loader/Android.mk
index 01699dcc53..6890af4734 100644
--- a/src/loader/Android.mk
+++ b/src/loader/Android.mk
@@ -35,7 +35,7 @@ LOCAL_SRC_FILES := \
# swrast only
ifeq ($(MESA_GPU_DRIVERS),swrast)
- LOCAL_CFLAGS += -D_EGL_NO_DRM
+ LOCAL_CFLAGS += -D__NOT_HAVE_DRM_H
else
LOCAL_C_INCLUDES += \
$(DRM_TOP)/include/drm \
diff --git a/src/loader/Makefile.am b/src/loader/Makefile.am
index a118fef1d9..371dd575c0 100644
--- a/src/loader/Makefile.am
+++ b/src/loader/Makefile.am
@@ -27,11 +27,20 @@ libloader_la_CPPFLAGS = \
$(DEFINES) \
-I$(top_srcdir)/include \
$(VISIBILITY_CFLAGS) \
- $(LIBDRM_CFLAGS) \
$(LIBUDEV_CFLAGS)
libloader_la_LIBADD = \
- $(LIBDRM_LIBS) \
$(LIBUDEV_LIBS)
+if !HAVE_LIBDRM
+libloader_la_CPPFLAGS += \
+ -D__NOT_HAVE_DRM_H
+else
+libloader_la_CPPFLAGS += \
+ $(LIBDRM_CFLAGS)
+
+libloader_la_LIBADD += \
+ $(LIBDRM_LIBS)
+endif
+
libloader_la_SOURCES = $(LOADER_C_FILES)
diff --git a/src/loader/SConscript b/src/loader/SConscript
index 76b0871005..359fc1850f 100644
--- a/src/loader/SConscript
+++ b/src/loader/SConscript
@@ -1,15 +1,12 @@
Import('*')
-if not env['drm']:
- Return()
-
env = env.Clone()
env.Prepend(CPPPATH = [
'#include'
])
-env.PkgUseModules('DRM')
+env.Append(CPPDEFINES = ['__NOT_HAVE_DRM_H'])
if env['udev']:
env.PkgUseModules('UDEV')
diff --git a/src/loader/loader.c b/src/loader/loader.c
index 108e444029..6fe8c8fc45 100644
--- a/src/loader/loader.c
+++ b/src/loader/loader.c
@@ -69,7 +69,9 @@
#include <string.h>
#include "loader.h"
+#ifndef __NOT_HAVE_DRM_H
#include <xf86drm.h>
+#endif
#define __IS_LOADER
#include "pci_ids/pci_id_driver_map.h"
@@ -149,7 +151,7 @@ out:
return (*chip_id >= 0);
}
-#elif defined(ANDROID) && !defined(_EGL_NO_DRM)
+#elif defined(ANDROID) && !defined(__NOT_HAVE_DRM_H)
/* for i915 */
#include <i915_drm.h>
@@ -267,6 +269,8 @@ loader_get_driver_for_fd(int fd, unsigned driver_types)
driver_types = _LOADER_GALLIUM | _LOADER_DRI;
if (!loader_get_pci_id_for_fd(fd, &vendor_id, &chip_id)) {
+
+#ifndef __NOT_HAVE_DRM_H
/* fallback to drmGetVersion(): */
drmVersionPtr version = drmGetVersion(fd);
@@ -279,6 +283,7 @@ loader_get_driver_for_fd(int fd, unsigned driver_types)
log(_LOADER_INFO, "using driver %s for %d", driver, fd);
drmFreeVersion(version);
+#endif
return driver;
}