Artifact [e6464de26d]

Artifact e6464de26d3c48cb51a5d7e811d35b4f529b6fac:


AC_DEFUN(DC_DO_NETWORK, [

  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)

  AC_CHECK_TYPE(socklen_t, [
    AC_DEFINE(HAVE_SOCKLEN_T, [1], [Define to 1 if you have the "socklen_t" type.])
  ], [
    AC_DEFINE(NEED_SOCKLEN_T, [1], [Define to 1 if you need the "socklen_t" type.])
  ], [
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
  ])

  AC_SEARCH_LIBS(inet_aton, xnet ws2_32 wsock32, [
    AC_DEFINE(HAVE_INET_ATON, [1], [Have inet_aton()])
  ], [
    AC_SEARCH_LIBS(inet_addr, nsl ws2_32 wsock32, [
      AC_DEFINE(HAVE_INET_ADDR, [1], [Have inet_addr()])
    ], [
      AC_MSG_WARN([Couldn't find inet_addr or inet_aton])
    ])
  ])
  AC_SEARCH_LIBS(connect, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find connect]) ])
  AC_SEARCH_LIBS(inet_ntoa, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find inet_ntoa]) ])
])

AC_DEFUN(DC_DO_WIN32, [
  AC_CHECK_HEADERS(windows.h windowsx.h winsock2.h)

  AC_CHECK_LIB(wsock32, main, [
    AC_DEFINE(HAVE_LIBWSOCK32, [1], [Have libwsock32])
      LIBS="${LIBS} -lwsock32"
  ])
])

AC_DEFUN(DC_DO_TYPE, [
	if test -z "$ac_cv_sizeof_long"; then
		AC_C_INLINE
		AC_CHECK_SIZEOF(long long, 8)
		AC_CHECK_SIZEOF(long, 4)
		AC_CHECK_SIZEOF(int, 4)
		AC_CHECK_SIZEOF(short, 2)
	fi
	FOUND=0
	for dc_cv_loop in \$ac_cv_sizeof_long_long \$ac_cv_sizeof_int \$ac_cv_sizeof_long \$ac_cv_sizeof_short; do
		dc_cv_size=`eval echo $dc_cv_loop`
		dc_cv_name=`echo $dc_cv_loop | sed s/\\\$ac_cv_sizeof_//`
		if test "$dc_cv_size" = "$3"; then
			if test "$dc_cv_name" = "int"; then 
				AC_CHECK_TYPE($1, $2 int)
			fi
			if test "$dc_cv_name" = "long"; then
				AC_CHECK_TYPE($1, $2 long)
			fi
			if test "$dc_cv_name" = "long_long"; then
				AC_CHECK_TYPE($1, $2 long long)
			fi
			if test "$dc_cv_name" = "short"; then
				AC_CHECK_TYPE($1, $2 short)
			fi
			FOUND=1
			break
		fi
	done
])

