11b5d61b8Smrgxorg_inc = include_directories( 21b5d61b8Smrg 'common', 31b5d61b8Smrg 'ddc', 41b5d61b8Smrg 'dri2', 51b5d61b8Smrg 'i2c', 61b5d61b8Smrg 'int10', 71b5d61b8Smrg 'loader', 81b5d61b8Smrg 'modes', 91b5d61b8Smrg 'os-support', 101b5d61b8Smrg 'os-support/bus', 111b5d61b8Smrg 'parser', 121b5d61b8Smrg 'ramdac', 131b5d61b8Smrg 'vgahw', 141b5d61b8Smrg) 151b5d61b8Smrg 161b5d61b8Smrgxorg_c_args = [] 171b5d61b8Smrgxorg_c_args += '-DHAVE_XORG_CONFIG_H' 181b5d61b8Smrgxorg_c_args += '-DXORG_NO_SDKSYMS' 191b5d61b8Smrg 201b5d61b8Smrgpciaccess_dep = [] 211b5d61b8Smrgif get_option('pciaccess') 221b5d61b8Smrg pciaccess_dep = dependency('pciaccess', version: '>= 0.12.901') 231b5d61b8Smrgendif 241b5d61b8Smrg 251b5d61b8Smrg# subdirs for convenience libraries statically linked into Xorg 261b5d61b8Smrgsubdir('common') 271b5d61b8Smrgsubdir('ddc') 281b5d61b8Smrgif build_dri1 291b5d61b8Smrg subdir('dri') 301b5d61b8Smrgendif 311b5d61b8Smrgif build_dri2 321b5d61b8Smrg subdir('dri2') 331b5d61b8Smrgendif 341b5d61b8Smrgsubdir('i2c') 351b5d61b8Smrgsubdir('loader') 361b5d61b8Smrgsubdir('modes') 371b5d61b8Smrgsubdir('os-support') 381b5d61b8Smrgsubdir('parser') 391b5d61b8Smrgsubdir('ramdac') 401b5d61b8Smrgsubdir('xkb') 411b5d61b8Smrg 421b5d61b8Smrgsrcs_xorg = [ 43ed6184dfSmrg '../../mi/miinitext.c', 44ed6184dfSmrg '../../mi/miinitext.h', 451b5d61b8Smrg] 461b5d61b8Smrg 471b5d61b8Smrg# Extract all the objects so that all symbols get brought into the 481b5d61b8Smrg# server. This prevents us from needing a global table of all symbols 491b5d61b8Smrg# that should be exported to Xorg modules, at the expense of all 501b5d61b8Smrg# symbols being included and public 511b5d61b8Smrg 521b5d61b8Smrgxorg_link = [ 531b5d61b8Smrg libxserver, 541b5d61b8Smrg libglxvnd, 551b5d61b8Smrg xorg_common, 561b5d61b8Smrg xorg_loader, 571b5d61b8Smrg xorg_ddc, 581b5d61b8Smrg xorg_xkb, 591b5d61b8Smrg xorg_i2c, 601b5d61b8Smrg xorg_modes, 611b5d61b8Smrg xorg_os_support, 621b5d61b8Smrg xorg_parser, 631b5d61b8Smrg xorg_ramdac, 64ed6184dfSmrg libxserver_fb, 651b5d61b8Smrg libxserver_xext_vidmode, 661b5d61b8Smrg libxserver_main, 671b5d61b8Smrg libxserver_config, 681b5d61b8Smrg] 691b5d61b8Smrgif build_dri1 701b5d61b8Smrg xorg_link += xorg_dri 711b5d61b8Smrgendif 721b5d61b8Smrgif build_dri2 731b5d61b8Smrg xorg_link += xorg_dri2 741b5d61b8Smrgendif 751b5d61b8Smrg 761b5d61b8Smrgif host_machine.system() == 'cygwin' or host_machine.system() == 'windows' 771b5d61b8Smrg linker_export_flags = '-Wl,--export-all-symbols' 78dc61d50dSmrgelif host_machine.system() == 'sunos' or host_machine.system() == 'darwin' 79ed6184dfSmrg linker_export_flags = [] 801b5d61b8Smrgelse 811b5d61b8Smrg linker_export_flags = '-Wl,--export-dynamic' 821b5d61b8Smrgendif 831b5d61b8Smrg 841b5d61b8Smrgxorg_deps = [ 851b5d61b8Smrg pixman_dep, 861b5d61b8Smrg m_dep, 871b5d61b8Smrg dl_dep, 881b5d61b8Smrg pciaccess_dep, 891b5d61b8Smrg sha1_dep, 901b5d61b8Smrg dependency('xau'), 911b5d61b8Smrg xdmcp_dep, 921b5d61b8Smrg xfont2_dep, 931b5d61b8Smrg xshmfence_dep, 941b5d61b8Smrg config_dep, 951b5d61b8Smrg libdrm_dep, 961b5d61b8Smrg] 971b5d61b8Smrg 981b5d61b8Smrgif get_option('suid_wrapper') 991b5d61b8Smrg xorg_install_dir = get_option('libexecdir') 1001b5d61b8Smrgelse 1011b5d61b8Smrg xorg_install_dir = get_option('bindir') 1021b5d61b8Smrgendif 1031b5d61b8Smrg 1041b5d61b8Smrge = executable( 1051b5d61b8Smrg 'Xorg', 1061b5d61b8Smrg srcs_xorg, 1071b5d61b8Smrg include_directories: [inc, xorg_inc], 1081b5d61b8Smrg link_whole: xorg_link, 1091b5d61b8Smrg dependencies: xorg_deps, 1101b5d61b8Smrg link_args: linker_export_flags, 1111b5d61b8Smrg c_args: xorg_c_args, 1121b5d61b8Smrg install: true, 1131b5d61b8Smrg install_dir: xorg_install_dir, 1141b5d61b8Smrg implib: true, 1151b5d61b8Smrg) 1161b5d61b8Smrg 1171b5d61b8Smrg# subdirs for modules loadable by Xorg 1181b5d61b8Smrgsubdir('dixmods') 1191b5d61b8Smrgsubdir('exa') 1201b5d61b8Smrgsubdir('fbdevhw') 1211b5d61b8Smrgif gbm_dep.found() 1221b5d61b8Smrg subdir('glamor_egl') 1231b5d61b8Smrgendif 1241b5d61b8Smrgif int10 != 'false' 1251b5d61b8Smrg if int10 == 'x86emu' 1261b5d61b8Smrg subdir('x86emu') 1271b5d61b8Smrg endif 1281b5d61b8Smrg subdir('int10') 1291b5d61b8Smrgendif 1301b5d61b8Smrgsubdir('shadowfb') 1311b5d61b8Smrgif build_vgahw 1321b5d61b8Smrg subdir('vgahw') 1331b5d61b8Smrgendif 1341b5d61b8Smrgif build_modesetting 1351b5d61b8Smrg subdir('drivers/modesetting') 1361b5d61b8Smrgendif 137ed6184dfSmrgif get_option('xf86-input-inputtest') 138ed6184dfSmrg subdir('drivers/inputtest') 139ed6184dfSmrgendif 140ed6184dfSmrg 141ed6184dfSmrgmeson.add_install_script( 142ed6184dfSmrg 'sh', '-c', 143ed6184dfSmrg 'ln -fs Xorg @0@@1@'.format( 144ed6184dfSmrg '${DESTDIR}', 145ed6184dfSmrg join_paths(get_option('prefix'), get_option('bindir'), 'X'))) 1461b5d61b8Smrg 1471b5d61b8Smrgif get_option('suid_wrapper') 1481b5d61b8Smrg executable('Xorg.wrap', 1491b5d61b8Smrg 'xorg-wrapper.c', 1501b5d61b8Smrg include_directories: [inc, xorg_inc], 1511b5d61b8Smrg dependencies: xorg_deps, 1521b5d61b8Smrg c_args: xorg_c_args, 1531b5d61b8Smrg install: true, 1541b5d61b8Smrg install_dir: get_option('libexecdir'), 155ed6184dfSmrg install_mode: ['r-sr-xr-x', 0, 0], 1561b5d61b8Smrg ) 157ed6184dfSmrg 158ed6184dfSmrg # meson gets confused when there are two targets of the same name 159ed6184dfSmrg # within the same directory, so we use a different intermediate name. 160ed6184dfSmrg xorg_sh = configure_file( 1611b5d61b8Smrg input: 'Xorg.sh.in', 162ed6184dfSmrg output: 'Xorg.sh', 1631b5d61b8Smrg configuration: conf_data, 164ed6184dfSmrg ) 165ed6184dfSmrg 166ed6184dfSmrg install_data( 167ed6184dfSmrg xorg_sh, 168ed6184dfSmrg install_mode: 'rwxr-xr-x', 1691b5d61b8Smrg install_dir: join_paths(get_option('prefix'), get_option('bindir')), 170ed6184dfSmrg rename: ['Xorg'] 1711b5d61b8Smrg ) 1721b5d61b8Smrgendif 1731b5d61b8Smrg 1741b5d61b8Smrgexecutable('gtf', 1751b5d61b8Smrg 'utils/gtf/gtf.c', 1761b5d61b8Smrg include_directories: [inc, xorg_inc], 1771b5d61b8Smrg dependencies: xorg_deps, 1781b5d61b8Smrg c_args: xorg_c_args, 1791b5d61b8Smrg install: true, 1801b5d61b8Smrg) 1811b5d61b8Smrg 1821b5d61b8Smrg# For symbol presence testing only 1831b5d61b8Smrgxorgserver_lib = shared_library( 1841b5d61b8Smrg 'xorgserver', 1851b5d61b8Smrg srcs_xorg, 1861b5d61b8Smrg include_directories: [inc, xorg_inc], 1871b5d61b8Smrg link_whole: xorg_link, 1881b5d61b8Smrg dependencies: xorg_deps, 1891b5d61b8Smrg link_args: linker_export_flags, 1901b5d61b8Smrg c_args: xorg_c_args, 1911b5d61b8Smrg install: false, 1921b5d61b8Smrg) 1931b5d61b8Smrg 1941b5d61b8Smrgxorgserver_dep = declare_dependency(link_with: xorgserver_lib) 1951b5d61b8Smrg 1961b5d61b8Smrginstall_man(configure_file( 1971b5d61b8Smrg input: 'man/Xorg.man', 1981b5d61b8Smrg output: 'Xorg.1', 1991b5d61b8Smrg configuration: manpage_config, 2001b5d61b8Smrg)) 2011b5d61b8Smrg 2021b5d61b8Smrgif get_option('suid_wrapper') 2031b5d61b8Smrg install_man(configure_file( 2041b5d61b8Smrg input: 'man/Xorg.wrap.man', 2051b5d61b8Smrg output: 'Xorg.wrap.1', 2061b5d61b8Smrg configuration: manpage_config, 2071b5d61b8Smrg )) 2081b5d61b8Smrg 2091b5d61b8Smrg install_man(configure_file( 2101b5d61b8Smrg input: 'man/Xwrapper.config.man', 2111b5d61b8Smrg output: 'Xwrapper.config.5', 2121b5d61b8Smrg configuration: manpage_config, 2131b5d61b8Smrg )) 2141b5d61b8Smrgendif 2151b5d61b8Smrg 2161b5d61b8Smrginstall_man(configure_file( 2171b5d61b8Smrg input: 'man/xorg.conf.man', 2181b5d61b8Smrg output: 'xorg.conf.5', 2191b5d61b8Smrg configuration: manpage_config, 2201b5d61b8Smrg)) 2211b5d61b8Smrg 2221b5d61b8Smrginstall_man(configure_file( 2231b5d61b8Smrg input: 'man/xorg.conf.d.man', 2241b5d61b8Smrg output: 'xorg.conf.d.5', 2251b5d61b8Smrg configuration: manpage_config, 2261b5d61b8Smrg)) 2271b5d61b8Smrg 2281b5d61b8Smrginstall_man(configure_file( 2291b5d61b8Smrg input: 'utils/man/gtf.man', 2301b5d61b8Smrg output: 'gtf.1', 2311b5d61b8Smrg configuration: manpage_config, 2321b5d61b8Smrg)) 233ed6184dfSmrg 234ed6184dfSmrgsubdir('doc') 235