libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit b78b27bef86203c3be6f39b825d0c78d409d0894
parent 8038f7bd3c94985a8ceab693bc0d293b29a86757
Author: LRN <lrn1986@gmail.com>
Date:   Sun, 21 Apr 2013 10:56:35 +0000

Fix socket detection

Diffstat:
Mconfigure.ac | 81++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 74 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac @@ -106,13 +106,6 @@ mingw*) AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system]) AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system]) AC_CHECK_LIB(intl, gettext) - mingw32_ws2=yes - mingw64_ws2=yes - AC_CHECK_LIB(ws2_32, _head_libws2_32_a,,mingw32_ws2=no) - AC_CHECK_LIB(ws2_32, __imp_socket,,mingw64_ws2=no) - if test "x$mingw32_ws2" = "xno" -a "x$mingw64_ws2" = "xno"; then - AC_MSG_ERROR([libextractor requires Winsock2]) - fi # Sufficiently new Windows XP CFLAGS="-D__MSVCRT_VERSION__=0x0601 $CFLAGS" @@ -420,6 +413,80 @@ AC_FUNC_ERROR_AT_LINE AC_SEARCH_LIBS(dlopen, dl) AC_SEARCH_LIBS(shm_open, rt) AC_CHECK_FUNCS([mkstemp strndup munmap strcasecmp strdup strncasecmp memmove memset strtoul floor getcwd pow setenv sqrt strchr strcspn strrchr strnlen strndup ftruncate shm_open shm_unlink lseek64]) + + +dnl This is kind of tedious, but simple and straightforward +sockets=no +AC_MSG_CHECKING(for sockets) +AC_LANG_PUSH(C) +SAVED_LIBS="$LIBS" +SOCKET_LIBS= +AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM( + [[#include <sys/socket.h>]], + [[int s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);]] + ) + ], + [ + sockets=yes + ], + [ + LIBS="$SAVED_LIBS -lsocket" + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM( + [[#include <sys/socket.h>]], + [[int s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);]] + ) + ], + [ + sockets=yes + SOCKET_LIBS="-lsocket" + ], + [ + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM( + [[#include <winsock2.h>]], + [[int s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);]] + ) + ], + [ + sockets=yes + ], + [ + LIBS="$SAVED_LIBS -lws2_32" + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM( + [[#include <winsock2.h>]], + [[int s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);]] + ) + ], + [ + sockets=yes + SOCKET_LIBS="-lws2_32" + ], + [ + sockets=no + ] + ) + ] + ) + ] + ) + ] +) +LIBS="$SAVED_LIBS $SOCKET_LIBS" +AC_LANG_POP(C) +AC_MSG_RESULT([$sockets]) +if test "x$sockets" = "xno" +then + AC_MSG_ERROR([libextractor requires some kind of socket library]) +fi +AC_SUBST([SOCKET_LIBS],[$SOCKET_LIBS]) + LE_LIB_LIBS=$LIBS LIBS=$LIBSOLD