summaryrefslogtreecommitdiff
path: root/source4/lib/socket/SConscript
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/socket/SConscript')
-rw-r--r--source4/lib/socket/SConscript59
1 files changed, 59 insertions, 0 deletions
diff --git a/source4/lib/socket/SConscript b/source4/lib/socket/SConscript
index db449592c2..c4e791467a 100644
--- a/source4/lib/socket/SConscript
+++ b/source4/lib/socket/SConscript
@@ -1,5 +1,64 @@
+#!/usr/bin/env python
Import('hostenv')
+
+if hostenv['configure']:
+ conf = hostenv.Configure()
+ conf.CheckCHeader('sys/socket.h')
+ conf.CheckCHeader('sys/sockio.h')
+ conf.CheckCHeader('sys/un.h')
+ #HAVE_SOCK_SIN_LEN
+ conf.TryCompile("""
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+int main(void)
+{
+ struct sockaddr_in sock; sock.sin_len = sizeof(sock);
+ return 0;
+}""", '.c')
+
+ #HAVE_UNIXSOCKET
+ conf.TryCompile("""
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <sys/socket.h>
+#include <sys/un.h>],
+
+int main(void)
+{
+ struct sockaddr_un sunaddr;
+ sunaddr.sun_family = AF_UNIX;
+ return 0;
+}""", '.c')
+
+ # HAVE_IPV6
+ conf.CheckFunc('gethostbyname2')
+
+ # The following test taken from the cvs sources
+ # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
+ # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
+ # libsocket.so which has a bad implementation of gethostbyname (it
+ # only looks in /etc/hosts), so we only look for -lsocket if we need
+ # it.
+
+ connect_libs = []
+
+ if not conf.CheckFunc('connect'):
+ for l in ['nsl_s','nsl','socket','inet']:
+ if conf.CheckLib(l, 'connect'):
+ connect_libs.append(l)
+ break
+
+ # HAVE_WORKING_AF_LOCAL
+ # FIXME: Try compiling build/tests/unixsock.c
+
+
+ conf.Finish()
+
hostenv.StaticLibrary('socket_ipv4.c')
hostenv.StaticLibrary('socket_ipv6.c')
hostenv.StaticLibrary('socket_unix.c')
hostenv.StaticLibrary('socket', ['socket.c','access.c','connect.c'])
+