1fe8aea9eSmrgxorg = dependency('xorg-server', required : true) 2fe8aea9eSmrglibdrm = dependency('libdrm', required : true) 3fe8aea9eSmrgpixman = dependency('pixman-1', required : true) 4fe8aea9eSmrg 5fe8aea9eSmrgwith_dri1 = get_option('dri1') 6fe8aea9eSmrgif with_dri1 7fe8aea9eSmrg dri1 = dependency('xf86driproto', required : true) 8fe8aea9eSmrg has_dri1 = (cc.has_header('dri.h', dependencies : xorg) and 9fe8aea9eSmrg cc.has_header('sarea.h', dependencies : xorg) and 10fe8aea9eSmrg cc.has_header('dristruct.h', dependencies : xorg)) 11fe8aea9eSmrg 12fe8aea9eSmrg # Currently 'required' doesn't work for cc.has_header() & co. 13fe8aea9eSmrg if not has_dri1 14fe8aea9eSmrg error('DRI1 dependencies not met') 15fe8aea9eSmrg endif 16fe8aea9eSmrg 17fe8aea9eSmrg config.set('HAVE_DRI1', 1) 18fe8aea9eSmrgendif 19fe8aea9eSmrg 20fe8aea9eSmrgwith_dri2 = get_option('dri2') 21fe8aea9eSmrgif with_dri2 22fe8aea9eSmrg dri2 = dependency('dri2proto', version : '>= 2.6', required : true) 23fe8aea9eSmrg 24fe8aea9eSmrg dri = dependency('dri', required : false) 25fe8aea9eSmrg if dri.found() 26fe8aea9eSmrg dridriverdir = dri.get_pkgconfig_variable('dridriverdir') 27fe8aea9eSmrg else 28fe8aea9eSmrg dridriverdir = join_paths(get_option('libdir'), 'dri') 29fe8aea9eSmrg endif 30fe8aea9eSmrg 31fe8aea9eSmrg config.set('HAVE_DRI2', 1) 32fe8aea9eSmrg config.set_quoted('DRI_DRIVER_PATH', dridriverdir) 33fe8aea9eSmrgendif 34fe8aea9eSmrg 35fe8aea9eSmrgwith_dri3 = get_option('dri3') 36fe8aea9eSmrgif with_dri3 37fe8aea9eSmrg dri3 = dependency('dri3proto', required : true) 38fe8aea9eSmrg has_dri3 = (cc.has_header_symbol('xorg-server.h', 'DRI3', 39fe8aea9eSmrg dependencies : xorg) and 40fe8aea9eSmrg cc.has_header('misyncstr.h', 41fe8aea9eSmrg dependencies : xorg) and 42fe8aea9eSmrg cc.has_header('misyncshm.h', 43fe8aea9eSmrg dependencies : xorg)) 44fe8aea9eSmrg 45fe8aea9eSmrg # Currently 'required' doesn't work for cc.has_header() & co. 46fe8aea9eSmrg if not has_dri3 47fe8aea9eSmrg error('DRI3 dependencies not met') 48fe8aea9eSmrg endif 49fe8aea9eSmrg 50fe8aea9eSmrg config.set('HAVE_DRI3', 1) 51fe8aea9eSmrgendif 52fe8aea9eSmrg 53fe8aea9eSmrgdefault_dri = get_option('default-dri') 54fe8aea9eSmrgconfig.set('DEFAULT_DRI_LEVEL', default_dri) 55fe8aea9eSmrg 56fe8aea9eSmrgpresent = dependency('presentproto', required : false) 57fe8aea9eSmrghas_present = (present.found() and 58fe8aea9eSmrg cc.has_header('present.h', dependencies : xorg)) 59fe8aea9eSmrgif has_present 60fe8aea9eSmrg config.set('HAVE_PRESENT', 1) 61fe8aea9eSmrgendif 62fe8aea9eSmrg 63fe8aea9eSmrgif get_option('backlight') 64fe8aea9eSmrg config.set('USE_BACKLIGHT', 1) 65fe8aea9eSmrgendif 66fe8aea9eSmrgwith_backlight_helper = get_option('backlight-helper') 67fe8aea9eSmrgif with_backlight_helper 68fe8aea9eSmrg config.set('USE_BACKLIGHT_HELPER', 1) 69fe8aea9eSmrgendif 70fe8aea9eSmrg 71fe8aea9eSmrgdebug = get_option('internal-debug') 72fe8aea9eSmrgif debug == 'sync' 73fe8aea9eSmrg config.set('DEBUG_SYNC', 1) 74fe8aea9eSmrgendif 75fe8aea9eSmrgif debug == 'memory' or debug == 'full' 76fe8aea9eSmrg config.set('DEBUG_MEMORY', 1) 77fe8aea9eSmrgendif 78fe8aea9eSmrgif debug == 'pixmap' or debug == 'full' 79fe8aea9eSmrg config.set('DEBUG_PIXMAP', 1) 80fe8aea9eSmrgendif 81fe8aea9eSmrgif debug == 'full' 82fe8aea9eSmrg config.set('HAS_DEBUG_FULL', 1) 83fe8aea9eSmrgendif 84fe8aea9eSmrg 85fe8aea9eSmrgintel_drv_sources = [ 86fe8aea9eSmrg 'backlight.c', 87fe8aea9eSmrg 'fd.c', 88fe8aea9eSmrg 'intel_device.c', 89fe8aea9eSmrg 'intel_options.c', 90fe8aea9eSmrg 'intel_module.c', 91fe8aea9eSmrg] 92fe8aea9eSmrg 93fe8aea9eSmrgintel_drv_deps = [ 94fe8aea9eSmrg dependency('pciaccess', version : '>= 0.10', required : true), 95fe8aea9eSmrg libdrm, 96fe8aea9eSmrg xorg, 97fe8aea9eSmrg] 98fe8aea9eSmrg 99fe8aea9eSmrgintel_drv_libs = [] 100fe8aea9eSmrg 101fe8aea9eSmrgif with_ums 102fe8aea9eSmrg subdir('legacy/i810') 103fe8aea9eSmrg intel_drv_libs += i810 104fe8aea9eSmrgendif 105fe8aea9eSmrg 106fe8aea9eSmrgdefault_accel = get_option('default-accel') 107fe8aea9eSmrg 108fe8aea9eSmrgwith_sna = get_option('sna') 109fe8aea9eSmrgif with_sna 110fe8aea9eSmrg subdir('sna') 111fe8aea9eSmrg intel_drv_libs += sna 112fe8aea9eSmrgelif default_accel == 'sna' 113fe8aea9eSmrg error('SNA not available, so can\'t selected as the default acceleration method') 114fe8aea9eSmrgendif 115fe8aea9eSmrg 116fe8aea9eSmrgwith_uxa = get_option('uxa') 117fe8aea9eSmrgif with_uxa 118fe8aea9eSmrg subdir('uxa') 119fe8aea9eSmrg intel_drv_libs += uxa 120fe8aea9eSmrgelif default_accel == 'uxa' 121fe8aea9eSmrg error('UXA not available, so can\'t selected as the default acceleration method') 122fe8aea9eSmrgendif 123fe8aea9eSmrg 124fe8aea9eSmrgif default_accel == 'sna' 125fe8aea9eSmrg config.set('DEFAULT_ACCEL_METHOD', 'SNA') 126fe8aea9eSmrgelif default_accel == 'uxa' 127fe8aea9eSmrg config.set('DEFAULT_ACCEL_METHOD', 'UXA') 128fe8aea9eSmrgelse 129fe8aea9eSmrg config.set('DEFAULT_ACCEL_METHOD', 'NOACCEL') 130fe8aea9eSmrgendif 131fe8aea9eSmrg 132fe8aea9eSmrgif with_valgrind 133fe8aea9eSmrg intel_drv_deps += valgrind 134fe8aea9eSmrgendif 135fe8aea9eSmrg 136fe8aea9eSmrgxorg_moduledir = get_option('xorg-module-dir') 137fe8aea9eSmrgmoduledir = '' 138fe8aea9eSmrgforeach dir : xorg_moduledir.split('/') 139fe8aea9eSmrg if dir == '@libdir@' 140fe8aea9eSmrg dir = get_option('libdir') 141fe8aea9eSmrg endif 142fe8aea9eSmrg moduledir = join_paths(moduledir, dir) 143fe8aea9eSmrgendforeach 144fe8aea9eSmrg 145fe8aea9eSmrgshared_module('intel_drv', 146fe8aea9eSmrg sources : intel_drv_sources, 147fe8aea9eSmrg dependencies : intel_drv_deps, 148fe8aea9eSmrg link_with : intel_drv_libs, 149fe8aea9eSmrg c_args : [ 150fe8aea9eSmrg '-DMAJOR_IN_SYSMACROS', 151fe8aea9eSmrg '-Wno-unused-parameter', 152fe8aea9eSmrg '-Wno-sign-compare', 153fe8aea9eSmrg '-Wno-missing-field-initializers', 154fe8aea9eSmrg ], 155fe8aea9eSmrg name_prefix : '', 156fe8aea9eSmrg install_dir : join_paths(moduledir, 'drivers'), 157fe8aea9eSmrg install : true) 158