]> jfr.im git - irc/blitzed-org/libopm.git/commitdiff
Better socket libs check from Warren Young <warren@etr-usa.com>.
authorandy <redacted>
Mon, 20 Jan 2003 02:12:45 +0000 (02:12 +0000)
committerandy <redacted>
Mon, 20 Jan 2003 02:12:45 +0000 (02:12 +0000)
Header reorganisation for benefit of some solaris machines..

Makefile.in
aclocal.m4
acsite.m4
configure
configure.in
doc/Makefile.in
src/Makefile.am
src/Makefile.in
src/proxy.c

index a8dd7cfb5f3aceb579960382ec2a21ae3dec5e78..bdb7c69f300b0da17ede5c8db7c158cd8e624d27 100644 (file)
@@ -75,6 +75,7 @@ DOX_DIR_HTML = @DOX_DIR_HTML@
 DOX_DIR_LATEX = @DOX_DIR_LATEX@
 DOX_DIR_MAN = @DOX_DIR_MAN@
 ECHO = @ECHO@
+ETR_SOCKET_LIBS = @ETR_SOCKET_LIBS@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBTOOL = @LIBTOOL@
 
index 95e8dfee41ef5f92e67e2d50ec75c91aed0cba76..7b489721a47fee9f6f4dbe2fafb05cdba93fd9d2 100644 (file)
@@ -4422,4 +4422,77 @@ if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes";
   AC_DEFINE(PREFER_PORTABLE_SNPRINTF, 1, "enable replacement (v)snprintf if system (v)snprintf is broken")
 fi])
 
+dnl This macro figures out what libraries are required on this platform to link
+dnl sockets programs. It's usually -lsocket and/or -lnsl or neither. We test for
+dnl all three combinations.
+dnl Copyright Warren Young <warren@etr-usa.com>
+
+AC_DEFUN([ETR_SOCKET_NSL],
+[
+AC_CACHE_CHECK(for libraries containing socket functions,
+ac_cv_socket_libs, [
+        oCFLAGS=$CFLAGS
+
+        AC_TRY_LINK([
+                        #include <sys/types.h>
+                        #include <sys/socket.h>
+                        #include <netinet/in.h>
+                        #include <arpa/inet.h>
+                ],
+                [
+                        struct in_addr add;
+                        int sd = socket(AF_INET, SOCK_STREAM, 0);
+                        inet_ntoa(add);
+                ],
+                ac_cv_socket_libs=-lc, ac_cv_socket_libs=no)
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket"
+                AC_TRY_LINK([
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+                        ],
+                        [
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+                        ],
+                        ac_cv_socket_libs=-lsocket, ac_cv_socket_libs=no)
+        fi
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket -lnsl"
+                AC_TRY_LINK([
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+                        ],
+                        [
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+                        ],
+                        ac_cv_socket_libs="-lsocket -lnsl", ac_cv_socket_libs=no)
+        fi
+
+        CFLAGS=$oCFLAGS
+])
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                AC_MSG_ERROR([Cannot find socket libraries])
+        elif test x"$ac_cv_socket_libs" = "x-lc"
+        then
+                ETR_SOCKET_LIBS=""
+        else
+                ETR_SOCKET_LIBS="$ac_cv_socket_libs"
+        fi
+
+        AC_SUBST(ETR_SOCKET_LIBS)
+]) dnl ETR_SOCKET_NSL
 
index 391679ec371751dd0608010387cfb2eb6aa56302..261ddae1935b7596f4dbb01109248d2abc5bff4f 100644 (file)
--- a/acsite.m4
+++ b/acsite.m4
@@ -57,3 +57,76 @@ if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes";
   AC_DEFINE(PREFER_PORTABLE_SNPRINTF, 1, "enable replacement (v)snprintf if system (v)snprintf is broken")
 fi])
 
