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