X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Finstall.html;h=3962ea5c91e12ace2584412944c6d754f1515223;hb=9cff90534389c2aad9b58ff04b1a5d624e3d0bdb;hp=605b6581551bc21f522b3dc34c16cdea8e931472;hpb=8412c604518893d66b78bf78ffda2c02f861d5a9;p=mesa.git diff --git a/docs/install.html b/docs/install.html index 605b6581551..3962ea5c91e 100644 --- a/docs/install.html +++ b/docs/install.html @@ -1,306 +1,269 @@ -Compilation and Installation +Compiling and Installing + + + + + + +

Compiling and Installing

+ +
    +
  1. Unix / X11 + +
  2. Windows +
  3. SCons +
  4. Other +
+
- -

Compilation and Installation for Unix/X11

+ +

1. Unix/X11 Compilation and Installation

-

-If you're not using a variant of Unix with X11, see the -Supported Systems and Drivers section -for instructions. -

-

-There are two methods for building Mesa on Unix/X11 systems: -

- -
-
NEW-STYLE
-
-Basically, type "./configure" followed by "make" -This should work on most Unix-like operating systems. -Unfortunately, autoconf/automake seems to seldom work reliably on non-Linux -systems. For that reason, the old-style make system is still supported -(and is the preferred method of the Mesa developers). -
-
-
OLD-STYLE
-
-Simply type make and you'll see a list of supported -system configurations. Pick one and type make config. -More details below. -
-
+ +

1.1 Prerequisites for DRI and hardware acceleration

-NOTE: The GLUT library and demonstrations programs are in the -MesaDemos-x.y.z.tar.gz file. If you don't have GLUT or you want to -run some demos, download the MesaDemos package too. +The following are required for DRI-based hardware acceleration with Mesa:

-

-In either case, building Mesa entails the following: -

+

- -

NEW-STYLE compilation and installation

+
+

1.2 Building with Autoconf

- 0. If you've downloaded Mesa via CVS there will not be a "configure" - script. You'll have to run the "bootstrap" script first. This script - may not work on any OS other than Linux. You'll need these programs - to run the bootstrap script: -

+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. -
-	autoconf 2.50
-	automake 1.4-p2
-	libtool 1.4
-
-

-1. Run the configure script -

-
-	./configure [options]
-
+ +

1.3 Building with traditional Makefiles

-For Linux, it is recommended that you use: +The traditional Mesa build system is based on a collection of pre-defined +system configurations.

-
-	./configure --prefix=/usr
-
- -So that the headers and libs are located according to the Linux/OpenGL -standard spec at http://oss.sgi.com/projects/ogl-sample/ABI/ +

+To see the list of configurations, just type make. +Then choose a configuration from the list and type make +configname.

+

-For Red Hat 8.0, Mandrake 9.1 and other Linux distros, you may have to use -the following: +Mesa may be built in several different ways using the predefined configurations:

-
-	export LDFLAGS="-lstdc++" ; ./configure --prefix=/usr
-    or
-        setenv LDFLAGS -lstdc++ ; ./configure --prefix=/usr
-
+ + + +

+Later, if you want to rebuild for a different configuration run +make realclean before rebuilding. +

+ + +
+

1.4 The libraries

+

-2. To build the Mesa libraries run: +When compilation has finished, look in the top-level lib/ +(or lib64/) directory. +You'll see a set of library files similar to this:

-	make
+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*
 
-

(on some systems you may need to run gmake or -gnumake instead) -

+

-When finished, libGL.so will be in src/.libs/ and libGLU.so will be in -si-glu/.libs/, etc. +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.

+

-Optionally, you can strip the libraries using +If you built the DRI hardware drivers, you'll also see the DRI drivers:

-	make strip
+-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
 
+ + +
+

1.5 Running the demos

+

-Now make sure that you have the permissions to install Mesa in the -specified directories, for example, by becoming super user ("su") -Then run: +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.

-
-	make install
-
+

-Mesa is now installed. -Please don't move the installed files but rerun all installation -steps if you want to use other directories. -

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

-3.To test whether Mesa works properly you might want to run the -Mesa demos: +Next, change to the Mesa/demos/ directory:

-
-	make check
-
+
+cd ../progs/demos +
+

-Builds all demos. +Run a demo such as gears:

-
-	make exec
-
+
+./gears +
+

-Builds and executes all demos. +If this doesn't work, try the Mesa/progs/xdemos/glxinfo program +and see that it prints the expected Mesa version number.

- -
-

OLD-STYLE compilation and installation

-

-This procedure usually works when ./configure ; make fails. +If you're using Linux or a similar OS, verify that the demo program is +being linked with the proper library files:

+
+ldd gears +

-Note: If you tried ./configure ; make but it failed, -first copy the top-level Makefile.X11 file over -Makefile. +You should see something like this:

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

-Just type make alone. -You'll see a list of supported system configurations. -Choose one and type make config -(for example make linux-x86). -The Mesa libraries and demo programs will be compiled. +Retrace your steps if this doesn't look right.

-

Header and library files

+ +
+

1.6 Installing the header and library files

The standard location for the OpenGL header files on Unix-type systems is @@ -318,30 +281,122 @@ already installed, you'll have to choose different directories, like

-To install the Mesa headers, do this: +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. +

+ +

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

+ +

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

+ + +
+

1.7 Building OpenGL programs with pkg-config

+ +

+Running make install will install package configuration files +for the pkg-config utility. +

+ +

+When compiling your OpenGL application you can use pkg-config to determine +the proper compiler and linker flags. +

+ +

+For example, compiling and linking a GLUT application can be done with: +

-	cp -r include/GL /usr/include
+   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
 
+
+ +
+

2. Windows Compilation and Installation

+ +

+Please see the instructions on building with SCons. +Alternatively see README.WIN32 file. +

+ + + + +

3. Building with SCons

+

-To install the Mesa libraries, do this: +To build Mesa with SCons on Linux or Windows do

-	cp -pd lib/* /usr/lib
+    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. +

- (The -pd options preserve symbolic links) +

+To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do +

+
+    scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi
 
+

+This will create: +

+ +

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

+ -

LD_LIBRARY_PATH

+
+

4. Other systems

-On Linux and similar operating systems the LD_LIBRARY_PATH -environment variable can be used to indicate a list of directories to -search for shared libraries. -If you don't install Mesa in /usr/lib/ you may have to -set the LD_LIBRARY_PATH variable in order to use the Mesa -libraries. +Documentation for other environments (some may be very out of date):

+
+ + + +