summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml12
-rw-r--r--REVIEWERS5
-rw-r--r--SConstruct187
-rw-r--r--common.py124
-rw-r--r--docs/README.WIN3264
-rw-r--r--docs/ci/index.rst2
-rw-r--r--docs/debugging.rst2
-rw-r--r--docs/drivers/llvmpipe.rst28
-rw-r--r--docs/releasing.rst1
-rw-r--r--meson.build2
-rw-r--r--scons/crossmingw.py178
-rw-r--r--scons/custom.py331
-rw-r--r--scons/fixes.py27
-rwxr-xr-xscons/gallium.py741
-rw-r--r--scons/llvm.py350
-rw-r--r--scons/source_list.py130
-rw-r--r--scons/x11.py51
-rw-r--r--src/SConscript50
-rw-r--r--src/compiler/SConscript30
-rw-r--r--src/compiler/SConscript.glsl159
-rw-r--r--src/compiler/SConscript.nir97
-rw-r--r--src/compiler/SConscript.spirv61
-rw-r--r--src/gallium/SConscript56
-rw-r--r--src/gallium/auxiliary/SConscript64
-rw-r--r--src/gallium/auxiliary/pipe-loader/SConscript32
-rw-r--r--src/gallium/drivers/llvmpipe/SConscript46
-rw-r--r--src/gallium/drivers/softpipe/SConscript18
-rw-r--r--src/gallium/drivers/svga/SConscript27
-rw-r--r--src/gallium/frontends/dri/SConscript29
-rw-r--r--src/gallium/frontends/glx/xlib/SConscript18
-rw-r--r--src/gallium/frontends/hgl/SConscript24
-rw-r--r--src/gallium/frontends/osmesa/SConscript24
-rw-r--r--src/gallium/frontends/wgl/SConscript24
-rw-r--r--src/gallium/targets/dri/SConscript59
-rw-r--r--src/gallium/targets/haiku-softpipe/SConscript47
-rw-r--r--src/gallium/targets/libgl-gdi/SConscript55
-rw-r--r--src/gallium/targets/libgl-xlib/SConscript72
-rw-r--r--src/gallium/winsys/sw/gdi/SConscript24
-rw-r--r--src/gallium/winsys/sw/hgl/SConscript24
-rw-r--r--src/gallium/winsys/sw/null/SConscript19
-rw-r--r--src/gallium/winsys/sw/wrapper/SConscript18
-rw-r--r--src/gallium/winsys/sw/xlib/SConscript21
-rw-r--r--src/getopt/SConscript15
-rw-r--r--src/loader/SConscript26
-rw-r--r--src/mapi/glapi/SConscript102
-rw-r--r--src/mapi/glapi/gen/SConscript63
-rw-r--r--src/mesa/SConscript127
-rw-r--r--src/util/SConscript98
48 files changed, 4 insertions, 3760 deletions
diff --git a/.travis.yml b/.travis.yml
index ab8e67e74bd..c05ed55eeda 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,17 +13,12 @@ matrix:
include:
- env:
- BUILD=meson
- - env:
- - BUILD=scons
before_install:
- HOMEBREW_NO_AUTO_UPDATE=1 brew install expat gettext
- if test "x$BUILD" = xmeson; then
HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja;
fi
- - if test "x$BUILD" = xscons; then
- HOMEBREW_NO_AUTO_UPDATE=1 brew install scons;
- fi
# Set PATH for homebrew pip3 installs
- PYTHON_VERSION=$(python3 -V | awk '{print $2}' | cut -d. -f1-2)
@@ -47,9 +42,6 @@ install:
pip3 install --user meson;
pip3 install --user mako;
fi
- - if test "x$BUILD" = xscons; then
- pip2 install --user mako;
- fi
script:
- if test "x$BUILD" = xmeson; then
@@ -58,7 +50,3 @@ script:
ninja -C _build test || travis_terminate 1;
ninja -C _build install || travis_terminate 1;
fi
- - if test "x$BUILD" = xscons; then
- scons force_scons=1 || travis_terminate 1;
- scons force_scons=1 check || travis_terminate 1;
- fi
diff --git a/REVIEWERS b/REVIEWERS
index fad43d80534..1a234ee2ec6 100644
--- a/REVIEWERS
+++ b/REVIEWERS
@@ -67,11 +67,6 @@ GALLIUM TARGETS
R: Emil Velikov <emil.l.velikov@gmail.com>
F: src/gallium/targets/
-SCONS BUILD
-F: scons/
-F: */SConscript*
-F: */Makefile.sources
-
ANDROID BUILD
R: Emil Velikov <emil.l.velikov@gmail.com>
R: Rob Herring <robh@kernel.org>
diff --git a/SConstruct b/SConstruct
deleted file mode 100644
index 74a72c842e7..00000000000
--- a/SConstruct
+++ /dev/null
@@ -1,187 +0,0 @@
-#######################################################################
-# Top-level SConstruct
-#
-# For example, invoke scons as
-#
-# scons build=debug llvm=yes machine=x86
-#
-# to set configuration variables. Or you can write those options to a file
-# named config.py:
-#
-# # config.py
-# build='debug'
-# llvm=True
-# machine='x86'
-#
-# Invoke
-#
-# scons -h
-#
-# to get the full list of options. See scons manpage for more info.
-#
-
-from __future__ import print_function
-import os
-import os.path
-import sys
-import SCons.Util
-
-import common
-
-#######################################################################
-# Minimal scons version
-
-EnsureSConsVersion(2, 4)
-EnsurePythonVersion(2, 7)
-
-
-#######################################################################
-# Configuration options
-
-opts = Variables('config.py')
-common.AddOptions(opts)
-
-env = Environment(
- options = opts,
- tools = ['gallium'],
- toolpath = ['#scons'],
- ENV = os.environ,
-)
-
-# XXX: This creates a many problems as it saves...
-#opts.Save('config.py', env)
-
-# Backwards compatability with old target configuration variable
-try:
- targets = ARGUMENTS['targets']
-except KeyError:
- pass
-else:
- targets = targets.split(',')
- print('scons: warning: targets option is deprecated; pass the targets on their own such as')
- print()
- print(' scons %s' % ' '.join(targets))
- print()
- COMMAND_LINE_TARGETS.append(targets)
-
-
-Help(opts.GenerateHelpText(env))
-
-
-#######################################################################
-# Print a deprecation warning for using scons on non-windows
-
-if common.host_platform != 'windows' and env['platform'] != 'windows':
- if env['force_scons']:
- print("WARNING: Scons is deprecated for non-windows platforms (including cygwin) "
- "please use meson instead.", file=sys.stderr)
- else:
- print("ERROR: Scons is deprecated for non-windows platforms (including cygwin) "
- "please use meson instead. If you really need to use scons you "
- "can add `force_scons=1` to the scons command line.", file=sys.stderr)
- sys.exit(1)
-else:
- print("WARNING: Scons support is in the process of being deprecated on "
- "on windows platforms (including mingw). If you haven't already "
- "please try using meson for windows builds. Be sure to report any "
- "issues you run into", file=sys.stderr)
-
-
-#######################################################################
-# Environment setup
-
-with open("VERSION") as f:
- mesa_version = f.read().strip()
-env.Append(CPPDEFINES = [
- ('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
- ('PACKAGE_BUGREPORT', '\\"https://gitlab.freedesktop.org/mesa/mesa/-/issues\\"'),
-])
-
-# Includes
-env.Prepend(CPPPATH = [
- '#/include',
-])
-env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
- '#/src/gallium/drivers',
- '#/src/gallium/winsys',
-])
-
-# for debugging
-#print env.Dump()
-
-
-# Add a check target for running tests
-check = env.Alias('check')
-env.AlwaysBuild(check)
-
-
-#######################################################################
-# Invoke host SConscripts
-#
-# For things that are meant to be run on the native host build machine, instead
-# of the target machine.
-#
-
-# Create host environent
-if env['crosscompile'] and not env['embedded']:
- host_env = Environment(
- options = opts,
- # no tool used
- tools = [],
- toolpath = ['#scons'],
- ENV = os.environ,
- )
-
- # Override options
- host_env['platform'] = common.host_platform
- host_env['machine'] = common.host_machine
- host_env['toolchain'] = 'default'
- host_env['llvm'] = False
-
- host_env.Tool('gallium')
-
- host_env['hostonly'] = True
- assert host_env['crosscompile'] == False
-
- target_env = env
- env = host_env
- Export('env')
-
- SConscript(
- 'src/SConscript',
- variant_dir = host_env['build_dir'],
- duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
- )
-
- env = target_env
-
-Export('env')
-
-#######################################################################
-# Invoke SConscripts
-
-# TODO: Build several variants at the same time?
-# http://www.scons.org/wiki/SimultaneousVariantBuilds
-
-SConscript(
- 'src/SConscript',
- variant_dir = env['build_dir'],
- duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
-)
-
-
-########################################################################
-# List all aliases
-
-try:
- from SCons.Node.Alias import default_ans
-except ImportError:
- pass
-else:
- aliases = sorted(default_ans.keys())
- env.Help('\n')
- env.Help('Recognized targets:\n')
- for alias in aliases:
- env.Help(' %s\n' % alias)
diff --git a/common.py b/common.py
deleted file mode 100644
index b7762cb4e94..00000000000
--- a/common.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#######################################################################
-# Common SCons code
-
-import os
-import os.path
-import re
-import subprocess
-import sys
-import platform as _platform
-
-import SCons.Script.SConscript
-
-
-#######################################################################
-# Defaults
-
-host_platform = _platform.system().lower()
-if host_platform.startswith('cygwin'):
- host_platform = 'cygwin'
-# MSYS2 default platform selection.
-if host_platform.startswith('mingw'):
- host_platform = 'windows'
-
-# Search sys.argv[] for a "platform=foo" argument since we don't have
-# an 'env' variable at this point.
-if 'platform' in SCons.Script.ARGUMENTS:
- target_platform = SCons.Script.ARGUMENTS['platform']
-else:
- target_platform = host_platform
-
-_machine_map = {
- 'x86': 'x86',
- 'i386': 'x86',
- 'i486': 'x86',
- 'i586': 'x86',
- 'i686': 'x86',
- 'BePC': 'x86',
- 'Intel': 'x86',
- 'ppc': 'ppc',
- 'BeBox': 'ppc',
- 'BeMac': 'ppc',
- 'AMD64': 'x86_64',
- 'x86_64': 'x86_64',
- 'sparc': 'sparc',
- 'sun4u': 'sparc',
-}
-
-
-# find host_machine value
-if 'PROCESSOR_ARCHITECTURE' in os.environ:
- host_machine = os.environ['PROCESSOR_ARCHITECTURE']
-else:
- host_machine = _platform.machine()
-host_machine = _machine_map.get(host_machine, 'generic')
-# MSYS2 default machine selection.
-if _platform.system().lower().startswith('mingw') and 'MSYSTEM' in os.environ:
- if os.environ['MSYSTEM'] == 'MINGW32':
- host_machine = 'x86'
- if os.environ['MSYSTEM'] == 'MINGW64':
- host_machine = 'x86_64'
-
-default_machine = host_machine
-default_toolchain = 'default'
-# MSYS2 default toolchain selection.
-if _platform.system().lower().startswith('mingw'):
- default_toolchain = 'mingw'
-
-if target_platform == 'windows' and host_platform != 'windows':
- default_machine = 'x86'
- default_toolchain = 'crossmingw'
-
-
-# find default_llvm value
-if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
- default_llvm = 'yes'
-else:
- default_llvm = 'no'
- try:
- if target_platform != 'windows' and \
- subprocess.call(['llvm-config', '--version'],
- stdout=subprocess.PIPE) == 0:
- default_llvm = 'yes'
- except:
- pass
-
-
-#######################################################################
-# Common options
-
-def AddOptions(opts):
- try:
- from SCons.Variables.BoolVariable import BoolVariable as BoolOption
- except ImportError:
- from SCons.Options.BoolOption import BoolOption
- try:
- from SCons.Variables.EnumVariable import EnumVariable as EnumOption
- except ImportError:
- from SCons.Options.EnumOption import EnumOption
- opts.Add(EnumOption('build', 'build type', 'debug',
- allowed_values=('debug', 'checked', 'profile',
- 'release')))
- opts.Add(BoolOption('verbose', 'verbose output', 'no'))
- opts.Add(EnumOption('machine', 'use machine-specific assembly code',
- default_machine,
- allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
- opts.Add(EnumOption('platform', 'target platform', host_platform,
- allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
- 'linux', 'sunos', 'windows')))
- opts.Add(BoolOption('embedded', 'embedded build', 'no'))
- opts.Add(BoolOption('analyze',
- 'enable static code analysis where available', 'no'))
- opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
- opts.Add('toolchain', 'compiler toolchain', default_toolchain)
- opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
- opts.Add(BoolOption('force_scons', 'Force enable scons on deprecated platforms', 'false'))
- opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
- 'no'))
- opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
- opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
- opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
- opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
- if host_platform == 'windows':
- opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
- opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True)
diff --git a/docs/README.WIN32 b/docs/README.WIN32
deleted file mode 100644
index 0f5010ce121..00000000000
--- a/docs/README.WIN32
+++ /dev/null
@@ -1,64 +0,0 @@
-File: docs/README.WIN32
-
-Last updated: 21 June 2013
-
-
-Quick Start
------ -----
-
-Windows drivers are build with SCons. Makefiles or Visual Studio projects are
-no longer shipped or supported.
-
-Run
-
- scons libgl-gdi
-
-to build gallium based GDI driver.
-
-This will work both with MSVS or Mingw.
-
-
-Windows Drivers
-------- -------
-
-At this time, only the gallium GDI driver is known to work.
-
-Source code also exists in the tree for other drivers in
-src/mesa/drivers/windows, but the status of this code is unknown.
-
-Recipe
-------
-
-Building on windows requires several open-source packages. These are
-steps that work as of this writing.
-
-- install python 2.7
-- install scons (latest)
-- install mingw, flex, and bison
-- install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
- get pywin32-218.4.win-amd64-py2.7.exe
-- install git
-- download mesa from git
- see https://www.mesa3d.org/repository.html
-- run scons
-
-General
--------
-
-After building, you can copy the above DLL files to a place in your
-PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
-in a system directory, place them in the same directory as the
-executable(s). Be careful about accidentially overwriting files of
-the same name in the SYSTEM32 directory.
-
-The DLL files are built so that the external entry points use the
-stdcall calling convention.
-
-Static LIB files are not built. The LIB files that are built with are
-the linker import files associated with the DLL files.
-
-The si-glu sources are used to build the GLU libs. This was done
-mainly to get the better tessellator code.
-
-If you have a Windows-related build problem or question, please post
-to the mesa-dev or mesa-users list.
diff --git a/docs/ci/index.rst b/docs/ci/index.rst
index e7dea7121ea..009fdf37075 100644
--- a/docs/ci/index.rst
+++ b/docs/ci/index.rst
@@ -14,7 +14,7 @@ modified and thus is unreliable).
The CI runs a number of tests, from trivial build-testing to complex GPU rendering:
- Build testing for a number of build systems, configurations and platforms
-- Sanity checks (``meson test`` & ``scons check``)
+- Sanity checks (``meson test``)
- Some drivers (softpipe, llvmpipe, freedreno and panfrost) are also tested
using `VK-GL-CTS <https://github.com/KhronosGroup/VK-GL-CTS>`__
- Replay of application traces
diff --git a/docs/debugging.rst b/docs/debugging.rst
index 9132cdb947b..9d3f7ad9567 100644
--- a/docs/debugging.rst
+++ b/docs/debugging.rst
@@ -8,7 +8,7 @@ with debugging. If ``MESA_DEBUG`` is defined, a message will be printed
to stdout whenever an error occurs.
More extensive error checking is done in DEBUG builds
-(``--buildtype debug`` for Meson, ``build=debug`` for SCons).
+(``--buildtype debug`` for Meson).
In your debugger you can set a breakpoint in ``_mesa_error()`` to trap
Mesa errors.
diff --git a/docs/drivers/llvmpipe.rst b/docs/drivers/llvmpipe.rst
index a810e7dfa38..fca394b22ca 100644
--- a/docs/drivers/llvmpipe.rst
+++ b/docs/drivers/llvmpipe.rst
@@ -68,18 +68,10 @@ Requirements
You can build only the x86 target by passing
``-DLLVM_TARGETS_TO_BUILD=X86`` to cmake.
-- scons (optional)
-
Building
--------
-To build everything on Linux invoke scons as:
-
-.. code-block:: console
-
- scons build=debug libgl-xlib
-
-Alternatively, you can build it with meson with:
+To build everything on Linux invoke meson as:
.. code-block:: console
@@ -88,12 +80,6 @@ Alternatively, you can build it with meson with:
meson -D glx=gallium-xlib -D gallium-drivers=swrast
ninja
-but the rest of these instructions assume that scons is used. For
-Windows the procedure is similar except the target:
-
-.. code-block:: console
-
- scons platform=windows build=debug libgl-gdi
Using
-----
@@ -116,9 +102,6 @@ or
To use it set the ``LD_LIBRARY_PATH`` environment variable accordingly.
-For performance evaluation pass ``build=release`` to scons, and use the
-corresponding lib directory without the ``-debug`` suffix.
-
Windows
~~~~~~~
@@ -156,15 +139,6 @@ on systems without any OpenGL drivers):
Profiling
---------
-To profile llvmpipe you should build as
-
-::
-
- scons build=profile <same-as-before>
-
-This will ensure that frame pointers are used both in C and JIT
-functions, and that no tail call optimizations are done by gcc.
-
Linux perf integration
~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/releasing.rst b/docs/releasing.rst
index b1f35c597d9..4bec655c5f9 100644
--- a/docs/releasing.rst
+++ b/docs/releasing.rst
@@ -219,7 +219,6 @@ Most of the testing should already be done during the
:ref:`cherry-pick <pickntest>` So we do a quick 'touch test'
- meson dist
-- scons (from release tarball)
- the produced binaries work
Here is one solution:
diff --git a/meson.build b/meson.build
index 9f53aa34d90..123b7b92229 100644
--- a/meson.build
+++ b/meson.build
@@ -980,7 +980,7 @@ elif host_machine.system() == 'windows'
pre_args += [
'-D_WINDOWS', '-D_WIN32_WINNT=0x0A00', '-DWINVER=0x0A00',
'-DPIPE_SUBSYSTEM_WINDOWS_USER',
- '-D_USE_MATH_DEFINES', # XXX: scons doesn't use this for mingw
+ '-D_USE_MATH_DEFINES', # XXX: scons didn't use this for mingw
]
if cc.get_id() == 'msvc'
pre_args += [
diff --git a/scons/crossmingw.py b/scons/crossmingw.py
deleted file mode 100644
index b2efccea7e8..00000000000
--- a/scons/crossmingw.py
+++ /dev/null
@@ -1,178 +0,0 @@
-"""SCons.Tool.gcc
-
-Tool-specific initialization for MinGW (http://www.mingw.org/)
-
-There normally shouldn't be any need to import this module directly.
-It will usually be imported through the generic SCons.Tool.Tool()
-selection method.
-
-See also http://www.scons.org/wiki/CrossCompilingMingw
-"""
-
-#
-# Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-import os
-import os.path
-import string
-
-import SCons.Action
-import SCons.Builder
-import SCons.Tool
-import SCons.Util
-
-# These are the mingw toolchain prefixes we search for:
-# (We only search for the mingw-w64 toolchain, and not the mingw.org one.)
-prefixes32 = SCons.Util.Split("""
- i686-w64-mingw32-
-""")
-prefixes64 = SCons.Util.Split("""
- x86_64-w64-mingw32-
-""")
-
-def find(env):
- if env['machine'] == 'x86_64':
- prefixes = prefixes64
- else:
- prefixes = prefixes32
- for prefix in prefixes:
- # First search in the SCons path and then the OS path:
- if env.WhereIs(prefix + 'gcc') or SCons.Util.WhereIs(prefix + 'gcc'):
- return prefix
-
- return ''
-
-def shlib_generator(target, source, env, for_signature):
- cmd = SCons.Util.CLVar(['$SHLINK', '$SHLINKFLAGS'])
-
- dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
- if dll: cmd.extend(['-o', dll])
-
- cmd.extend(['$SOURCES', '$_LIBDIRFLAGS', '$_LIBFLAGS'])
-
- implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
- if implib: cmd.append('-Wl,--out-implib,'+implib.get_string(for_signature))
-
- def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
- if def_target: cmd.append('-Wl,--output-def,'+def_target.get_string(for_signature))
-
- return [cmd]
-
-def shlib_emitter(target, source, env):
- dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
- no_import_lib = env.get('no_import_lib', 0)
-
- if not dll:
- raise SCons.Errors.UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX"))
-
- if not no_import_lib and \
- not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'):
-
- # Append an import library to the list of targets.
- target.append(env.ReplaceIxes(dll,
- 'SHLIBPREFIX', 'SHLIBSUFFIX',
- 'LIBPREFIX', 'LIBSUFFIX'))
-
- # Append a def file target if there isn't already a def file target
- # or a def file source. There is no option to disable def file
- # target emitting, because I can't figure out why someone would ever
- # want to turn it off.
- def_source = env.FindIxes(source, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
- def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
- if not def_source and not def_target:
- target.append(env.ReplaceIxes(dll,
- 'SHLIBPREFIX', 'SHLIBSUFFIX',
- 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX'))
-
- return (target, source)
-
-
-shlib_action = SCons.Action.Action(shlib_generator, '$SHLINKCOMSTR', generator=1)
-
-res_action = SCons.Action.Action('$RCCOM', '$RCCOMSTR')
-
-res_builder = SCons.Builder.Builder(action=res_action, suffix='.o',
- source_scanner=SCons.Tool.SourceFileScanner)
-SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
-
-
-
-def generate(env):
- mingw_prefix = find(env)
-
- if mingw_prefix:
- dir = os.path.dirname(env.WhereIs(mingw_prefix + 'gcc') or SCons.Util.WhereIs(mingw_prefix + 'gcc'))
-
- # The mingw bin directory must be added to the path:
- path = env['ENV'].get('PATH', [])
- if not path:
- path = []
- if SCons.Util.is_String(path):
- path = str.split(path, os.pathsep)
-
- env['ENV']['PATH'] = str.join(os.pathsep, [dir] + path)
-
- # Most of mingw is the same as gcc and friends...
- gnu_tools = ['gcc', 'g++', 'gnulink', 'ar', 'gas']
- for tool in gnu_tools:
- SCons.Tool.Tool(tool)(env)
-
- #... but a few things differ:
- env['CC'] = mingw_prefix + 'gcc'
- env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
- env['CXX'] = mingw_prefix + 'g++'
- env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS')
- env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared')
- env['SHLINKCOM'] = shlib_action
- env.Append(SHLIBEMITTER = [shlib_emitter])
- env['LINK'] = mingw_prefix + 'g++'
- env['AR'] = mingw_prefix + 'ar'
- env['RANLIB'] = mingw_prefix + 'ranlib'
- env['LINK'] = mingw_prefix + 'g++'
- env['AS'] = mingw_prefix + 'as'
- env['WIN32DEFPREFIX'] = ''
- env['WIN32DEFSUFFIX'] = '.def'
- env['SHOBJSUFFIX'] = '.o'
- env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
-
- env['RC'] = mingw_prefix + 'windres'
- env['RCFLAGS'] = SCons.Util.CLVar('')
- env['RCCOM'] = '$RC $_CPPDEFFLAGS $_CPPINCFLAGS ${INCPREFIX}${SOURCE.dir} $RCFLAGS -i $SOURCE -o $TARGET'
- env['BUILDERS']['RES'] = res_builder
-
- # Some setting from the platform also have to be overridden:
- env['OBJPREFIX'] = ''
- env['OBJSUFFIX'] = '.o'
- env['SHOBJPREFIX'] = '$OBJPREFIX'
- env['SHOBJSUFFIX'] = '$OBJSUFFIX'
- env['PROGPREFIX'] = ''
- env['PROGSUFFIX'] = '.exe'
- env['LIBPREFIX'] = 'lib'
- env['LIBSUFFIX'] = '.a'
- env['SHLIBPREFIX'] = ''
- env['SHLIBSUFFIX'] = '.dll'
- env['LIBPREFIXES'] = [ 'lib', '' ]
- env['LIBSUFFIXES'] = [ '.a', '.lib' ]
-
-def exists(env):
- return find(env)
diff --git a/scons/custom.py b/scons/custom.py
deleted file mode 100644
index 2fad8f5b6d4..00000000000
--- a/scons/custom.py
+++ /dev/null
@@ -1,331 +0,0 @@
-"""custom
-
-Custom builders and methods.
-
-"""
-
-#
-# Copyright 2008 VMware, Inc.
-# All Rights Reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sub license, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice (including the
-# next paragraph) shall be included in all copies or substantial portions
-# of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-# IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
-# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-
-import os.path
-import sys
-import subprocess
-import modulefinder
-
-import SCons.Action
-import SCons.Builder
-import SCons.Scanner
-
-import fixes
-
-import source_list
-
-# the get_implicit_deps() method changed between 2.4 and 2.5: now it expects
-# a callable that takes a scanner as argument and returns a path, rather than
-# a path directly. We want to support both, so we need to detect the SCons version,
-# for which no API is provided by SCons 8-P
-
-# Scons version string has consistently been in this format:
-# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
-# so this formula should cover all versions regardless of type
-# stable, alpha or beta.
-# For simplicity alpha and beta flags are removed.
-scons_version = tuple(map(int, SCons.__version__.split('.')[:3]))
-
-def quietCommandLines(env):
- # Quiet command lines
- # See also http://www.scons.org/wiki/HidingCommandLinesInOutput
- env['ASCOMSTR'] = " Assembling $SOURCE ..."
- env['ASPPCOMSTR'] = " Assembling $SOURCE ..."
- env['CCCOMSTR'] = " Compiling $SOURCE ..."
- env['SHCCCOMSTR'] = " Compiling $SOURCE ..."
- env['CXXCOMSTR'] = " Compiling $SOURCE ..."
- env['SHCXXCOMSTR'] = " Compiling $SOURCE ..."
- env['ARCOMSTR'] = " Archiving $TARGET ..."
- env['RANLIBCOMSTR'] = " Indexing $TARGET ..."
- env['LINKCOMSTR'] = " Linking $TARGET ..."
- env['SHLINKCOMSTR'] = " Linking $TARGET ..."
- env['LDMODULECOMSTR'] = " Linking $TARGET ..."
- env['SWIGCOMSTR'] = " Generating $TARGET ..."
- env['LEXCOMSTR'] = " Generating $TARGET ..."
- env['YACCCOMSTR'] = " Generating $TARGET ..."
- env['CODEGENCOMSTR'] = " Generating $TARGET ..."
- env['INSTALLSTR'] = " Installing $TARGET ..."
-
-
-def createConvenienceLibBuilder(env):
- """This is a utility function that creates the ConvenienceLibrary
- Builder in an Environment if it is not there already.
-
- If it is already there, we return the existing one.
-
- Based on the stock StaticLibrary and SharedLibrary builders.
- """
-
- try:
- convenience_lib = env['BUILDERS']['ConvenienceLibrary']
- except KeyError:
- action_list = [ SCons.Action.Action("$ARCOM", "$ARCOMSTR") ]
- if env.Detect('ranlib'):
- ranlib_action = SCons.Action.Action("$RANLIBCOM", "$RANLIBCOMSTR")
- action_list.append(ranlib_action)
-
- convenience_lib = SCons.Builder.Builder(action = action_list,
- emitter = '$LIBEMITTER',
- prefix = '$LIBPREFIX',
- suffix = '$LIBSUFFIX',
- src_suffix = '$SHOBJSUFFIX',
- src_builder = 'SharedObject')
- env['BUILDERS']['ConvenienceLibrary'] = convenience_lib
-
- return convenience_lib
-
-
-def python_scan(node, env, path):
- # http://www.scons.org/doc/0.98.5/HTML/scons-user/c2781.html#AEN2789
- # https://docs.python.org/2/library/modulefinder.html
- contents = node.get_contents()
-
- # Tell ModuleFinder to search dependencies in the script dir, and the glapi
- # dirs
- source_dir = node.get_dir().abspath
- GLAPI = env.Dir('#src/mapi/glapi/gen').abspath
- path = [source_dir, GLAPI] + sys.path
-
- finder = modulefinder.ModuleFinder(path=path)
- finder.run_script(node.abspath)
- results = []
- for name, mod in finder.modules.items():
- if mod.__file__ is None:
- continue
- assert os.path.exists(mod.__file__)
- results.append(env.File(mod.__file__))
- return results
-
-python_scanner = SCons.Scanner.Scanner(function = python_scan, skeys = ['.py'])
-
-
-def code_generate(env, script, target, source, command):
- """Method to simplify code generation via python scripts.
-
- http://www.scons.org/wiki/UsingCodeGenerators
- http://www.scons.org/doc/0.98.5/HTML/scons-user/c2768.html
- """
-
- # We're generating code using Python scripts, so we have to be
- # careful with our scons elements. This entry represents
- # the generator file *in the source directory*.
- script_src = env.File(script).srcnode()
-
- # This command creates generated code *in the build directory*.
- command = command.replace('$SCRIPT', script_src.path)
- action = SCons.Action.Action(command, "$CODEGENCOMSTR")
- code = env.Command(target, source, action)
-
- # Explicitly mark that the generated code depends on the generator,
- # and on implicitly imported python modules
- path = (script_src.get_dir(),) if scons_version < (2, 5, 0) else lambda x: script_src
- deps = [script_src]
- deps += script_src.get_implicit_deps(env, python_scanner, path)
- env.Depends(code, deps)
-
- # Running the Python script causes .pyc files to be generated in the
- # source directory. When we clean up, they should go too. So add side
- # effects for .pyc files
- for dep in deps:
- pyc = env.File(str(dep) + 'c')
- env.SideEffect(pyc, code)
-
- return code
-
-
-def createCodeGenerateMethod(env):
- env.Append(SCANNERS = python_scanner)
- env.AddMethod(code_generate, 'CodeGenerate')
-
-
-def _pkg_check_modules(env, name, modules):
- '''Simple wrapper for pkg-config.'''
-
- env['HAVE_' + name] = False
-
- # For backwards compatability
- env[name.lower()] = False
-
- if env['platform'] == 'windows':
- return
-
- if not env.Detect('pkg-config'):
- return
-
- if subprocess.call(["pkg-config", "--exists", ' '.join(modules)]) != 0:
- return
-
- # Strip version expressions from modules
- modules = [module.split(' ', 1)[0] for module in modules]
-
- # Other flags may affect the compilation of unrelated targets, so store
- # them with a prefix, (e.g., XXX_CFLAGS, XXX_LIBS, etc)
- try:
- flags = env.ParseFlags('!pkg-config --cflags --libs ' + ' '.join(modules))
- except OSError:
- return
- prefix = name + '_'
- for flag_name, flag_value in flags.items():
- assert '_' not in flag_name
- env[prefix + flag_name] = flag_value
-
- env['HAVE_' + name] = True
-
-def pkg_check_modules(env, name, modules):
-
- sys.stdout.write('Checking for %s (%s)...' % (name, ' '.join(modules)))
- _pkg_check_modules(env, name, modules)
- result = env['HAVE_' + name]
- sys.stdout.write(' %s\n' % ['no', 'yes'][int(bool(result))])
-
- # XXX: For backwards compatability
- env[name.lower()] = result
-
-
-def pkg_use_modules(env, names):
- '''Search for all environment flags that match NAME_FOO and append them to
- the FOO environment variable.'''
-
- names = env.Flatten(names)
-
- for name in names:
- prefix = name + '_'
-
- if not 'HAVE_' + name in env:
- raise Exception('Attempt to use unknown module %s' % name)
-
- if not env['HAVE_' + name]:
- raise Exception('Attempt to use unavailable module %s' % name)
-
- flags = {}
- for flag_name, flag_value in env.Dictionary().items():
- if flag_name.startswith(prefix):
- flag_name = flag_name[len(prefix):]
- if '_' not in flag_name:
- flags[flag_name] = flag_value
- if flags:
- env.MergeFlags(flags)
-
-
-def createPkgConfigMethods(env):
- env.AddMethod(pkg_check_modules, 'PkgCheckModules')
- env.AddMethod(pkg_use_modules, 'PkgUseModules')
-
-
-def parse_source_list(env, filename, names=None):
- # parse the source list file
- parser = source_list.SourceListParser()
- src = env.File(filename).srcnode()
-
- cur_srcdir = env.Dir('.').srcnode().abspath
- top_srcdir = env.Dir('#').abspath
- top_builddir = os.path.join(top_srcdir, env['build_dir'])
-
- # Normalize everything to / slashes
- cur_srcdir = cur_srcdir.replace('\\', '/')
- top_srcdir = top_srcdir.replace('\\', '/')
- top_builddir = top_builddir.replace('\\', '/')
-
- # Populate the symbol table of the Makefile parser.
- parser.add_symbol('top_srcdir', top_srcdir)
- parser.add_symbol('top_builddir', top_builddir)
-
- sym_table = parser.parse(src.abspath)
-
- if names:
- if sys.version_info[0] >= 3:
- if isinstance(names, str):
- names = [names]
- else:
- if isinstance(names, basestring):
- names = [names]
-
- symbols = names
- else:
- symbols = list(sym_table.keys())
-
- # convert the symbol table to source lists
- src_lists = {}
- for sym in symbols:
- val = sym_table[sym]
- srcs = []
- for f in val.split():
- if f:
- # Process source paths
- if f.startswith(top_builddir + '/src'):
- # Automake puts build output on a `src` subdirectory, but
- # SCons does not, so strip it here.
- f = top_builddir + f[len(top_builddir + '/src'):]
- if f.startswith(cur_srcdir + '/'):
- # Prefer relative source paths, as absolute files tend to
- # cause duplicate actions.
- f = f[len(cur_srcdir + '/'):]
- # do not include any headers
- if f.endswith(tuple(['.h','.hpp','.inl'])):
- continue
- srcs.append(f)
-
- src_lists[sym] = srcs
-
- # if names are given, concatenate the lists
- if names:
- srcs = []
- for name in names:
- srcs.extend(src_lists[name])
-
- return srcs
- else:
- return src_lists
-
-def createParseSourceListMethod(env):
- env.AddMethod(parse_source_list, 'ParseSourceList')
-
-
-def generate(env):
- """Common environment generation code"""
-
- verbose = env.get('verbose', False) or not env.get('quiet', True)
- if not verbose:
- quietCommandLines(env)
-
- # Custom builders and methods
- createConvenienceLibBuilder(env)
- createCodeGenerateMethod(env)
- createPkgConfigMethods(env)
- createParseSourceListMethod(env)
-
- # for debugging
- #print env.Dump()
-
-
-def exists(env):
- return 1
diff --git a/scons/fixes.py b/scons/fixes.py
deleted file mode 100644
index 714cccf61d2..00000000000
--- a/scons/fixes.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import sys
-
-# Monkey patch os.spawnve on windows to become thread safe
-if sys.platform == 'win32':
- import os
- import threading
- from os import spawnve as old_spawnve
-
- spawn_lock = threading.Lock()
-
- def new_spawnve(mode, file, args, env):
- spawn_lock.acquire()
- try:
- if mode == os.P_WAIT:
- ret = old_spawnve(os.P_NOWAIT, file, args, env)
- else:
- ret = old_spawnve(mode, file, args, env)
- finally:
- spawn_lock.release()
- if mode == os.P_WAIT:
- pid, status = os.waitpid(ret, 0)
- ret = status >> 8
- return ret
-
- os.spawnve = new_spawnve
-
-
diff --git a/scons/gallium.py b/scons/gallium.py
deleted file mode 100755
index 63accb143a5..00000000000
--- a/scons/gallium.py
+++ /dev/null
@@ -1,741 +0,0 @@
-"""gallium
-
-Frontend-tool for Gallium3D architecture.
-
-"""
-
-#
-# Copyright 2008 VMware, Inc.
-# All Rights Reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sub license, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice (including the
-# next paragraph) shall be included in all copies or substantial portions
-# of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-# IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
-# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-from __future__ import print_function
-
-import distutils.version
-import os
-import os.path
-import re
-import subprocess
-import platform as host_platform
-import sys
-import tempfile
-
-import SCons.Action
-import SCons.Builder
-import SCons.Scanner
-
-
-def symlink(target, source, env):
- target = str(target[0])
- source = str(source[0])
- if os.path.islink(target) or os.path.exists(target):
- os.remove(target)
- os.symlink(os.path.basename(source), target)
-
-def install(env, source, subdir):
- target_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build_dir'], subdir)
- return env.Install(target_dir, source)
-
-def install_program(env, source):
- return install(env, source, 'bin')
-
-def install_shared_library(env, sources, version = ()):
- targets = []
- install_dir = os.path.join(env.Dir('#.').srcnode().abspath, env['build_dir'])
- version = tuple(map(str, version))
- if env['SHLIBSUFFIX'] == '.dll':
- dlls = env.FindIxes(sources, 'SHLIBPREFIX', 'SHLIBSUFFIX')
- targets += install(env, dlls, 'bin')
- libs = env.FindIxes(sources, 'LIBPREFIX', 'LIBSUFFIX')
- targets += install(env, libs, 'lib')
- else:
- for source in sources:
- target_dir = os.path.join(install_dir, 'lib')
- target_name = '.'.join((str(source),) + version)
- last = env.InstallAs(os.path.join(target_dir, target_name), source)
- targets += last
- while len(version):
- version = version[:-1]
- target_name = '.'.join((str(source),) + version)
- action = SCons.Action.Action(symlink, " Symlinking $TARGET ...")
- last = env.Command(os.path.join(target_dir, target_name), last, action)
- targets += last
- return targets
-
-
-def msvc2013_compat(env):
- if env['gcc']:
- env.Append(CCFLAGS = [
- '-Werror=pointer-arith',
- ])
-
-
-def unit_test(env, test_name, program_target, args=None):
- env.InstallProgram(program_target)
-
- cmd = [program_target[0].abspath]
- if args is not None:
- cmd += args
- cmd = ' '.join(cmd)
-
- # http://www.scons.org/wiki/UnitTests
- action = SCons.Action.Action(cmd, " Running $SOURCE ...")
- alias = env.Alias(test_name, program_target, action)
- env.AlwaysBuild(alias)
- env.Depends('check', alias)
-
-
-def num_jobs():
- try:
- return int(os.environ['NUMBER_OF_PROCESSORS'])
- except (ValueError, KeyError):
- pass
-
- try:
- return os.sysconf('SC_NPROCESSORS_ONLN')
- except (ValueError, OSError, AttributeError):
- pass
-
- try:
- return int(os.popen2("sysctl -n hw.ncpu")[1].read())
- except ValueError:
- pass
-
- return 1
-
-
-def check_cc(env, cc, expr, cpp_opt = '-E'):
- # Invoke C-preprocessor to determine whether the specified expression is
- # true or not.
-
- sys.stdout.write('Checking for %s ... ' % cc)
-
- source = tempfile.NamedTemporaryFile(suffix='.c', delete=False)
- source.write(('#if !(%s)\n#error\n#endif\n' % expr).encode())
- source.close()
-
- # sys.stderr.write('%r %s %s\n' % (env['CC'], cpp_opt, source.name));
-
- pipe = SCons.Action._subproc(env, env.Split(env['CC']) + [cpp_opt, source.name],
- stdin = 'devnull',
- stderr = 'devnull',
- stdout = 'devnull')
- result = pipe.wait() == 0
-
- os.unlink(source.name)
-
- sys.stdout.write(' %s\n' % ['no', 'yes'][int(bool(result))])
- return result
-
-def check_header(env, header):
- '''Check if the header exist'''
-
- conf = SCons.Script.Configure(env)
- have_header = False
-
- if conf.CheckHeader(header):
- have_header = True
-
- env = conf.Finish()
- return have_header
-
-def check_functions(env, functions):
- '''Check if all of the functions exist'''
-
- conf = SCons.Script.Configure(env)
- have_functions = True
-
- for function in functions:
- if not conf.CheckFunc(function):
- have_functions = False
-
- env = conf.Finish()
- return have_functions
-
-def check_prog(env, prog):
- """Check whether this program exists."""
-
- sys.stdout.write('Checking for %s ... ' % prog)
-
- result = env.Detect(prog)
-
- sys.stdout.write(' %s\n' % ['no', 'yes'][int(bool(result))])
- return result
-
-
-def generate(env):
- """Common environment generation code"""
-
- # Tell tools which machine to compile for
- env['TARGET_ARCH'] = env['machine']
- env['MSVS_ARCH'] = env['machine']
-
- # Toolchain
- platform = env['platform']
- env.Tool(env['toolchain'])
-
- # Allow override compiler and specify additional flags from environment
- if 'CC' in os.environ:
- env['CC'] = os.environ['CC']
- if 'CFLAGS' in os.environ:
- env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
- if 'CXX' in os.environ:
- env['CXX'] = os.environ['CXX']
- if 'CXXFLAGS' in os.environ:
- env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
- if 'LDFLAGS' in os.environ:
- env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
-
- # Detect gcc/clang not by executable name, but through pre-defined macros
- # as autoconf does, to avoid drawing wrong conclusions when using tools
- # that overrice CC/CXX like scan-build.
- env['gcc_compat'] = 0
- env['clang'] = 0
- env['msvc'] = 0
- if host_platform.system() == 'Windows':
- env['msvc'] = check_cc(env, 'MSVC', 'defined(_MSC_VER)', '/E')
- if not env['msvc']:
- env['gcc_compat'] = check_cc(env, 'GCC', 'defined(__GNUC__)')
- env['clang'] = check_cc(env, 'Clang', '__clang__')
- env['gcc'] = env['gcc_compat'] and not env['clang']
- env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) == 'cc'
- env['icc'] = 'icc' == os.path.basename(env['CC'])
-
- # shortcuts
- machine = env['machine']
- platform = env['platform']
- x86 = env['machine'] == 'x86'
- ppc = env['machine'] == 'ppc'
- gcc_compat = env['gcc_compat']
- msvc = env['msvc']
- suncc = env['suncc']
- icc = env['icc']
-
- # Determine whether we are cross compiling; in particular, whether we need
- # to compile code generators with a different compiler as the target code.
- hosthost_platform = host_platform.system().lower()
- if hosthost_platform.startswith('cygwin'):
- hosthost_platform = 'cygwin'
- # Avoid spurious crosscompilation in MSYS2 environment.
- if hosthost_platform.startswith('mingw'):
- hosthost_platform = 'windows'
- host_machine = os.environ.get('PROCESSOR_ARCHITEW6432', os.environ.get('PROCESSOR_ARCHITECTURE', host_platform.machine()))
- host_machine = {
- 'x86': 'x86',
- 'i386': 'x86',
- 'i486': 'x86',
- 'i586': 'x86',
- 'i686': 'x86',
- 'ppc' : 'ppc',
- 'AMD64': 'x86_64',
- 'x86_64': 'x86_64',
- }.get(host_machine, 'generic')
- env['crosscompile'] = platform != hosthost_platform
- if machine == 'x86_64' and host_machine != 'x86_64':
- env['crosscompile'] = True
- env['hostonly'] = False
-
- # Backwards compatability with the debug= profile= options
- if env['build'] == 'debug':
- if not env['debug']:
- print('scons: warning: debug option is deprecated and will be removed eventually; use instead')
- print('')
- print(' scons build=release')
- print('')
- env['build'] = 'release'
- if env['profile']:
- print('scons: warning: profile option is deprecated and will be removed eventually; use instead')
- print('')
- print(' scons build=profile')
- print('')
- env['build'] = 'profile'
- if False:
- # Enforce SConscripts to use the new build variable
- env.popitem('debug')
- env.popitem('profile')
- else:
- # Backwards portability with older sconscripts
- if env['build'] in ('debug', 'checked'):
- env['debug'] = True
- env['profile'] = False
- if env['build'] == 'profile':
- env['debug'] = False
- env['profile'] = True
- if env['build'] == 'release':
- env['debug'] = False
- env['profile'] = False
-
- # Put build output in a separate dir, which depends on the current
- # configuration. See also http://www.scons.org/wiki/AdvancedBuildExample
- build_topdir = 'build'
- build_subdir = env['platform']
- if env['embedded']:
- build_subdir = 'embedded-' + build_subdir
- if env['machine'] != 'generic':
- build_subdir += '-' + env['machine']
- if env['build'] != 'release':
- build_subdir += '-' + env['build']
- build_dir = os.path.join(build_topdir, build_subdir)
- # Place the .sconsign file in the build dir too, to avoid issues with
- # different scons versions building the same source file
- env['build_dir'] = build_dir
- env.SConsignFile(os.path.join(build_dir, '.sconsign'))
- if 'SCONS_CACHE_DIR' in os.environ:
- print('scons: Using build cache in %s.' % (os.environ['SCONS_CACHE_DIR'],))
- env.CacheDir(os.environ['SCONS_CACHE_DIR'])
- env['CONFIGUREDIR'] = os.path.join(build_dir, 'conf')
- env['CONFIGURELOG'] = os.path.join(os.path.abspath(build_dir), 'config.log')
-
- # Parallel build
- if env.GetOption('num_jobs') <= 1:
- env.SetOption('num_jobs', num_jobs())
-
- # Speed up dependency checking. See
- # - https://github.com/SCons/scons/wiki/GoFastButton
- # - https://bugs.freedesktop.org/show_bug.cgi?id=109443
-
- # Scons version string has consistently been in this format:
- # MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
- # so this formula should cover all versions regardless of type
- # stable, alpha or beta.
- # For simplicity alpha and beta flags are removed.
-
- scons_version = distutils.version.StrictVersion('.'.join(SCons.__version__.split('.')[:3]))
- if scons_version < distutils.version.StrictVersion('3.0.2') or \
- scons_version > distutils.version.StrictVersion('3.0.4'):
- env.Decider('MD5-timestamp')
- env.SetOption('max_drift', 60)
-
- # C preprocessor options
- cppdefines = []
- cppdefines += [
- '__STDC_CONSTANT_MACROS',
- '__STDC_FORMAT_MACROS',
- '__STDC_LIMIT_MACROS',
- 'HAVE_SCONS',
- ]
- if env['build'] in ('debug', 'checked'):
- cppdefines += ['DEBUG']
- else:
- cppdefines += ['NDEBUG']
- if env['build'] == 'profile':
- cppdefines += ['PROFILE']
-
- if check_functions(env, ['timespec_get']):
- cppdefines += ['HAVE_TIMESPEC_GET']
-
- if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
- cppdefines += [
- '_POSIX_SOURCE',
- ('_POSIX_C_SOURCE', '199309L'),
- '_SVID_SOURCE',
- '_BSD_SOURCE',
- '_GNU_SOURCE',
- '_DEFAULT_SOURCE',
- ]
- if env['platform'] == 'darwin':
- cppdefines += [
- '_DARWIN_C_SOURCE',
- 'GLX_USE_APPLEGL',
- 'GLX_DIRECT_RENDERING',
- 'BUILDING_MESA',
- ]
- else:
- cppdefines += [
- 'GLX_DIRECT_RENDERING',
- 'GLX_INDIRECT_RENDERING',
- ]
-
- if check_header(env, 'xlocale.h'):
- cppdefines += ['HAVE_XLOCALE_H']
-
- if check_header(env, 'endian.h'):
- cppdefines += ['HAVE_ENDIAN_H']
-
- if check_functions(env, ['strtod_l', 'strtof_l']):
- cppdefines += ['HAVE_STRTOD_L']
-
- if check_functions(env, ['random_r']):
- cppdefines += ['HAVE_RANDOM_R']
-
- if check_header(env, 'sys/shm.h'):
- cppdefines += ['HAVE_SYS_SHM_H']
-
- if check_functions(env, ['strtok_r']):
- cppdefines += ['HAVE_STRTOK_R']
-
- #FIXME: we should really be checking for the major()/minor()
- # functions/macros in these headers, but check_functions()'s
- # SConf.CheckFunc() doesn't seem to support macros.
- if check_header(env, 'sys/mkdev.h'):
- cppdefines += ['MAJOR_IN_MKDEV']
- if check_header(env, 'sys/sysmacros.h'):
- cppdefines += ['MAJOR_IN_SYSMACROS']
-
- if platform == 'windows':
- cppdefines += [
- 'WIN32',
- '_WINDOWS',
- #'_UNICODE',
- #'UNICODE',
- # http://msdn.microsoft.com/en-us/library/aa383745.aspx
- ('_WIN32_WINNT', '0x0A00'),
- ('WINVER', '0x0A00'),
- ]
- if gcc_compat:
- cppdefines += [('__MSVCRT_VERSION__', '0x0700')]
- cppdefines += ['_USE_MATH_DEFINES']
- if msvc:
- cppdefines += [
- 'VC_EXTRALEAN',
- '_USE_MATH_DEFINES',
- '_CRT_SECURE_NO_WARNINGS',
- '_CRT_SECURE_NO_DEPRECATE',
- '_SCL_SECURE_NO_WARNINGS',
- '_SCL_SECURE_NO_DEPRECATE',
- '_ALLOW_KEYWORD_MACROS',
- '_HAS_EXCEPTIONS=0', # Tell C++ STL to not use exceptions
- ]
- if env['build'] in ('debug', 'checked'):
- cppdefines += ['_DEBUG']
- if env['embedded']:
- cppdefines += ['EMBEDDED_DEVICE']
- env.Append(CPPDEFINES = cppdefines)
-
- # C compiler options
- cflags = [] # C
- cxxflags = [] # C++
- ccflags = [] # C & C++
- if gcc_compat:
- if env['build'] == 'debug':
- ccflags += ['-O0']
- else:
- ccflags += ['-O3']
- if env['gcc']:
- # gcc's builtin memcmp is slower than glibc's
- # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
- ccflags += ['-fno-builtin-memcmp']
- # Work around aliasing bugs - developers should comment this out
- ccflags += ['-fno-strict-aliasing']
- ccflags += ['-g']
- if env['build'] in ('checked', 'profile') or env['asan']:
- # See http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#Which_options_should_I_pass_to_gcc_when_compiling_for_profiling?
- ccflags += [
- '-fno-omit-frame-pointer',
- ]
- if env['gcc']:
- ccflags += ['-fno-optimize-sibling-calls']
- if env['machine'] == 'x86':
- ccflags += [
- '-m32',
- #'-march=pentium4',
- ]
- if platform != 'haiku':
- # NOTE: We need to ensure stack is realigned given that we
- # produce shared objects, and have no control over the stack
- # alignment policy of the application. Therefore we need
- # -mstackrealign ore -mincoming-stack-boundary=2.
- #
- # XXX: We could have SSE without -mstackrealign if we always used
- # __attribute__((force_align_arg_pointer)), but that's not
- # always the case.
- ccflags += [
- '-mstackrealign', # ensure stack is aligned
- '-msse', '-msse2', # enable SIMD intrinsics
- '-mfpmath=sse', # generate SSE floating-point arithmetic
- ]
- if platform in ['windows', 'darwin']:
- # Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
- ccflags += ['-fno-common']
- if platform in ['haiku']:
- # Make optimizations compatible with Pentium or higher on Haiku
- ccflags += [
- '-mstackrealign', # ensure stack is aligned
- '-march=i586', # Haiku target is Pentium
- '-mtune=i686' # use i686 where we can
- ]
- if env['machine'] == 'x86_64':
- ccflags += ['-m64']
- if platform == 'darwin':
- ccflags += ['-fno-common']
- if env['platform'] not in ('cygwin', 'haiku', 'windows'):
- ccflags += ['-fvisibility=hidden']
- # See also:
- # - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
- ccflags += [
- '-Wall',
- '-Wno-long-long',
- '-fmessage-length=0', # be nice to Eclipse
- ]
- cflags += [
- '-Werror=implicit-function-declaration',
- '-Werror=missing-prototypes',
- '-Werror=return-type',
- '-Werror=incompatible-pointer-types',
- ]
- if platform == 'darwin' and host_platform.mac_ver()[0] >= '10.15':
- cflags += ['-std=gnu11']
- else:
- cflags += ['-std=gnu99']
- cxxflags += ['-std=c++14']
- if icc:
- cflags += [
- '-std=gnu99',
- ]
- if msvc:
- # See also:
- # - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
- # - cl /?
- if env['build'] == 'debug':
- ccflags += [
- '/Od', # disable optimizations
- '/Oi', # enable intrinsic functions
- ]
- else:
- ccflags += [
- '/O2', # optimize for speed
- ]
- if env['build'] == 'release':
- if not env['clang']:
- ccflags += [
- '/GL', # enable whole program optimization
- ]
- else:
- ccflags += [
- '/Oy-', # disable frame pointer omission
- ]
- ccflags += [
- '/W3', # warning level
- '/wd4018', # signed/unsigned mismatch
- '/wd4056', # overflow in floating-point constant arithmetic
- '/wd4244', # conversion from 'type1' to 'type2', possible loss of data
- '/wd4267', # 'var' : conversion from 'size_t' to 'type', possible loss of data
- '/wd4305', # truncation from 'type1' to 'type2'
- '/wd4351', # new behavior: elements of array 'array' will be default initialized
- '/wd4756', # overflow in constant arithmetic
- '/wd4800', # forcing value to bool 'true' or 'false' (performance warning)
- '/wd4996', # disable deprecated POSIX name warnings
- ]
- if env['clang']:
- ccflags += [
- '-Wno-microsoft-enum-value', # enumerator value is not representable in underlying type 'int'
- ]
- if env['machine'] == 'x86':
- ccflags += [
- '/arch:SSE2', # use the SSE2 instructions (default since MSVC 2012)
- ]
- if platform == 'windows':
- ccflags += [
- # TODO
- ]
- # Automatic pdb generation
- # See http://scons.tigris.org/issues/show_bug.cgi?id=1656
- env.EnsureSConsVersion(0, 98, 0)
- env['PDB'] = '${TARGET.base}.pdb'
- env.Append(CCFLAGS = ccflags)
- env.Append(CFLAGS = cflags)
- env.Append(CXXFLAGS = cxxflags)
-
- if env['platform'] == 'windows' and msvc:
- # Choose the appropriate MSVC CRT
- # http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
- if env['build'] in ('debug', 'checked'):
- env.Append(CCFLAGS = ['/MTd'])
- env.Append(SHCCFLAGS = ['/LDd'])
- else:
- env.Append(CCFLAGS = ['/MT'])
- env.Append(SHCCFLAGS = ['/LD'])
-
- # Static code analysis
- if env['analyze']:
- if env['msvc']:
- # http://msdn.microsoft.com/en-us/library/ms173498.aspx
- env.Append(CCFLAGS = [
- '/analyze',
- #'/analyze:log', '${TARGET.base}.xml',
- '/wd28251', # Inconsistent annotation for function
- ])
- if env['clang']:
- # scan-build will produce more comprehensive output
- env.Append(CCFLAGS = ['--analyze'])
-
- # https://github.com/google/sanitizers/wiki/AddressSanitizer
- if env['asan']:
- if gcc_compat:
- env.Append(CCFLAGS = [
- '-fsanitize=address',
- ])
- env.Append(LINKFLAGS = [
- '-fsanitize=address',
- ])
-
- # Assembler options
- if gcc_compat:
- if env['machine'] == 'x86':
- env.Append(ASFLAGS = ['-m32'])
- if env['machine'] == 'x86_64':
- env.Append(ASFLAGS = ['-m64'])
-
- # Linker options
- linkflags = []
- shlinkflags = []
- if gcc_compat:
- if env['machine'] == 'x86':
- linkflags += ['-m32']
- if env['machine'] == 'x86_64':
- linkflags += ['-m64']
- if env['platform'] not in ('darwin'):
- shlinkflags += [
- '-Wl,-Bsymbolic',
- ]
- # Handle circular dependencies in the libraries
- if env['platform'] in ('darwin'):
- pass
- else:
- env['_LIBFLAGS'] = '-Wl,--start-group ' + env['_LIBFLAGS'] + ' -Wl,--end-group'
- if env['platform'] == 'windows':
- linkflags += [
- '-Wl,--nxcompat', # DEP
- '-Wl,--dynamicbase', # ASLR
- ]
- # Avoid depending on gcc runtime DLLs
- linkflags += ['-static-libgcc']
- if 'w64' in env['CC'].split('-'):
- linkflags += ['-static-libstdc++']
- # Handle the @xx symbol munging of DLL exports
- shlinkflags += ['-Wl,--enable-stdcall-fixup']
- #shlinkflags += ['-Wl,--kill-at']
- if msvc:
- if env['build'] == 'release' and not env['clang']:
- # enable Link-time Code Generation
- linkflags += ['/LTCG']
- env.Append(ARFLAGS = ['/LTCG'])
- if platform == 'windows' and msvc:
- # See also:
- # - http://msdn2.microsoft.com/en-us/library/y0zzbyt4.aspx
- linkflags += [
- '/fixed:no',
- '/incremental:no',
- '/dynamicbase', # ASLR
- '/nxcompat', # DEP
- ]
- env.Append(LINKFLAGS = linkflags)
- env.Append(SHLINKFLAGS = shlinkflags)
-
- # We have C++ in several libraries, so always link with the C++ compiler
- if gcc_compat:
- env['LINK'] = env['CXX']
-
- # Default libs
- libs = []
- if env['platform'] in ('darwin', 'freebsd', 'linux', 'posix', 'sunos'):
- libs += ['m', 'pthread', 'dl']
- if env['platform'] in ('linux',):
- libs += ['rt']
- if env['platform'] in ('haiku'):
- libs += ['root', 'be', 'network', 'translation']
- env.Append(LIBS = libs)
-
- # OpenMP
- if env['openmp']:
- if env['msvc']:
- env.Append(CCFLAGS = ['/openmp'])
- # When building openmp release VS2008 link.exe crashes with LNK1103 error.
- # Workaround: overwrite PDB flags with empty value as it isn't required anyways
- if env['build'] == 'release':
- env['PDB'] = ''
- if env['gcc']:
- env.Append(CCFLAGS = ['-fopenmp'])
- env.Append(LIBS = ['gomp'])
-
- # Load tools
- env.Tool('lex')
- if env['msvc']:
- env.Append(LEXFLAGS = [
- # Force flex to use const keyword in prototypes, as relies on
- # __cplusplus or __STDC__ macro to determine whether it's safe to
- # use const keyword, but MSVC never defines __STDC__ unless we
- # disable all MSVC extensions.
- '-DYY_USE_CONST=',
- ])
- # Flex relies on __STDC_VERSION__>=199901L to decide when to include
- # C99 inttypes.h. We always have inttypes.h available with MSVC
- # (either the one bundled with MSVC 2013, or the one we bundle
- # ourselves), but we can't just define __STDC_VERSION__ without
- # breaking stuff, as MSVC doesn't fully support C99. There's also no
- # way to premptively include stdint.
- env.Append(CCFLAGS = ['-FIinttypes.h'])
- if host_platform.system() == 'Windows':
- # Prefer winflexbison binaries, as not only they are easier to install
- # (no additional dependencies), but also better Windows support.
- if check_prog(env, 'win_flex'):
- env["LEX"] = 'win_flex'
- env.Append(LEXFLAGS = [
- # windows compatibility (uses <io.h> instead of <unistd.h> and
- # _isatty, _fileno functions)
- '--wincompat'
- ])
-
- env.Tool('yacc')
- if host_platform.system() == 'Windows':
- if check_prog(env, 'win_bison'):
- env["YACC"] = 'win_bison'
-
- if env['llvm']:
- env.Tool('llvm')
-
- # Custom builders and methods
- env.Tool('custom')
- env.AddMethod(install_program, 'InstallProgram')
- env.AddMethod(install_shared_library, 'InstallSharedLibrary')
- env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
- env.AddMethod(unit_test, 'UnitTest')
-
- env.PkgCheckModules('X11', ['x11', 'xext', 'xfixes', 'glproto >= 1.4.13', 'dri2proto >= 2.8'])
- env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
- env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
- env.PkgCheckModules('DRM', ['libdrm >= 2.4.75'])
-
- if not os.path.exists("src/util/format_srgb.c"):
- print("Checking for Python Mako module (>= 0.8.0)... ", end='')
- try:
- import mako
- except ImportError:
- print("no")
- exit(1)
- if distutils.version.StrictVersion(mako.__version__) < distutils.version.StrictVersion('0.8.0'):
- print("no")
- exit(1)
- print("yes")
-
- if env['x11']:
- env.Append(CPPPATH = env['X11_CPPPATH'])
-
- env['dri'] = env['x11'] and env['drm']
-
- # for debugging
- #print env.Dump()
-
-
-def exists(env):
- return 1
diff --git a/scons/llvm.py b/scons/llvm.py
deleted file mode 100644
index a8d2860a3be..00000000000
--- a/scons/llvm.py
+++ /dev/null
@@ -1,350 +0,0 @@
-"""llvm
-
-Tool-specific initialization for LLVM
-
-"""
-
-#
-# Copyright (c) 2009 VMware, Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-import os
-import os.path
-import re
-import platform as host_platform
-import sys
-import distutils.version
-
-import SCons.Errors
-import SCons.Util
-
-
-required_llvm_version = '3.9'
-
-
-def generate(env):
- env['llvm'] = False
-
- try:
- llvm_dir = os.environ['LLVM']
- except KeyError:
- # Do nothing -- use the system headers/libs
- llvm_dir = None
- else:
- if not os.path.isdir(llvm_dir):
- raise SCons.Errors.InternalError("Specified LLVM directory not found")
-
- if env['debug']:
- llvm_subdir = 'Debug'
- else:
- llvm_subdir = 'Release'
-
- llvm_bin_dir = os.path.join(llvm_dir, llvm_subdir, 'bin')
- if not os.path.isdir(llvm_bin_dir):
- llvm_bin_dir = os.path.join(llvm_dir, 'bin')
- if not os.path.isdir(llvm_bin_dir):
- raise SCons.Errors.InternalError("LLVM binary directory not found")
-
- env.PrependENVPath('PATH', llvm_bin_dir)
-
- if env['platform'] == 'windows':
- # XXX: There is no llvm-config on Windows, so assume a standard layout
- if llvm_dir is None:
- print('scons: LLVM environment variable must be specified when building for windows')
- return
-
- # Try to determine the LLVM version from llvm/Config/config.h
- llvm_config = os.path.join(llvm_dir, 'include/llvm/Config/llvm-config.h')
- if not os.path.exists(llvm_config):
- print('scons: could not find %s' % llvm_config)
- return
- llvm_version_major_re = re.compile(r'^#define LLVM_VERSION_MAJOR ([0-9]+)')
- llvm_version_minor_re = re.compile(r'^#define LLVM_VERSION_MINOR ([0-9]+)')
- llvm_version = None
- llvm_version_major = None
- llvm_version_minor = None
- for line in open(llvm_config, 'rt'):
- mo = llvm_version_major_re.match(line)
- if mo:
- llvm_version_major = mo.group(1)
- mo = llvm_version_minor_re.match(line)
- if mo:
- llvm_version_minor = mo.group(1)
- if llvm_version_major is not None and llvm_version_minor is not None:
- llvm_version = distutils.version.LooseVersion('%s.%s' % (llvm_version_major, llvm_version_minor))
-
- if llvm_version is None:
- print('scons: could not determine the LLVM version from %s' % llvm_config)
- return
- if llvm_version < distutils.version.LooseVersion(required_llvm_version):
- print('scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version))
- return
-
- env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
- env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
-
- # LLVM 5.0 and newer requires MinGW w/ pthreads due to use of std::thread and friends.
- if llvm_version >= distutils.version.LooseVersion('5.0') and env['crosscompile']:
- assert env['gcc']
- env.AppendUnique(CXXFLAGS = ['-posix'])
-
- # LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter irreader` for LLVM<=7.0
- # and `llvm-config --libs engine coroutines` for LLVM>=8.0
- # LLVMAggressiveInstCombine library part of engine component since LLVM 6 is only needed by Mesa3D for LLVM>=8.
- # While not directly needed by Mesa3D, this library is needed by LLVMipo which is part of coroutines component.
- if llvm_version >= distutils.version.LooseVersion('11.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- 'LLVMBinaryFormat',
- 'LLVMRemarks', 'LLVMBitstreamReader', 'LLVMDebugInfoDWARF',
- 'LLVMAggressiveInstCombine','LLVMLinker', 'LLVMVectorize',
- 'LLVMInstrumentation', 'LLVMipo', 'LLVMCoroutines',
- 'LLVMCFGuard', 'LLVMTextAPI',
- 'LLVMFrontendOpenMP',
- ])
- elif llvm_version >= distutils.version.LooseVersion('10.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- 'LLVMBinaryFormat',
- 'LLVMRemarks', 'LLVMBitstreamReader', 'LLVMDebugInfoDWARF',
- 'LLVMAggressiveInstCombine','LLVMLinker', 'LLVMVectorize',
- 'LLVMInstrumentation', 'LLVMipo', 'LLVMCoroutines',
- 'LLVMCFGuard', 'LLVMTextAPI',
- ])
- elif llvm_version >= distutils.version.LooseVersion('9.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- 'LLVMBinaryFormat',
- 'LLVMRemarks', 'LLVMBitstreamReader', 'LLVMDebugInfoDWARF',
- # Add these libraries to enable ompute shaders support.
- 'LLVMAggressiveInstCombine','LLVMLinker', 'LLVMVectorize',
- 'LLVMInstrumentation', 'LLVMipo', 'LLVMCoroutines',
- ])
- elif llvm_version >= distutils.version.LooseVersion('8.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86AsmPrinter', 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- 'LLVMBinaryFormat',
- # Add these libraries to enable ompute shaders support.
- 'LLVMAggressiveInstCombine', 'LLVMLinker', 'LLVMVectorize',
- 'LLVMInstrumentation', 'LLVMipo', 'LLVMCoroutines',
- ])
- elif llvm_version >= distutils.version.LooseVersion('5.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86AsmPrinter', 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- 'LLVMBinaryFormat',
- ])
- elif llvm_version >= distutils.version.LooseVersion('4.0'):
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86AsmPrinter', 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMAsmParser',
- 'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
- ])
- else:
- env.Prepend(LIBS = [
- 'LLVMX86Disassembler', 'LLVMX86AsmParser',
- 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
- 'LLVMDebugInfoCodeView', 'LLVMCodeGen',
- 'LLVMScalarOpts', 'LLVMInstCombine',
- 'LLVMInstrumentation', 'LLVMTransformUtils',
- 'LLVMBitWriter', 'LLVMX86Desc',
- 'LLVMMCDisassembler', 'LLVMX86Info',
- 'LLVMX86AsmPrinter', 'LLVMX86Utils',
- 'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
- 'LLVMAnalysis', 'LLVMProfileData',
- 'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
- 'LLVMBitReader', 'LLVMMC', 'LLVMCore',
- 'LLVMSupport',
- 'LLVMIRReader', 'LLVMASMParser'
- ])
- env.Append(LIBS = [
- 'imagehlp',
- 'psapi',
- 'shell32',
- 'advapi32',
- 'ole32',
- 'uuid',
- ])
-
- # Mingw-w64 zlib is required when building with LLVM support in MSYS2 environment
- if host_platform.system().lower().startswith('mingw'):
- env.Append(LIBS = [
- 'z',
- ])
-
- if env['msvc']:
- # Some of the LLVM C headers use the inline keyword without
- # defining it.
- env.Append(CPPDEFINES = [('inline', '__inline')])
- # Match some of the warning options from llvm/cmake/modules/HandleLLVMOptions.cmake
- env.AppendUnique(CXXFLAGS = [
- '/wd4355', # 'this' : used in base member initializer list
- '/wd4624', # 'derived class' : destructor could not be generated because a base class destructor is inaccessible
- ])
- if env['build'] in ('debug', 'checked'):
- # LLVM libraries are static, build with /MT, and they
- # automatically link agains LIBCMT. When we're doing a
- # debug build we'll be linking against LIBCMTD, so disable
- # that.
- env.Append(LINKFLAGS = ['/nodefaultlib:LIBCMT'])
- else:
- llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
- if not env.Detect(llvm_config):
- print('scons: %s script not found' % llvm_config)
- return
-
- llvm_version = env.backtick('%s --version' % llvm_config).rstrip()
- llvm_version = distutils.version.LooseVersion(llvm_version)
-
- if llvm_version < distutils.version.LooseVersion(required_llvm_version):
- print('scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version))
- return
-
- try:
- # Treat --cppflags specially to prevent NDEBUG from disabling
- # assertion failures in debug builds.
- cppflags = env.ParseFlags('!%s --cppflags' % llvm_config)
- try:
- cppflags['CPPDEFINES'].remove('NDEBUG')
- except ValueError:
- pass
- env.MergeFlags(cppflags)
-
- # Match llvm --fno-rtti flag
- cxxflags = env.backtick('%s --cxxflags' % llvm_config).split()
- if '-fno-rtti' in cxxflags:
- env.Append(CXXFLAGS = ['-fno-rtti'])
-
- if llvm_version < distutils.version.LooseVersion('9.0'):
- components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter', 'mcdisassembler', 'irreader']
- else:
- components = ['engine', 'mcjit', 'bitwriter', 'mcdisassembler', 'irreader']
-
- if llvm_version >= distutils.version.LooseVersion('8.0'):
- components.append('coroutines')
-
- if llvm_version >= distutils.version.LooseVersion('12.0'):
- components.append('native')
-
- env.ParseConfig('%s --libs ' % llvm_config + ' '.join(components))
- env.ParseConfig('%s --ldflags' % llvm_config)
- env.ParseConfig('%s --system-libs' % llvm_config)
- env.Append(CXXFLAGS = ['-std=c++14'])
- except OSError:
- print('scons: llvm-config version %s failed' % llvm_version)
- return
-
- assert llvm_version is not None
- env['llvm'] = True
-
- print('scons: Found LLVM version %s' % llvm_version)
- env['LLVM_VERSION'] = llvm_version
-
- # Define LLVM_AVAILABLE macro to guard code blocks, and MESA_LLVM_VERSION_STRING
- env.Prepend(CPPDEFINES = [('LLVM_AVAILABLE', 1)])
- env.Prepend(CPPDEFINES = [('DRAW_LLVM_AVAILABLE', 1)])
- env.Prepend(CPPDEFINES = [('MESA_LLVM_VERSION_STRING=\\"%s\\"' % llvm_version)])
-
-def exists(env):
- return True
-
-# vim:set ts=4 sw=4 et:
diff --git a/scons/source_list.py b/scons/source_list.py
deleted file mode 100644
index e16d1f9b6d2..00000000000
--- a/scons/source_list.py
+++ /dev/null
@@ -1,130 +0,0 @@
-"""Source List Parser
-
-The syntax of a source list file is a very small subset of GNU Make. These
-features are supported
-
- operators: =, +=, :=
- line continuation
- non-nested variable expansion
- comment
-
-The goal is to allow Makefile's and SConscript's to share source listing.
-"""
-
-class SourceListParser(object):
- def __init__(self):
- self.symbol_table = {}
- self._reset()
-
- def _reset(self, filename=None):
- self.filename = filename
-
- self.line_no = 1
- self.line_cont = ''
-
- def _error(self, msg):
- raise RuntimeError('%s:%d: %s' % (self.filename, self.line_no, msg))
-
- def _next_dereference(self, val, cur):
- """Locate the next $(...) in value."""
- deref_pos = val.find('$', cur)
- if deref_pos < 0:
- return (-1, -1)
- elif val[deref_pos + 1] != '(':
- self._error('non-variable dereference')
-
- deref_end = val.find(')', deref_pos + 2)
- if deref_end < 0:
- self._error('unterminated variable dereference')
-
- return (deref_pos, deref_end + 1)
-
- def _expand_value(self, val):
- """Perform variable expansion."""
- expanded = ''
- cur = 0
- while True:
- deref_pos, deref_end = self._next_dereference(val, cur)
- if deref_pos < 0:
- expanded += val[cur:]
- break
-
- sym = val[(deref_pos + 2):(deref_end - 1)]
- expanded += val[cur:deref_pos] + self.symbol_table[sym]
- cur = deref_end
-
- return expanded
-
- def _parse_definition(self, line):
- """Parse a variable definition line."""
- op_pos = line.find('=')
- op_end = op_pos + 1
- if op_pos < 0:
- self._error('not a variable definition')
-
- if op_pos > 0:
- if line[op_pos - 1] in [':', '+', '?']:
- op_pos -= 1
- else:
- self._error('only =, :=, and += are supported')
-
- # set op, sym, and val
- op = line[op_pos:op_end]
- sym = line[:op_pos].strip()
- val = self._expand_value(line[op_end:].lstrip())
-
- if op in ('=', ':='):
- self.symbol_table[sym] = val
- elif op == '+=':
- self.symbol_table[sym] += ' ' + val
- elif op == '?=':
- if sym not in self.symbol_table:
- self.symbol_table[sym] = val
-
- def _parse_line(self, line):
- """Parse a source list line."""
- # more lines to come
- if line and line[-1] == '\\':
- # spaces around "\\\n" are replaced by a single space
- if self.line_cont:
- self.line_cont += line[:-1].strip() + ' '
- else:
- self.line_cont = line[:-1].rstrip() + ' '
- return 0
-
- # combine with previous lines
- if self.line_cont:
- line = self.line_cont + line.lstrip()
- self.line_cont = ''
-
- if line:
- begins_with_tab = (line[0] == '\t')
-
- line = line.lstrip()
- if line[0] != '#':
- if begins_with_tab:
- self._error('recipe line not supported')
- else:
- self._parse_definition(line)
-
- return 1
-
- def parse(self, filename):
- """Parse a source list file."""
- if self.filename != filename:
- fp = open(filename)
- lines = fp.read().splitlines()
- fp.close()
-
- try:
- self._reset(filename)
- for line in lines:
- self.line_no += self._parse_line(line)
- except:
- self._reset()
- raise
-
- return self.symbol_table
-
- def add_symbol(self, name, value):
- self.symbol_table[name] = value
diff --git a/scons/x11.py b/scons/x11.py
deleted file mode 100644
index d25897aad7f..00000000000
--- a/scons/x11.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""x11
-
-Tool-specific initialization for X11
-
-"""
-
-#
-# Copyright (c) 2010 VMware, Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-
-def generate(env):
- env.Append(CPPPATH = ['/usr/X11R6/include'])
- env.Append(LIBPATH = ['/usr/X11R6/lib'])
-
- env.Append(LIBS = [
- 'X11',
- 'Xext',
- 'Xxf86vm',
- 'Xfixes',
- ])
-
-
-def exists(env):
- # TODO: actually detect the presence of the headers
- if env['platform'] in ('linux', 'freebsd', 'darwin'):
- return True
- else:
- return False
-
-
-# vim:set ts=4 sw=4 et:
diff --git a/src/SConscript b/src/SConscript
deleted file mode 100644
index 3e6baa094c1..00000000000
--- a/src/SConscript
+++ /dev/null
@@ -1,50 +0,0 @@
-import filecmp
-import os
-import subprocess
-from sys import executable as python_cmd
-
-Import('*')
-
-if env['platform'] == 'windows':
- SConscript('getopt/SConscript')
-
-SConscript('util/SConscript')
-SConscript('compiler/SConscript')
-
-if env['hostonly']:
- # We are just compiling the things necessary on the host for cross
- # compilation
- Return()
-
-
-def write_git_sha1_h_file(filename):
- """Mesa looks for a git_sha1.h file at compile time in order to display
- the current git hash id in the GL_VERSION string. This function tries
- to retrieve the git hashid and write the header file. An empty file
- will be created if anything goes wrong."""
-
- args = [ python_cmd, Dir('#').abspath + '/bin/git_sha1_gen.py', '--output', filename ]
- try:
- subprocess.call(args)
- except:
- print("Warning: exception in write_git_sha1_h_file()")
- return
-
-
-# Create the git_sha1.h header file
-write_git_sha1_h_file("git_sha1.h")
-# and update CPPPATH so the git_sha1.h header can be found
-env.Append(CPPPATH = ["#" + env['build_dir']])
-
-
-
-if env['platform'] != 'windows':
- SConscript('loader/SConscript')
-
-SConscript('mapi/glapi/gen/SConscript')
-SConscript('mapi/glapi/SConscript')
-
-SConscript('mesa/SConscript')
-
-SConscript('gallium/SConscript')
-
diff --git a/src/compiler/SConscript b/src/compiler/SConscript
deleted file mode 100644
index 0a0c0737422..00000000000
--- a/src/compiler/SConscript
+++ /dev/null
@@ -1,30 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include',
- '#src',
- '#src/mapi',
- '#src/mesa',
- '#src/gallium/include',
- '#src/gallium/auxiliary',
-])
-
-# Make generated headers reachable from the include path.
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
-
-sources = env.ParseSourceList('Makefile.sources', 'LIBCOMPILER_FILES')
-
-compiler = env.ConvenienceLibrary(
- target = 'compiler',
- source = sources
-)
-Export('compiler')
-
-SConscript('SConscript.glsl')
-SConscript('SConscript.nir')
-SConscript('SConscript.spirv')
diff --git a/src/compiler/SConscript.glsl b/src/compiler/SConscript.glsl
deleted file mode 100644
index 44a02173dfd..00000000000
--- a/src/compiler/SConscript.glsl
+++ /dev/null
@@ -1,159 +0,0 @@
-import common
-
-Import('*')
-
-from sys import executable as python_cmd
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include',
- '#src',
- '#src/mapi',
- '#src/mesa',
- '#src/gallium/include',
- '#src/gallium/auxiliary',
- '#src/compiler/glsl',
- '#src/compiler/glsl/glcpp',
- '#src/compiler/nir',
-])
-
-env.Prepend(LIBS = [mesautil])
-
-# Make glcpp-parse.h and glsl_parser.h reachable from the include path.
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
-# Make NIR headers reachable from the include path.
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
-
-glcpp_env = env.Clone()
-glcpp_env.Append(YACCFLAGS = [
- '-d',
- '-p', 'glcpp_parser_'
-])
-
-glsl_env = env.Clone()
-glsl_env.Append(YACCFLAGS = [
- '--defines=%s' % File('glsl/glsl_parser.h').abspath,
- '-p', '_mesa_glsl_',
-])
-
-# without this line scons will expect "glsl_parser.hpp" instead of
-# "glsl_parser.h", causing glsl_parser.cpp to be regenerated every time
-glsl_env['YACCHXXFILESUFFIX'] = '.h'
-
-glcpp_lexer = glcpp_env.CFile('glsl/glcpp/glcpp-lex.c', 'glsl/glcpp/glcpp-lex.l')
-glcpp_parser = glcpp_env.CFile('glsl/glcpp/glcpp-parse.c', 'glsl/glcpp/glcpp-parse.y')
-glsl_lexer = glsl_env.CXXFile('glsl/glsl_lexer.cpp', 'glsl/glsl_lexer.ll')
-glsl_parser = glsl_env.CXXFile('glsl/glsl_parser.cpp', 'glsl/glsl_parser.yy')
-
-# common generated sources
-glsl_sources = [
- glcpp_lexer,
- glcpp_parser[0],
- glsl_lexer,
- glsl_parser[0],
-]
-
-# parse Makefile.sources
-source_lists = env.ParseSourceList('Makefile.sources')
-
-# add non-generated sources
-for l in ('LIBGLCPP_FILES', 'LIBGLSL_FILES'):
- glsl_sources += source_lists[l]
-
-glsl_sources += env.StaticObject("glsl/glcpp/pp_standalone_scaffolding.c")
-
-if env['msvc']:
- env.Prepend(CPPPATH = ['#/src/getopt'])
- env.PrependUnique(LIBS = [getopt])
-
-# Copy these files to avoid generation object files into src/mesa/program
-env.Prepend(CPPPATH = ['#src/mesa/main'])
-env.Command('glsl/extensions_table.c', '#src/mesa/main/extensions_table.c', Copy('$TARGET', '$SOURCE'))
-# Copy these files to avoid generation object files into src/mesa/program
-env.Prepend(CPPPATH = ['#src/mesa/program'])
-env.Command('glsl/symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE'))
-env.Command('glsl/dummy_errors.c', '#src/mesa/program/dummy_errors.c', Copy('$TARGET', '$SOURCE'))
-
-compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES'])
-
-mesa_objs = env.StaticObject([
- 'glsl/extensions_table.c',
- 'glsl/symbol_table.c',
- 'glsl/dummy_errors.c',
-])
-
-compiler_objs += mesa_objs
-
-# GLSL generated sources
-env.CodeGenerate(
- target = 'glsl/float64_glsl.h',
- script = '../util/xxd.py',
- source = ['glsl/float64.glsl'],
- command = python_cmd + ' $SCRIPT $SOURCE $TARGET -n float64_source',
-)
-
-env.CodeGenerate(
- target = 'glsl/ir_expression_operation.h',
- script = 'glsl/ir_expression_operation.py',
- source = [],
- command = python_cmd + ' $SCRIPT enum > $TARGET'
-)
-env.CodeGenerate(
- target = 'glsl/ir_expression_operation_constant.h',
- script = 'glsl/ir_expression_operation.py',
- source = [],
- command = python_cmd + ' $SCRIPT constant > $TARGET'
-)
-env.CodeGenerate(
- target = 'glsl/ir_expression_operation_strings.h',
- script = 'glsl/ir_expression_operation.py',
- source = [],
- command = python_cmd + ' $SCRIPT strings > $TARGET'
-)
-
-glsl = env.ConvenienceLibrary(
- target = 'glsl',
- source = glsl_sources,
-)
-
-# SCons builtin dependency scanner doesn't detect that glsl_lexer.ll depends on
-# glsl_parser.h
-env.Depends(glsl, glsl_parser)
-
-Export('glsl')
-
-#
-# XXX: It's important to not add any generated source files after this point,
-# or it will break MinGW cross-compilation.
-#
-
-# Skip building these programs as they will cause SCons error "Two environments
-# with different actions were specified for the same target"
-if env['crosscompile'] or env['embedded']:
- Return()
-
-env = env.Clone()
-
-if env['platform'] == 'windows':
- env.PrependUnique(LIBS = [
- 'user32',
- ])
-
-env.Prepend(LIBS = [compiler, glsl])
-
-compiler_objs += env.StaticObject("glsl/main.cpp")
-
-glsl_compiler = env.Program(
- target = 'glsl_compiler',
- source = compiler_objs,
-)
-env.Alias('glsl_compiler', glsl_compiler)
-
-glcpp = env.Program(
- target = 'glsl/glcpp/glcpp',
- source = ['glsl/glcpp/glcpp.c'] + mesa_objs,
-)
-env.Alias('glcpp', glcpp)
diff --git a/src/compiler/SConscript.nir b/src/compiler/SConscript.nir
deleted file mode 100644
index be435e0e1ef..00000000000
--- a/src/compiler/SConscript.nir
+++ /dev/null
@@ -1,97 +0,0 @@
-import common
-
-Import('*')
-
-from sys import executable as python_cmd
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include',
- '#src',
- '#src/mapi',
- '#src/mesa',
- '#src/gallium/include',
- '#src/gallium/auxiliary',
- '#src/compiler/nir',
-])
-
-# Make generated headers reachable from the include path.
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('glsl').abspath])
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
-
-# nir generated sources
-
-nir_builder_opcodes_h = env.CodeGenerate(
- target = 'nir/nir_builder_opcodes.h',
- script = 'nir/nir_builder_opcodes_h.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_constant_expressions.c',
- script = 'nir/nir_constant_expressions.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_opcodes.h',
- script = 'nir/nir_opcodes_h.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_opcodes.c',
- script = 'nir/nir_opcodes_c.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_opt_algebraic.c',
- script = 'nir/nir_opt_algebraic.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-bldroot = Dir('.').abspath
-
-env.CodeGenerate(
- target = 'nir/nir_intrinsics.h',
- script = 'nir/nir_intrinsics_h.py',
- source = [],
- command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/nir'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_intrinsics.c',
- script = 'nir/nir_intrinsics_c.py',
- source = [],
- command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/nir'
-)
-
-env.CodeGenerate(
- target = 'nir/nir_intrinsics_indices.h',
- script = 'nir/nir_intrinsics_indices_h.py',
- source = [],
- command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/nir'
-)
-
-# parse Makefile.sources
-source_lists = env.ParseSourceList('Makefile.sources')
-
-nir_sources = source_lists['NIR_FILES']
-nir_sources += source_lists['NIR_GENERATED_FILES']
-
-nir = env.ConvenienceLibrary(
- target = 'nir',
- source = nir_sources,
-)
-
-env.Alias('nir', nir)
-Export('nir')
diff --git a/src/compiler/SConscript.spirv b/src/compiler/SConscript.spirv
deleted file mode 100644
index 65ced55cbca..00000000000
--- a/src/compiler/SConscript.spirv
+++ /dev/null
@@ -1,61 +0,0 @@
-import common
-
-Import('*')
-
-from sys import executable as python_cmd
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include',
- '#src',
- '#src/mapi',
- '#src/mesa',
- '#src/gallium/include',
- '#src/gallium/auxiliary',
- '#src/compiler/nir',
- '#src/compiler/spirv',
-])
-
-# Make generated headers reachable from the include path.
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
-env.Prepend(CPPPATH = [Dir('.').abspath, Dir('spirv').abspath])
-
-# spirv generated sources
-
-env.CodeGenerate(
- target = 'spirv/spirv_info.c',
- script = 'spirv/spirv_info_c.py',
- source = ['spirv/spirv.core.grammar.json'],
- command = python_cmd + ' $SCRIPT $SOURCE $TARGET'
-)
-
-env.CodeGenerate(
- target = 'spirv/vtn_gather_types.c',
- script = 'spirv/vtn_gather_types_c.py',
- source = ['spirv/spirv.core.grammar.json'],
- command = python_cmd + ' $SCRIPT $SOURCE $TARGET'
-)
-
-env.CodeGenerate(
- target = 'spirv/vtn_generator_ids.h',
- script = 'spirv/vtn_generator_ids_h.py',
- source = ['spirv/spir-v.xml'],
- command = python_cmd + ' $SCRIPT $SOURCE $TARGET'
-)
-
-# parse Makefile.sources
-source_lists = env.ParseSourceList('Makefile.sources')
-
-spirv_sources = source_lists['SPIRV_FILES']
-spirv_sources += source_lists['SPIRV_GENERATED_FILES']
-
-spirv = env.ConvenienceLibrary(
- target = 'spirv',
- source = spirv_sources,
-)
-
-env.Alias('spirv', spirv)
-Export('spirv')
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
deleted file mode 100644
index 98ba88588d5..00000000000
--- a/src/gallium/SConscript
+++ /dev/null
@@ -1,56 +0,0 @@
-Import('env')
-
-#
-# Auxiliary modules
-#
-
-SConscript('auxiliary/SConscript')
-SConscript('auxiliary/pipe-loader/SConscript')
-
-#
-# Drivers
-#
-
-# These are common and work across all platforms
-SConscript([
- 'drivers/llvmpipe/SConscript',
- 'drivers/softpipe/SConscript',
- 'drivers/svga/SConscript',
-])
-
-#
-# Winsys
-#
-
-SConscript([
- 'winsys/sw/null/SConscript',
- 'winsys/sw/wrapper/SConscript',
-])
-
-if env['x11']:
- SConscript([
- 'winsys/sw/xlib/SConscript',
- ])
-
-if env['platform'] == 'windows':
- SConscript([
- 'winsys/sw/gdi/SConscript',
- ])
-
-
-#
-# Frontends and targets
-#
-
-if not env['embedded']:
- if env['x11']:
- SConscript([
- 'frontends/glx/xlib/SConscript',
- 'targets/libgl-xlib/SConscript',
- ])
-
- if env['platform'] == 'windows':
- SConscript([
- 'frontends/wgl/SConscript',
- 'targets/libgl-gdi/SConscript',
- ])
diff --git a/src/gallium/auxiliary/SConscript b/src/gallium/auxiliary/SConscript
deleted file mode 100644
index 69aeeb8c524..00000000000
--- a/src/gallium/auxiliary/SConscript
+++ /dev/null
@@ -1,64 +0,0 @@
-Import('*')
-
-from sys import executable as python_cmd
-
-env.Append(CPPPATH = [
- '#src',
- 'indices',
- 'util',
- '#src/compiler/nir',
- '../../compiler/nir',
-])
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.CodeGenerate(
- target = 'indices/u_indices_gen.c',
- script = 'indices/u_indices_gen.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'indices/u_unfilled_gen.c',
- script = 'indices/u_unfilled_gen.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'util/u_tracepoints.c',
- script = 'util/u_tracepoints.py',
- source = [],
- command = python_cmd + ' $SCRIPT -p ' + Dir('#').abspath + '/src/gallium/auxiliary/util -C $TARGET'
-)
-
-env.CodeGenerate(
- target = 'util/u_tracepoints.h',
- script = 'util/u_tracepoints.py',
- source = [],
- command = python_cmd + ' $SCRIPT -p ' + Dir('#').abspath + '/src/gallium/auxiliary/util -H $TARGET'
-)
-
-source = env.ParseSourceList('Makefile.sources', [
- 'C_SOURCES',
- 'NIR_SOURCES',
- 'VL_STUB_SOURCES',
- 'GENERATED_SOURCES'
-])
-
-if env['llvm']:
- source += env.ParseSourceList('Makefile.sources', [
- 'GALLIVM_SOURCES',
- ])
-
-gallium = env.ConvenienceLibrary(
- target = 'gallium',
- source = source,
-)
-
-env.Alias('gallium', gallium)
-
-Export('gallium')
diff --git a/src/gallium/auxiliary/pipe-loader/SConscript b/src/gallium/auxiliary/pipe-loader/SConscript
deleted file mode 100644
index 0fd4dccb6fa..00000000000
--- a/src/gallium/auxiliary/pipe-loader/SConscript
+++ /dev/null
@@ -1,32 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Append(CPPPATH = [
- '#/src/loader',
- '#/src/gallium/winsys',
-])
-
-env.Append(CPPDEFINES = [
- ('HAVE_PIPE_LOADER_DRI', '1'),
- ('GALLIUM_STATIC_TARGETS', '1'),
-])
-
-source = env.ParseSourceList('Makefile.sources', 'COMMON_SOURCES')
-
-if env['HAVE_DRM']:
- source += env.ParseSourceList('Makefile.sources', 'DRM_SOURCES')
-
- env.PkgUseModules('DRM')
- env.Append(LIBS = [libloader])
-
-pipe_loader = env.ConvenienceLibrary(
- target = 'pipe_loader',
- source = source,
-)
-
-env.Alias('pipe_loader', pipe_loader)
-
-Export('pipe_loader')
diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript
deleted file mode 100644
index 1af6867715c..00000000000
--- a/src/gallium/drivers/llvmpipe/SConscript
+++ /dev/null
@@ -1,46 +0,0 @@
-from sys import executable as python_cmd
-import distutils.version
-
-Import('*')
-
-if not env['llvm']:
- print('warning: LLVM disabled: not building llvmpipe')
- Return()
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-llvmpipe = env.ConvenienceLibrary(
- target = 'llvmpipe',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
- )
-
-env.Alias('llvmpipe', llvmpipe)
-
-env.Append(CPPPATH = [
- '../../../compiler/nir',
-])
-
-if not env['embedded']:
- env = env.Clone()
-
- env.Prepend(LIBS = [llvmpipe, gallium, mesautil])
-
- tests = [
- 'arit',
- 'format',
- 'blend',
- 'conv',
- 'printf',
- ]
-
- for test in tests:
- testname = 'lp_test_' + test
- target = env.Program(
- target = testname,
- source = [testname + '.c', 'lp_test_main.c'],
- )
- env.UnitTest(testname, target)
-
-Export('llvmpipe')
diff --git a/src/gallium/drivers/softpipe/SConscript b/src/gallium/drivers/softpipe/SConscript
deleted file mode 100644
index b540ca7a90d..00000000000
--- a/src/gallium/drivers/softpipe/SConscript
+++ /dev/null
@@ -1,18 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.Prepend(CPPPATH = [
- '../../../compiler/nir',
- ])
-
-env.MSVC2013Compat()
-
-softpipe = env.ConvenienceLibrary(
- target = 'softpipe',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
- )
-
-env.Alias('softpipe', softpipe)
-
-Export('softpipe')
diff --git a/src/gallium/drivers/svga/SConscript b/src/gallium/drivers/svga/SConscript
deleted file mode 100644
index efed9790b77..00000000000
--- a/src/gallium/drivers/svga/SConscript
+++ /dev/null
@@ -1,27 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-if env['suncc']:
- print('warning: not building svga')
- Return()
-
-env.Prepend(CPPPATH = [
- 'include',
-])
-
-env.Append(CPPDEFINES = [
-])
-
-sources = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
-
-svga = env.ConvenienceLibrary(
- target = 'svga',
- source = sources,
-)
-
-env.Alias('svga', svga)
-
-Export('svga')
diff --git a/src/gallium/frontends/dri/SConscript b/src/gallium/frontends/dri/SConscript
deleted file mode 100644
index 03c9f71987d..00000000000
--- a/src/gallium/frontends/dri/SConscript
+++ /dev/null
@@ -1,29 +0,0 @@
-#######################################################################
-# SConscript for dri state_tracker
-
-Import('*')
-
-env = env.Clone()
-
-env.PkgUseModules(['DRM'])
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/drivers/dri/common',
-])
-
-sources = env.ParseSourceList('Makefile.sources', 'common_SOURCES')
-
-# XXX: if HAVE_DRISW
-sources.append(env.ParseSourceList('Makefile.sources', 'drisw_SOURCES'))
-
-# XXX: if HAVE_DRI2
-sources.append(env.ParseSourceList('Makefile.sources', 'dri2_SOURCES'))
-
-st_dri = env.ConvenienceLibrary(
- target = 'st_dri',
- source = sources
-)
-Export('st_dri')
diff --git a/src/gallium/frontends/glx/xlib/SConscript b/src/gallium/frontends/glx/xlib/SConscript
deleted file mode 100644
index 1d5dd1df4fd..00000000000
--- a/src/gallium/frontends/glx/xlib/SConscript
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################################################
-# SConscript for xlib state_tracker
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
-])
-
-st_xlib = env.ConvenienceLibrary(
- target = 'st_xlib',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
-)
-Export('st_xlib')
diff --git a/src/gallium/frontends/hgl/SConscript b/src/gallium/frontends/hgl/SConscript
deleted file mode 100644
index d2389c80802..00000000000
--- a/src/gallium/frontends/hgl/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-#######################################################################
-# SConscript for Haiku state_tracker
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
- '#/include/HaikuGL',
-])
-
-sources = [
- 'hgl.c',
- 'bitmap_wrapper.cpp',
-]
-
-st_haiku = env.ConvenienceLibrary(
- target = 'st_haiku',
- source = sources
-)
-Export('st_haiku')
diff --git a/src/gallium/frontends/osmesa/SConscript b/src/gallium/frontends/osmesa/SConscript
deleted file mode 100644
index be67d0fe739..00000000000
--- a/src/gallium/frontends/osmesa/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-import os
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#src/mapi',
- '#src/mesa',
- '.',
-])
-
-if env['platform'] == 'windows':
- env.AppendUnique(CPPDEFINES = [
- 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
- 'WIN32_LEAN_AND_MEAN', # http://msdn2.microsoft.com/en-us/library/6dwk3a1z.aspx
- '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport)
- ])
-
-st_osmesa = env.ConvenienceLibrary(
- target ='st_osmesa',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
-)
-Export('st_osmesa')
diff --git a/src/gallium/frontends/wgl/SConscript b/src/gallium/frontends/wgl/SConscript
deleted file mode 100644
index bbf5ebd9764..00000000000
--- a/src/gallium/frontends/wgl/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-import os
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#src/mapi',
- '#src/mesa',
- '.',
-])
-
-env.AppendUnique(CPPDEFINES = [
- '_GDI32_', # prevent wgl* being declared __declspec(dllimport)
- 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
- 'WIN32_LEAN_AND_MEAN', # http://msdn2.microsoft.com/en-us/library/6dwk3a1z.aspx
- '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport)
-])
-
-wgl = env.ConvenienceLibrary(
- target ='wgl',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
-)
-Export('wgl')
diff --git a/src/gallium/targets/dri/SConscript b/src/gallium/targets/dri/SConscript
deleted file mode 100644
index 835038dd639..00000000000
--- a/src/gallium/targets/dri/SConscript
+++ /dev/null
@@ -1,59 +0,0 @@
-Import('*')
-
-env = drienv.Clone()
-
-if env['suncc']:
- print('warning: not building dri-vmwgfx')
- Return()
-
-env.Append(CPPPATH = [
- '#/src/loader',
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/drivers/dri/common',
- '#/src/gallium/frontends/dri',
-])
-
-if env['llvm']:
- env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
- env.Prepend(LIBS = [llvmpipe])
-
-env.PkgUseModules('DRM')
-
-env.Append(CPPDEFINES = [
- 'GALLIUM_VMWGFX',
- 'GALLIUM_SOFTPIPE',
-])
-
-env.Prepend(LIBS = [
- st_dri,
- svgadrm,
- svga,
- ws_dri,
- softpipe,
- pipe_loader,
- libloader,
- mesautil,
- compiler,
- mesa,
- glsl,
- nir,
- spirv,
- gallium,
- megadrivers_stub,
- dri_common,
-])
-
-module = env.LoadableModule(
- target = 'gallium_dri.so',
- source = 'target.c',
- SHLIBPREFIX = '',
-)
-
-# vmwgfx_dri.so
-env.Command('vmwgfx_dri.so', 'gallium_dri.so', "ln -f ${SOURCE} ${TARGET}")
-# swrast_dri.so
-env.Command('swrast_dri.so', 'gallium_dri.so', "ln -f ${SOURCE} ${TARGET}")
-
-env.Alias('dri-vmwgfx', module)
-env.Alias('dri-swrast', module)
diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript
deleted file mode 100644
index 312155abe14..00000000000
--- a/src/gallium/targets/haiku-softpipe/SConscript
+++ /dev/null
@@ -1,47 +0,0 @@
-Import('*')
-
-env.Prepend(LIBS = [
- ws_haiku,
- st_haiku,
- mesautil,
- compiler,
- mesa,
- glsl,
- nir,
- spirv,
- gallium
-])
-
-if True:
- env.Append(CPPDEFINES = [
- 'GALLIUM_SOFTPIPE',
- ])
- env.Prepend(LIBS = [softpipe])
-
-env.Prepend(LIBS = [libgl])
-
-env.Append(CPPPATH = [
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/main',
- '#/include/HaikuGL',
- '#/src/gallium/winsys',
- '#/src/gallium/frontends/hgl',
- '/boot/system/develop/headers/private',
-])
-
-if env['llvm']:
- env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
- env.Prepend(LIBS = [llvmpipe])
-
-softpipe_sources = [
- 'GalliumContext.cpp',
- 'SoftwareRenderer.cpp'
-]
-
-# libswpipe gets turned into "Softpipe" by the haiku package system
-module = env.LoadableModule(
- target ='swpipe',
- source = softpipe_sources,
-)
-
diff --git a/src/gallium/targets/libgl-gdi/SConscript b/src/gallium/targets/libgl-gdi/SConscript
deleted file mode 100644
index 754cdc1688b..00000000000
--- a/src/gallium/targets/libgl-gdi/SConscript
+++ /dev/null
@@ -1,55 +0,0 @@
-#######################################################################
-# SConscript for gdi winsys
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#src',
- '#src/gallium/frontends/wgl',
- '#src/gallium/winsys/sw',
-])
-
-env.Append(LIBS = [
- 'gdi32',
- 'user32',
- 'kernel32',
- 'ws2_32',
- 'advapi32',
-])
-
-env.Prepend(LIBS = [
- mesautil,
- nir,
- spirv
-])
-
-sources = ['libgl_gdi.c']
-drivers = []
-
-if True:
- env.Append(CPPDEFINES = ['GALLIUM_SOFTPIPE'])
- drivers += [softpipe]
-
-if env['llvm']:
- env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
- drivers += [llvmpipe]
-
-if env['gcc'] and env['machine'] != 'x86_64':
- # DEF parser in certain versions of MinGW is busted, as does not behave as
- # MSVC. mingw-w64 works fine.
- sources += ['#src/gallium/frontends/wgl/opengl32.mingw.def']
-else:
- sources += ['#src/gallium/frontends/wgl/opengl32.def']
-
-env['no_import_lib'] = 1
-
-opengl32 = env.SharedLibrary(
- target ='opengl32',
- source = sources,
- LIBS = wgl + ws_gdi + glapi + compiler + mesa + drivers + gallium + glsl + nir + env['LIBS'],
-)
-
-env.Alias('opengl32', opengl32)
-env.Alias('libgl-gdi', opengl32)
diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript
deleted file mode 100644
index c1b787d95af..00000000000
--- a/src/gallium/targets/libgl-xlib/SConscript
+++ /dev/null
@@ -1,72 +0,0 @@
-#######################################################################
-# SConscript for xlib winsys
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src/mapi',
- '#/src/mesa',
- '#/src/mesa/main',
- '#src/gallium/frontends/glx/xlib',
- Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
- Dir('../../../mapi/glapi/gen'), # src/mapi build path for python-generated GL API files/headers
-])
-
-env.Append(CPPDEFINES = ['USE_XSHM'])
-
-env.Prepend(LIBS = env['X11_LIBS'])
-env.Prepend(LIBPATH = env['X11_LIBPATH'])
-
-env.Prepend(LIBS = [
- st_xlib,
- ws_xlib,
- glapi,
- mesautil,
- compiler,
- mesa,
- glsl,
- nir,
- spirv,
- gallium,
-])
-
-sources = [
- 'xlib.c',
-]
-
-if True:
- env.Append(CPPDEFINES = ['GALLIUM_SOFTPIPE'])
- env.Prepend(LIBS = [softpipe])
-
-if env['llvm']:
- env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
- env.Prepend(LIBS = [llvmpipe])
-
-if env['platform'] != 'darwin':
- # Disallow undefined symbols, except with Address Sanitizer, since libasan
- # is not linked on shared libs, as it should be LD_PRELOAD'ed instead
- if not env['asan']:
- env.Append(SHLINKFLAGS = [
- '-Wl,-z,defs',
- ])
- env.Append(SHLINKFLAGS = [
- # Restrict exported symbols
- '-Wl,--version-script=%s' % File("libgl-xlib.sym").srcnode().path,
- ])
-
-# libGL.so.1.5
-libgl_1_5 = env.SharedLibrary(
- target ='GL',
- source = sources,
- SHLIBSUFFIX = env['SHLIBSUFFIX'] + '.1.5',
-)
-
-# libGL.so.1
-libgl = env.subst('${SHLIBPREFIX}GL${SHLIBSUFFIX}')
-libgl_1 = libgl + '.1'
-env.Command(libgl_1, libgl_1_5, "ln -sf ${SOURCE.file} ${TARGET}")
-env.Command(libgl, libgl_1, "ln -sf ${SOURCE.file} ${TARGET}")
-
-env.Alias('libgl-xlib', libgl)
diff --git a/src/gallium/winsys/sw/gdi/SConscript b/src/gallium/winsys/sw/gdi/SConscript
deleted file mode 100644
index b346ca9019a..00000000000
--- a/src/gallium/winsys/sw/gdi/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-#######################################################################
-# SConscript for xlib winsys
-
-
-Import('*')
-
-if env['platform'] == 'windows':
-
- env = env.Clone()
-
- env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
- '#/src/gallium/drivers',
- ])
-
- ws_gdi = env.ConvenienceLibrary(
- target = 'ws_gdi',
- source = [
- 'gdi_sw_winsys.c',
- ]
- )
- env.Alias('ws_gdi', ws_gdi)
- Export('ws_gdi')
diff --git a/src/gallium/winsys/sw/hgl/SConscript b/src/gallium/winsys/sw/hgl/SConscript
deleted file mode 100644
index 776dd831a4b..00000000000
--- a/src/gallium/winsys/sw/hgl/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-#######################################################################
-# SConscript for haiku winsys
-
-
-Import('*')
-
-if env['platform'] in ('haiku'):
-
- env = env.Clone()
-
- env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
- '#/src/gallium/drivers',
- '#/src/gallium/frontend/hgl',
- ])
-
- ws_haiku = env.ConvenienceLibrary(
- target = 'ws_haiku',
- source = [
- 'hgl_sw_winsys.c',
- ]
- )
- Export('ws_haiku')
diff --git a/src/gallium/winsys/sw/null/SConscript b/src/gallium/winsys/sw/null/SConscript
deleted file mode 100644
index 6236498af2e..00000000000
--- a/src/gallium/winsys/sw/null/SConscript
+++ /dev/null
@@ -1,19 +0,0 @@
-#######################################################################
-# SConscript for xlib winsys
-
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
-])
-
-ws_null = env.ConvenienceLibrary(
- target = 'ws_null',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
-)
-env.Alias('ws_null', ws_null)
-Export('ws_null')
diff --git a/src/gallium/winsys/sw/wrapper/SConscript b/src/gallium/winsys/sw/wrapper/SConscript
deleted file mode 100644
index 9ff9bf6d1fa..00000000000
--- a/src/gallium/winsys/sw/wrapper/SConscript
+++ /dev/null
@@ -1,18 +0,0 @@
-#######################################################################
-# SConscript for xlib winsys
-
-
-Import('*')
-
-env = env.Clone()
-
-env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
-])
-
-ws_wrapper = env.ConvenienceLibrary(
- target = 'ws_wrapper',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
-)
-Export('ws_wrapper')
diff --git a/src/gallium/winsys/sw/xlib/SConscript b/src/gallium/winsys/sw/xlib/SConscript
deleted file mode 100644
index 64db2013936..00000000000
--- a/src/gallium/winsys/sw/xlib/SConscript
+++ /dev/null
@@ -1,21 +0,0 @@
-#######################################################################
-# SConscript for xlib winsys
-
-
-Import('*')
-
-if env['platform'] in ('cygwin', 'darwin', 'freebsd', 'linux', 'sunos'):
-
- env = env.Clone()
-
- env.Append(CPPPATH = [
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
- ])
-
- ws_xlib = env.ConvenienceLibrary(
- target = 'ws_xlib',
- source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
- )
- env.Alias('ws_xlib', ws_xlib)
- Export('ws_xlib')
diff --git a/src/getopt/SConscript b/src/getopt/SConscript
deleted file mode 100644
index 14cabed4e64..00000000000
--- a/src/getopt/SConscript
+++ /dev/null
@@ -1,15 +0,0 @@
-Import('*')
-
-if not env['msvc']:
- Return()
-
-env = env.Clone()
-
-env.Prepend(CPPPATH = ['.'])
-
-getopt = env.ConvenienceLibrary(
- target = 'getopt',
- source = ['getopt_long.c'],
-)
-
-Export('getopt')
diff --git a/src/loader/SConscript b/src/loader/SConscript
deleted file mode 100644
index 6a315642c2c..00000000000
--- a/src/loader/SConscript
+++ /dev/null
@@ -1,26 +0,0 @@
-Import('*')
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include'
-])
-
-if env['drm']:
- env.PkgUseModules('DRM')
- env.Append(CPPDEFINES = ['HAVE_LIBDRM'])
-
-env.Append(CPPDEFINES = ['DEFAULT_DRIVER_DIR=\\"/usr/local/lib/dri\\"'])
-
-# parse Makefile.sources
-sources = env.ParseSourceList('Makefile.sources', 'LOADER_C_FILES')
-
-libloader = env.ConvenienceLibrary(
- target = 'libloader',
- source = sources,
-)
-
-env.Alias('libloader', libloader)
-Export('libloader')
diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript
deleted file mode 100644
index a086f435efc..00000000000
--- a/src/mapi/glapi/SConscript
+++ /dev/null
@@ -1,102 +0,0 @@
-#######################################################################
-# SConscript for glapi
-
-
-from sys import executable as python_cmd
-
-Import('*')
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Append(CPPDEFINES = [
- 'MAPI_MODE_UTIL',
-])
-
-if env['platform'] == 'windows':
- env.Append(CPPDEFINES = [
- '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
- 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
- 'KHRONOS_DLL_EXPORTS', # declare gl* as __declspec(dllexport) in Khronos headers
- '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport)
- ])
-
-env.Append(CPPPATH = [
- '#/src',
- '#/src/mapi',
- '#/src/mesa',
- Dir('.'), # src/mapi/glapi build path
- Dir('gen'), # src/mapi/glapi/gen build path
-])
-
-glapi_sources = [
- 'glapi_dispatch.c',
- 'glapi_entrypoint.c',
- 'glapi_getproc.c',
- 'glapi_nop.c',
- 'glapi.c',
-]
-
-mapi_sources = [
- 'u_current.c',
- 'u_execmem.c',
-]
-for s in mapi_sources:
- o = env.SharedObject(s[:-2], '../' + s)
- glapi_sources.append(o)
-
-#
-# Assembly sources
-#
-if env['platform'] not in ('cygwin', 'darwin', 'windows'):
- GLAPI = '#src/mapi/glapi/'
- sources = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml')
-
- if env['machine'] == 'x86':
- env.Append(CPPDEFINES = [
- 'USE_X86_ASM',
- ])
- glapi_sources += [
- 'glapi_x86.S',
- ]
- env.CodeGenerate(
- target = 'glapi_x86.S',
- script = GLAPI + 'gen/gl_x86_asm.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
- elif env['machine'] == 'x86_64':
- env.Append(CPPDEFINES = [
- 'USE_X86_64_ASM',
- ])
- glapi_sources += [
- 'glapi_x86-64.S'
- ]
- env.CodeGenerate(
- target = 'glapi_x86-64.S',
- script = GLAPI + 'gen/gl_x86-64_asm.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
- elif env['machine'] == 'sparc':
- env.Append(CPPDEFINES = [
- 'USE_SPARC_ASM',
- ])
- glapi_sources += [
- 'glapi_sparc.S'
- ]
- env.CodeGenerate(
- target = 'glapi_sparc.S',
- script = GLAPI + 'gen/gl_SPARC_asm.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
- else:
- pass
-
-glapi = env.ConvenienceLibrary(
- target = 'glapi',
- source = glapi_sources,
-)
-Export('glapi')
diff --git a/src/mapi/glapi/gen/SConscript b/src/mapi/glapi/gen/SConscript
deleted file mode 100644
index 942b5594231..00000000000
--- a/src/mapi/glapi/gen/SConscript
+++ /dev/null
@@ -1,63 +0,0 @@
-Import('*')
-
-from sys import executable as python_cmd
-
-
-# Be conservative and depend on all XML files here. Missing dependencies means
-# broken builds, whereas extraneous dependencies merely means regenerate the
-# .[ch] files -- scons should not recompile them though.
-sources = ['gl_and_es_API.xml'] + env.Glob('*.xml')
-
-
-# Generate the GL API headers that are used by various parts of the
-# Mesa and GLX tree. Other .c and .h files are generated elsewhere
-# if they're only used in one place.
-
-env.CodeGenerate(
- target = '../../../mesa/main/dispatch.h',
- script = 'gl_table.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -m remap_table -f $SOURCE > $TARGET',
- )
-
-env.CodeGenerate(
- target = '../../../mapi/glapi/glapitable.h',
- script = 'gl_table.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
-
-env.CodeGenerate(
- target = '../../../mapi/glapi/gen/glapitemp.h',
- script = 'gl_apitemp.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
-
-env.CodeGenerate(
- target = '../../../mapi/glapi/glprocs.h',
- script = 'gl_procs.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -c -f $SOURCE > $TARGET'
- )
-
-env.CodeGenerate(
- target = '../../../mesa/main/remap_helper.h',
- script = 'remap_helper.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
-
-env.CodeGenerate(
- target = '../../../mesa/main/enums.c',
- script = 'gl_enums.py',
- source = '../registry/gl.xml',
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
-
-env.CodeGenerate(
- target = '../../../mesa/main/api_exec.c',
- script = 'gl_genexec.py',
- source = sources,
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
deleted file mode 100644
index e238e0916db..00000000000
--- a/src/mesa/SConscript
+++ /dev/null
@@ -1,127 +0,0 @@
-#######################################################################
-# SConscript for Mesa
-
-
-Import('*')
-from sys import executable as python_cmd
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Append(CPPPATH = [
- '../compiler/nir', # for generated nir_opcodes.h, etc
- '../compiler/glsl', # for generated headers
- '#/src',
- Dir('../mapi'), # src/mapi build path
- '#/src/mapi',
- Dir('.'), # src/mesa build path
- '#/src/mesa',
- Dir('main'), # src/mesa/main/ build path
- '#/src/mesa/main',
- '#/src/gallium/include',
- '#/src/gallium/auxiliary',
-])
-
-if env['platform'] == 'windows':
- env.Append(CPPDEFINES = [
- '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
- 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
- '_GLAPI_NO_EXPORTS', # prevent _glapi_* from being declared __declspec(dllimport)
- ])
-
-# parse Makefile.sources
-source_lists = env.ParseSourceList('Makefile.sources')
-
-env.Append(YACCFLAGS = ['-d', '-p', '_mesa_program_'])
-env.CFile('program/lex.yy.c', 'program/program_lexer.l')
-env.CFile('program/program_parse.tab.c', 'program/program_parse.y')
-
-mesa_sources = (
- source_lists['MESA_FILES'] +
- source_lists['PROGRAM_FILES'] +
- source_lists['PROGRAM_NIR_FILES'] +
- source_lists['STATETRACKER_FILES']
-)
-
-GLAPI = '#src/mapi/glapi/'
-
-get_hash_header = env.CodeGenerate(
- target = 'main/get_hash.h',
- script = 'main/get_hash_generator.py',
- source = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml'),
- command = python_cmd + ' $SCRIPT ' + ' -f $SOURCE > $TARGET'
-)
-
-format_info = env.CodeGenerate(
- target = 'main/format_info.h',
- script = 'main/format_info.py',
- source = 'main/formats.csv',
- command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
-)
-
-format_pack = env.CodeGenerate(
- target = 'main/format_pack.c',
- script = 'main/format_pack.py',
- source = 'main/formats.csv',
- command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
-)
-
-format_fallback = env.CodeGenerate(
- target = 'main/format_fallback.c',
- script = 'main/format_fallback.py',
- source = 'main/formats.csv',
- command = python_cmd + ' $SCRIPT ' + ' $SOURCE ' + ' $TARGET'
-)
-
-#
-# Assembly sources
-#
-if env['platform'] not in ('cygwin', 'darwin', 'windows', 'haiku'):
- if env['machine'] == 'x86':
- env.Append(CPPDEFINES = [
- 'USE_X86_ASM',
- 'USE_MMX_ASM',
- 'USE_3DNOW_ASM',
- 'USE_SSE_ASM',
- ])
- mesa_sources += source_lists['X86_FILES']
- elif env['machine'] == 'x86_64':
- env.Append(CPPDEFINES = [
- 'USE_X86_64_ASM',
- ])
- mesa_sources += source_lists['X86_64_FILES']
- elif env['machine'] == 'sparc':
- mesa_sources += source_lists['SPARC_FILES']
- else:
- pass
-
-# The marshal_generated.c file is generated from the GL/ES API.xml file
-for i in range(8):
- env.CodeGenerate(
- target = 'main/marshal_generated{0}.c'.format(i),
- script = GLAPI + 'gen/gl_marshal.py',
- source = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml'),
- command = python_cmd + ' $SCRIPT -f $SOURCE -i {0} -n 8 > $TARGET'.format(i)
- )
-
-# The marshal_generated.h file is generated from the GL/ES API.xml file
-env.CodeGenerate(
- target = 'main/marshal_generated.h',
- script = GLAPI + 'gen/gl_marshal_h.py',
- source = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml'),
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
-
-#
-# Libraries
-#
-
-mesa = env.ConvenienceLibrary(
- target = 'mesa',
- source = mesa_sources,
-)
-
-env.Alias('mesa', mesa)
-
-Export('mesa')
diff --git a/src/util/SConscript b/src/util/SConscript
deleted file mode 100644
index d76c018412a..00000000000
--- a/src/util/SConscript
+++ /dev/null
@@ -1,98 +0,0 @@
-import common
-
-Import('*')
-
-from sys import executable as python_cmd
-
-env = env.Clone()
-
-env.MSVC2013Compat()
-
-env.Prepend(CPPPATH = [
- '#include',
- '#src',
- '#src/mapi',
- '#src/mesa',
- '#src/gallium/include',
- '#src/gallium/auxiliary',
- '#src/util',
- '#src/util/format',
- env.Dir('..'), # Build path corresponding to src
- env.Dir('format'), # Build path corresponding to src/util/format
-])
-
-env.CodeGenerate(
- target = 'format_srgb.c',
- script = 'format_srgb.py',
- source = [],
- command = python_cmd + ' $SCRIPT > $TARGET'
-)
-
-env.CodeGenerate(
- target = 'format/u_format_pack.h',
- script = 'format/u_format_table.py',
- source = ['format/u_format.csv'],
- command = python_cmd + ' $SCRIPT $SOURCE --header > $TARGET'
-)
-
-env.Depends('format/u_format_pack.h', [
- 'format/u_format_parse.py',
- 'format/u_format_pack.py',
-])
-
-env.CodeGenerate(
- target = 'format/u_format_table.c',
- script = 'format/u_format_table.py',
- source = ['format/u_format.csv'],
- command = python_cmd + ' $SCRIPT $SOURCE > $TARGET'
-)
-
-env.Depends('format/u_format_table.c', [
- 'format/u_format_parse.py',
- 'format/u_format_pack.py',
-])
-
-# parse Makefile.sources
-source_lists = env.ParseSourceList('Makefile.sources')
-
-mesautil_sources = (
- source_lists['MESA_UTIL_FILES'] +
- source_lists['MESA_UTIL_GENERATED_FILES']
-)
-
-mesautilenv = env.Clone()
-
-if env['dri']:
- mesautil_sources += source_lists['XMLCONFIG_FILES']
-
- mesautilenv.AppendUnique(LIBS = [
- 'expat',
- ])
-
-mesautil = mesautilenv.ConvenienceLibrary(
- target = 'mesautil',
- source = mesautil_sources,
-)
-
-env.Alias('mesautil', mesautil)
-Export('mesautil')
-
-
-u_atomic_test = env.Program(
- target = 'u_atomic_test',
- source = ['u_atomic_test.c'],
-)
-env.UnitTest("u_atomic_test", u_atomic_test)
-
-roundeven_test = env.Program(
- target = 'roundeven_test',
- source = ['roundeven_test.c'],
-)
-env.UnitTest("roundeven_test", roundeven_test)
-
-env.Prepend(LIBS = [mesautil])
-mesa_sha1_test = env.Program(
- target = 'mesa-sha1_test',
- source = ['mesa-sha1_test.c'],
-)
-env.UnitTest("mesa-sha1_test", mesa_sha1_test)