# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
+from __future__ import print_function
import distutils.version
import os
source.write('#if !(%s)\n#error\n#endif\n' % expr)
source.close()
- pipe = SCons.Action._subproc(env, [env['CC'], cpp_opt, source.name],
+ # 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')
env.Tool(env['toolchain'])
# Allow override compiler and specify additional flags from environment
- if os.environ.has_key('CC'):
+ if 'CC' in os.environ:
env['CC'] = os.environ['CC']
- if os.environ.has_key('CFLAGS'):
+ if 'CFLAGS' in os.environ:
env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
- if os.environ.has_key('CXX'):
+ if 'CXX' in os.environ:
env['CXX'] = os.environ['CXX']
- if os.environ.has_key('CXXFLAGS'):
+ if 'CXXFLAGS' in os.environ:
env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
- if os.environ.has_key('LDFLAGS'):
+ 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
env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) == 'cc'
env['icc'] = 'icc' == os.path.basename(env['CC'])
- if env['msvc'] and env['toolchain'] == 'default' and env['machine'] == 'x86_64':
- # MSVC x64 support is broken in earlier versions of scons
- env.EnsurePythonVersion(2, 0)
-
# shortcuts
machine = env['machine']
platform = env['platform']
# 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')
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, ['timespec_get']):
+ cppdefines += ['HAVE_TIMESPEC_GET']
+
if platform == 'windows':
cppdefines += [
'WIN32',
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER']
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.'
- cppdefines += ['TEXTURE_FLOAT_ENABLED']
env.Append(CPPDEFINES = cppdefines)
# C compiler options
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'])