11b5d61b8Smrgsrcs_xorg_os_support = [ 21b5d61b8Smrg 'bus/nobus.c', 31b5d61b8Smrg 'shared/posix_tty.c', 41b5d61b8Smrg 'shared/sigio.c', 51b5d61b8Smrg 'shared/vidmem.c', 61b5d61b8Smrg] 71b5d61b8Smrg 81b5d61b8Smrghdrs_xorg_os_support = [ 91b5d61b8Smrg 'bus/xf86Pci.h', 101b5d61b8Smrg 'xf86_OSlib.h', 111b5d61b8Smrg 'xf86_OSproc.h' 121b5d61b8Smrg] 131b5d61b8Smrg 14ed6184dfSmrgos_dep = [] 15ed6184dfSmrgos_c_args = [] 161b5d61b8Smrg 171b5d61b8Smrgif get_option('pciaccess') 181b5d61b8Smrg srcs_xorg_os_support += 'bus/Pci.c' 19ed6184dfSmrg if host_machine.system() != 'linux' 201b5d61b8Smrg srcs_xorg_os_support += 'bus/bsd_pci.c' 211b5d61b8Smrg endif 22ed6184dfSmrg if host_machine.cpu() == 'sparc' or host_machine.cpu() == 'sparc64' 231b5d61b8Smrg srcs_xorg_os_support += 'bus/Sbus.c' 241b5d61b8Smrg install_data('bus/xf86Sbus.h', install_dir: xorgsdkdir) 251b5d61b8Smrg endif 261b5d61b8Smrgendif 271b5d61b8Smrg 28ed6184dfSmrgif get_option('agp') == 'auto' 29ed6184dfSmrg build_agp = cc.has_header('sys/agpio.h') or cc.has_header('sys/agpgart.h') or cc.has_header('linux/agpgart.h') 30ed6184dfSmrgelse 31ed6184dfSmrg build_agp = get_option('agp') == 'true' 32ed6184dfSmrgendif 33ed6184dfSmrg 341b5d61b8Smrgif host_machine.system() == 'linux' 351b5d61b8Smrg srcs_xorg_os_support += [ 361b5d61b8Smrg 'linux/lnx_bell.c', 371b5d61b8Smrg 'linux/lnx_init.c', 381b5d61b8Smrg 'linux/lnx_kmod.c', 391b5d61b8Smrg 'linux/lnx_platform.c', 401b5d61b8Smrg 'linux/lnx_video.c', 411b5d61b8Smrg 'misc/SlowBcopy.c', 421b5d61b8Smrg 'shared/VTsw_usl.c', 431b5d61b8Smrg ] 44ed6184dfSmrg if build_agp 45ed6184dfSmrg srcs_xorg_os_support += 'linux/lnx_agp.c' 46ed6184dfSmrg else 47ed6184dfSmrg srcs_xorg_os_support += 'shared/agp_noop.c' 48ed6184dfSmrg endif 491b5d61b8Smrg if build_systemd_logind 501b5d61b8Smrg srcs_xorg_os_support += 'linux/systemd-logind.c' 511b5d61b8Smrg endif 521b5d61b8Smrg 531b5d61b8Smrg # this is ugly because the code is also 541b5d61b8Smrg if build_apm or build_acpi 551b5d61b8Smrg srcs_xorg_os_support += 'linux/lnx_apm.c' 561b5d61b8Smrg if build_acpi 571b5d61b8Smrg srcs_xorg_os_support += 'linux/lnx_acpi.c' 581b5d61b8Smrg endif 59ed6184dfSmrg else 60ed6184dfSmrg srcs_xorg_os_support += 'shared/pm_noop.c' 611b5d61b8Smrg endif 621b5d61b8Smrg 63ed6184dfSmrgelif host_machine.system() == 'sunos' 641b5d61b8Smrg srcs_xorg_os_support += [ 651b5d61b8Smrg 'solaris/sun_apm.c', 661b5d61b8Smrg 'solaris/sun_bell.c', 671b5d61b8Smrg 'solaris/sun_init.c', 681b5d61b8Smrg 'solaris/sun_vid.c', 691b5d61b8Smrg 'shared/kmod_noop.c', 701b5d61b8Smrg ] 711b5d61b8Smrg 721b5d61b8Smrg if cc.has_header('sys/vt.h') 731b5d61b8Smrg srcs_xorg_os_support += 'solaris/sun_VTsw.c' 741b5d61b8Smrg else 751b5d61b8Smrg srcs_xorg_os_support += 'shared/VTsw_noop.c' 761b5d61b8Smrg endif 771b5d61b8Smrg 78ed6184dfSmrg if build_agp 791b5d61b8Smrg srcs_xorg_os_support += 'solaris/sun_agp.c' 801b5d61b8Smrg else 811b5d61b8Smrg srcs_xorg_os_support += 'shared/agp_noop.c' 821b5d61b8Smrg endif 831b5d61b8Smrg 841b5d61b8Smrg if host_machine.cpu_family() == 'sparc' 851b5d61b8Smrg srcs_xorg_os_support += 'solaris/solaris-sparcv8plus.S' 861b5d61b8Smrg elif host_machine.cpu_family() == 'x86_64' 871b5d61b8Smrg srcs_xorg_os_support += 'solaris/solaris-amd64.S' 881b5d61b8Smrg elif host_machine.cpu_family() == 'x86' 891b5d61b8Smrg srcs_xorg_os_support += 'solaris/solaris-ia32.S' 901b5d61b8Smrg else 911b5d61b8Smrg error('Unknown CPU family for Solaris build') 921b5d61b8Smrg endif 931b5d61b8Smrg 941b5d61b8Smrgelif host_machine.system().endswith('bsd') 951b5d61b8Smrg srcs_xorg_os_support += [ 961b5d61b8Smrg 'bsd/bsd_VTsw.c', 971b5d61b8Smrg 'bsd/bsd_bell.c', 981b5d61b8Smrg 'bsd/bsd_init.c', 99ed6184dfSmrg 'shared/pm_noop.c' 1001b5d61b8Smrg ] 1011b5d61b8Smrg 1021b5d61b8Smrg if host_machine.cpu_family() == 'x86_64' 1031b5d61b8Smrg srcs_xorg_os_support += 'bsd/i386_video.c' 104ed6184dfSmrg if host_machine.system() == 'netbsd' 105ed6184dfSmrg os_dep += cc.find_library('x86_64') 106ed6184dfSmrg elif host_machine.system() == 'openbsd' 107ed6184dfSmrg os_dep += cc.find_library('amd64') 108ed6184dfSmrg endif 1091b5d61b8Smrg elif host_machine.cpu_family() == 'x86' 1101b5d61b8Smrg srcs_xorg_os_support += 'bsd/i386_video.c' 111ed6184dfSmrg if host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd' 112ed6184dfSmrg os_dep += cc.find_library('i386') 113ed6184dfSmrg endif 1141b5d61b8Smrg elif host_machine.cpu_family() == 'arm' 1151b5d61b8Smrg srcs_xorg_os_support += 'bsd/arm_video.c' 1161b5d61b8Smrg elif host_machine.cpu_family() == 'powerpc' 1171b5d61b8Smrg srcs_xorg_os_support += 'bsd/ppc_video.c' 1181b5d61b8Smrg elif host_machine.cpu_family() == 'sparc64' 1191b5d61b8Smrg srcs_xorg_os_support += 'bsd/sparc64_video.c' 1201b5d61b8Smrg srcs_xorg_os_support += 'shared/ioperm_noop.c' 1211b5d61b8Smrg elif host_machine.cpu_family() == 'alpha' 1221b5d61b8Smrg srcs_xorg_os_support += 'bsd/alpha_video.c' 123ed6184dfSmrg if host_machine.system() == 'freebsd' 124ed6184dfSmrg os_dep += cc.find_library('io') 125ed6184dfSmrg elif host_machine.system() == 'netbsd' 126ed6184dfSmrg os_c_args += '-DUSE_ALPHA_PIO' 127ed6184dfSmrg endif 1281b5d61b8Smrg endif 1291b5d61b8Smrg 1301b5d61b8Smrg if host_machine.system() == 'freebsd' 1311b5d61b8Smrg srcs_xorg_os_support += 'bsd/bsd_kmod.c' 1321b5d61b8Smrg else 1331b5d61b8Smrg srcs_xorg_os_support += 'shared/kmod_noop.c' 1341b5d61b8Smrg endif 1351b5d61b8Smrg 136ed6184dfSmrg if build_agp 1371b5d61b8Smrg srcs_xorg_os_support += 'linux/lnx_agp.c' 1381b5d61b8Smrg else 1391b5d61b8Smrg srcs_xorg_os_support += 'shared/agp_noop.c' 1401b5d61b8Smrg endif 1411b5d61b8Smrgelse 1421b5d61b8Smrg # stub ossupport 1431b5d61b8Smrg srcs_xorg_os_support += [ 1441b5d61b8Smrg 'shared/VTsw_noop.c', 1451b5d61b8Smrg 'shared/agp_noop.c', 1461b5d61b8Smrg 'shared/ioperm_noop.c', 1471b5d61b8Smrg 'shared/kmod_noop.c', 1481b5d61b8Smrg 'shared/pm_noop.c', 1491b5d61b8Smrg 'shared/vidmem.c', 1501b5d61b8Smrg 'shared/posix_tty.c', 1511b5d61b8Smrg 'shared/sigio.c', 1521b5d61b8Smrg 'stub/stub_bell.c', 1531b5d61b8Smrg 'stub/stub_init.c', 1541b5d61b8Smrg 'stub/stub_video.c', 1551b5d61b8Smrg ] 1561b5d61b8Smrgendif 1571b5d61b8Smrg 1581b5d61b8Smrgxorg_os_support = static_library('xorg_os_support', 1591b5d61b8Smrg srcs_xorg_os_support, 1601b5d61b8Smrg include_directories: [inc, xorg_inc], 1611b5d61b8Smrg dependencies: [ 1621b5d61b8Smrg common_dep, 1631b5d61b8Smrg dbus_dep, 1641b5d61b8Smrg libdrm_dep, 165ed6184dfSmrg os_dep, 1661b5d61b8Smrg ], 167ed6184dfSmrg c_args: xorg_c_args + os_c_args, 1681b5d61b8Smrg) 1691b5d61b8Smrg 1701b5d61b8Smrginstall_data(hdrs_xorg_os_support, install_dir: xorgsdkdir) 171