diff options
-rw-r--r-- | REVIEWERS | 8 | ||||
-rw-r--r-- | docs/autoconf.html | 270 | ||||
-rw-r--r-- | docs/contents.html | 1 | ||||
-rw-r--r-- | docs/download.html | 16 | ||||
-rw-r--r-- | docs/install.html | 22 | ||||
-rw-r--r-- | docs/osmesa.html | 11 | ||||
-rw-r--r-- | docs/releasing.html | 116 | ||||
-rw-r--r-- | docs/vmware-guest.html | 12 |
8 files changed, 49 insertions, 407 deletions
diff --git a/REVIEWERS b/REVIEWERS index aeb0457c2e8..921e0ba3875 100644 --- a/REVIEWERS +++ b/REVIEWERS @@ -94,14 +94,6 @@ GALLIUM TARGETS R: Emil Velikov <[email protected]> F: src/gallium/targets/ -AUTOCONF BUILD -R: Emil Velikov <[email protected]> -F: autogen.sh -F: configure.ac -F: */Automake.inc -F: */Makefile.*am -F: */Makefile.sources - SCONS BUILD F: scons/ F: */SConscript* diff --git a/docs/autoconf.html b/docs/autoconf.html deleted file mode 100644 index 8000b18cd07..00000000000 --- a/docs/autoconf.html +++ /dev/null @@ -1,270 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html lang="en"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8"> - <title>Compilation and Installation using Autoconf</title> - <link rel="stylesheet" type="text/css" href="mesa.css"> -</head> -<body> - -<div class="header"> - <h1>The Mesa 3D Graphics Library</h1> -</div> - -<iframe src="contents.html"></iframe> -<div class="content"> - -<h1>Compilation and Installation using Autoconf</h1> - -<ol> -<li><p><a href="#basic">Basic Usage</a></li> -<li><p><a href="#driver">Driver Options</a> - <ul> - <li><a href="#xlib">Xlib Driver Options</a></li> - <li><a href="#dri">DRI Driver Options</a></li> - <li><a href="#osmesa">OSMesa Driver Options</a></li> - </ul> -</ol> - -<h2>ATTENTION:</h2> -<p> - The autotools build is being replaced by the <a href="meson.html">meson</a> - build system. If you haven't yet now is a good time to try using meson and - report any issues you run into. -</p> - -<h2 id="basic">1. Basic Usage</h2> - -<p> -The autoconf generated configure script can be used to guess your -platform and change various options for building Mesa. To use the -configure script, type: -</p> - -<pre> - ./configure -</pre> - -<p> -To see a short description of all the options, type <code>./configure ---help</code>. If you are using a development snapshot and the configure -script does not exist, type <code>./autogen.sh</code> to generate it -first. If you know the options you want to pass to -<code>configure</code>, you can pass them to <code>autogen.sh</code>. It -will run <code>configure</code> with these options after it is -generated. Once you have run <code>configure</code> and set the options -to your preference, type: -</p> - -<pre> - make -</pre> - -<p> -This will produce libGL.so and/or several other libraries depending on the -options you have chosen. Later, if you want to rebuild for a different -configuration run <code>make realclean</code> before rebuilding. -</p> - -<p> -Some of the generic autoconf options are used with Mesa: -</p> -<dl> -<dt><code>--prefix=PREFIX</code></dt> -<dd><p>This is the root directory where -files will be installed by <code>make install</code>. The default is -<code>/usr/local</code>.</p> -</dd> - -<dt><code>--exec-prefix=EPREFIX</code></dt> -<dd><p>This is the root directory -where architecture-dependent files will be installed. In Mesa, this is -only used to derive the directory for the libraries. The default is -<code>${prefix}</code>.</p> -</dd> - -<dt><code>--libdir=LIBDIR</code></dt> -<dd><p>This option specifies the directory -where the GL libraries will be installed. The default is -<code>${exec_prefix}/lib</code>. It also serves as the name of the -library staging area in the source tree. For instance, if the option -<code>--libdir=/usr/local/lib64</code> is used, the libraries will be -created in a <code>lib64</code> directory at the top of the Mesa source -tree.</p> -</dd> - -<dt><code>--sysconfdir=DIR</code></dt> -<dd><p>This option specifies the directory where the configuration -files will be installed. The default is <code>${prefix}/etc</code>. -Currently there's only one config file provided when dri drivers are -enabled - it's <code>drirc</code>.</p> -</dd> - -<dt><code>--datadir=DIR</code></dt> -<dd><p>This option specifies the directory where the data files will -be installed. The default is <code>${prefix}/share</code>. -Currently when dri drivers are enabled, <code>drirc.d/</code> is at -this place.</p> -</dd> - -<dt><code>--enable-static, --disable-shared</code></dt> -<dd><p>By default, Mesa -will build shared libraries. Either of these options will force static -libraries to be built. It is not currently possible to build static and -shared libraries in a single pass.</p> -</dd> - -<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt> -<dd><p>These environment variables -control the C and C++ compilers used during the build. By default, -<code>gcc</code> and <code>g++</code> are used and the debug/optimisation -level is left unchanged.</p> -</dd> - -<dt><code>LDFLAGS</code></dt> -<dd><p>An environment variable specifying flags to -pass when linking programs. These should be empty and -<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed -it can be used to direct the linker to use libraries in nonstandard -directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p> -</dd> - -<dt><code>PKG_CONFIG_PATH</code></dt> -<dd><p>The -<code>pkg-config</code> utility is a hard requirement for configuring and -building mesa. It is used to search for external libraries -on the system. This environment variable is used to control the search -path for <code>pkg-config</code>. For instance, setting -<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for -package metadata in <code>/usr/X11R6</code> before the standard -directories.</p> -</dd> -</dl> - -<p> -There are also a few general options for altering the Mesa build: -</p> -<dl> -<dt><code>--enable-debug</code></dt> -<dd><p>This option will set the compiler debug/optimisation levels (if the user -hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in -debugging the Mesa libraries.</p> - -<p>Note that enabling this option can lead to noticeable loss of performance.</p> - -<dt><code>--disable-asm</code></dt> -<dd><p>There are assembly routines -available for a few architectures. These will be used by default if -one of these architectures is detected. This option ensures that -assembly will not be used.</p> -</dd> - -<dt><code>--build=</code></dt> -<dt><code>--host=</code></dt> -<dd><p>By default, the build will compile code for the architecture that -it's running on. In order to build cross-compile Mesa on a x86-64 machine -that is to run on a i686, one would need to set the options to:</p> - -<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p> - -Note that these can vary from distribution to distribution. For more -information check with the -<a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html"> -autoconf manual</a>. -Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well. - - -<p>In some cases a single compiler is capable of handling both architectures -(multilib) in that case one would need to set the <code>CC,CXX</code> variables -appending the correct machine options. Seek your compiler documentation for -further information - -<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc -machine dependent options</a></p> - -<p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target -architecture, the following should be sufficient to configure multilib Mesa</p> - -<code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code> -</dd> -</dl> - - -<h2 id="driver">2. GL Driver Options</h2> - -<p> -There are several different driver modes that Mesa can use. These are -described in more detail in the <a href="install.html">basic -installation instructions</a>. The Mesa driver is controlled through the -configure options <code>--enable-glx</code> and <code>--enable-osmesa</code> -</p> - -<h3 id="xlib">Xlib</h3><p> -It uses Xlib as a software renderer to do all rendering. It corresponds -to the option <code>--enable-glx=xlib</code> or <code>--enable-glx=gallium-xlib</code>. - -<h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for -accelerated OpenGL rendering. To enable use <code>--enable-glx=dri ---enable-dri</code>. - -<!-- DRI specific options --> -<dl> -<dt><code>--with-dri-driverdir=DIR</code> -<dd><p> This option specifies the -location the DRI drivers will be installed to and the location libGL -will search for DRI drivers. The default is <code>${libdir}/dri</code>. -<dt><code>--with-dri-drivers=DRIVER,DRIVER,...</code> -<dd><p> This option -allows a specific set of DRI drivers to be built. For example, -<code>--with-dri-drivers="swrast,i965,radeon,nouveau"</code>. By -default, the drivers will be chosen depending on the target platform. -See the directory <code>src/mesa/drivers/dri</code> in the source tree -for available drivers. Beware that the swrast DRI driver is used by both -libGL and the X.Org xserver GLX module to do software rendering, so you -may run into problems if it is not available. -<!-- This explanation might be totally bogus. Kristian? --> -<dt><code>--disable-driglx-direct</code> -<dd><p> Disable direct rendering in -GLX. Normally, direct hardware rendering through the DRI drivers and -indirect software rendering are enabled in GLX. This option disables -direct rendering entirely. It can be useful on architectures where -kernel DRM modules are not available. -<dt><code>--enable-glx-tls</code> <dd><p> -Enable Thread Local Storage (TLS) in -GLX. -<dt><code>--with-expat=DIR</code> -<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p> -<p>The DRI-enabled libGL uses expat to -parse the DRI configuration files in <code>${sysconfdir}/drirc</code> and -<code>~/.drirc</code>. This option allows a specific expat installation -to be used. For example, <code>--with-expat=/usr/local</code> will -search for expat headers and libraries in <code>/usr/local/include</code> -and <code>/usr/local/lib</code>, respectively. -</dl> - -<h3 id="osmesa">OSMesa </h3><p> No libGL is built in this -mode. Instead, the driver code is built into the Off-Screen Mesa -(OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a> -page for more details. It corresponds to the option -<code>--enable-osmesa</code>. - -<!-- OSMesa specific options --> -<dl> -<dt><code>--with-osmesa-bits=BITS</code> -<dd><p> This option allows the size -of the color channel in bits to be specified. By default, an 8-bit -channel will be used, and the driver will be named libOSMesa. Other -options are 16- and 32-bit color channels, which will add the bit size -to the library name. For example, <code>--with-osmesa-bits=16</code> -will create the libOSMesa16 library with a 16-bit color channel. -</dl> - - -<h2 id="library">3. Library Options</h2> - -<p> -The configure script provides more fine grained control over the libraries -that will be built. - -</div> -</body> -</html> diff --git a/docs/contents.html b/docs/contents.html index 619ac3d7bb2..605f0f581f0 100644 --- a/docs/contents.html +++ b/docs/contents.html @@ -43,7 +43,6 @@ <li><a href="install.html" target="_parent">Compiling / Installing</a> <ul> <li><a href="meson.html" target="_parent">Meson</a></li> - <li><a href="autoconf.html" target="_parent">Autoconf (deprecated)</a></li> </ul> </li> <li><a href="precompiled.html" target="_parent">Precompiled Libraries</a> diff --git a/docs/download.html b/docs/download.html index 86b4d5063c5..840f363cdf6 100644 --- a/docs/download.html +++ b/docs/download.html @@ -59,22 +59,6 @@ or <h1>Contents</h1> <p> -After unpacking you'll have these files and directories (among others): -</p> -<pre> -autogen.sh - Autoconf script for *nix systems -scons/ - SCons script for Windows builds -include/ - GL header (include) files -bin/ - shell scripts for making shared libraries, etc -docs/ - documentation -src/ - source code for libraries -src/mesa - sources for the main Mesa library and device drivers -src/gallium - sources for Gallium and Gallium drivers -src/glx - sources for building libGL with full GLX and DRI support -</pre> - - -<p> Proceed to the <a href="install.html">compilation and installation instructions</a>. </p> diff --git a/docs/install.html b/docs/install.html index b6a75baeeb9..cef62c48f9b 100644 --- a/docs/install.html +++ b/docs/install.html @@ -40,10 +40,10 @@ Build system. </p> <ul> -<li><a href="https://mesonbuild.com">meson</a> is recommended when building on *nix platforms. -<li>Autoconf is another option when building on *nix platforms. +<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms. +<li>Autoconf was removed in 19.1.0, use meson instead <li><a href="http://www.scons.org/">SCons</a> is required for building on -Windows and optional for Linux (it's an alternative to autoconf/automake or meson.) +Windows and optional for Linux (it's an alternative to meson.) </li> <li>Android Build system when building as native Android component. Autoconf is used when when building ARC. @@ -138,21 +138,7 @@ for more information <h1 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h1> <p> -Although meson is recommended, another supported way to build on *nix systems -is with autoconf. -</p> - -<p> -The general approach is the standard: -</p> -<pre> - ./configure - make - sudo make install -</pre> -<p> -But please read the <a href="autoconf.html">detailed autoconf instructions</a> -for more details. + Autoconf support was removed in Mesa 19.1.0. Please use meson instead. </p> diff --git a/docs/osmesa.html b/docs/osmesa.html index 848754570df..c20aaa9f808 100644 --- a/docs/osmesa.html +++ b/docs/osmesa.html @@ -51,8 +51,8 @@ There are several examples of OSMesa in the mesa/demos repository. Configure and build Mesa with something like: <pre> -configure --enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast -make +meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers= -Dvulkan-drivers= -Dprefix=$PWD/builddir/install +ninja -C builddir install </pre> <p> @@ -63,13 +63,12 @@ Make sure you have LLVM installed first if you want to use the llvmpipe driver. When the build is complete you should find: </p> <pre> -lib/libOSMesa.so (swrast-based OSMesa) -lib/gallium/libOSMsea.so (gallium-based OSMesa) +$PWD/builddir/install/lib/libOSMesa.so (swrast-based OSMesa) +$PWD/builddir/install/lib/gallium/libOSMsea.so (gallium-based OSMesa) </pre> <p> -Set your LD_LIBRARY_PATH to point to one directory or the other to select -the library you want to use. +Set your LD_LIBRARY_PATH to point to $PWD/builddir/install to use the libraries </p> <p> diff --git a/docs/releasing.html b/docs/releasing.html index 851bbf58670..25088e5ceb6 100644 --- a/docs/releasing.html +++ b/docs/releasing.html @@ -468,96 +468,48 @@ So we do a quick 'touch test' </p> <ul> -<li>make distcheck (you can omit this if you're not using --dist below) +<li>meson dist <li>scons (from release tarball) <li>the produced binaries work </ul> <p> -Here is one solution that I've been using. + Here is one solution: </p> <pre> - # Set MAKEFLAGS if you haven't already - git clean -fXd; git clean -nxd - read # quick cross check any outstanding files - export __version=`cat VERSION` - export __mesa_root=../ - export __build_root=./foo - chmod 755 -fR $__build_root; rm -rf $__build_root - mkdir -p $__build_root && cd $__build_root - - # For the native builds - such as distcheck, scons, sanity test, you - # may want to specify which LLVM to use: - # export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config - - # Do a full distcheck - $__mesa_root/autogen.sh && make distcheck - - # Build check the tarballs (scons, linux) - tar -xaf mesa-$__version.tar.xz && cd mesa-$__version - scons - cd .. && rm -rf mesa-$__version - - # Build check the tarballs (scons, windows/mingw) - # Temporary drop LLVM_CONFIG, unless you have a Windows/mingw one. - # save_LLVM_CONFIG=`echo $LLVM_CONFIG`; unset LLVM_CONFIG - tar -xaf mesa-$__version.tar.xz && cd mesa-$__version - scons platform=windows toolchain=crossmingw - cd .. && rm -rf mesa-$__version - - # Test the automake binaries - # Restore LLVM_CONFIG, if applicable: - # export LLVM_CONFIG=`echo $save_LLVM_CONFIG`; unset save_LLVM_CONFIG - tar -xaf mesa-$__version.tar.xz && cd mesa-$__version - ./configure \ - --with-dri-drivers=i965,swrast \ - --with-gallium-drivers=swrast \ - --with-vulkan-drivers=intel \ - --enable-llvm-shared-libs \ - --enable-llvm \ - --enable-glx-tls \ - --enable-gbm \ - --enable-egl \ - --with-platforms=x11,drm,wayland,surfaceless - make && DESTDIR=`pwd`/test make install - - # Drop LLVM_CONFIG, if applicable: - # unset LLVM_CONFIG - - __glxinfo_cmd='glxinfo 2>&1 | egrep -o "Mesa.*|Gallium.*|.*dri\.so"' - __glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"' - __es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"' - __es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"' - test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH" - export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}" - export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/ - export LIBGL_DEBUG=verbose - eval $__glxinfo_cmd - eval $__glxgears_cmd - eval $__es2info_cmd - eval $__es2gears_cmd - export LIBGL_ALWAYS_SOFTWARE=true - eval $__glxinfo_cmd - eval $__glxgears_cmd - eval $__es2info_cmd - eval $__es2gears_cmd - export LIBGL_ALWAYS_SOFTWARE=true - export GALLIUM_DRIVER=softpipe - eval $__glxinfo_cmd - eval $__glxgears_cmd - eval $__es2info_cmd - eval $__es2gears_cmd - # Smoke test DOTA2 - unset LD_LIBRARY_PATH - test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld - unset LIBGL_DRIVERS_PATH - unset LIBGL_DEBUG - unset LIBGL_ALWAYS_SOFTWARE - unset GALLIUM_DRIVER - export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.json - steam steam://rungameid/570 -vconsole -vulkan - unset VK_ICD_FILENAMES + __glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"' + __es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"' + __es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"' + test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}" + export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/ + export LIBGL_DEBUG=verbose + eval $__glxinfo_cmd + eval $__glxgears_cmd + eval $__es2info_cmd + eval $__es2gears_cmd + export LIBGL_ALWAYS_SOFTWARE=true + eval $__glxinfo_cmd + eval $__glxgears_cmd + eval $__es2info_cmd + eval $__es2gears_cmd + export LIBGL_ALWAYS_SOFTWARE=true + export GALLIUM_DRIVER=softpipe + eval $__glxinfo_cmd + eval $__glxgears_cmd + eval $__es2info_cmd + eval $__es2gears_cmd + # Smoke test DOTA2 + unset LD_LIBRARY_PATH + test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld + unset LIBGL_DRIVERS_PATH + unset LIBGL_DEBUG + unset LIBGL_ALWAYS_SOFTWARE + unset GALLIUM_DRIVER + export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.json + steam steam://rungameid/570 -vconsole -vulkan + unset VK_ICD_FILENAMES </pre> <h3>Update version in file VERSION</h3> diff --git a/docs/vmware-guest.html b/docs/vmware-guest.html index 4e0932e781f..e73f2005f42 100644 --- a/docs/vmware-guest.html +++ b/docs/vmware-guest.html @@ -191,9 +191,9 @@ For 64-bit Fedora systems: <li>Build libdrm: <pre> cd $TOP/drm - ./autogen.sh --prefix=/usr --libdir=${LIBDIR} - make - sudo make install + meson builddir --prefix=/usr --libdir=${LIBDIR} + ninja -C builddir + sudo ninja -C builddir install </pre> <li>Build Mesa and the vmwgfx_dri.so driver, the vmwgfx_drv.so xorg driver, the X acceleration library libxatracker. The vmwgfx_dri.so is used by the OpenGL libraries during direct rendering, @@ -204,9 +204,9 @@ copy and video acceleration: The following configure options doesn't build the EGL system. <pre> cd $TOP/mesa - ./autogen.sh --prefix=/usr --libdir=${LIBDIR} --with-gallium-drivers=svga --with-dri-drivers=swrast --enable-xa --disable-dri3 --enable-glx-tls - make - sudo make install + meson builddir --prefix=/usr --libdir=${LIBDIR} -Dgallium-drivers=svga -Ddri-drivers=swrast -Dgallium-xa=true -Ddri3=false + ninja -C builddir + sudo ninja -C builddir install </pre> Note that you may have to install other packages that Mesa depends upon |