summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}