Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

install.html 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. <HTML>
  2. <TITLE>Compilation and Installation</TITLE>
  3. <link rel="stylesheet" type="text/css" href="mesa.css"></head>
  4. <BODY>
  5. <H1>Compilation and Installation</H1>
  6. <ol>
  7. <li><a href="#unix-x11">Unix / X11</a>
  8. <li><a href="#windows">Windows</a>
  9. <li><a href="#vms">VMS</a>
  10. <li><a href="#other">Other</a>
  11. </ol>
  12. <a name="unix-x11">
  13. <H2>1. Unix/X11 Compilation and Installation</H1>
  14. <h3>1.1 Compilation</h3>
  15. <p>
  16. Mesa may be compiled in several different ways:
  17. </p>
  18. <ul>
  19. <li><b><em>Stand-alone/Xlib mode</em></b> - Mesa will be compiled as
  20. a software renderer using Xlib to do all rendering.
  21. The libGL.so library will be a self-contained rendering library that will
  22. allow you to run OpenGL/GLX applications on any X server (regardless of
  23. whether it supports the GLX X server extension).
  24. You will <em>not</em> be able to use hardware 3D acceleration.
  25. <p>
  26. To compile stand-alone Mesa type <b>make</b> in the top-level directory.
  27. You'll see a list of supported system configurations.
  28. Choose one from the list (such as linux-x86), and type:
  29. </p>
  30. <pre>
  31. make linux-x86
  32. </pre>
  33. <p>This will produce libGL.so and several other libraries</p>
  34. </li>
  35. <li><b><em>DRI/accelerated</em></b> - The DRI hardware drivers for
  36. accelerated OpenGL rendering (for ATI, Intel, Matrox, etc) will be built.
  37. The libGL.so library will support the GLX extension and will load/use
  38. the DRI hardware drivers.
  39. <p>
  40. <b>Prerequisites:</b>
  41. </p>
  42. <ol>
  43. <li>
  44. <p>
  45. DRM kernel modules and header files from the
  46. <a href="http://dri.sf.net/" target="_parent">DRI</a> project.
  47. </p>
  48. <p>
  49. If you don't already have the DRM file, you can get the sources from
  50. CVS by doing:
  51. <pre>
  52. cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm
  53. </pre>
  54. <p>
  55. See the <a href="http://dri.freedesktop.org/wiki/Building" target="_parent">
  56. DRI Building Instructions</a> for the steps to build the DRM modules. Mesa
  57. 6.5 requires at least libdrm 2.0.1 or greater.
  58. </p>
  59. <p>
  60. You can verify that the DRM files have been properly installed by
  61. running <code>pkg-config --modversion libdrm</code>
  62. </li>
  63. <li>
  64. Recent /usr/include/GL/glxproto.h file.
  65. <p>You'll need this if you get any errors about _GLXvop_BindTexImageEXT
  66. being undefined.
  67. </p>
  68. <p>
  69. Download/install the
  70. <a href="http://gitweb.freedesktop.org/?p=xorg/proto/glproto.git">glproto</a>
  71. module from X.org git, or grab the
  72. <A href="http://webcvs.freedesktop.org/*checkout*/xorg/proto/GL/glxproto.h?rev=1.9&content-type=text%2Fplain">glxproto.h file</a> and put it in the
  73. Mesa/include/GL/ directory.
  74. </p>
  75. </li>
  76. <li>DRI-enabled X server.
  77. <p>Visit
  78. <a href="http://www.xfree86.org" target="_parent">XFree86</a>
  79. or
  80. <a href="http://freedesktop.org/wiki/Software_2fXserver" target="_parent">
  81. X.org</a>
  82. for more information.
  83. </p>
  84. </li>
  85. </ol>
  86. <p>
  87. Build Mesa and the DRI hardware drivers by running
  88. </p>
  89. <pre>
  90. make linux-dri
  91. </pre>
  92. <p>
  93. There are also <code>linux-dri-x86</code>, <code>linux-dri-x86-64</code>,
  94. and <code>linux-ppc</code> configurations which are optimized for those
  95. architectures.
  96. </p>
  97. </li>
  98. </ul>
  99. <p>
  100. Later, if you want to rebuild for a different configuration run
  101. <code>make realclean</code> before rebuilding.
  102. </p>
  103. <h3>1.2 The libraries</h3>
  104. <p>
  105. When compilation has finished, look in the top-level <code>lib/</code>
  106. (or <code>lib64/</code>) directory.
  107. You'll see a set of library files similar to this:
  108. </p>
  109. <pre>
  110. lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
  111. lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
  112. -rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
  113. lrwxrwxrwx 1 brian users 11 Mar 26 07:53 libGLU.so -> libGLU.so.1*
  114. lrwxrwxrwx 1 brian users 20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100*
  115. -rwxr-xr-x 1 brian users 549269 Mar 26 07:53 libGLU.so.1.3.060100*
  116. lrwxrwxrwx 1 brian users 12 Mar 26 07:53 libglut.so -> libglut.so.3*
  117. lrwxrwxrwx 1 brian users 16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
  118. -rwxr-xr-x 1 brian users 597754 Mar 26 07:53 libglut.so.3.7.1*
  119. lrwxrwxrwx 1 brian users 11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
  120. lrwxrwxrwx 1 brian users 15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
  121. -rwxr-xr-x 1 brian users 20750 Mar 26 08:04 libGLw.so.1.0.0*
  122. lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
  123. lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
  124. -rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
  125. </pre>
  126. <p>
  127. <b>libGL</b> is the main OpenGL library (i.e. Mesa).
  128. <br>
  129. <b>libGLU</b> is the OpenGL Utility library.
  130. <br>
  131. <b>libglut</b> is the GLUT library.
  132. <br>
  133. <b>libGLw</b> is the Xt/Motif OpenGL drawing area widget library.
  134. <br>
  135. <b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
  136. </p>
  137. <p>
  138. If you built the DRI hardware drivers, you'll also see the DRI drivers:
  139. </p>
  140. <pre>
  141. -rwxr-xr-x 1 brian users 15607851 Jul 21 12:11 ffb_dri.so*
  142. -rwxr-xr-x 1 brian users 15148747 Jul 21 12:11 i810_dri.so*
  143. -rwxr-xr-x 1 brian users 14497814 Jul 21 12:11 i830_dri.so*
  144. -rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so*
  145. -rwxr-xr-x 1 brian users 11320803 Jul 21 12:11 mach64_dri.so
  146. -rwxr-xr-x 1 brian users 11418014 Jul 21 12:12 mga_dri.so
  147. -rwxr-xr-x 1 brian users 11064426 Jul 21 12:12 r128_dri.so
  148. -rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
  149. -rwxr-xr-x 1 brian users 16050488 Jul 21 12:11 r300_dri.so*
  150. -rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
  151. -rwxr-xr-x 1 brian users 11232304 Jul 21 12:13 s3v_dri.so
  152. -rwxr-xr-x 1 brian users 11062970 Jul 21 12:13 savage_dri.so
  153. -rwxr-xr-x 1 brian users 11214212 Jul 21 12:13 sis_dri.so
  154. -rwxr-xr-x 1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
  155. -rwxr-xr-x 1 brian users 10598868 Jul 21 12:13 trident_dri.so
  156. -rwxr-xr-x 1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
  157. </pre>
  158. <h3>1.3 Running the demos</h3>
  159. <p>
  160. If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or
  161. obtained Mesa from CVS, the <b>progs/</b> directory will contain a
  162. bunch of demonstration programs.
  163. </p>
  164. <p>
  165. Before running a demo, you may have to set an environment variable
  166. (such as <b>LD_LIBRARY_PATH</b> on Linux) to indicate where the
  167. libraries are located. For example:
  168. <p>
  169. <blockquote>
  170. <b>cd</b> into the Mesa <b>lib/</b> directory.
  171. <br>
  172. <b>setenv LD_LIBRARY_PATH ${cwd}</b> (if using csh or tcsh shell)
  173. <br>
  174. or,
  175. <br>
  176. <b>export LD_LIBRARY_PATH=${PWD}</b> (if using bash or sh shell)
  177. </blockquote>
  178. <p>
  179. Next, change to the Mesa/demos/ directory:
  180. </p>
  181. <blockquote>
  182. <b>cd ../progs/demos</b>
  183. </blockquote>
  184. <p>
  185. Run a demo such as gears:
  186. </p>
  187. <blockquote>
  188. <b>./gears</b>
  189. </blockquote>
  190. <p>
  191. If this doesn't work, try the <b>Mesa/progs/xdemos/glxinfo</b> program
  192. and see that it prints the expected Mesa version number.
  193. </p>
  194. <p>
  195. If you're using Linux or a similar OS, verify that the demo program is
  196. being linked with the proper library files:
  197. </p>
  198. <blockquote>
  199. <b>ldd gears</b>
  200. </blockquote>
  201. <p>
  202. You should see something like this:
  203. </p>
  204. <pre>
  205. libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
  206. libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
  207. libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
  208. libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
  209. libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
  210. libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
  211. libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
  212. libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
  213. libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
  214. libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
  215. libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
  216. libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
  217. libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
  218. /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
  219. libdl.so.2 => /lib/libdl.so.2 (0x40644000)
  220. libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
  221. libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
  222. </pre>
  223. <p>
  224. Retrace your steps if this doesn't look right.
  225. </p>
  226. <H3>1.4 Installing the header and library files</H3>
  227. <p>
  228. The standard location for the OpenGL header files on Unix-type systems is
  229. in <code>/usr/include/GL/</code>.
  230. The standard location for the libraries is <code>/usr/lib/</code>.
  231. For more information see, the
  232. <a href="http://oss.sgi.com/projects/ogl-sample/ABI/" target="_parent">
  233. Linux/OpenGL ABI specification</a>.
  234. </p>
  235. <p>
  236. If you'd like Mesa to co-exist with another implementation of OpenGL that's
  237. already installed, you'll have to choose different directories, like
  238. <code>/usr/local/include/GL/</code> and <code>/usr/local/lib/</code>.
  239. </p>
  240. <p>
  241. To install Mesa's headers and libraries, run <code>make install</code>.
  242. But first, check the Mesa/configs/default file and examine the values
  243. of the <b>INSTALL_DIR</b> and <b>DRI_DRIVER_INSTALL_DIR</b> variables.
  244. Change them if needed, then run <code>make install</code>
  245. </p>
  246. <p>
  247. Note: at runtime you can use the LD_LIBRARY_PATH environment variable
  248. (on Linux at least) to switch
  249. between the Mesa libraries and other vendor's libraries whenever you want.
  250. This is a handy way to compare multiple OpenGL implementations.
  251. </p>
  252. <a name="windows">
  253. <H2>2. Windows Compilation and Installation</H1>
  254. <p>
  255. Please see the <a href="README.WIN32">README.WIN32</a> file.
  256. </p>
  257. <a name="vms">
  258. <H2>3. VMS Compilation and Installation</H1>
  259. <p>
  260. Please see the <a href="README.VMS">README.VMS</a> file.
  261. </p>
  262. <a name="other">
  263. <H2>4. Other systems</H1>
  264. <p>
  265. Documentation for other environments (some may be very out of date):
  266. </p>
  267. <UL>
  268. <LI><A HREF="README.GGI">README.GGI</A> - GGI
  269. <LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
  270. <LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
  271. <LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
  272. <LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
  273. <LI><A HREF="README.DJ">README.DJ</A> - DJGPP
  274. <LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
  275. <LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
  276. <LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
  277. <LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
  278. <LI><A HREF="README.OS2">README.OS2</A> - OS/2
  279. <LI><A HREF="README.WINDML">README.WINDML</A> - WindML
  280. </UL>
  281. </body>
  282. </html>