1*4882a593Smuzhiyunsrcs_os = [ 2*4882a593Smuzhiyun 'WaitFor.c', 3*4882a593Smuzhiyun 'access.c', 4*4882a593Smuzhiyun 'auth.c', 5*4882a593Smuzhiyun 'backtrace.c', 6*4882a593Smuzhiyun 'client.c', 7*4882a593Smuzhiyun 'connection.c', 8*4882a593Smuzhiyun 'inputthread.c', 9*4882a593Smuzhiyun 'io.c', 10*4882a593Smuzhiyun 'mitauth.c', 11*4882a593Smuzhiyun 'oscolor.c', 12*4882a593Smuzhiyun 'osinit.c', 13*4882a593Smuzhiyun 'ospoll.c', 14*4882a593Smuzhiyun 'utils.c', 15*4882a593Smuzhiyun 'xdmauth.c', 16*4882a593Smuzhiyun 'xsha1.c', 17*4882a593Smuzhiyun 'xstrans.c', 18*4882a593Smuzhiyun 'xprintf.c', 19*4882a593Smuzhiyun 'log.c', 20*4882a593Smuzhiyun] 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun# Wrapper code for missing C library functions 23*4882a593Smuzhiyunsrcs_libc = [] 24*4882a593Smuzhiyunif not conf_data.get('HAVE_REALLOCARRAY') 25*4882a593Smuzhiyun srcs_libc += 'reallocarray.c' 26*4882a593Smuzhiyunendif 27*4882a593Smuzhiyunif not conf_data.get('HAVE_STRCASECMP') 28*4882a593Smuzhiyun srcs_libc += 'strcasecmp.c' 29*4882a593Smuzhiyunendif 30*4882a593Smuzhiyunif not conf_data.get('HAVE_STRCASESTR') 31*4882a593Smuzhiyun srcs_libc += 'strcasestr.c' 32*4882a593Smuzhiyunendif 33*4882a593Smuzhiyunif not conf_data.get('HAVE_STRLCAT') 34*4882a593Smuzhiyun srcs_libc += 'strlcat.c' 35*4882a593Smuzhiyunendif 36*4882a593Smuzhiyunif not conf_data.get('HAVE_STRLCPY') 37*4882a593Smuzhiyun srcs_libc += 'strlcpy.c' 38*4882a593Smuzhiyunendif 39*4882a593Smuzhiyunif not conf_data.get('HAVE_STRNDUP') 40*4882a593Smuzhiyun srcs_libc += 'strndup.c' 41*4882a593Smuzhiyunendif 42*4882a593Smuzhiyunif not conf_data.get('HAVE_TIMINGSAFE_MEMCMP') 43*4882a593Smuzhiyun srcs_libc += 'timingsafe_memcmp.c' 44*4882a593Smuzhiyunendif 45*4882a593Smuzhiyunif not conf_data.get('HAVE_POLL') 46*4882a593Smuzhiyun srcs_os += 'xserver_poll.c' 47*4882a593Smuzhiyunendif 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunif conf_data.get('BUSFAULT') 50*4882a593Smuzhiyun srcs_os += 'busfault.c' 51*4882a593Smuzhiyunendif 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunif get_option('xdmcp') 54*4882a593Smuzhiyun srcs_os += 'xdmcp.c' 55*4882a593Smuzhiyunendif 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunrpc_dep = [] 58*4882a593Smuzhiyunif get_option('secure-rpc') 59*4882a593Smuzhiyun # prefer libtirpc (if available), otherwise ensure RPC functions are 60*4882a593Smuzhiyun # provided by libc. 61*4882a593Smuzhiyun rpc_dep = dependency('libtirpc', required: false) 62*4882a593Smuzhiyun if not (rpc_dep.found() or cc.has_header('rpc/rpc.h')) 63*4882a593Smuzhiyun error('secure-rpc requested, but neither libtirpc or libc RPC support were found') 64*4882a593Smuzhiyun endif 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun srcs_os += 'rpcauth.c' 67*4882a593Smuzhiyunendif 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunlibxlibc = [] 70*4882a593Smuzhiyunif srcs_libc.length() > 0 71*4882a593Smuzhiyun libxlibc = static_library('libxlibc', 72*4882a593Smuzhiyun srcs_libc, 73*4882a593Smuzhiyun include_directories: inc, 74*4882a593Smuzhiyun dependencies: [ 75*4882a593Smuzhiyun xproto_dep, 76*4882a593Smuzhiyun ], 77*4882a593Smuzhiyun ) 78*4882a593Smuzhiyunendif 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunlibxserver_os = static_library('libxserver_os', 81*4882a593Smuzhiyun srcs_os, 82*4882a593Smuzhiyun include_directories: inc, 83*4882a593Smuzhiyun dependencies: [ 84*4882a593Smuzhiyun common_dep, 85*4882a593Smuzhiyun dl_dep, 86*4882a593Smuzhiyun sha1_dep, 87*4882a593Smuzhiyun rpc_dep, 88*4882a593Smuzhiyun dependency('xau') 89*4882a593Smuzhiyun ], 90*4882a593Smuzhiyun link_with: libxlibc, 91*4882a593Smuzhiyun) 92