X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Finstall.html;h=b6a75baeeb9341664213bf622c8d3609fb2e47ec;hb=64b12520a2848913fa78c12f48eaca39f42584c9;hp=3962ea5c91e12ace2584412944c6d754f1515223;hpb=02224ec4e0de8072c9d730821f88e0a00212ff50;p=mesa.git diff --git a/docs/install.html b/docs/install.html index 3962ea5c91e..b6a75baeeb9 100644 --- a/docs/install.html +++ b/docs/install.html @@ -1,402 +1,276 @@ - + + + + + Compiling and Installing + + + -Compiling and Installing +
+

The Mesa 3D Graphics Library

+
- + +
- - - -

Compiling and Installing

+

Compiling and Installing

    -
  1. Unix / X11 +
  2. Prerequisites for building -
  3. Windows -
  4. SCons -
  5. Other +
  6. Building with meson +
  7. Building with autoconf (Linux/Unix/X11) +
  8. Building with SCons (Windows/Linux) +
  9. Building with AOSP (Android) +
  10. Library Information +
  11. Building OpenGL programs with pkg-config
-
- -

1. Unix/X11 Compilation and Installation

+

1. Prerequisites for building

- -
-

1.1 Prerequisites for DRI and hardware acceleration

+

1.1 General

-The following are required for DRI-based hardware acceleration with Mesa: +Build system.

-

- - -

1.2 Building with Autoconf

-Mesa may be built using autoconf. -This should work well on most GNU-based systems. -If that fails the traditional Mesa build system is available. - +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. +

+ - -

1.3 Building with traditional Makefiles

-The traditional Mesa build system is based on a collection of pre-defined -system configurations. -

-

-To see the list of configurations, just type make. -Then choose a configuration from the list and type make -configname. +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.

-

-Mesa may be built in several different ways using the predefined configurations: -

+ +

Note: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.

