--- source3/wscript.orig 2015-07-14 10:54:24 UTC +++ source3/wscript @@ -34,6 +34,7 @@ def set_options(opt): opt.SAMBA3_ADD_OPTION('utmp') opt.SAMBA3_ADD_OPTION('pthreadpool', with_name="enable", without_name="disable", default=True) opt.SAMBA3_ADD_OPTION('avahi', with_name="enable", without_name="disable") + opt.SAMBA3_ADD_OPTION('dnssd', with_name="enable", without_name="disable") opt.SAMBA3_ADD_OPTION('iconv') opt.SAMBA3_ADD_OPTION('acl-support') opt.SAMBA3_ADD_OPTION('dnsupdate') @@ -342,7 +343,9 @@ int main(int argc, char **argv) # Check if the compiler will optimize out functions conf.CHECK_CODE(''' -if (0) { +char s = "string"; +int len = 6; +if (sizeof(s) != len && sizeof(s) != sizeof(char *)) { this_function_does_not_exist(); } else { return 1; @@ -409,6 +412,12 @@ utimensat vsyslog _write __write __xstat conf.DEFINE('DARWINOS', 1) conf.ADD_CFLAGS('-fno-common') conf.DEFINE('STAT_ST_BLOCKSIZE', '512') + elif (host_os.rfind('bsdsunix') > -1): + conf.DEFINE('BSDSUNIX', 1) + if conf.CHECK_HEADERS('sunacl.h'): + conf.DEFINE('HAVE_BSDSUNIX_SUNACL_H', '1') + conf.CHECK_FUNCS_IN(['acl'], 'sunacl') + conf.DEFINE('STAT_ST_BLOCKSIZE', '512') elif (host_os.rfind('freebsd') > -1): conf.DEFINE('FREEBSD', 1) if conf.CHECK_HEADERS('sunacl.h'): @@ -527,7 +536,7 @@ return acl_get_perm_np(permset_d, perm); conf.CHECK_CODE('struct aiocb a; return aio_return(&a);', 'HAVE_AIO_RETURN', msg='Checking for aio_return', headers='aio.h', lib='aio rt') conf.CHECK_CODE('struct aiocb a; return aio_error(&a);', 'HAVE_AIO_ERROR', msg='Checking for aio_error', headers='aio.h', lib='aio rt') conf.CHECK_CODE('struct aiocb a; return aio_cancel(1, &a);', 'HAVE_AIO_CANCEL', msg='Checking for aio_cancel', headers='aio.h', lib='aio rt') - conf.CHECK_CODE('const struct aiocb * const a[1]; struct timespec t; return aio_suspend(&a, 1, &t);', 'HAVE_AIO_SUSPEND', msg='Checking for aio_suspend', headers='aio.h', lib='aio rt') + conf.CHECK_CODE('const struct aiocb * const a[1]; struct timespec t; return aio_suspend(a, 1, &t);', 'HAVE_AIO_SUSPEND', msg='Checking for aio_suspend', headers='aio.h', lib='aio rt') if not conf.CONFIG_SET('HAVE_AIO'): conf.DEFINE('HAVE_NO_AIO', '1') else: @@ -848,6 +857,17 @@ msg.msg_accrightslen = sizeof(fd); conf.SET_TARGET_TYPE('avahi-common', 'EMPTY') conf.SET_TARGET_TYPE('avahi-client', 'EMPTY') + if Options.options.with_dnssd: + conf.env.with_dnssd = True + if not conf.CHECK_HEADERS('dns_sd.h'): + conf.env.with_dnssd = False + if not conf.CHECK_FUNCS_IN('DNSServiceRegister', 'dns_sd'): + conf.env.with_dnssd = False + if conf.env.with_dnssd: + conf.DEFINE('WITH_DNSSD_SUPPORT', 1) + else: + conf.SET_TARGET_TYPE('dns_sd', 'EMPTY') + if Options.options.with_iconv: conf.env.with_iconv = True if not conf.CHECK_FUNCS_IN('iconv_open', 'iconv', headers='iconv.h'): @@ -1232,6 +1252,30 @@ main() { conf.DEFINE('HAVE_SENDFILE', '1') conf.DEFINE('LINUX_SENDFILE_API', '1') conf.DEFINE('WITH_SENDFILE', '1') + elif (host_os.rfind('bsdsunix') > -1): + conf.CHECK_CODE(''' + #include + #include + #include + #include + int fromfd, tofd, ret, total=0; + off_t offset, nwritten; + struct sf_hdtr hdr; + struct iovec hdtrl; + hdr.headers = &hdtrl; + hdr.hdr_cnt = 1; + hdr.trailers = NULL; + hdr.trl_cnt = 0; + hdtrl.iov_base = NULL; + hdtrl.iov_len = 0; + ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0) + ''', + '_HAVE_SENDFILE', + msg='Checking for bsdsunix sendfile support') + if conf.CONFIG_SET('_HAVE_SENDFILE'): + conf.DEFINE('HAVE_SENDFILE', '1') + conf.DEFINE('BSDSUNIX_SENDFILE_API', '1') + conf.DEFINE('WITH_SENDFILE', '1') elif (host_os.rfind('freebsd') > -1) or (host_os.rfind('dragonfly') > -1): conf.CHECK_CODE(''' #include @@ -1603,7 +1647,7 @@ main() { default_static_modules.extend(TO_LIST('charset_macosxfs')) if conf.CONFIG_SET('HAVE_GPFS'): - default_shared_modules.extend(TO_LIST('vfs_gpfs')) + default_shared_modules.extend(TO_LIST('vfs_gpfs')) if conf.CONFIG_SET('HAVE_LINUX_IOCTL'): default_shared_modules.extend(TO_LIST('vfs_btrfs')) @@ -1620,9 +1664,6 @@ main() { if conf.CONFIG_SET('HAVE_VXFS'): default_shared_modules.extend(TO_LIST('vfs_vxfs')) - if conf.CONFIG_SET('HAVE_DBUS'): - default_shared_modules.extend(TO_LIST('vfs_snapper')) - explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',') explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',')