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."""
# 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
+ 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
+ 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['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'],)
+ 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')
# C preprocessor options
cppdefines = []
cppdefines += [
- '__STDC_LIMIT_MACROS',
'__STDC_CONSTANT_MACROS',
+ '__STDC_FORMAT_MACROS',
+ '__STDC_LIMIT_MACROS',
'HAVE_NO_AUTOCONF',
]
if env['build'] in ('debug', 'checked'):
'GLX_DIRECT_RENDERING',
'GLX_INDIRECT_RENDERING',
]
- if env['platform'] in ('linux', 'freebsd'):
- cppdefines += ['HAVE_ALIAS']
- else:
- cppdefines += ['GLX_ALIAS_UNSUPPORTED']
- if env['platform'] in ('linux', 'darwin'):
+ if check_header(env, 'xlocale.h'):
cppdefines += ['HAVE_XLOCALE_H']
+ if check_functions(env, ['strtod_l', 'strtof_l']):
+ cppdefines += ['HAVE_STRTOD_L']
+
if platform == 'windows':
cppdefines += [
'WIN32',
if env['embedded']:
cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
if env['texture_float']:
- print 'warning: Floating-point textures enabled.'
- print 'warning: Please consult docs/patents.txt with your lawyer before building Mesa.'
+ print('warning: Floating-point textures enabled.')
+ print('warning: Please consult docs/patents.txt with your lawyer before building Mesa.')
cppdefines += ['TEXTURE_FLOAT_ENABLED']
env.Append(CPPDEFINES = cppdefines)
env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
env.AddMethod(unit_test, 'UnitTest')
- env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto >= 1.4.13'])
+ env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage >= 1.1', '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.66'])
+ env.PkgCheckModules('DRM', ['libdrm >= 2.4.75'])
if env['x11']:
env.Append(CPPPATH = env['X11_CPPPATH'])