AC_DEFUN(DC_SETLDRUNPATH, [
  OLD_LDFLAGS="$LDFLAGS"

  LDRUNPATH=""
  for testldflags in "-Wl,-rpath -Wl,$1" "-Wl,-R -Wl,$1"; do
    LDFLAGS="$OLD_LDFLAGS $testldflags"
    AC_TRY_LINK([#include <stdio.h>],
                [ return(0); ], [ LDRUNPATH="$LDRUNPATH $testldflags"; break ]);
  done

  LDFLAGS="$OLD_LDFLAGS"
  if test -n "$LDRUNPATH"; then
    LDFLAGS="$LDRUNPATH $LDFLAGS"
  fi
])


AC_DEFUN(DC_ASK_OPTLIB, [
  LIBSPECLIBDIR=""
  AC_ARG_WITH($5, AC_HELP_STRING(--with-$5, $4), [
# Specified
    LIBSPEC=$withval
  ], [
# Not specified
    LIBSPECFLAGS="`pkg-config --libs $5 2>/dev/null`"
    LIBSPECCFLAGS="`pkg-config --cflags $5 2>/dev/null`"
    AC_CHECK_LIB($1, $2, [
      OLDCPPFLAGS="$CPPFLAGS"
      OLDCFLAGS="$CFLAGS"
      CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS"
      CFLAGS="$CFLAGS $LIBSPECCFLAGS"
      if test -n "$3" ; then
        AC_CHECK_HEADER($3, [
          LIBSPEC=yes
        ], [
          LIBSPEC=no
        ])
      fi
      CPPFLAGS="$OLDCPPFLAGS"
      CFLAGS="$OLDCFLAGS"
    ], [
      if test -n "$8"; then

	dnl The next line hopefully just invalidates the cache.
        unset `set | grep _cv_ | cut -f 1 -d =`

        LIBSPECFLAGS="$8 $LIBSPECFLAGS"
        AC_CHECK_LIB($1, $2, [
          OLDCPPFLAGS="$CPPFLAGS"
          OLDCFLAGS="$CFLAGS"
          CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS"
          CFLAGS="$CFLAGS $LIBSPECCFLAGS"
          if test -n "$3" ; then
            AC_CHECK_HEADER($3, [
              LIBSPEC=yes
            ], [
              LIBSPEC=no
            ])
          fi
          CPPFLAGS="$OLDCPPFLAGS"
          CFLAGS="$OLDCFLAGS"
        ], [
	  dnl The next line hopefully just invalidates the cache.
          unset `set | grep _cv_ | cut -f 1 -d =`

          LIBSPECFLAGS="$8"
          AC_CHECK_LIB($1, $2, [
            OLDCPPFLAGS="$CPPFLAGS"
            OLDCFLAGS="$CFLAGS"
            CPPFLAGS="$CPPFLAGS $LIBSPECCFLAGS"
            CFLAGS="$CFLAGS $LIBSPECCFLAGS"
            if test -n "$3" ; then
              AC_CHECK_HEADER($3, [
                LIBSPEC=yes
              ], [
                LIBSPEC=no
              ])
            fi
            CPPFLAGS="$OLDCPPFLAGS"
            CFLAGS="$OLDCFLAGS"
          ], [
            LIBSPEC=no
            $9
            AC_MSG_WARN(Did not find $5)
          ], $LIBSPECFLAGS)
        ], $LIBSPECFLAGS)
      else
        LIBSPEC=no
        $9
        AC_MSG_WARN(Did not find $5)
      fi
    ], $LIBSPECFLAGS)
  ])
  case $LIBSPEC in
  	no)
                $9
  		AC_MSG_WARN(Support for $5 disabled)
  		;;
  	*)
  		if test "${LIBSPEC}" = "yes"; then
			true
		else
			LIBSPECLIBDIR="${LIBSPEC}/lib"
			LIBSPECFLAGS="-L${LIBSPEC}/lib ${LIBSPECFLAGS}"
			LIBSPECCFLAGS="-I${LIBSPEC}/include ${LIBSPECCFLAGS}"
  		fi
		AC_CHECK_LIB($1, $2, [
		  OLDCFLAGS="$CFLAGS"
		  OLDCPPFLAGS="$CPPFLAGS"
		  CPPFLAGS="$CPPFLAGS ${LIBSPECCFLAGS}"
		  CFLAGS="$CFLAGS ${LIBSPECCFLAGS}"
		  if test -n "$3"; then
  		    AC_CHECK_HEADER($3, [
		      headerok="yes"
		    ], [
		      headerok="no"
		    ])
		  else
		    headerok="yes"
		  fi

		  if test $headerok = "yes"; then
		    if test -n "$7" -a -n "$3"; then
		      AC_DEFINE($7, [1], [Define to 1 if you have the <$3> header file.])
		    fi
		    if test -n "$6" -a -n "$2"; then
		      AC_DEFINE($6, [1], [Define to 1 if you have $2 from $5])
		    fi
		    LDFLAGS="$LIBSPECFLAGS $LDFLAGS"
                    if test -n "$LIBSPECLIBDIR"; then
                      DC_SETLDRUNPATH($LIBSPECLIBDIR)
                    fi
		    LIBS="-l$1 $LIBS"
		  else
		    CFLAGS="$OLDCFLAGS"
		    CPPFLAGS="$OLDCPPFLAGS"
                    $9
		    AC_MSG_ERROR(Could not find $3)
		  fi
		], [
		  AC_MSG_ERROR(Could not find $5)
		], $LIBSPECFLAGS)
  		;;
  esac
])

AC_DEFUN(DC_CHK_OS_INFO, [
	AC_CANONICAL_HOST
	AC_SUBST(CFLAGS)
	AC_SUBST(CPPFLAGS)
	AC_SUBST(AREXT)

	AC_MSG_CHECKING(host operating system)
	AC_MSG_RESULT($host_os)

	AREXT=".a"

	case $host_os in
		mingw32|mingw32msvc*)
			CFLAGS="$CFLAGS -mms-bitfields"
			CPPFLAGS="$CPPFLAGS -mms-bitfields"
			;;
		cygwin*)
			CFLAGS="$CFLAGS -mms-bitfields"
			CPPFLAGS="$CPPFLAGS -mms-bitfields"
			;;

	esac
])

AC_DEFUN(DC_MAKE_STATIC, [
	AC_SUBST(LIBS)
	AC_SUBST(LDFLAGS)
	NEWLIBS=""
	NEWLDFLAGS=""

	rm -f conftest conftest.c
	cat <<\_ACEOF > conftest.c
#include <stdio.h>
int main(void) { return(0); }
_ACEOF
	"$CC" -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS >/dev/null 2>/dev/null
	if test -e conftest; then
		if test -z "$LDD"; then
			LDD=`echo "$CC" | sed 's@gcc$[@]ldd@'`
			if test "$LDD" = "$CC"; then
				LDD=`echo "$CC" | sed 's@cc$[@]ldd@'`
			fi
			if test "$LDD" = "$CC"; then
				LDD=false
			fi
		fi
		"$LDD" conftest 2>/dev/null >conftest.ldd
	fi
	rm -f conftest conftest.c

	if test -e conftest.ldd; then
		for lib in $LIBS; do
			if echo "$lib" | grep '\-l' >/dev/null; then
				libname=`echo "$lib" | sed 's@^-l@@'`
				testlib=`cat conftest.ldd | awk '{ print $[3] }' | sed 's@\..*$[@]@' | grep "/lib$libname$"`.a
				if test -e "$testlib" -a -n "$testlib"; then
					lib="$testlib"
				fi
			fi
			NEWLIBS="$NEWLIBS $lib"
		done
		for lib in $LDFLAGS; do
			if echo "$lib" | grep '\-l' >/dev/null; then
				libname=`echo "$lib" | sed 's@^-l@@'`
				testlib=`cat conftest.ldd | awk '{ print $[3] }' | sed 's@\..*$[@]@' | grep "/lib$libname$"`.a
				if test -e "$testlib" -a -n "$testlib"; then
					lib="$testlib"
				fi
			fi
			NEWLDFLAGS="$NEWLDFLAGS $lib"
		done

		LIBS="$NEWLIBS"
		LDFLAGS="$NEWLDFLAGS"
	fi

	rm -f conftest.ldd
])