646d14d2d3
Corruption has again been reported on Intel hardware running Xorg with the modesetting driver (which uses OpenGL based acceleration instead of SNA acceleration the intel driver defaults to). Reported in various forms on Sandy Bridge (X220), Ivy Bridge (X230) and Haswell (X240). Confirmed to not occur with the intel driver but the xserver was changed to default to the modesetting driver on >= gen4 hardware (except Ironlake). One means of triggering this is to open a large pdf with xpdf on an idle machine and highlight a section of the document. There have been reports of gpu hangs on gen4 intel hardware (T500 with GM45, X61 with 965GM) when starting Xorg as well.
161 lines
3.5 KiB
Python
161 lines
3.5 KiB
Python
#######################################################################
|
|
# 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.
|
|
#
|
|
|
|
import os
|
|
import os.path
|
|
import sys
|
|
import SCons.Util
|
|
|
|
import common
|
|
|
|
#######################################################################
|
|
# 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))
|
|
|
|
#######################################################################
|
|
# Environment setup
|
|
|
|
with open("VERSION") as f:
|
|
mesa_version = f.read().strip()
|
|
env.Append(CPPDEFINES = [
|
|
('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
|
|
('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'),
|
|
])
|
|
|
|
# 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 = default_ans.keys()
|
|
aliases.sort()
|
|
env.Help('\n')
|
|
env.Help('Recognized targets:\n')
|
|
for alias in aliases:
|
|
env.Help(' %s\n' % alias)
|