X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=docs%2Finstall.html;h=08081944cfcc0fc10762f9b1429396fab3170abd;hb=23446eedd1f899879e59daadefd5187dd9946993;hp=1dedfa19c454f51bb6c22d906689798c9aa8ed18;hpb=0b27aceae2464db3dd149cf4fd667e353a655c5e;p=mesa.git diff --git a/docs/install.html b/docs/install.html index 1dedfa19c45..08081944cfc 100644 --- a/docs/install.html +++ b/docs/install.html @@ -1,295 +1,252 @@ - + + + + + Compiling and Installing + + + + +
+

The Mesa 3D Graphics Library

+
+ + +
+ +

Compiling and Installing

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

1. Prerequisites for building

+ +

1.1 General

-Compilation and Installation +

+Build system. +

- + -

Compilation and Installation for Unix/X11

-If you're not using a variant of Unix with X11, see the -Supported Systems and Drivers section -for instructions. +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.

+ + +

-There are two methods for building Mesa on Unix/X11 systems: +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.

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

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

+ + +

1.2 Requirements

+ +

+The requirements depends on the features selected at configure stage. +Check/install the respective -devel package as prompted by the configure error +message. +

-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. +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 autoconf (Linux/Unix/X11)

+

-In either case, building Mesa entails the following: +The primary method to build Mesa on Unix systems is with autoconf. +

+

-

+The general approach is the standard: +

+
+  ./configure
+  make
+  sudo make install
+
+

+But please read the detailed autoconf instructions +for more details. +

+ + +

3. Building with SCons (Windows/Linux)

- -

NEW-STYLE compilation and installation

+

+To build Mesa with SCons on Linux or Windows do +

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

+

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

