Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html lang="en">
  3. <head>
  4.   <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5.   <title>Compiling and Installing</title>
  6.   <link rel="stylesheet" type="text/css" href="mesa.css">
  7. </head>
  8. <body>
  9.  
  10. <div class="header">
  11.   <h1>The Mesa 3D Graphics Library</h1>
  12. </div>
  13.  
  14. <iframe src="contents.html"></iframe>
  15. <div class="content">
  16.  
  17. <h1>Compiling and Installing</h1>
  18.  
  19. <ol>
  20. <li><a href="#prereq-general">Prerequisites for building</a>
  21.   <ul>
  22.   <li><a href="#prereq-general">General prerequisites</a>
  23.   <li><a href="#prereq-dri">For DRI and hardware acceleration</a>
  24.   </ul>
  25. <li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
  26. <li><a href="#scons">Building with SCons (Windows/Linux)</a>
  27. <li><a href="#other">Building for other systems</a>
  28. <li><a href="#libs">Library Information</a>
  29. <li><a href="#pkg-config">Building OpenGL programs with pkg-config</a>
  30. </ol>
  31.  
  32.  
  33. <h1 id="prereq-general">1. Prerequisites for building</h1>
  34.  
  35. <h2>1.1 General</h2>
  36. <ul>
  37. <li>lex / yacc - for building the GLSL compiler.
  38. On Linux systems, flex and bison are used.
  39. Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
  40. <br>
  41. <br>
  42. On Windows with MinGW, install flex and bison with:
  43. <pre>mingw-get install msys-flex msys-bison</pre>
  44. </li>
  45. <li>python - Python is needed for building the Gallium components.
  46. Version 2.6.4 or later should work.
  47. <br>
  48. <br>
  49. To build OpenGL ES 1.1 and 2.0 you'll also need
  50. <a href="http://xmlsoft.org/sources/win32/python/libxml2-python-2.7.7.win32-py2.7.exe">libxml2-python</a>.
  51. </li>
  52. </ul>
  53.  
  54.  
  55. <h3 id="prereq-dri">1.2 For DRI and hardware acceleration</h3>
  56.  
  57. <p>
  58. The following are required for DRI-based hardware acceleration with Mesa:
  59. </p>
  60.  
  61. <ul>
  62. <li><a href="http://xorg.freedesktop.org/releases/individual/proto/">
  63. dri2proto</a> version 2.6 or later
  64. <li><a href="http://dri.freedesktop.org/libdrm/">libDRM</a>
  65. version 2.4.33 or later
  66. <li>Xorg server version 1.5 or later
  67. <li>Linux 2.6.28 or later
  68. </ul>
  69. <p>
  70. If you're using a fedora distro the following command should install all
  71. the needed dependencies:
  72. </p>
  73. <pre>
  74.   sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \
  75.   gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \
  76.   expat-devel llvm-devel
  77. </pre>
  78.  
  79.  
  80.  
  81. <h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
  82.  
  83. <p>
  84. The primary method to build Mesa on Unix systems is with autoconf.
  85. </p>
  86.  
  87. <p>
  88. The general approach is the standard:
  89. </p>
  90. <pre>
  91.   ./configure
  92.   make
  93.   sudo make install
  94. </pre>
  95. <p>
  96. But please read the <a href="autoconf.html">detailed autoconf instructions</a>
  97. for more details.
  98. </p>
  99.  
  100.  
  101.  
  102. <h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
  103.  
  104. <p>
  105. To build Mesa with SCons on Linux or Windows do
  106. </p>
  107. <pre>
  108.     scons
  109. </pre>
  110. <p>
  111. The build output will be placed in
  112. build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
  113. example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
  114. by -debug for debug builds.
  115. </p>
  116.  
  117. <p>
  118. To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
  119. </p>
  120. <pre>
  121.     scons platform=windows toolchain=crossmingw machine=x86 mesagdi libgl-gdi
  122. </pre>
  123. <p>
  124. This will create:
  125. </p>
  126. <ul>
  127. <li>build/windows-x86-debug/mesa/drivers/windows/gdi/opengl32.dll &mdash; Mesa + swrast, binary compatible with Windows's opengl32.dll
  128. <li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll
  129. </ul>
  130. <p>
  131. Put them all in the same directory to test them.
  132. </p>
  133.  
  134.  
  135.  
  136. <h1 id="other">4. Building for other systems</h1>
  137.  
  138. <p>
  139. Documentation for other environments (some may be very out of date):
  140. </p>
  141.  
  142. <ul>
  143. <li><a href="README.VMS">README.VMS</a> - VMS
  144. <li><a href="README.CYGWIN">README.CYGWIN</a> - Cygwin
  145. <li><a href="README.WIN32">README.WIN32</a> - Win32
  146. </ul>
  147.  
  148.  
  149.  
  150. <h1 id="libs">5. Library Information</h1>
  151.  
  152. <p>
  153. When compilation has finished, look in the top-level <code>lib/</code>
  154. (or <code>lib64/</code>) directory.
  155. You'll see a set of library files similar to this:
  156. </p>
  157. <pre>
  158. lrwxrwxrwx    1 brian    users          10 Mar 26 07:53 libGL.so -> libGL.so.1*
  159. lrwxrwxrwx    1 brian    users          19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
  160. -rwxr-xr-x    1 brian    users     3375861 Mar 26 07:53 libGL.so.1.5.060100*
  161. lrwxrwxrwx    1 brian    users          14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
  162. lrwxrwxrwx    1 brian    users          23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
  163. -rwxr-xr-x    1 brian    users       23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
  164. </pre>
  165.  
  166. <p>
  167. <b>libGL</b> is the main OpenGL library (i.e. Mesa).
  168. <br>
  169. <b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
  170. </p>
  171.  
  172. <p>
  173. If you built the DRI hardware drivers, you'll also see the DRI drivers:
  174. </p>
  175. <pre>
  176. -rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i915_dri.so
  177. -rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i965_dri.so
  178. -rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
  179. -rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
  180. </pre>
  181.  
  182. <p>
  183. If you built with Gallium support, look in lib/gallium/ for Gallium-based
  184. versions of libGL and device drivers.
  185. </p>
  186.  
  187.  
  188. <h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
  189.  
  190. <p>
  191. Running <code>make install</code> will install package configuration files
  192. for the pkg-config utility.
  193. </p>
  194.  
  195. <p>
  196. When compiling your OpenGL application you can use pkg-config to determine
  197. the proper compiler and linker flags.
  198. </p>
  199.  
  200. <p>
  201. For example, compiling and linking a GLUT application can be done with:
  202. </p>
  203. <pre>
  204.    gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
  205. </pre>
  206.  
  207. <br>
  208.  
  209. </div>
  210. </body>
  211. </html>
  212.