s3:waf: add Darwin sendfile() test
authorBjörn Jacke <bj@sernet.de>
Mon, 2 Jul 2012 10:47:06 +0000 (12:47 +0200)
committerBjörn Jacke <bj@sernet.de>
Thu, 26 Jul 2012 13:18:30 +0000 (15:18 +0200)
source3/wscript

index 91ffc2599a7979060e8509f1e730d0db37154791..0be9a431544b1e3733f4ed246cd8c006f2b470af 100755 (executable)
@@ -1061,6 +1061,29 @@ main() {
                 conf.DEFINE('HAVE_SENDFILE', '1')
                 conf.DEFINE('FREEBSD_SENDFILE_API', '1')
                 conf.DEFINE('WITH_SENDFILE', '1')
+        elif (host_os.rfind('darwin') > -1):
+            conf.CHECK_CODE('''
+                            #include <sys/types.h>
+                            #include <sys/socket.h>
+                            #include <sys/uio.h>
+                            int fromfd, tofd, ret;
+                            off_t offset, nwritten;
+                            struct sf_hdtr hdr;
+                            struct iovec hdtrl;
+                            hdr.headers = &hdtrl;
+                            hdr.hdr_cnt = 1;
+                            hdr.trailers = (void *)0;
+                            hdr.trl_cnt = 0;
+                            hdtrl.iov_base = (void *)0;
+                            hdtrl.iov_len = 0;
+                           ret = sendfile(fromfd, tofd, offset, &nwritten, &hdr, 0);
+                            ''',
+                            '_HAVE_SENDFILE',
+                            msg='Checking for darwin sendfile support')
+            if conf.CONFIG_SET('_HAVE_SENDFILE'):
+                conf.DEFINE('HAVE_SENDFILE', '1')
+                conf.DEFINE('DARWIN_SENDFILE_API', '1')
+                conf.DEFINE('WITH_SENDFILE', '1')
         elif (host_os.rfind('hpux') > -1) or (host_os.rfind('osf') > -1):
             conf.CHECK_CODE('''
                             #include <sys/socket.h>