1 AC_DEFUN(DC_DO_NETWORK, [ 2 3 AC_CHECK_HEADERS(arpa/inet.h errno.h fcntl.h netdb.h netinet/in.h stdarg.h stdio.h stdlib.h string.h sys/socket.h sys/stat.h sys/types.h unistd.h) 4 5 AC_CHECK_TYPE(socklen_t, [ 6 AC_DEFINE(HAVE_SOCKLEN_T, [1], [Define to 1 if you have the "socklen_t" type.]) 7 ], [ 8 AC_DEFINE(NEED_SOCKLEN_T, [1], [Define to 1 if you need the "socklen_t" type.]) 9 ], [ 10 #ifdef HAVE_SYS_TYPES_H 11 #include <sys/types.h> 12 #endif 13 #ifdef HAVE_SYS_SOCKET_H 14 #include <sys/socket.h> 15 #endif 16 ]) 17 18 AC_SEARCH_LIBS(inet_aton, xnet ws2_32 wsock32, [ 19 AC_DEFINE(HAVE_INET_ATON, [1], [Have inet_aton()]) 20 ], [ 21 AC_SEARCH_LIBS(inet_addr, nsl ws2_32 wsock32, [ 22 AC_DEFINE(HAVE_INET_ADDR, [1], [Have inet_addr()]) 23 ], [ 24 AC_MSG_WARN([Couldn't find inet_addr or inet_aton]) 25 ]) 26 ]) 27 AC_SEARCH_LIBS(connect, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find connect]) ]) 28 AC_SEARCH_LIBS(inet_ntoa, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find inet_ntoa]) ]) 29 ]) 30 31 AC_DEFUN(DC_DO_WIN32, [ 32 AC_CHECK_HEADERS(windows.h windowsx.h winsock2.h) 33 34 AC_CHECK_LIB(wsock32, main, [ 35 AC_DEFINE(HAVE_LIBWSOCK32, [1], [Have libwsock32]) 36 LIBS="${LIBS} -lwsock32" 37 ]) 38 ]) 39 40 AC_DEFUN(DC_DO_TYPE, [ 41 if test -z "$ac_cv_sizeof_long"; then 42 AC_C_INLINE 43 AC_CHECK_SIZEOF(long long, 8) 44 AC_CHECK_SIZEOF(long, 4) 45 AC_CHECK_SIZEOF(int, 4) 46 AC_CHECK_SIZEOF(short, 2) 47 fi 48 FOUND=0 49 for dc_cv_loop in \$ac_cv_sizeof_long_long \$ac_cv_sizeof_int \$ac_cv_sizeof_long \$ac_cv_sizeof_short; do 50 dc_cv_size=`eval echo $dc_cv_loop` 51 dc_cv_name=`echo $dc_cv_loop | sed s/\\\$ac_cv_sizeof_//` 52 if test "$dc_cv_size" = "$3"; then 53 if test "$dc_cv_name" = "int"; then 54 AC_CHECK_TYPE($1, $2 int) 55 fi 56 if test "$dc_cv_name" = "long"; then 57 AC_CHECK_TYPE($1, $2 long) 58 fi 59 if test "$dc_cv_name" = "long_long"; then 60 AC_CHECK_TYPE($1, $2 long long) 61 fi 62 if test "$dc_cv_name" = "short"; then 63 AC_CHECK_TYPE($1, $2 short) 64 fi 65 FOUND=1 66 break 67 fi 68 done 69 ]) 70 71 AC_DEFUN(DC_SETLDRUNPATH, [ 72 OLD_LDFLAGS="$LDFLAGS" 73 74 LDRUNPATH="" 75 for testldflags in "-Wl,-rpath -Wl,$1" "-Wl,-R -Wl,$1"; do 76 LDFLAGS="$OLD_LDFLAGS $testldflags" 77 AC_TRY_LINK([#include <stdio.h>], 78 [ return(0); ], [ LDRUNPATH="$LDRUNPATH $testldflags"; break ]); 79 done 80 81 LDFLAGS="$OLD_LDFLAGS" 82 if test -n "$LDRUNPATH"; then 83 LDFLAGS="$LDRUNPATH $LDFLAGS" 84 fi 85 ]) 86 87 88 AC_DEFUN(DC_ASK_OPTLIB, [ 89 LIBSPECLIBDIR="" 90 AC_ARG_WITH($5, AC_HELP_STRING(--with-$5, $4), [ 91 # Specified 92 LIBSPEC=$withval 93 ], [ 94 # Not specified 95 LIBSPECFLAGS="`pkg-config --libs $5 2>/dev/null`" 96 LIBSPECCFLAGS="`pkg-config --cflags $5 2>/dev/null`" 97 AC_CHECK_LIB($1, $2, [ 98 OLDCPPFLAGS="$CPPFLAGS" 99 OLDCFLAGS="$CFLAGS" 100 CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS" 101 CFLAGS="$CFLAGS $LIBSPECCFLAGS" 102 if test -n "$3" ; then 103 AC_CHECK_HEADER($3, [ 104 LIBSPEC=yes 105 ], [ 106 LIBSPEC=no 107 ]) 108 fi 109 CPPFLAGS="$OLDCPPFLAGS" 110 CFLAGS="$OLDCFLAGS" 111 ], [ 112 if test -n "$8"; then 113 114 dnl The next line hopefully just invalidates the cache. 115 unset `set | grep _cv_ | cut -f 1 -d =` 116 117 LIBSPECFLAGS="$8 $LIBSPECFLAGS" 118 AC_CHECK_LIB($1, $2, [ 119 OLDCPPFLAGS="$CPPFLAGS" 120 OLDCFLAGS="$CFLAGS" 121 CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS" 122 CFLAGS="$CFLAGS $LIBSPECCFLAGS" 123 if test -n "$3" ; then 124 AC_CHECK_HEADER($3, [ 125 LIBSPEC=yes 126 ], [ 127 LIBSPEC=no 128 ]) 129 fi 130 CPPFLAGS="$OLDCPPFLAGS" 131 CFLAGS="$OLDCFLAGS" 132 ], [ 133 dnl The next line hopefully just invalidates the cache. 134 unset `set | grep _cv_ | cut -f 1 -d =` 135 136 LIBSPECFLAGS="$8" 137 AC_CHECK_LIB($1, $2, [ 138 OLDCPPFLAGS="$CPPFLAGS" 139 OLDCFLAGS="$CFLAGS" 140 CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS" 141 CFLAGS="$CFLAGS $LIBSPECCFLAGS" 142 if test -n "$3" ; then 143 AC_CHECK_HEADER($3, [ 144 LIBSPEC=yes 145 ], [ 146 LIBSPEC=no 147 ]) 148 fi 149 CPPFLAGS="$OLDCPPFLAGS" 150 CFLAGS="$OLDCFLAGS" 151 ], [ 152 LIBSPEC=no 153 $9 154 AC_MSG_WARN(Did not find $5) 155 ], $LIBSPECFLAGS) 156 ], $LIBSPECFLAGS) 157 else 158 LIBSPEC=no 159 $9 160 AC_MSG_WARN(Did not find $5) 161 fi 162 ], $LIBSPECFLAGS) 163 ]) 164 case $LIBSPEC in 165 no) 166 $9 167 AC_MSG_WARN(Support for $5 disabled) 168 ;; 169 *) 170 if test "${LIBSPEC}" = "yes"; then 171 true 172 else 173 LIBSPECLIBDIR="${LIBSPEC}/lib" 174 LIBSPECFLAGS="-L${LIBSPEC}/lib ${LIBSPECFLAGS}" 175 LIBSPECCFLAGS="-I${LIBSPEC}/include ${LIBSPECCFLAGS}" 176 fi 177 AC_CHECK_LIB($1, $2, [ 178 OLDCFLAGS="$CFLAGS" 179 OLDCPPFLAGS="$CPPFLAGS" 180 CPPFLAGS="$CPPFLAGS ${LIBSPECCFLAGS}" 181 CFLAGS="$CFLAGS ${LIBSPECCFLAGS}" 182 if test -n "$3"; then 183 AC_CHECK_HEADER($3, [ 184 headerok="yes" 185 ], [ 186 headerok="no" 187 ]) 188 else 189 headerok="yes" 190 fi 191 192 if test $headerok = "yes"; then 193 if test -n "$7" -a -n "$3"; then 194 AC_DEFINE($7, [1], [Define to 1 if you have the <$3> header file.]) 195 fi 196 if test -n "$6" -a -n "$2"; then 197 AC_DEFINE($6, [1], [Define to 1 if you have $2 from $5]) 198 fi 199 LDFLAGS="$LIBSPECFLAGS $LDFLAGS" 200 if test -n "$LIBSPECLIBDIR"; then 201 DC_SETLDRUNPATH($LIBSPECLIBDIR) 202 fi 203 LIBS="-l$1 $LIBS" 204 else 205 CFLAGS="$OLDCFLAGS" 206 CPPFLAGS="$OLDCPPFLAGS" 207 $9 208 AC_MSG_ERROR(Could not find $3) 209 fi 210 ], [ 211 AC_MSG_ERROR(Could not find $5) 212 ], $LIBSPECFLAGS) 213 ;; 214 esac 215 ]) 216 217 AC_DEFUN(DC_CHK_OS_INFO, [ 218 AC_CANONICAL_HOST 219 AC_SUBST(CFLAGS) 220 AC_SUBST(CPPFLAGS) 221 AC_SUBST(AREXT) 222 223 AC_MSG_CHECKING(host operating system) 224 AC_MSG_RESULT($host_os) 225 226 AREXT=".a" 227 228 case $host_os in 229 mingw32msvc*) 230 CFLAGS="$CFLAGS -mno-cygwin -mms-bitfields" 231 CPPFLAGS="$CPPFLAGS -mno-cygwin -mms-bitfields" 232 ;; 233 cygwin*) 234 CFLAGS="$CFLAGS -mms-bitfields" 235 CPPFLAGS="$CPPFLAGS -mms-bitfields" 236 ;; 237 238 esac 239 ]) 240 241 AC_DEFUN(DC_MAKE_STATIC, [ 242 AC_SUBST(LIBS) 243 AC_SUBST(LDFLAGS) 244 NEWLIBS="" 245 NEWLDFLAGS="" 246 247 rm -f conftest conftest.c 248 cat <<\_ACEOF > conftest.c 249 #include <stdio.h> 250 int main(void) { return(0); } 251 _ACEOF 252 "$CC" -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS >/dev/null 2>/dev/null 253 if test -e conftest; then 254 if test -z "$LDD"; then 255 LDD=`echo "$CC" | sed 's@gcc$[@]ldd@'` 256 if test "$LDD" = "$CC"; then 257 LDD=`echo "$CC" | sed 's@cc$[@]ldd@'` 258 fi 259 if test "$LDD" = "$CC"; then 260 LDD=false 261 fi 262 fi 263 "$LDD" conftest 2>/dev/null >conftest.ldd 264 fi 265 rm -f conftest conftest.c 266 267 if test -e conftest.ldd; then 268 for lib in $LIBS; do 269 if echo "$lib" | grep '\-l' >/dev/null; then 270 libname=`echo "$lib" | sed 's@^-l@@'` 271 testlib=`cat conftest.ldd | awk '{ print $[3] }' | sed 's@\..*$[@]@' | grep "/lib$libname$"`.a 272 if test -e "$testlib" -a -n "$testlib"; then 273 lib="$testlib" 274 fi 275 fi 276 NEWLIBS="$NEWLIBS $lib" 277 done 278 for lib in $LDFLAGS; do 279 if echo "$lib" | grep '\-l' >/dev/null; then 280 libname=`echo "$lib" | sed 's@^-l@@'` 281 testlib=`cat conftest.ldd | awk '{ print $[3] }' | sed 's@\..*$[@]@' | grep "/lib$libname$"`.a 282 if test -e "$testlib" -a -n "$testlib"; then 283 lib="$testlib" 284 fi 285 fi 286 NEWLDFLAGS="$NEWLDFLAGS $lib" 287 done 288 289 LIBS="$NEWLIBS" 290 LDFLAGS="$NEWLDFLAGS" 291 fi 292 293 rm -f conftest.ldd 294 ]) |