meson.build revision f2346221
11b5d61b8Smrgversion_split = meson.project_version().split('.') 21b5d61b8Smrgmajor = version_split[0].to_int() 31b5d61b8Smrgminor = version_split[1].to_int() 41b5d61b8Smrgpatch = version_split[2].to_int() 51b5d61b8Smrg 6ed6184dfSmrg# convert to the old-style 1.x.y version scheme used up to 1.20.x for backwards compatibility 7ed6184dfSmrgrelease = 1 * 10000000 + major * 100000 + minor * 1000 + patch 81b5d61b8Smrg 9ed6184dfSmrgdri_dep = dependency('dri', required: build_glx) 101b5d61b8Smrg 111b5d61b8Smrgconf_data = configuration_data() 121b5d61b8Smrgconf_data.set('_DIX_CONFIG_H_', '1') 131b5d61b8Smrg 141b5d61b8Smrgconf_data.set('HAVE_TYPEOF', cc.compiles(''' 151b5d61b8Smrg int foo(int bar) { typeof(bar) baz = 1; return baz; } 161b5d61b8Smrg''', 17ed6184dfSmrg name: 'typeof()') ? '1' : false) 181b5d61b8Smrg 19ed6184dfSmrg# For feature macros we're using either false (boolean) or '1', which correspond to the macro being 20ed6184dfSmrg# not defined at all and defined to 1. This is to match autotools behavior and thus preserve 21ed6184dfSmrg# backwards compatibility with all the existing code that uses #ifdef to check if feature is 22ed6184dfSmrg# enabled. This ifdef would pass if the macro is defined to 0 which would silently break code 23ed6184dfSmrg# in various places. 24ed6184dfSmrg# 25ed6184dfSmrg# As a complication when we read the configuration from conf_data back we get either string or 26ed6184dfSmrg# bool. Meson does not like comparing things of different types so we always convert the returned 27ed6184dfSmrg# value to an integer using to_int(). 28ed6184dfSmrgconf_data.set('MONOTONIC_CLOCK', cc.has_function('clock_gettime') and 29ed6184dfSmrgcc.compiles(''' 301b5d61b8Smrg #define _POSIX_C_SOURCE 200112L 311b5d61b8Smrg #include <time.h> 321b5d61b8Smrg #include <unistd.h> 331b5d61b8Smrg #ifndef CLOCK_MONOTONIC 341b5d61b8Smrg #error CLOCK_MONOTONIC not defined 351b5d61b8Smrg #endif 361b5d61b8Smrg''', 37ed6184dfSmrg name: 'CLOCK_MONOTONIC') ? '1' : false) 381b5d61b8Smrg 39ed6184dfSmrgconf_data.set('XSERVER_DTRACE', with_dtrace ? '1' : false) 401b5d61b8Smrg 411b5d61b8Smrgif host_machine.endian() == 'little' 421b5d61b8Smrg conf_data.set('X_BYTE_ORDER', 'X_LITTLE_ENDIAN') 431b5d61b8Smrgelse 441b5d61b8Smrg conf_data.set('X_BYTE_ORDER', 'X_BIG_ENDIAN') 451b5d61b8Smrgendif 461b5d61b8Smrg 471b5d61b8Smrgglx_align64 = [] 481b5d61b8Smrgif cc.sizeof('unsigned long') == 8 491b5d61b8Smrg conf_data.set('_XSERVER64', '1') 501b5d61b8Smrg glx_align64 = '-D__GLX_ALIGN64' 511b5d61b8Smrgendif 521b5d61b8Smrg 531b5d61b8Smrgconf_data.set('_GNU_SOURCE', '1') 541b5d61b8Smrg 551b5d61b8Smrg# autoconf checks for /dev/xf86 here, but the test should be based on 561b5d61b8Smrg# the target, not the build system. Could we get rid of this and just 571b5d61b8Smrg# ifdef for openbsd? 58ed6184dfSmrgconf_data.set('HAS_APERTURE_DRV', host_machine.system() == 'openbsd' ? '1' : false) 59ed6184dfSmrg 60ed6184dfSmrgif get_option('input_thread') == 'false' 61ed6184dfSmrg enable_input_thread = false 62ed6184dfSmrgelse 63ed6184dfSmrg enable_input_thread = cc.has_header_symbol('pthread.h', 64ed6184dfSmrg 'PTHREAD_MUTEX_RECURSIVE') 65ed6184dfSmrg if not enable_input_thread and get_option('input_thread') == 'true' 66ed6184dfSmrg error('Input thread enabled and PTHREAD_MUTEX_RECURSIVE not found') 67ed6184dfSmrg endif 68ed6184dfSmrg if host_machine.system() == 'windows' and get_option('input_thread') == 'auto' 69ed6184dfSmrg enable_input_thread = false 70ed6184dfSmrg endif 71ed6184dfSmrgendif 72ed6184dfSmrgconf_data.set('INPUTTHREAD', enable_input_thread ? '1' : false) 73ed6184dfSmrg 74ed6184dfSmrgif cc.compiles(''' 75ed6184dfSmrg #define _GNU_SOURCE 1 76ed6184dfSmrg #include <pthread.h> 77ed6184dfSmrg void foo(int bar) { pthread_setname_np(pthread_self(), "example"); } 78ed6184dfSmrg''', 79ed6184dfSmrg args: '-Werror-implicit-function-declaration', 80ed6184dfSmrg name: 'pthread_setname_np(tid, name)') 81ed6184dfSmrg conf_data.set('HAVE_PTHREAD_SETNAME_NP_WITH_TID', 1) 82ed6184dfSmrgelif cc.compiles(''' 83ed6184dfSmrg #define _GNU_SOURCE 1 84ed6184dfSmrg #include <pthread.h> 85ed6184dfSmrg void foo(int bar) { pthread_setname_np("example"); } 86ed6184dfSmrg''', 87ed6184dfSmrg args: '-Werror-implicit-function-declaration', 88ed6184dfSmrg name: 'pthread_setname_np(name)') 89ed6184dfSmrg conf_data.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', 1) 90ed6184dfSmrgendif 91ed6184dfSmrg 92ed6184dfSmrgconf_data.set('HAVE_LIBBSD', libbsd_dep.found() ? '1' : false) 93ed6184dfSmrg# Note: this symbol is used by libXtrans. 94ed6184dfSmrgconf_data.set('HAVE_SYSTEMD_DAEMON', libsystemd_daemon_dep.found() ? '1' : false) 95ed6184dfSmrgconf_data.set('CONFIG_UDEV', build_udev ? '1' : false) 96ed6184dfSmrgconf_data.set('CONFIG_UDEV_KMS', build_udev_kms ? '1' : false) 97ed6184dfSmrgconf_data.set('HAVE_DBUS', build_dbus ? '1' : false) 98ed6184dfSmrgconf_data.set('CONFIG_HAL', build_hal ? '1' : false) 99ed6184dfSmrgconf_data.set('SYSTEMD_LOGIND', build_systemd_logind ? '1' : false) 100ed6184dfSmrgconf_data.set('NEED_DBUS', build_systemd_logind or build_hal ? '1' : false) 101ed6184dfSmrgconf_data.set('CONFIG_WSCONS', host_machine.system() == 'openbsd' ? '1' : false) 102ed6184dfSmrg 103ed6184dfSmrgconf_data.set('HAVE_XSHMFENCE', xshmfence_dep.found() ? '1' : false) 104ed6184dfSmrgconf_data.set('WITH_LIBDRM', libdrm_required ? '1' : false) 1051b5d61b8Smrgconf_data.set('GLAMOR_HAS_EGL_QUERY_DMABUF', 106ed6184dfSmrg epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.4.4') ? '1' : false) 1075a7dfde8Smrgconf_data.set('GLAMOR_HAS_EGL_QUERY_DRIVER', 108ed6184dfSmrg epoxy_dep.found() and epoxy_dep.version().version_compare('>= 1.5.4') ? '1' : false) 109ed6184dfSmrgconf_data.set('GLXEXT', build_glx ? '1' : false) 110ed6184dfSmrgconf_data.set('GLAMOR', build_glamor ? '1' : false) 111ed6184dfSmrgconf_data.set('GLAMOR_HAS_GBM', gbm_dep.found() ? '1' : false) 1121b5d61b8Smrgconf_data.set('GLAMOR_HAS_GBM_LINEAR', 113ed6184dfSmrg build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 10.6') ? '1' : false) 1141b5d61b8Smrgconf_data.set('GBM_BO_WITH_MODIFIERS', 115ed6184dfSmrg build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 17.1') ? '1' : false) 1161b5d61b8Smrg 1171b5d61b8Smrgconf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir) 1181b5d61b8Smrgconf_data.set_quoted('PROJECTROOT', get_option('prefix')) 1191b5d61b8Smrgconf_data.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir'))) 1201b5d61b8Smrgconf_data.set_quoted('SUID_WRAPPER_DIR', join_paths(get_option('prefix'), get_option('libexecdir'))) 1211b5d61b8Smrgconf_data.set_quoted('COMPILEDDEFAULTFONTPATH', default_font_path) 1221b5d61b8Smrg 1231b5d61b8Smrgconf_data.set('XORG_VERSION_CURRENT', release) 1241b5d61b8Smrg 125ed6184dfSmrgconf_data.set('HASXDMAUTH', has_xdm_auth ? '1' : false) 126ed6184dfSmrgconf_data.set('SECURE_RPC', get_option('secure-rpc') ? '1' : false) 127ed6184dfSmrg 128ed6184dfSmrgconf_data.set('HAVE_DLFCN_H', cc.has_header('dlfcn.h') ? '1' : false) 129ed6184dfSmrgconf_data.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h') ? '1' : false) 130ed6184dfSmrgconf_data.set('HAVE_FCNTL_H', cc.has_header('fcntl.h') ? '1' : false) 131ed6184dfSmrgconf_data.set('HAVE_FNMATCH_H', cc.has_header('fnmatch.h') ? '1' : false) 132ed6184dfSmrgconf_data.set('HAVE_LINUX_AGPGART_H', cc.has_header('linux/agpgart.h') ? '1' : false) 133ed6184dfSmrgconf_data.set('HAVE_STDLIB_H', cc.has_header('stdlib.h') ? '1' : false) 134ed6184dfSmrgconf_data.set('HAVE_STRING_H', cc.has_header('string.h') ? '1' : false) 135ed6184dfSmrgconf_data.set('HAVE_STRINGS_H', cc.has_header('strings.h') ? '1' : false) 136ed6184dfSmrgconf_data.set('HAVE_SYS_AGPGART_H', cc.has_header('sys/agpgart.h') ? '1' : false) 137ed6184dfSmrgconf_data.set('HAVE_SYS_AGPIO_H', cc.has_header('sys/agpio.h') ? '1' : false) 138a1e1cf94Smrgconf_data.set('HAVE_SYS_UN_H', cc.has_header('sys/un.h') ? '1' : false) 139ed6184dfSmrgconf_data.set('HAVE_SYS_UTSNAME_H', cc.has_header('sys/utsname.h') ? '1' : false) 140ed6184dfSmrgconf_data.set('HAVE_SYS_SYSMACROS_H', cc.has_header('sys/sysmacros.h') ? '1' : false) 141ed6184dfSmrgconf_data.set('HAVE_UNISTD_H', cc.has_header('unistd.h') ? '1' : false) 142ed6184dfSmrg 143ed6184dfSmrgconf_data.set('HAVE_ARC4RANDOM_BUF', cc.has_function('arc4random_buf', dependencies: libbsd_dep) ? '1' : false) 144ed6184dfSmrgconf_data.set('HAVE_BACKTRACE', cc.has_function('backtrace') ? '1' : false) 145ed6184dfSmrgconf_data.set('HAVE_CBRT', cc.has_function('cbrt') ? '1' : false) 146ed6184dfSmrgconf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1') ? '1' : false) 147ed6184dfSmrgconf_data.set('HAVE_GETUID', cc.has_function('getuid') ? '1' : false) 148ed6184dfSmrgconf_data.set('HAVE_GETEUID', cc.has_function('geteuid') ? '1' : false) 149ed6184dfSmrgconf_data.set('HAVE_ISASTREAM', cc.has_function('isastream') ? '1' : false) 150ed6184dfSmrgconf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid') ? '1' : false) 151ed6184dfSmrgconf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs') ? '1' : false) 152ed6184dfSmrgconf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid') ? '1' : false) 153ed6184dfSmrgconf_data.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred') ? '1' : false) 154ed6184dfSmrgconf_data.set('HAVE_GETPROGNAME', cc.has_function('getprogname') ? '1' : false) 155ed6184dfSmrgconf_data.set('HAVE_GETZONEID', cc.has_function('getzoneid') ? '1' : false) 156ed6184dfSmrgconf_data.set('HAVE_MEMFD_CREATE', cc.has_function('memfd_create') ? '1' : false) 157ed6184dfSmrgconf_data.set('HAVE_MKOSTEMP', cc.has_function('mkostemp') ? '1' : false) 158ed6184dfSmrgconf_data.set('HAVE_MMAP', cc.has_function('mmap') ? '1' : false) 159ed6184dfSmrgconf_data.set('HAVE_POLL', cc.has_function('poll') ? '1' : false) 160ed6184dfSmrgconf_data.set('HAVE_POLLSET_CREATE', cc.has_function('pollset_create') ? '1' : false) 161ed6184dfSmrgconf_data.set('HAVE_POSIX_FALLOCATE', cc.has_function('posix_fallocate') ? '1' : false) 162ed6184dfSmrgconf_data.set('HAVE_PORT_CREATE', cc.has_function('port_create') ? '1' : false) 163ed6184dfSmrgconf_data.set('HAVE_REALLOCARRAY', cc.has_function('reallocarray', dependencies: libbsd_dep) ? '1' : false) 164ed6184dfSmrgconf_data.set('HAVE_SETEUID', cc.has_function('seteuid') ? '1' : false) 165ed6184dfSmrgconf_data.set('HAVE_SETITIMER', cc.has_function('setitimer') ? '1' : false) 166ed6184dfSmrgconf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64') ? '1' : false) 167ed6184dfSmrgconf_data.set('HAVE_SIGACTION', cc.has_function('sigaction') ? '1' : false) 168ed6184dfSmrgconf_data.set('HAVE_SIGPROCMASK', cc.has_function('sigprocmask') ? '1' : false) 169f2346221Smrg# HAVE_SOCKLEN_T is used by xtrans when IPv6 is disabled 170f2346221Smrgconf_data.set('HAVE_SOCKLEN_T', cc.has_type('socklen_t', prefix: '#include <sys/socket.h>') ? '1' : false) 171ed6184dfSmrgconf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp') ? '1' : false) 172ed6184dfSmrgconf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr') ? '1' : false) 173ed6184dfSmrgconf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep) ? '1' : false) 174ed6184dfSmrgconf_data.set('HAVE_STRLCPY', cc.has_function('strlcpy', dependencies: libbsd_dep) ? '1' : false) 175ed6184dfSmrgconf_data.set('HAVE_STRNCASECMP', cc.has_function('strncasecmp') ? '1' : false) 176ed6184dfSmrgconf_data.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup') ? '1' : false) 177ed6184dfSmrgconf_data.set('HAVE_TIMINGSAFE_MEMCMP', cc.has_function('timingsafe_memcmp') ? '1' : false) 178ed6184dfSmrgconf_data.set('HAVE_VASPRINTF', cc.has_function('vasprintf') ? '1' : false) 179ed6184dfSmrgconf_data.set('HAVE_VSNPRINTF', cc.has_function('vsnprintf') ? '1' : false) 180ed6184dfSmrgconf_data.set('HAVE_WALKCONTEXT', cc.has_function('walkcontext') ? '1' : false) 1811b5d61b8Smrg 1821b5d61b8Smrgconf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION')) 1831b5d61b8Smrg 1841b5d61b8Smrg# Don't let X dependencies typedef 'pointer' 1851b5d61b8Smrgconf_data.set('_XTYPEDEF_POINTER', '1') 1861b5d61b8Smrgconf_data.set('_XITYPEDEF_POINTER', '1') 1871b5d61b8Smrg 1881b5d61b8Smrgconf_data.set('LISTEN_TCP', get_option('listen_tcp')) 1891b5d61b8Smrgconf_data.set('LISTEN_UNIX', get_option('listen_unix')) 1901b5d61b8Smrgconf_data.set('LISTEN_LOCAL', get_option('listen_local')) 1911b5d61b8Smrg 192ed6184dfSmrgif cc.has_header_symbol('sys/socket.h', 'SCM_RIGHTS') 193ed6184dfSmrg conf_data.set('XTRANS_SEND_FDS', '1') 194ed6184dfSmrgendif 1951b5d61b8Smrg 196ed6184dfSmrgif conf_data.get('HAVE_GETPEEREID').to_int() == 0 and conf_data.get('HAVE_GETPEERUCRED').to_int() == 0 197ed6184dfSmrg if not cc.has_header_symbol('sys/socket.h', 'SO_PEERCRED') 198ed6184dfSmrg conf_data.set('NO_LOCAL_CLIENT_CRED', 1) 199ed6184dfSmrg endif 200ed6184dfSmrgendif 201ed6184dfSmrg 202ed6184dfSmrgconf_data.set('TCPCONN', '1') 203ed6184dfSmrgconf_data.set('UNIXCONN', host_machine.system() != 'windows' ? '1' : false) 204ed6184dfSmrgconf_data.set('IPv6', build_ipv6 ? '1' : false) 2051b5d61b8Smrg 2061b5d61b8Smrgconf_data.set('BIGREQS', '1') 207a1e1cf94Smrgconf_data.set('COMPOSITE', '1') 2081b5d61b8Smrgconf_data.set('DAMAGE', '1') 2091b5d61b8Smrgconf_data.set('DBE', '1') 210ed6184dfSmrgconf_data.set('DGA', build_dga ? '1' : false) 211ed6184dfSmrgconf_data.set('DPMSExtension', build_dpms ? '1' : false) 212ed6184dfSmrgconf_data.set('DRI2', build_dri2 ? '1' : false) 213ed6184dfSmrgconf_data.set('DRI3', build_dri3 ? '1' : false) 214ed6184dfSmrgif build_glx 215ed6184dfSmrg conf_data.set_quoted('DRI_DRIVER_PATH', dri_dep.get_pkgconfig_variable('dridriverdir')) 216ed6184dfSmrgendif 217ed6184dfSmrgconf_data.set('HAS_SHM', build_mitshm ? '1' : false) 218ed6184dfSmrgconf_data.set('MITSHM', build_mitshm ? '1' : false) 219ed6184dfSmrgconf_data.set('PANORAMIX', build_xinerama ? '1' : false) 2201b5d61b8Smrgconf_data.set('PRESENT', '1') 2211b5d61b8Smrgconf_data.set('RANDR', '1') 222ed6184dfSmrgconf_data.set('RES', build_res ? '1' : false) 2231b5d61b8Smrgconf_data.set('RENDER', '1') 224ed6184dfSmrgconf_data.set('SCREENSAVER', build_screensaver ? '1' : false) 2251b5d61b8Smrgconf_data.set('SHAPE', '1') 226ed6184dfSmrgconf_data.set('XACE', build_xace ? '1' : false) 2271b5d61b8Smrgconf_data.set('XCMISC', '1') 228ed6184dfSmrgconf_data.set('XCSECURITY', build_xsecurity ? '1' : false) 229ed6184dfSmrgconf_data.set('XDMCP', xdmcp_dep.found() ? '1' : false) 230ed6184dfSmrgconf_data.set('XF86BIGFONT', build_xf86bigfont ? '1' : false) 231ed6184dfSmrgconf_data.set('XF86DRI', build_dri1 ? '1' : false) 232ed6184dfSmrgconf_data.set('XF86VIDMODE', 1) 2331b5d61b8Smrgconf_data.set('XFIXES', '1') 234ed6184dfSmrgconf_data.set('XFreeXDGA', build_dga ? '1' : false) 235ed6184dfSmrgconf_data.set('XINERAMA', build_xinerama ? '1' : false) 2361b5d61b8Smrgconf_data.set('XINPUT', '1') 2371b5d61b8Smrgconf_data.set('XRECORD', '1') 238ed6184dfSmrgconf_data.set('XSELINUX', build_xselinux ? '1' : false) 2391b5d61b8Smrgconf_data.set('XSYNC', '1') 2401b5d61b8Smrgconf_data.set('XTEST', '1') 241ed6184dfSmrgconf_data.set('XV', build_xv ? '1' : false) 242ed6184dfSmrgconf_data.set('XvExtension', build_xv ? '1' : false) 243ed6184dfSmrgconf_data.set('XvMCExtension', build_xvmc ? '1' : false) 2441b5d61b8Smrg 245ed6184dfSmrgconf_data.set('HAVE_SHA1_IN_' + sha1.to_upper(), '1', description: 'Use @0@ SHA1 functions'.format(sha1)) 246ed6184dfSmrgconf_data.set('HAVE_LIBUNWIND', get_option('libunwind')) 2471b5d61b8Smrg 248ed6184dfSmrgconf_data.set('HAVE_APM', (build_apm or build_acpi) ? '1' : false) 249ed6184dfSmrgconf_data.set('HAVE_ACPI', build_acpi ? '1' : false) 2501b5d61b8Smrg 251ed6184dfSmrgconf_data.set('DDXOSVERRORF', build_xwin ? '1' : false) 252ed6184dfSmrgconf_data.set('DDXBEFORERESET', build_xwin ? '1' : false) 2531b5d61b8Smrgenable_debugging = get_option('buildtype') == 'debug' 254ed6184dfSmrgconf_data.set('DEBUG', enable_debugging ? '1' : false) 2551b5d61b8Smrg 2561b5d61b8Smrgconf_data.set_quoted('XVENDORNAME', get_option('vendor_name')) 2571b5d61b8Smrgconf_data.set_quoted('XVENDORNAMESHORT', get_option('vendor_name_short')) 2581b5d61b8Smrgconf_data.set_quoted('__VENDORDWEBSUPPORT__', get_option('vendor_web')) 2591b5d61b8Smrgconf_data.set_quoted('BUILDERADDR', get_option('builder_addr')) 2601b5d61b8Smrgconf_data.set_quoted('BUILDERSTRING', get_option('builder_string')) 2611b5d61b8Smrg 262ed6184dfSmrgif build_rootless 263ed6184dfSmrg conf_data.set('ROOTLESS', build_rootless ? '1' : false) 264ed6184dfSmrg conf_data.set('ROOTLESS_WORKAROUND', 1) 265ed6184dfSmrg conf_data.set('ROOTLESS_SAFEALPHA', 1) 266ed6184dfSmrgendif 267ed6184dfSmrg 2681b5d61b8Smrg# 2691b5d61b8Smrg# for xorg-server.h only 2701b5d61b8Smrg# 2711b5d61b8Smrgdefines_svr4 = '''#if !defined(SVR4) && !defined(__svr4__) && !defined(__SVR4) 2721b5d61b8Smrg#error "I am not SVR4" 2731b5d61b8Smrg#endif 2741b5d61b8Smrg''' 2751b5d61b8Smrg 2761b5d61b8Smrg# BSD specifics 2771b5d61b8Smrgsupports_pccons = false 2781b5d61b8Smrgsupports_pcvt = false 2791b5d61b8Smrgsupports_syscons = false 2801b5d61b8Smrgsupports_wscons = false 2811b5d61b8Smrgcsrg_based = false 2821b5d61b8Smrg 283ed6184dfSmrgif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly' 2841b5d61b8Smrg supports_pccons = true 2851b5d61b8Smrg supports_pcvt = true 2861b5d61b8Smrg supports_syscons = true 2871b5d61b8Smrg csrg_based = true 2881b5d61b8Smrgendif 2891b5d61b8Smrg 2901b5d61b8Smrgif host_machine.system() == 'kfreebsd' 2911b5d61b8Smrg supports_pccons = true 2921b5d61b8Smrg supports_pcvt = true 2931b5d61b8Smrg supports_syscons = true 2941b5d61b8Smrgendif 2951b5d61b8Smrg 2961b5d61b8Smrgif host_machine.system() == 'netbsd' 2971b5d61b8Smrg supports_pccons = true 2981b5d61b8Smrg supports_pcvt = true 2991b5d61b8Smrg supports_wscons = true 3001b5d61b8Smrg csrg_based = true 3011b5d61b8Smrgendif 3021b5d61b8Smrg 3031b5d61b8Smrgif host_machine.system() == 'openbsd' 3041b5d61b8Smrg supports_pcvt = true 3051b5d61b8Smrg supports_wscons = true 3061b5d61b8Smrg csrg_based = true 3071b5d61b8Smrgendif 3081b5d61b8Smrg 309ed6184dfSmrgif host_machine.system() == 'darwin' 310ed6184dfSmrg csrg_based = true 311ed6184dfSmrgendif 312ed6184dfSmrg 313ed6184dfSmrgconf_data.set('SVR4', cc.compiles(defines_svr4) ? '1' : false) 3141b5d61b8Smrgconf_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules')) 315ed6184dfSmrgconf_data.set('XORGSERVER', build_xorg ? '1' : false) 3161b5d61b8Smrgconf_data.set_quoted('XCONFIGFILE', 'xorg.conf') 3171b5d61b8Smrgconf_data.set_quoted('__XSERVERNAME__', 'Xorg') 318ed6184dfSmrgconf_data.set('WITH_VGAHW', build_vgahw ? '1' : false) 319ed6184dfSmrgconf_data.set('CSRG_BASED', csrg_based ? '1' : false) 320ed6184dfSmrgconf_data.set('PCCONS_SUPPORT', supports_pccons ? '1' : false) 321ed6184dfSmrgconf_data.set('PCVT_SUPPORT', supports_pcvt ? '1' : false) 322ed6184dfSmrgconf_data.set('SYSCONS_SUPPORT', supports_syscons ? '1' : false) 323ed6184dfSmrgconf_data.set('WSCONS_SUPPORT', supports_wscons ? '1' : false) 324ed6184dfSmrgconf_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false) 325ed6184dfSmrgconf_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false) 3261b5d61b8Smrg 3271b5d61b8Smrgconfigure_file(output : 'dix-config.h', 3281b5d61b8Smrg configuration : conf_data) 3291b5d61b8Smrg 3301b5d61b8Smrgconfigure_file(output : 'xorg-server.h', 3311b5d61b8Smrg input : 'xorg-server.h.meson.in', 3321b5d61b8Smrg configuration : conf_data, 333ed6184dfSmrg install: build_xorg, 3341b5d61b8Smrg install_dir: xorgsdkdir) 3351b5d61b8Smrg 3361b5d61b8Smrgversion_data = configuration_data() 3371b5d61b8Smrgversion_data.set('VENDOR_RELEASE', '@0@'.format(release)) 3381b5d61b8Smrgversion_data.set_quoted('VENDOR_NAME', get_option('vendor_name')) 3391b5d61b8Smrgversion_data.set_quoted('VENDOR_NAME_SHORT', get_option('vendor_name_short')) 3401b5d61b8Smrgversion_data.set_quoted('VENDOR_WEB', get_option('vendor_web')) 3411b5d61b8Smrgversion_data.set_quoted('VENDOR_MAN_VERSION', 'Version @0@.@1@.@2@'.format(major, minor, patch)) 3421b5d61b8Smrgconfigure_file(output : 'version-config.h', 3431b5d61b8Smrg configuration : version_data) 3441b5d61b8Smrg 3451b5d61b8Smrgxkb_data = configuration_data() 3461b5d61b8Smrg 3471b5d61b8Smrgxkb_data.set_quoted('XKB_BIN_DIRECTORY', xkb_bin_dir) 3481b5d61b8Smrgxkb_data.set_quoted('XKB_BASE_DIRECTORY', xkb_dir) 3491b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_RULES', get_option('xkb_default_rules')) 3501b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_MODEL', get_option('xkb_default_model')) 3511b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_LAYOUT', get_option('xkb_default_layout')) 3521b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_VARIANT', get_option('xkb_default_variant')) 3531b5d61b8Smrgxkb_data.set_quoted('XKB_DFLT_OPTIONS', get_option('xkb_default_options')) 354ed6184dfSmrgxkb_data.set_quoted('XKM_OUTPUT_DIR', xkb_output_dir + '/') 3551b5d61b8Smrg 3561b5d61b8Smrgconfigure_file(output : 'xkb-config.h', 3571b5d61b8Smrg configuration : xkb_data) 3581b5d61b8Smrg 3591b5d61b8Smrgxorg_data = configuration_data() 3601b5d61b8Smrg 3611b5d61b8Smrgxorg_data.set_quoted('XORG_BIN_DIRECTORY', get_option('bindir')) 3621b5d61b8Smrgxorg_data.set('XORG_VERSION_CURRENT', release) 3631b5d61b8Smrgxorg_data.set_quoted('XF86CONFIGFILE', 'xorg.conf') 3641b5d61b8Smrgxorg_data.set_quoted('XCONFIGFILE', 'xorg.conf') 3651b5d61b8Smrgxorg_data.set_quoted('XCONFIGDIR', 'xorg.conf.d') 3661b5d61b8Smrgxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME', '.local/share') 3671b5d61b8Smrgxorg_data.set_quoted('DEFAULT_XDG_DATA_HOME_LOGDIR', 'xorg') 3681b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LOGDIR', log_dir) 3691b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LOGPREFIX', 'Xorg.') 3701b5d61b8Smrgxorg_data.set_quoted('DEFAULT_MODULE_PATH', join_paths(get_option('prefix'), module_dir)) 3711b5d61b8Smrgxorg_data.set_quoted('DEFAULT_LIBRARY_PATH', join_paths(get_option('prefix'), get_option('libdir'))) 3721b5d61b8Smrgxorg_data.set_quoted('__XSERVERNAME__', 'Xorg') 373ed6184dfSmrgxorg_data.set('XSERVER_LIBPCIACCESS', get_option('pciaccess') ? '1' : false) 3741b5d61b8Smrgxorg_data.set_quoted('PCI_TXT_IDS_PATH', '') 375ed6184dfSmrgxorg_data.set('XSERVER_PLATFORM_BUS', build_udev_kms ? '1' : false) 376ed6184dfSmrgxorg_data.set('WSCONS_SUPPORT', 377ed6184dfSmrg host_machine.system() == 'netbsd' or host_machine.system() == 'openbsd' ? '1' : false) 378ed6184dfSmrgxorg_data.set('HAVE_STROPTS_H', cc.has_header('stropts.h') ? '1' : false) 379ed6184dfSmrgxorg_data.set('HAVE_SYS_KD_H', cc.has_header('sys/kd.h') ? '1' : false) 380ed6184dfSmrgxorg_data.set('HAVE_SYS_VT_H', cc.has_header('sys/vt.h') ? '1' : false) 381ed6184dfSmrg 382ed6184dfSmrgif host_machine.system() == 'freebsd' or host_machine.system() == 'dragonfly' 3831b5d61b8Smrg if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64' 384ed6184dfSmrg xorg_data.set('USE_DEV_IO', '1') 3851b5d61b8Smrg endif 3861b5d61b8Smrgelif host_machine.system() == 'netbsd' 3871b5d61b8Smrg if host_machine.cpu_family() == 'x86' or host_machine.cpu_family() == 'x86_64' 388ed6184dfSmrg xorg_data.set('USE_I386_IOPL', '1') 3891b5d61b8Smrg endif 3901b5d61b8Smrgelif host_machine.system() == 'openbsd' 3911b5d61b8Smrg if host_machine.cpu_family() == 'x86' 392ed6184dfSmrg xorg_data.set('USE_I386_IOPL', '1') 3931b5d61b8Smrg endif 3941b5d61b8Smrg if host_machine.cpu_family() == 'x86_64' 395ed6184dfSmrg xorg_data.set('USE_AMD64_IOPL', '1') 3961b5d61b8Smrg endif 3971b5d61b8Smrgendif 3981b5d61b8Smrg 3991b5d61b8Smrgconfigure_file(output : 'xorg-config.h', 4001b5d61b8Smrg input : 'xorg-config.h.meson.in', 4011b5d61b8Smrg configuration : xorg_data) 4021b5d61b8Smrg 4031b5d61b8Smrgxwin_data = configuration_data() 4041b5d61b8Smrgxwin_data.set_quoted('DEFAULT_LOGDIR', log_dir) 405ed6184dfSmrgxwin_data.set('HAS_WINSOCK', host_machine.system() == 'windows' ? '1' : false, 406ed6184dfSmrg description: 'Use Windows sockets') 407ed6184dfSmrgxwin_data.set('HAS_DEVWINDOWS', host_machine.system() == 'cygwin' ? '1' : false, 408ed6184dfSmrg description: 'Has /dev/windows for signaling new win32 messages') 409ed6184dfSmrgxwin_data.set('RELOCATE_PROJECTROOT', host_machine.system() == 'windows' ? '1' : false, 410ed6184dfSmrg description: 'Make paths relative to the xserver installation location') 4111b5d61b8Smrg# XXX: these three are all the same as DEBUG so we should just change to that 4121b5d61b8Smrgxwin_data.set10('CYGDEBUG', enable_debugging) 4131b5d61b8Smrgxwin_data.set10('CYGWINDOWING_DEBUG',enable_debugging) 4141b5d61b8Smrgxwin_data.set10('CYGMULTIWINDOW_DEBUG', enable_debugging) 4151b5d61b8Smrg 4161b5d61b8Smrgconfigure_file(output : 'xwin-config.h', 4171b5d61b8Smrg input : 'xwin-config.h.meson.in', 4181b5d61b8Smrg configuration : xwin_data) 4191b5d61b8Smrg 420ed6184dfSmrgdtrace_hdr = [] 421ed6184dfSmrgdtrace_tmpl = files('Xserver.d') 422ed6184dfSmrgif with_dtrace 423ed6184dfSmrg dtrace_header = generator(dtrace, 424ed6184dfSmrg output: '@BASENAME@-dtrace.h', 425ed6184dfSmrg arguments: ['-h', '-s', '@INPUT@', '-o', '@OUTPUT@'] 426ed6184dfSmrg ) 4271b5d61b8Smrg 428ed6184dfSmrg dtrace_hdr += dtrace_header.process(dtrace_tmpl) 429ed6184dfSmrgendif 4301b5d61b8Smrg 4311b5d61b8Smrgif build_xorg 4321b5d61b8Smrg install_data( 4331b5d61b8Smrg [ 4341b5d61b8Smrg 'XIstubs.h', 4351b5d61b8Smrg 'Xprintf.h', 4361b5d61b8Smrg 'callback.h', 4371b5d61b8Smrg 'client.h', 4381b5d61b8Smrg 'closestr.h', 4391b5d61b8Smrg 'closure.h', 4401b5d61b8Smrg 'colormap.h', 4411b5d61b8Smrg 'colormapst.h', 4421b5d61b8Smrg 'hotplug.h', 4431b5d61b8Smrg 'cursor.h', 4441b5d61b8Smrg 'cursorstr.h', 4451b5d61b8Smrg 'dix.h', 4461b5d61b8Smrg 'dixaccess.h', 4471b5d61b8Smrg 'dixevents.h', 4481b5d61b8Smrg 'dixfont.h', 4491b5d61b8Smrg 'dixfontstr.h', 4501b5d61b8Smrg 'dixgrabs.h', 4511b5d61b8Smrg 'dixstruct.h', 4521b5d61b8Smrg 'events.h', 4531b5d61b8Smrg 'exevents.h', 4541b5d61b8Smrg 'extension.h', 4551b5d61b8Smrg 'extinit.h', 4561b5d61b8Smrg 'extnsionst.h', 457ed6184dfSmrg 'fourcc.h', 4581b5d61b8Smrg 'gc.h', 4591b5d61b8Smrg 'gcstruct.h', 4601b5d61b8Smrg 'globals.h', 4611b5d61b8Smrg 'glx_extinit.h', 4621b5d61b8Smrg 'glxvndabi.h', 4631b5d61b8Smrg 'input.h', 4641b5d61b8Smrg 'inputstr.h', 4651b5d61b8Smrg 'list.h', 4661b5d61b8Smrg 'misc.h', 4671b5d61b8Smrg 'miscstruct.h', 4681b5d61b8Smrg 'opaque.h', 4691b5d61b8Smrg 'nonsdk_extinit.h', 4701b5d61b8Smrg 'optionstr.h', 4711b5d61b8Smrg 'os.h', 4721b5d61b8Smrg 'pixmap.h', 4731b5d61b8Smrg 'pixmapstr.h', 4741b5d61b8Smrg 'privates.h', 4751b5d61b8Smrg 'property.h', 4761b5d61b8Smrg 'propertyst.h', 4771b5d61b8Smrg 'ptrveloc.h', 4781b5d61b8Smrg 'region.h', 4791b5d61b8Smrg 'regionstr.h', 4801b5d61b8Smrg 'registry.h', 4811b5d61b8Smrg 'resource.h', 4821b5d61b8Smrg 'rgb.h', 4831b5d61b8Smrg 'screenint.h', 4841b5d61b8Smrg 'scrnintstr.h', 4851b5d61b8Smrg 'selection.h', 4861b5d61b8Smrg 'servermd.h', 4871b5d61b8Smrg 'validate.h', 4881b5d61b8Smrg 'displaymode.h', 4891b5d61b8Smrg 'window.h', 4901b5d61b8Smrg 'windowstr.h', 4911b5d61b8Smrg 'xkbfile.h', 4921b5d61b8Smrg 'xkbsrv.h', 4931b5d61b8Smrg 'xkbstr.h', 4941b5d61b8Smrg 'xkbrules.h', 4951b5d61b8Smrg 'Xprintf.h', 4961b5d61b8Smrg 'xserver_poll.h', 4971b5d61b8Smrg 'xserver-properties.h', 4981b5d61b8Smrg ], 4991b5d61b8Smrg install_dir: xorgsdkdir, 5001b5d61b8Smrg ) 5011b5d61b8Smrgendif 502