diff options
author | Emil Velikov <emil.l.velikov@gmail.com> | 2014-01-19 03:09:03 +0000 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2014-01-19 15:17:00 +0000 |
commit | 26d380da69d3fc3a4ced291028c105c0ac0f1a92 (patch) | |
tree | 22cc3edfd8c6def10e5dc456d7a2296ed1f52978 /src | |
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 <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>
Diffstat (limited to 'src')
-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 |
4 files changed, 19 insertions, 8 deletions
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; } |