sys.stdout.write('Checking for %s ... ' % cc)
source = tempfile.NamedTemporaryFile(suffix='.c', delete=False)
- source.write('#if !(%s)\n#error\n#endif\n' % expr)
+ 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));
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',
'__STDC_CONSTANT_MACROS',
'__STDC_FORMAT_MACROS',
'__STDC_LIMIT_MACROS',
- 'HAVE_NO_AUTOCONF',
+ 'HAVE_SCONS',
]
if env['build'] in ('debug', 'checked'):
cppdefines += ['DEBUG']
'_DARWIN_C_SOURCE',
'GLX_USE_APPLEGL',
'GLX_DIRECT_RENDERING',
+ 'BUILDING_MESA',
]
else:
cppdefines += [
if check_functions(env, ['strtod_l', 'strtof_l']):
cppdefines += ['HAVE_STRTOD_L']
+ if check_functions(env, ['random_r']):
+ cppdefines += ['HAVE_RANDOM_R']
+
if check_functions(env, ['timespec_get']):
cppdefines += ['HAVE_TIMESPEC_GET']
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',
]
if env['build'] in ('debug', 'checked'):
cppdefines += ['_DEBUG']
- if platform == 'windows':
- cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER']
if env['embedded']:
- cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
+ cppdefines += ['EMBEDDED_DEVICE']
env.Append(CPPDEFINES = cppdefines)
# C compiler options
'-fmessage-length=0', # be nice to Eclipse
]
cflags += [
- '-Wmissing-prototypes',
+ '-Werror=implicit-function-declaration',
+ '-Werror=missing-prototypes',
+ '-Werror=return-type',
+ '-Werror=incompatible-pointer-types',
'-std=gnu99',
]
if icc: