lib_atomics = false
dep_atomic_ops = dependency('atomic_ops', required : false)
-if cc.compiles('''
+if cc.links('''
int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
+ int main() { }
''',
name : 'Intel Atomics')
intel_atomics = true
# FreeBSD requires sys/types.h for sys/sysctl.h, add it as part of the
# includes when checking for headers.
foreach header : ['sys/sysctl.h', 'sys/select.h', 'alloca.h']
- config.set('HAVE_' + header.underscorify().to_upper(),
+ config.set10('HAVE_' + header.underscorify().to_upper(),
cc.compiles('#include <sys/types.h>\n#include <@0@>'.format(header), name : '@0@ works'.format(header)))
endforeach
if (cc.has_header_symbol('sys/sysmacros.h', 'major') and
configuration : config,
output : 'config.h',
)
-add_project_arguments('-include', 'config.h', language : 'c')
+add_project_arguments('-include', '@0@'.format(config_file), language : 'c')
inc_root = include_directories('.')
inc_drm = include_directories('include/drm')
install : true,
)
+test(
+ 'core-symbols-check',
+ symbols_check,
+ args : [
+ '--lib', libdrm,
+ '--symbols-file', files('core-symbols.txt'),
+ '--nm', prog_nm.path(),
+ ],
+)
+
ext_libdrm = declare_dependency(
link_with : libdrm,
include_directories : [inc_root, inc_drm],
description : 'Userspace interface to kernel DRM services',
)
-env_test = environment()
-env_test.set('NM', find_program('nm').path())
-
if with_libkms
subdir('libkms')
endif