1fe8aea9eSmrgconfig.set('USE_SNA', 1)
2fe8aea9eSmrg
3fe8aea9eSmrgif cc.has_member('struct sysinfo', 'totalram',
4fe8aea9eSmrg		 prefix : '#include <sys/sysinfo.h>')
5fe8aea9eSmrg  config.set('HAVE_STRUCT_SYSINFO_TOTALRAM', 1)
6fe8aea9eSmrgendif
7fe8aea9eSmrg
8fe8aea9eSmrggit_version_h = vcs_tag(input : 'git_version.h.in', output : 'git_version.h',
9fe8aea9eSmrg			fallback : 'not compiled from git',
10fe8aea9eSmrg			command : [ 'git', 'describe' ] )
11fe8aea9eSmrg
12fe8aea9eSmrgconfig.set('HAVE_DOT_GIT', 1)
13fe8aea9eSmrg
14fe8aea9eSmrgif cc.has_header('alloca.h')
15fe8aea9eSmrg  config.set('HAVE_ALLOCA_H', 1)
16fe8aea9eSmrgendif
17fe8aea9eSmrg
18fe8aea9eSmrgsna_deps = [
19fe8aea9eSmrg  cc.find_library('m', required : true),
20fe8aea9eSmrg  dependency('threads', required : true),
21fe8aea9eSmrg  dependency('xorg-server', required : true),
22fe8aea9eSmrg  dependency('libdrm', required : true),
23fe8aea9eSmrg]
24fe8aea9eSmrg
25fe8aea9eSmrgsna_sources = [
26fe8aea9eSmrg  'blt.c',
27fe8aea9eSmrg  'kgem.c',
28fe8aea9eSmrg  'sna_accel.c',
29fe8aea9eSmrg  'sna_acpi.c',
30fe8aea9eSmrg  'sna_blt.c',
31fe8aea9eSmrg  'sna_composite.c',
32fe8aea9eSmrg  'sna_cpu.c',
33fe8aea9eSmrg  'sna_damage.c',
34fe8aea9eSmrg  'sna_display.c',
35fe8aea9eSmrg  'sna_display_fake.c',
36fe8aea9eSmrg  'sna_driver.c',
37fe8aea9eSmrg  'sna_glyphs.c',
38fe8aea9eSmrg  'sna_gradient.c',
39fe8aea9eSmrg  'sna_io.c',
40fe8aea9eSmrg  'sna_render.c',
41fe8aea9eSmrg  'sna_stream.c',
42fe8aea9eSmrg  'sna_trapezoids.c',
43fe8aea9eSmrg  'sna_trapezoids_boxes.c',
44fe8aea9eSmrg  'sna_trapezoids_imprecise.c',
45fe8aea9eSmrg  'sna_trapezoids_mono.c',
46fe8aea9eSmrg  'sna_trapezoids_precise.c',
47fe8aea9eSmrg  'sna_tiling.c',
48fe8aea9eSmrg  'sna_transform.c',
49fe8aea9eSmrg  'sna_threads.c',
50fe8aea9eSmrg  'sna_vertex.c',
51fe8aea9eSmrg  'sna_video.c',
52fe8aea9eSmrg  'sna_video_overlay.c',
53fe8aea9eSmrg  'sna_video_sprite.c',
54fe8aea9eSmrg  'sna_video_textured.c',
55fe8aea9eSmrg  'gen2_render.c',
56fe8aea9eSmrg  'gen3_render.c',
57fe8aea9eSmrg  'gen4_common.c',
58fe8aea9eSmrg  'gen4_render.c',
59fe8aea9eSmrg  'gen4_source.c',
60fe8aea9eSmrg  'gen4_vertex.c',
61fe8aea9eSmrg  'gen5_render.c',
62fe8aea9eSmrg  'gen6_common.c',
63fe8aea9eSmrg  'gen6_render.c',
64fe8aea9eSmrg  'gen7_render.c',
65fe8aea9eSmrg  'gen8_eu.c',
66fe8aea9eSmrg  'gen8_render.c',
67fe8aea9eSmrg  'gen8_vertex.c',
68fe8aea9eSmrg  'gen9_render.c',
69fe8aea9eSmrg]
70fe8aea9eSmrg
71fe8aea9eSmrgif libudev.found()
72fe8aea9eSmrg  sna_deps += libudev
73fe8aea9eSmrgendif
74fe8aea9eSmrg
75fe8aea9eSmrgif with_valgrind
76fe8aea9eSmrg  sna_deps += valgrind
77fe8aea9eSmrgendif
78fe8aea9eSmrg
79fe8aea9eSmrgif with_dri2
80fe8aea9eSmrg  sna_sources += 'sna_dri2.c'
81fe8aea9eSmrg  sna_deps += [
82fe8aea9eSmrg    dependency('dri2proto', required : true),
83fe8aea9eSmrg    cc.find_library('rt', required : true),
84fe8aea9eSmrg  ]
85fe8aea9eSmrgendif
86fe8aea9eSmrg
87fe8aea9eSmrgif with_dri3
88fe8aea9eSmrg  sna_sources += 'sna_dri3.c'
89fe8aea9eSmrg  sna_deps += dri3
90fe8aea9eSmrgendif
91fe8aea9eSmrg
92fe8aea9eSmrgif has_present
93fe8aea9eSmrg  sna_sources += 'sna_present.c'
94fe8aea9eSmrg  sna_deps += present
95fe8aea9eSmrgendif
96fe8aea9eSmrg
97fe8aea9eSmrgif with_xvmc
98fe8aea9eSmrg  sna_sources += 'sna_video_hwmc.c'
99fe8aea9eSmrgendif
100fe8aea9eSmrg
101fe8aea9eSmrgif debug == 'full'
102fe8aea9eSmrg  sna_sources += [
103fe8aea9eSmrg    'kgem_debug.c',
104fe8aea9eSmrg    'kgem_debug_gen2.c',
105fe8aea9eSmrg    'kgem_debug_gen3.c',
106fe8aea9eSmrg    'kgem_debug_gen4.c',
107fe8aea9eSmrg    'kgem_debug_gen5.c',
108fe8aea9eSmrg    'kgem_debug_gen6.c',
109fe8aea9eSmrg    'kgem_debug_gen7.c',
110fe8aea9eSmrg  ]
111fe8aea9eSmrgendif
112fe8aea9eSmrg
113fe8aea9eSmrgif get_option('tearfree')
114fe8aea9eSmrg  config.set('TEARFREE', 1)
115fe8aea9eSmrgendif
116fe8aea9eSmrgif get_option('use-create2')
117fe8aea9eSmrg  config.set('USE_CREATE2', 1)
118fe8aea9eSmrgendif
119fe8aea9eSmrgif get_option('async-swap')
120fe8aea9eSmrg  config.set('USE_ASYNC_SWAP', 1)
121fe8aea9eSmrgendif
122fe8aea9eSmrg
123fe8aea9eSmrgsubdir('brw')
124fe8aea9eSmrgsubdir('fb')
125fe8aea9eSmrg
126fe8aea9eSmrgsna = static_library('sna',
127fe8aea9eSmrg		     [ git_version_h, sna_sources ],
128fe8aea9eSmrg		     dependencies : sna_deps,
129fe8aea9eSmrg		     link_with : [ brw, fb, ],
130fe8aea9eSmrg		     include_directories : inc,
131fe8aea9eSmrg		     c_args : [
132fe8aea9eSmrg		       '-Wno-missing-field-initializers',
133fe8aea9eSmrg		       '-Wno-unused-but-set-variable',
134fe8aea9eSmrg		       '-Wno-shift-negative-value',
135fe8aea9eSmrg		       '-Wno-unused-parameter',
136fe8aea9eSmrg		       '-Wno-sign-compare',
137fe8aea9eSmrg		       '-Wno-type-limits',
138fe8aea9eSmrg		     ],
139fe8aea9eSmrg		     install : false)
140