+dnl This macro figures out what libraries are required on this platform to link
+dnl sockets programs. It's usually -lsocket and/or -lnsl or neither. We test for
+dnl all three combinations.
+dnl Copyright Warren Young <warren@etr-usa.com>
+
+AC_DEFUN([ETR_SOCKET_NSL],
+[
+AC_CACHE_CHECK(for libraries containing socket functions,
+ac_cv_socket_libs, [
+        oCFLAGS=$CFLAGS
+
+        AC_TRY_LINK([
+                        #include <sys/types.h>
+                        #include <sys/socket.h>
+                        #include <netinet/in.h>
+                        #include <arpa/inet.h>
+                ],
+                [
+                        struct in_addr add;
+                        int sd = socket(AF_INET, SOCK_STREAM, 0);
+                        inet_ntoa(add);
+                ],
+                ac_cv_socket_libs=-lc, ac_cv_socket_libs=no)
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket"
+                AC_TRY_LINK([
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+                        ],
+                        [
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+                        ],
+                        ac_cv_socket_libs=-lsocket, ac_cv_socket_libs=no)
+        fi
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket -lnsl"
+                AC_TRY_LINK([
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+                        ],
+                        [
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+                        ],
+                        ac_cv_socket_libs="-lsocket -lnsl", ac_cv_socket_libs=no)
+        fi
+
+        CFLAGS=$oCFLAGS
+])
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                AC_MSG_ERROR([Cannot find socket libraries])
+        elif test x"$ac_cv_socket_libs" = "x-lc"
+        then
+                ETR_SOCKET_LIBS=""
+        else
+                ETR_SOCKET_LIBS="$ac_cv_socket_libs"
+        fi
+
+        AC_SUBST(ETR_SOCKET_LIBS)
+]) dnl ETR_SOCKET_NSL
index b6200c8467e3475d03dfdc20e7c1791b85bee4eb..798774088f700fc5ec8fb30fff8413ece431abed 100755 (executable)
--- a/configure
+++ b/configure
@@ -7376,6 +7376,184 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+echo "$as_me:$LINENO: checking for libraries containing socket functions" >&5
+echo $ECHO_N "checking for libraries containing socket functions... $ECHO_C" >&6
+if test "${ac_cv_socket_libs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        oCFLAGS=$CFLAGS
+
+        cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+                        #include <sys/types.h>
+                        #include <sys/socket.h>
+                        #include <netinet/in.h>
+                        #include <arpa/inet.h>
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+                        struct in_addr add;
+                        int sd = socket(AF_INET, SOCK_STREAM, 0);
+                        inet_ntoa(add);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_socket_libs=-lc
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_socket_libs=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket"
+                cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_socket_libs=-lsocket
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_socket_libs=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+        fi
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                CFLAGS="$oCFLAGS -lsocket -lnsl"
+                cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+                                #include <sys/types.h>
+                                #include <sys/socket.h>
+                                #include <netinet/in.h>
+                                #include <arpa/inet.h>
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+                                struct in_addr add;
+                                int sd = socket(AF_INET, SOCK_STREAM, 0);
+                                inet_ntoa(add);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_socket_libs="-lsocket -lnsl"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_socket_libs=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+        fi
+
+        CFLAGS=$oCFLAGS
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_socket_libs" >&5
+echo "${ECHO_T}$ac_cv_socket_libs" >&6
+
+        if test x"$ac_cv_socket_libs" = "xno"
+        then
+                { { echo "$as_me:$LINENO: error: Cannot find socket libraries" >&5
+echo "$as_me: error: Cannot find socket libraries" >&2;}
+   { (exit 1); exit 1; }; }
+        elif test x"$ac_cv_socket_libs" = "x-lc"
+        then
+                ETR_SOCKET_LIBS=""
+        else
+                ETR_SOCKET_LIBS="$ac_cv_socket_libs"
+        fi
+
+
+
+
 echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
@@ -9482,6 +9660,7 @@ s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
 s,@CPP@,$CPP,;t t
 s,@LIBTOOL@,$LIBTOOL,;t t
 s,@LIBTOOL_DEPS@,$LIBTOOL_DEPS,;t t
+s,@ETR_SOCKET_LIBS@,$ETR_SOCKET_LIBS,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@LSOCKET@,$LSOCKET,;t t
 s,@LNSL@,$LNSL,;t t
index 25b3887c99884cd1412ebd8723a328e94d5a57e2..63434725f861af1c1b5eaa005678fb002f049f9c 100644 (file)
@@ -29,7 +29,8 @@ AC_PROG_CC
 AC_PROG_LIBTOOL
 AC_SUBST(LIBTOOL_DEPS)
 
-dnl Checks for libraries.
+dnl check if we need -lsocket or -lnsl
+ETR_SOCKET_NSL
 
 dnl Checks for header files.
 AC_HEADER_STDC
index 8873ce8946df5c5a56ea6a1ab802adddb3a3970a..278a86116a42d333d013a8bd93ca365322c131f6 100644 (file)
@@ -75,6 +75,7 @@ DOX_DIR_HTML = @DOX_DIR_HTML@
 DOX_DIR_LATEX = @DOX_DIR_LATEX@
 DOX_DIR_MAN = @DOX_DIR_MAN@
 ECHO = @ECHO@
+ETR_SOCKET_LIBS = @ETR_SOCKET_LIBS@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
index 26d85fde5cbe3b82747b88ccf514ea143804f6a0..db793487556b71e83c3d989c5e2719fb19296de6 100644 (file)
@@ -6,7 +6,7 @@ libopm_la_SOURCES = compat.c compat.h config.c config.h inet.c inet.h \
 
 include_HEADERS = opm.h opm_error.h opm_types.h opm_common.h
 
-libopm_la_LIBADD = @LNSL@ @LSOCKET@ @LTLIBOBJS@
+libopm_la_LIBADD = @ETR_SOCKET_LIBS@ @LTLIBOBJS@
 
 noinst_PROGRAMS = test test_debug
 test_SOURCES = test.c
index 41240ebe71b04637b8737168f21b816a48cfcfe0..8b6b23245f279b5c86d387445001a7d835a90e59 100644 (file)
@@ -75,6 +75,7 @@ DOX_DIR_HTML = @DOX_DIR_HTML@
 DOX_DIR_LATEX = @DOX_DIR_LATEX@
 DOX_DIR_MAN = @DOX_DIR_MAN@
 ECHO = @ECHO@
+ETR_SOCKET_LIBS = @ETR_SOCKET_LIBS@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 LIBTOOL = @LIBTOOL@
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
@@ -100,7 +101,7 @@ libopm_la_SOURCES = compat.c compat.h config.c config.h inet.c inet.h \
 
 include_HEADERS = opm.h opm_error.h opm_types.h opm_common.h
 
-libopm_la_LIBADD = @LNSL@ @LSOCKET@ @LTLIBOBJS@
+libopm_la_LIBADD = @ETR_SOCKET_LIBS@ @LTLIBOBJS@
 
 noinst_PROGRAMS = test test_debug
 test_SOURCES = test.c
index 88c5552840ff9e4e629c679bdf3e7cf91fc71aed..3aa7f0d52692871abb2f22cc7447f6356ee12e5a 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "setup.h"
 
+#include "inet.h"
 #include "compat.h"
 #include "config.h"
 #include "proxy.h"
@@ -29,7 +30,6 @@
 #include "opm_types.h"
 #include "opm_error.h"
 #include "libopm.h"
-#include "inet.h"
 
 RCSID("$Id$");