Compiling and Installing
-
@@ -15,9 +22,10 @@
- General prerequisites
- For DRI and hardware acceleration +
- Building with meson
- Building with autoconf (Linux/Unix/X11)
- Building with SCons (Windows/Linux) -
- Building for other systems +
- Building with AOSP (Android)
- Library Information
- Building OpenGL programs with pkg-config
1. Prerequisites for building
1.1 General
+ ++Build system. +
+-
-
- lex / yacc - for building the GLSL compiler.
-On Linux systems, flex and bison are used.
-Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
-
-
-On Windows with MinGW, install flex and bison with: -mingw-get install msys-flex msys-bison
+ - meson is recommended when building on *nix platforms. +
- Autoconf is another option when building on *nix platforms. +
- SCons is required for building on +Windows and optional for Linux (it's an alternative to autoconf/automake or meson.) -
- python - Python is needed for building the Gallium components.
-Version 2.6.4 or later should work.
-
-
-To build OpenGL ES 1.1 and 2.0 you'll also need -libxml2-python. + - Android Build system when building as native Android component. Autoconf +is used when when building ARC.
1.2 For DRI and hardware acceleration
++The following compilers are known to work, if you know of others or you're +willing to maintain support for other compiler get in touch. +
+ +-
+
- GCC 4.2.0 or later (some parts of Mesa may require later versions) +
- clang - exact minimum requirement is currently unknown. +
- Microsoft Visual Studio 2015 or later is required, for building on Windows. +
-The following are required for DRI-based hardware acceleration with Mesa:
+Third party/extra tools.
+
+Note: These should not be required, when building from a release tarball. If
+you think you've spotted a bug let developers know by filing a
+bug report.
-
-
- dri2proto version 2.6 or later -
- libDRM -version 2.4.33 or later -
- Xorg server version 1.5 or later -
- Linux 2.6.28 or later +
- Python - Python is required. +When building with scons 2.7 is required. +When building with meson 3.5 or newer is required. +When building with autotools 2.7, or 3.5 or later are required. + +
- Python Mako module - +Python Mako module is required. Version 0.8.0 or later should work. + +
- lex / yacc - for building the Mesa IR and GLSL compiler.
++On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively, +(or later) should work. +On Windows with MinGW, install flex and bison with: +
mingw-get install msys-flex msys-bison
+For MSVC on Windows, install +Win flex-bison. +
Note: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.
+ + +1.2 Requirements
+ ++The requirements depends on the features selected at configure stage. +Check/install the respective -devel package as prompted by the configure error +message. +
+-If you're using a fedora distro the following command should install all -the needed dependencies: +Here are some common ways to retrieve most/all of the dependencies based on +the packaging tool used by your distro.
+- sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \ - gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \ - expat-devel llvm-devel + zypper source-install --build-deps-only Mesa # openSUSE/SLED/SLES + yum-builddep mesa # yum Fedora, OpenSuse(?) + dnf builddep mesa # dnf Fedora + apt-get build-dep mesa # Debian and derivatives + ... # others+
2. Building with meson
+ ++Meson is the latest build system in mesa, it is currently able to build for +*nix systems like Linux and BSD, and will be able to build for windows as well. +
++The general approach is: +
++ meson builddir/ + ninja -C builddir/ + sudo ninja -C builddir/ install ++
+Please read the detailed meson instructions +for more information +
-2. Building with autoconf (Linux/Unix/X11)
+3. Building with autoconf (Linux/Unix/X11)
-The primary method to build Mesa on Unix systems is with autoconf. +Although meson is recommended, another supported way to build on *nix systems +is with autoconf.
@@ -92,7 +157,7 @@ for more details. -
3. Building with SCons (Windows/Linux)
+4. Building with SCons (Windows/Linux)
To build Mesa with SCons on Linux or Windows do @@ -111,36 +176,43 @@ by -debug for debug builds. To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
- scons platform=windows toolchain=crossmingw machine=x86 mesagdi libgl-gdi + scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
This will create:
-
-
- build/windows-x86-debug/mesa/drivers/windows/gdi/opengl32.dll — Mesa + swrast, binary compatible with Windows's opengl32.dll -
- build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll +
- build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe (or llvmpipe), binary compatible with Windows's opengl32.dll
Put them all in the same directory to test them. + +Additional information is available in README.WIN32. +
-4. Building for other systems
+5. Building with AOSP (Android)
-Documentation for other environments (some may be very out of date): +Currently one can build Mesa for Android as part of the AOSP project, yet +your experience might vary.
--
-
- README.VMS - VMS -
- README.CYGWIN - Cygwin -
- README.WIN32 - Win32 -
+In order to achieve that one should update their local manifest to point to the +upstream repo, set the appropriate BOARD_GPU_DRIVERS and build the +libGLES_mesa library. +
++FINISHME: Improve on the instructions add references to Rob H repos/Jenkins, +Android-x86 and/or other resources. +
-5. Library Information
+6. Library Information
When compilation has finished, look in the top-level lib/
@@ -151,9 +223,6 @@ You'll see a set of library files similar to this:
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
-lrwxrwxrwx 1 brian users 11 Mar 26 07:53 libGLU.so -> libGLU.so.1*
-lrwxrwxrwx 1 brian users 20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100*
--rwxr-xr-x 1 brian users 549269 Mar 26 07:53 libGLU.so.1.3.060100*
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
@@ -162,8 +231,6 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM
libGL is the main OpenGL library (i.e. Mesa).
-libGLU is the OpenGL Utility library.
-
libOSMesa is the OSMesa (Off-Screen) interface library.
6. Building OpenGL programs with pkg-config
+7. Building OpenGL programs with pkg-config
Running make install
will install package configuration files
@@ -205,6 +271,6 @@ For example, compiling and linking a GLUT application can be done with:
-
+