Make the driver build and run without libdrm.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
This commit is contained in:
Thomas Hellstrom
2010-08-18 11:34:49 +02:00
parent 2e6eca3e7b
commit f51ca2cb75
3 changed files with 16 additions and 4 deletions

View File

@@ -65,7 +65,10 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto)
# Obtain compiler/linker options for the driver dependencies
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.1 xproto fontsproto $REQUIRED_MODULES])
PKG_CHECK_MODULES(DRM, [libdrm])
PKG_CHECK_MODULES(LIBDRM,
[libdrm],
[AC_DEFINE([HAVE_LIBDRM], 1, [Has libdrm])],
[echo "Will not try support for 3D or kernel modesetting."])
PKG_CHECK_EXISTS([xorg-server >= 1.1.0],
[AC_DEFINE([HAVE_XORG_SERVER_1_1_0], 1,

View File

@@ -54,8 +54,8 @@ vmwlegacy_drv_la_SOURCES = \
vmware_drv_la_LTLIBRARIES = vmware_drv.la
vmware_drv_la_LDFLAGS = -module -avoid-version
vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@
vmware_drv_la_LIBADD = @DRM_LIBS@
vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @LIBDRM_CFLAGS@
vmware_drv_la_LIBADD = @LIBDRM_LIBS@
vmware_drv_ladir = @moduledir@/drivers
vmware_drv_la_SOURCES = \

View File

@@ -25,12 +25,15 @@
#include <xorg-server.h>
#include <xf86.h>
#include <xf86drm.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_LIBDRM
#include <xf86drm.h>
#endif
/*
* Defines and exported module info.
*/
@@ -80,6 +83,7 @@ extern XF86ModuleData *VMWGFX_MODULE_DATA;
static Bool
vmware_check_kernel_module()
{
#ifdef HAVE_LIBDRM
/* Super simple way of knowing if the kernel driver is loaded */
int ret = drmOpen(VMWGFX_MODULE_NAME, NULL);
if (ret < 0) {
@@ -96,11 +100,15 @@ vmware_check_kernel_module()
drmClose(ret);
return TRUE;
#else
return FALSE;
#endif /* HAVE_LIBDRM */
}
static Bool
vmware_check_vmwgfx_driver(int matched, pointer opts)
{
#ifdef HAVE_LIBDRM
int major; int minor;
pointer module;
CARD32 version;
@@ -140,6 +148,7 @@ vmware_check_vmwgfx_driver(int matched, pointer opts)
err:
/* XXX We should drop the reference on the module here */
#endif /* HAVE_LIBDRM */
return FALSE;
}