diff options
author | Emil Velikov <[email protected]> | 2014-01-19 03:09:03 +0000 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2014-01-19 15:17:00 +0000 |
commit | 26d380da69d3fc3a4ced291028c105c0ac0f1a92 (patch) | |
tree | 22cc3edfd8c6def10e5dc456d7a2296ed1f52978 | |
parent | a33d1339d5bfb32377be92957a493f0e3d84b31e (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 <[email protected]>
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 <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/loader/Android.mk | 2 | ||||
-rw-r--r-- | src/loader/Makefile.am | 13 | ||||
-rw-r--r-- | src/loader/SConscript | 5 | ||||
-rw-r--r-- | src/loader/loader.c | 7 |
5 files changed, 20 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 9ca6704a3e1..d9e18968c99 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 01699dcc533..6890af47342 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 a118fef1d9c..371dd575c09 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 76b0871005b..359fc1850fe 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 108e4440291..6fe8c8fc453 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; } |