-
  • DRI/accelerated - The DRI hardware drivers for -accelerated OpenGL rendering (for ATI, Intel, Matrox, etc) will be built. -The libGL.so library will support the GLX extension and will load/use -the DRI hardware drivers. +

    1.2 Requirements

    -Build Mesa and the DRI hardware drivers by running -

    -
    -   make linux-dri
    -
    -

    -There are also linux-dri-x86, linux-dri-x86-64, -and linux-ppc configurations which are optimized for those -architectures. +The requirements depends on the features selected at configure stage. +Check/install the respective -devel package as prompted by the configure error +message.

    +

    -Make sure you have the prerequisite versions of DRM and Xserver mentioned -above. +Here are some common ways to retrieve most/all of the dependencies based on +the packaging tool used by your distro.

    -
  • - - +
    +  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

    -Later, if you want to rebuild for a different configuration run -make realclean before rebuilding. +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.

    - - -

    1.4 The libraries

    -

    -When compilation has finished, look in the top-level lib/ -(or lib64/) directory. -You'll see a set of library files similar to this: +The general approach is:

    -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          12 Mar 26 07:53 libglut.so -> libglut.so.3*
    -lrwxrwxrwx    1 brian    users          16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
    --rwxr-xr-x    1 brian    users      597754 Mar 26 07:53 libglut.so.3.7.1*
    -lrwxrwxrwx    1 brian    users          11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
    -lrwxrwxrwx    1 brian    users          15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
    --rwxr-xr-x    1 brian    users       20750 Mar 26 08:04 libGLw.so.1.0.0*
    -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*
    +  meson builddir/
    +  ninja -C builddir/
    +  sudo ninja -C builddir/ install
     
    +

    +Please read the detailed meson instructions +for more information +

    + +

    3. Building with autoconf (Linux/Unix/X11)

    -libGL is the main OpenGL library (i.e. Mesa). -
    -libGLU is the OpenGL Utility library. -
    -libglut is the GLUT library. -
    -libGLw is the Xt/Motif OpenGL drawing area widget library. -
    -libOSMesa is the OSMesa (Off-Screen) interface library. +Although meson is recommended, another supported way to build on *nix systems +is with autoconf.

    -If you built the DRI hardware drivers, you'll also see the DRI drivers: +The general approach is the standard:

    --rwxr-xr-x   1 brian users 15607851 Jul 21 12:11 ffb_dri.so
    --rwxr-xr-x   1 brian users 15148747 Jul 21 12:11 i810_dri.so
    --rwxr-xr-x   1 brian users 14497814 Jul 21 12:11 i830_dri.so
    --rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i915_dri.so
    --rwxr-xr-x   1 brian users 11320803 Jul 21 12:11 mach64_dri.so
    --rwxr-xr-x   1 brian users 11418014 Jul 21 12:12 mga_dri.so
    --rwxr-xr-x   1 brian users 11064426 Jul 21 12:12 r128_dri.so
    --rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
    --rwxr-xr-x   1 brian users 16050488 Jul 21 12:11 r300_dri.so
    --rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
    --rwxr-xr-x   1 brian users 11232304 Jul 21 12:13 s3v_dri.so
    --rwxr-xr-x   1 brian users 11062970 Jul 21 12:13 savage_dri.so
    --rwxr-xr-x   1 brian users 11214212 Jul 21 12:13 sis_dri.so
    --rwxr-xr-x   1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
    --rwxr-xr-x   1 brian users 10598868 Jul 21 12:13 trident_dri.so
    --rwxr-xr-x   1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
    +  ./configure
    +  make
    +  sudo make install
     
    - - - -

    1.5 Running the demos

    -

    -If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or -obtained Mesa from CVS, the progs/ directory will contain a -bunch of demonstration programs. +But please read the detailed autoconf instructions +for more details.

    -

    -Before running a demo, you'll probably have to set two environment variables -to indicate where the libraries are located. For example: -

    -

    -cd lib/ -
    -export LD_LIBRARY_PATH=${PWD} -
    -export LIBGL_DRIVERS_PATH=${PWD} (if using DRI drivers) -
    -

    -Next, change to the Mesa/demos/ directory: -

    -
    -cd ../progs/demos -
    -

    -Run a demo such as gears: -

    -
    -./gears -
    +

    4. Building with SCons (Windows/Linux)

    -If this doesn't work, try the Mesa/progs/xdemos/glxinfo program -and see that it prints the expected Mesa version number. +To build Mesa with SCons on Linux or Windows do

    - +
    +    scons
    +

    -If you're using Linux or a similar OS, verify that the demo program is -being linked with the proper library files: +The build output will be placed in +build/platform-machine-debug/..., where platform is for +example linux or windows, machine is x86 or x86_64, optionally followed +by -debug for debug builds.

    -
    -ldd gears -

    -You should see something like this: +To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do

    -        libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
    -        libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
    -        libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
    -        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
    -        libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
    -        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
    -        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
    -        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
    -        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
    -        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
    -        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
    -        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
    -        libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
    -        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
    -        libdl.so.2 => /lib/libdl.so.2 (0x40644000)
    -        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
    -        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
    +    scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
     
    -

    -Retrace your steps if this doesn't look right. +This will create:

    + +

    +Put them all in the same directory to test them. +Additional information is available in README.WIN32. - -

    1.6 Installing the header and library files

    - -

    -The standard location for the OpenGL header files on Unix-type systems is -in /usr/include/GL/. -The standard location for the libraries is /usr/lib/. -For more information see, the - -Linux/OpenGL ABI specification.

    -

    -If you'd like Mesa to co-exist with another implementation of OpenGL that's -already installed, you'll have to choose different directories, like -/usr/local/include/GL/ and /usr/local/lib/. -

    + + +

    5. Building with AOSP (Android)

    -To install Mesa's headers and libraries, run make install. -But first, check the Mesa/configs/default file and examine the values -of the INSTALL_DIR and DRI_DRIVER_INSTALL_DIR variables. -Change them if needed, then run make install. +Currently one can build Mesa for Android as part of the AOSP project, yet +your experience might vary.

    -The variable -DESTDIR may also be used to install the contents to a temporary -staging directory. -This can be useful for package management. -For example: make install DESTDIR=/somepath/ +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.

    -Note: at runtime you can use the LD_LIBRARY_PATH environment variable -(on Linux at least) to switch -between the Mesa libraries and other vendor's libraries whenever you want. -This is a handy way to compare multiple OpenGL implementations. +FINISHME: Improve on the instructions add references to Rob H repos/Jenkins, +Android-x86 and/or other resources.

    - -

    1.7 Building OpenGL programs with pkg-config

    +

    6. Library Information

    -Running make install will install package configuration files -for the pkg-config utility. +When compilation has finished, look in the top-level lib/ +(or lib64/) directory. +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          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*
    +

    -When compiling your OpenGL application you can use pkg-config to determine -the proper compiler and linker flags. +libGL is the main OpenGL library (i.e. Mesa). +
    +libOSMesa is the OSMesa (Off-Screen) interface library.

    -For example, compiling and linking a GLUT application can be done with: +If you built the DRI hardware drivers, you'll also see the DRI drivers:

    -   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
    +-rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i915_dri.so
    +-rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i965_dri.so
    +-rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
    +-rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
     
    -
    - -
    -

    2. Windows Compilation and Installation

    -

    -Please see the instructions on building with SCons. -Alternatively see README.WIN32 file. +If you built with Gallium support, look in lib/gallium/ for Gallium-based +versions of libGL and device drivers.

    - - -

    3. Building with SCons

    +

    7. Building OpenGL programs with pkg-config

    -To build Mesa with SCons on Linux or Windows do +Running make install will install package configuration files +for the pkg-config utility.

    -
    -    scons
    -
    +

    -The build output will be placed in -build/platform-machine-debug/..., where platform is for -example linux or windows, machine is x86 or x86_64, optionally followed -by -debug for debug builds. +When compiling your OpenGL application you can use pkg-config to determine +the proper compiler and linker flags.

    -To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do +For example, compiling and linking a GLUT application can be done with:

    -    scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi
    +   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
     
    -

    -This will create: -

    - -

    -Put them all in the same directory to test them. -

    - - -
    -

    4. Other systems

    - -

    -Documentation for other environments (some may be very out of date): -

    - -
    - - +
    +