-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:
-
-	autoconf 2.50
-	automake 1.4-p2
-	libtool 1.4
-
-
-1) Run the configure script
-
-	./configure [options]
-
-For Linux, it is recommended that you use:
-	./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/
-
-Possible options are:
-
---prefix=DIR
-	The toplevel directory of the hierachy in which Mesa
-	will be installed (DIR/include,DIR/lib etc.).
-	The default is "/usr/local".
-
---sysconfdir=DIR
-	The directory where Mesa configuration files
-	will be stored.	The default is "$prefix/etc".
-	You may want to overwrite the default with --sysconfdir=/etc.
-
---enable-static
-	Enable building of static libraries.
-	Static libraries are NOT built by default.
-	
---disable-shared
-	Disable building of shared libraries.
-	Shared libraries are built by default.
-
---with-pic
---without-pic
-	In normal operation, libtool will build shared libraries from
-	PIC objects and static archives from non-PIC objects, except where one
-	or the other is not provided by the target host.  By specifying
-	--with-pic you are asking libtool to build static archives from
-	PIC objects, and similarly by specifying --without-pic you are asking
-	libtool to build shared	libraries from non-PIC objects.
-	libtool will only honour this flag where it will produce a
-	working library, otherwise it reverts to the default.
-	
---enable-debug
-	Enable debugging messages (disabled by default).
-	
---enable-profile
-	Enable profiling (disabled by default).
-	
---disable-optimize
-	Disable extra optimizations (enabled by default,
-	i.e., optimize for maximum performance).
-	
---enable-warn
-	Enable extended compiler warnings (disabled by default).
-	
---enable-x86[=ARG]
---disable-x86
-	Enable/disable x86 assembler support to speed up Mesa
-	(autodetected by default). You may set `on' or `off'.
-	
---enable-3dnow[=ARG]
---disable-3dnow
-	Enable/disable 3Dnow support to speed up Mesa
-	(autodetected by default). You may set `on' or `off'.
-	
---enable-mmx[=ARG]
---disable-mmx
-	Enable/disable MMX support to speed up Mesa
-	(autodetected by default). You may set `on' or `off'.
-	
---enable-sse[=ARG]
---disable-sse
-	Enable/disable SSE support to speed up Mesa
-	(autodetected by default). You may set `on' or `off'.
-	If you have a PentiumIII and want to use SSE make sure you have the
-	PIII Linux kernel-patch installed or things will fail!
-	You can get the patch from http://www.redhat.com/~dledford/linux_kernel.html
-	
---with-glide[=DIR]
---without-glide
-	Enable/disable support for Glide (disabled by default).
-	DIR is the installation directory of Glide.
-	If Glide cannot be found, the driver won't be built.
-	
---with-glut[=DIR]
---without-glut
-	Don't/use already-installed GLUT (autodetected by default).
-	DIR is the installation directory of Glut.
-	If GLUT cannot be found, the version shipped with Mesa will be built.
-	
---with-ggi[=DIR]
---without-ggi
-	Enable/disable support for GGI (autodetected by default).
-	DIR is the installation directory of GGI.
-	If GGI cannot be found, the driver won't be built.
-
---disable-ggi-fbdev
-	Don't build the GGI fbdev target (autodetected by default).
-	
---disable-ggi-genkgi
-	Don't build the GGI generic KGI driver (autodetected by default).
-	
---disable-ggi-savage4
-	Don't build the GGI Savage4 KGI driver (autodetected by default).
-	
---disable-osmesa
-	Disable OSmesa (offscreen rendering) support (enabled by default).
-
---with-svga[=DIR]
---without-svga
-	Enable/disable support for SVGALib (autodetected by default).
-	DIR is the installation directory of SVGALib.
-	If SVGALib cannot be found, the driver won't be built.
-
---x-includes=DIR
-	Search for the X include files in DIR.
-	
---x-libraries=DIR
-	Search for the X library files in DIR.
-
-User specific compiler options can be set using the shell variable
-CFLAGS. For instance,
-	CFLAGS="-g -O2" ./configure
-(on some systems: env CFLAGS="-g -O2" ./configure)
-sets the compiler flags to "-g -O2".
-
-For more options run "./configure --help" and read INSTALL.GNU.
-
-2) To build the Mesa libraries run:
-
-	make
-
-When finished, libGL.so will be in src/.libs/, libGLU.so will be in
-si-glu/.libs/, etc.
-
-Optionally, you can strip the libraries using
-
-	make strip
-	
-Now make sure that you have the permissions to install Mesa in the 
-specified directories, for example, by becoming super user ("su")
-Then run:
-
-	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.
-
-
-3) To test whether Mesa works properly you might want to run the Mesa demos:
-
-	make check
-	
-Builds all demos.
-
-	make exec
-
-Builds and executes all demos.	
+    scons platform=windows toolchain=crossmingw machine=x86 libgl-gdi
 
+

+This will create: +

+ +

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

+ - -

OLD-STYLE compilation and installation

+

4. Building with AOSP (Android)

-This procedure usually works when ./configure ; make fails. +Currently one can build Mesa for Android as part of the AOSP project, yet +your experience might vary.

-Note: If you tried ./configure ; make but it failed, -first copy the top-level Makefile.X11 file over -Makefile. +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.

-First, just type make alone. -You'll see a list of supported system configurations. -Choose one and type make config. -The Mesa libraries and demo programs will be compiled. +FINISHME: Improve on the instructions add references to Rob H repos/Jenkins, +Android-x86 and/or other resources.

-

Header and library files

+ +

5. Library Information

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

-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/. +libGL is the main OpenGL library (i.e. Mesa). +
+libOSMesa is the OSMesa (Off-Screen) interface library.

-To install the Mesa headers, do this: +If you built the DRI hardware drivers, you'll also see the DRI drivers: +

-	cp -r include/GL /usr/include
+-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
 

-To install the Mesa libraries, do this: +If you built with Gallium support, look in lib/gallium/ for Gallium-based +versions of libGL and device drivers.

-
-	cp -pd lib/* /usr/lib
 
-	(The -pd options preserve symbolic links)
-
-

LD_LIBRARY_PATH

+

6. Building OpenGL programs with pkg-config

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

+
+   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
+
+ +
+ +