|
|
b6e7ed |
libdrm - userspace library for drm
|
|
|
b6e7ed |
----------------------------------
|
|
|
b6e7ed |
|
|
|
b6e7ed |
This is libdrm, a userspace library for accessing the DRM, direct rendering
|
|
|
b6e7ed |
manager, on Linux, BSD and other operating systems that support the ioctl
|
|
|
b6e7ed |
interface.
|
|
|
b6e7ed |
The library provides wrapper functions for the ioctls to avoid exposing the
|
|
|
b6e7ed |
kernel interface directly, and for chipsets with drm memory manager, support
|
|
|
b6e7ed |
for tracking relocations and buffers.
|
|
|
b6e7ed |
New functionality in the kernel DRM drivers typically requires a new libdrm,
|
|
|
b6e7ed |
but a new libdrm will always work with an older kernel.
|
|
|
b6e7ed |
|
|
|
b6e7ed |
libdrm is a low-level library, typically used by graphics drivers such as
|
|
|
b6e7ed |
the Mesa drivers, the X drivers, libva and similar projects.
|
|
|
b6e7ed |
|
|
|
b6e7ed |
|
|
|
b6e7ed |
Compiling
|
|
|
b6e7ed |
---------
|
|
|
b6e7ed |
|
|
|
b6e7ed |
libdrm has two build systems, a legacy autotools build system, and a newer
|
|
|
b6e7ed |
meson build system. The meson build system is much faster, and offers a
|
|
|
b6e7ed |
slightly different interface, but otherwise provides an equivalent feature set.
|
|
|
b6e7ed |
|
|
|
b6e7ed |
To use it:
|
|
|
b6e7ed |
|
|
|
b6e7ed |
meson builddir/
|
|
|
b6e7ed |
|
|
|
b6e7ed |
By default this will install into /usr/local, you can change your prefix
|
|
|
b6e7ed |
with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after
|
|
|
b6e7ed |
the initial meson setup).
|
|
|
b6e7ed |
|
|
|
b6e7ed |
Then use ninja to build and install:
|
|
|
b6e7ed |
|
|
|
b6e7ed |
ninja -C builddir/ install
|
|
|
b6e7ed |
|
|
|
b6e7ed |
If you are installing into a system location you will need to run install
|
|
|
b6e7ed |
separately, and as root.
|
|
|
b6e7ed |
|
|
|
b6e7ed |
|
|
|
b6e7ed |
Alternatively you can invoke autotools configure:
|
|
|
b6e7ed |
|
|
|
b6e7ed |
./configure
|
|
|
b6e7ed |
|
|
|
b6e7ed |
By default, libdrm will install into the /usr/local/ prefix. If you
|
|
|
b6e7ed |
want to install this DRM to replace your system copy, pass
|
|
|
b6e7ed |
--prefix=/usr and --exec-prefix=/ to configure. If you are building
|
|
|
b6e7ed |
libdrm from a git checkout, you first need to run the autogen.sh
|
|
|
b6e7ed |
script. You can pass any options to autogen.sh that you would other
|
|
|
b6e7ed |
wise pass to configure, or you can just re-run configure with the
|
|
|
b6e7ed |
options you need once autogen.sh finishes.
|
|
|
b6e7ed |
|
|
|
b6e7ed |
Next step is to build libdrm:
|
|
|
b6e7ed |
|
|
|
b6e7ed |
make
|
|
|
b6e7ed |
|
|
|
b6e7ed |
and once make finishes successfully, install the package using
|
|
|
b6e7ed |
|
|
|
b6e7ed |
make install
|
|
|
b6e7ed |
|
|
|
b6e7ed |
If you are installing into a system location, you will need to be root
|
|
|
b6e7ed |
to perform the install step.
|