1 AC_DEFUN(DC_DO_WIN32, [ 2 AC_CHECK_HEADERS(windows.h windowsx.h winsock2.h) 3 AC_CHECK_LIB(wsock32, main, [ 4 AC_DEFINE(HAVE_LIBWSOCK32, [], [Have libwsock32]) 5 LIBS="${LIBS} -lwsock32" 6 ]) 7 ]) 8 9 AC_DEFUN(DC_DO_NETSET, [ 10 AC_SEARCH_LIBS(socket, socket nsl ws2_32 wsock32, AC_DEFINE(HAVE_SOCKET, [], [Have socket()])) 11 AC_SEARCH_LIBS(gethostbyname, nsl ws2_32 wsock32, AC_DEFINE(HAVE_GETHOSTBYNAME, [], [Have gethostbyname()])) 12 AC_SEARCH_LIBS(inet_aton, xnet ws2_32 wsock32, AC_DEFINE(HAVE_INET_ATON, [], [Have inet_aton()]), AC_SEARCH_LIBS(inet_addr, nsl ws2_32 wsock32, AC_DEFINE(HAVE_INET_ADDR, [], [Have inet_addr()]))) 13 ]) 14 15 AC_DEFUN(DC_DO_TYPE, [ 16 if test -z "$ac_cv_sizeof_long"; then 17 AC_C_INLINE 18 AC_CHECK_SIZEOF(long long, 8) 19 AC_CHECK_SIZEOF(long, 4) 20 AC_CHECK_SIZEOF(int, 4) 21 AC_CHECK_SIZEOF(short, 2) 22 fi 23 FOUND=0 24 for dc_cv_loop in \$ac_cv_sizeof_long_long \$ac_cv_sizeof_int \$ac_cv_sizeof_long \$ac_cv_sizeof_short; do 25 dc_cv_size=`eval echo $dc_cv_loop` 26 dc_cv_name=`echo $dc_cv_loop | sed s/\\\$ac_cv_sizeof_//` 27 if test "$dc_cv_size" = "$3"; then 28 if test "$dc_cv_name" = "int"; then 29 AC_CHECK_TYPE($1, $2 int) 30 fi 31 if test "$dc_cv_name" = "long"; then 32 AC_CHECK_TYPE($1, $2 long) 33 fi 34 if test "$dc_cv_name" = "long_long"; then 35 AC_CHECK_TYPE($1, $2 long long) 36 fi 37 if test "$dc_cv_name" = "short"; then 38 AC_CHECK_TYPE($1, $2 short) 39 fi 40 FOUND=1 41 break 42 fi 43 done 44 ]) 45 46 dnl Usage: 47 dnl DC_SETLDRUNPATH(path) 48 AC_DEFUN(DC_SETLDRUNPATH, [ 49 AC_SUBST(LDRUNPATH) 50 OLD_LDFLAGS="$LDFLAGS" 51 52 for testldflags in "-Wl,-rpath -Wl,$1" "-Wl,-R -Wl,$1"; do 53 LDFLAGS="$OLD_LDFLAGS $testldflags" 54 AC_TRY_LINK([#include <stdio.h>], 55 [ return(0); ], [ LDRUNPATH="$LDRUNPATH $testldflags"; break ]); 56 done 57 58 LDFLAGS="$OLD_LDFLAGS" 59 ]) 60 61 dnl Usage: 62 dnl DC_TEST_SHOBJFLAGS(shobjflags, shobjldflags, action-if-not-found) 63 dnl 64 AC_DEFUN(DC_TEST_SHOBJFLAGS, [ 65 AC_SUBST(SHOBJFLAGS) 66 AC_SUBST(SHOBJLDFLAGS) 67 68 OLD_LDFLAGS="$LDFLAGS" 69 SHOBJFLAGS="" 70 71 LDFLAGS="$OLD_LDFLAGS $1 $2" 72 73 AC_TRY_LINK([#include <stdio.h> 74 int unrestst(void);], [ printf("okay\n"); unrestst(); return(0); ], [ SHOBJFLAGS="$1"; SHOBJLDFLAGS="$2" ], [ 75 LDFLAGS="$OLD_LDFLAGS" 76 $3 77 ]) 78 79 LDFLAGS="$OLD_LDFLAGS" 80 ]) 81 82 AC_DEFUN(DC_GET_SHOBJFLAGS, [ 83 AC_SUBST(SHOBJFLAGS) 84 AC_SUBST(SHOBJLDFLAGS) 85 86 AC_MSG_CHECKING(how to create shared objects) 87 88 if test -z "$SHOBJFLAGS" -a -z "$SHOBJLDFLAGS"; then 89 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic], [ 90 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared], [ 91 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -mimpure-text], [ 92 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -mimpure-text], [ 93 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -Wl,-G,-z,textoff], [ 94 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -Wl,-G,-z,textoff], [ 95 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -dynamiclib -flat_namespace -undefined suppress -bind_at_load], [ 96 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress -bind_at_load], [ 97 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-Wl,-dynamiclib -Wl,-flat_namespace -Wl,-undefined,suppress -Wl,-bind_at_load], [ 98 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress], [ 99 DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib], [ 100 AC_MSG_RESULT(cant) 101 AC_MSG_ERROR([We are unable to make shared objects.]) 102 ]) 103 ]) 104 ]) 105 ]) 106 ]) 107 ]) 108 ]) 109 ]) 110 ]) 111 ]) 112 ]) 113 fi 114 115 AC_MSG_RESULT($SHOBJLDFLAGS $SHOBJFLAGS) 116 117 DC_SYNC_SHLIBOBJS 118 ]) 119 120 AC_DEFUN(DC_SYNC_SHLIBOBJS, [ 121 AC_SUBST(SHLIBOBJS) 122 SHLIBOBJS="" 123 for obj in $LIB@&t@OBJS; do 124 SHLIBOBJS="$SHLIBOBJS `echo $obj | sed 's/\.o$/_shr.o/g'`" 125 done 126 ]) 127 128 AC_DEFUN(DC_CHK_OS_INFO, [ 129 AC_CANONICAL_HOST 130 AC_SUBST(SHOBJEXT) 131 AC_SUBST(AREXT) 132 AC_SUBST(SHOBJFLAGS) 133 AC_SUBST(SHOBJLDFLAGS) 134 135 AC_MSG_CHECKING(host operating system) 136 AC_MSG_RESULT($host_os) 137 138 SHOBJEXT="so" 139 AREXT="a" 140 141 case $host_os in 142 darwin*) 143 SHOBJEXT="dylib" 144 ;; 145 hpux*) 146 SHOBJEXT="sl" 147 ;; 148 mingw32msvc*) 149 SHOBJEXT="dll" 150 SHOBJFLAGS="-mno-cygwin -mms-bitfields -DPIC" 151 SHOBJLDFLAGS='-shared -Wl,--dll -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a' 152 ;; 153 esac 154 ]) |