
Also known as ISC bind. This import adds utilities such as host(1), dig(1), and nslookup(1), as well as many other tools and libraries. Change-Id: I035ca46e64f1965d57019e773f4ff0ef035e4aa3
712 lines
20 KiB
Plaintext
712 lines
20 KiB
Plaintext
dnl Id: configure.in,v 1.1 2003/06/04 00:25:25 marka Exp
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
dnl
|
|
dnl Copyright (c) 2000 Japan Network Information Center. All rights reserved.
|
|
dnl
|
|
dnl By using this file, you agree to the terms and conditions set forth bellow.
|
|
dnl
|
|
dnl LICENSE TERMS AND CONDITIONS
|
|
dnl
|
|
dnl The following License Terms and Conditions apply, unless a different
|
|
dnl license is obtained from Japan Network Information Center ("JPNIC"),
|
|
dnl a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
|
|
dnl Chiyoda-ku, Tokyo 101-0047, Japan.
|
|
dnl
|
|
dnl 1. Use, Modification and Redistribution (including distribution of any
|
|
dnl modified or derived work) in source and/or binary forms is permitted
|
|
dnl under this License Terms and Conditions.
|
|
dnl
|
|
dnl 2. Redistribution of source code must retain the copyright notices as they
|
|
dnl appear in each source code file, this License Terms and Conditions.
|
|
dnl
|
|
dnl 3. Redistribution in binary form must reproduce the Copyright Notice,
|
|
dnl this License Terms and Conditions, in the documentation and/or other
|
|
dnl materials provided with the distribution. For the purposes of binary
|
|
dnl distribution the "Copyright Notice" refers to the following language:
|
|
dnl "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
|
|
dnl
|
|
dnl 4. The name of JPNIC may not be used to endorse or promote products
|
|
dnl derived from this Software without specific prior written approval of
|
|
dnl JPNIC.
|
|
dnl
|
|
dnl 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
|
|
dnl "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
dnl LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
dnl PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
|
|
dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
dnl BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
dnl WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
dnl ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
|
|
AC_INIT(include/idn/converter.h)
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
debug=no
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug enable debug codes [default=no]],
|
|
debug=$enableval)
|
|
case "$debug" in
|
|
yes)
|
|
CFLAGS="$CFLAGS -DDEBUG"
|
|
;;
|
|
esac
|
|
|
|
mdnkit_compat=no
|
|
COMPAT_TRUE="#"
|
|
COMPAT_FALSE=
|
|
AC_ARG_ENABLE(mdnkit-compat,
|
|
[ --enable-mdnkit-compat enable mDNkit compatibility mode [default=no]],
|
|
mdnkit_compat=$enableval)
|
|
case "$mdnkit_compat" in
|
|
yes)
|
|
COMPAT_TRUE=
|
|
COMPAT_FALSE="#"
|
|
AC_DEFINE(ENABLE_MDNKIT_COMPAT, 1,
|
|
[Define if --enable-mdnkit-compat is specified])
|
|
;;
|
|
no)
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([You must specify yes or no to --enable-runidn option.])
|
|
;;
|
|
esac
|
|
AC_SUBST(COMPAT_TRUE)
|
|
AC_SUBST(COMPAT_FALSE)
|
|
|
|
extraace=no
|
|
AC_ARG_ENABLE(extra-ace,
|
|
[ --enable-extra-ace enable additional ACE converters. [default=no]],
|
|
extraace=$enableval)
|
|
case "$extraace" in
|
|
no)
|
|
;;
|
|
yes)
|
|
AC_DEFINE(IDN_EXTRA_ACE, 1,
|
|
[Define if you want additional ACE converters compiled in.])
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([You must specify yes or no to --enable-extra-ace option.])
|
|
;;
|
|
esac
|
|
|
|
UTF8_NAME=no
|
|
AC_ARG_WITH(utf8,
|
|
[ --with-utf8=NAME codeset name for UTF-8 encoding [UTF-8]],
|
|
UTF8_NAME=$withval)
|
|
case "$UTF8_NAME" in
|
|
no)
|
|
UTF8_NAME=UTF-8
|
|
;;
|
|
yes)
|
|
AC_MSG_ERROR([You must specify NAME to --with-utf8 option.])
|
|
;;
|
|
*)
|
|
AC_DEFINE_UNQUOTED(IDN_UTF8_ENCODING_NAME, "$UTF8_NAME",
|
|
[Define if your iconv() does not accept "UTF-8" as the codeset name for utf-8.])
|
|
;;
|
|
esac
|
|
AC_SUBST(UTF8_NAME)
|
|
|
|
liteonly=no
|
|
LITEONLY_TRUE="#"
|
|
LITEONLY_FALSE=
|
|
AC_ARG_ENABLE(liteonly,
|
|
[ --enable-liteonly compile and install lite library only [default=no]],
|
|
liteonly=$enableval)
|
|
case "$liteonly" in
|
|
no)
|
|
;;
|
|
yes)
|
|
if test "$install_runidn" = yes ; then
|
|
AC_MSG_ERROR([you can't set value \"yes\" to --enable-runidn and --enable-liteonly simultaneously, because runidn requires iconv support of generic libidnkit.])
|
|
fi
|
|
LITEONLY_TRUE=
|
|
LITEONLY_FALSE="#"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([You must specify yes or no to --enable-liteonly option.])
|
|
;;
|
|
esac
|
|
AC_SUBST(LITEONLY_TRUE)
|
|
AC_SUBST(LITEONLY_FALSE)
|
|
|
|
install_runidn=no
|
|
RUNIDN_TRUE="#"
|
|
RUNIDN_FALSE=
|
|
AC_ARG_ENABLE(runidn,
|
|
[ --enable-runidn compile and install runidn [default=no]],
|
|
install_runidn=$enableval)
|
|
case "$install_runidn" in
|
|
no)
|
|
;;
|
|
yes)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set value \"yes\" to --enable-runidn and --enable-liteonly simultaneously, because runidn requires iconv support of generic libidnkit.])
|
|
fi
|
|
RUNIDN_TRUE=
|
|
RUNIDN_FALSE="#"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([You must specify yes or no to --enable-runidn option.])
|
|
;;
|
|
esac
|
|
AC_SUBST(RUNIDN_TRUE)
|
|
AC_SUBST(RUNIDN_FALSE)
|
|
|
|
ICONVINC=
|
|
ICONVLIB=
|
|
|
|
libiconv=unspec
|
|
AC_ARG_WITH(libiconv,
|
|
[ --with-libiconv=IPREFIX GNU libiconv are installed in IPREFIX [PREFIX]],
|
|
libiconv=$withval)
|
|
case "$libiconv" in
|
|
unspec)
|
|
;;
|
|
no)
|
|
ICONVINC=
|
|
ICONVLIB=
|
|
;;
|
|
yes)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
if test X$prefix = XNONE ; then
|
|
libiconv=$ac_default_prefix
|
|
else
|
|
libiconv=$prefix
|
|
fi
|
|
ICONVINC="-I$libiconv/include"
|
|
ICONVLIB="-L$libiconv/lib -R$libiconv/lib -liconv"
|
|
;;
|
|
*)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
ICONVINC="-I$libiconv/include"
|
|
ICONVLIB="-L$libiconv/lib -R$libiconv/lib -liconv"
|
|
;;
|
|
esac
|
|
|
|
iconv_include=unspec
|
|
AC_ARG_WITH(iconv-include,
|
|
[ --with-iconv-include=DIR iconv include files are in DIR []],
|
|
iconv_include=$withval)
|
|
case "$iconv_include" in
|
|
unspec)
|
|
;;
|
|
no)
|
|
ICONVINC=
|
|
;;
|
|
yes)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
AC_MSG_WARN([You must supply DIR to --with-iconv-include option.
|
|
Ignored.])
|
|
ICONVINC=
|
|
;;
|
|
*)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
ICONVINC="-I$iconv_include"
|
|
;;
|
|
esac
|
|
|
|
if test "X$ICONVINC" != X ; then
|
|
iconv_include="`echo X$ICONVINC | sed -e 's/^X-I//'`"
|
|
if test ! -f "$iconv_include/iconv.h" ; then
|
|
AC_MSG_ERROR([iconv.h doesn't exist in $iconv_include])
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(ICONVINC)
|
|
|
|
iconv=unspec
|
|
AC_ARG_WITH(iconv,
|
|
[ --with-iconv=LIB special library for iconv []],
|
|
iconv=$withval)
|
|
case "$iconv" in
|
|
unspec)
|
|
;;
|
|
no)
|
|
ICONVLIB=
|
|
;;
|
|
yes)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
AC_MSG_WARN([You must supply LIB to --with-iconv option.
|
|
-liconv is assumed.])
|
|
ICONVLIB=-liconv
|
|
;;
|
|
*)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
ICONVLIB=$iconv
|
|
;;
|
|
esac
|
|
AC_SUBST(ICONVLIB)
|
|
|
|
AC_ARG_WITH(iconv-sofile,
|
|
[ --with-iconv-sofile=PATH shared library file for libiconv []],
|
|
iconv_file=$withval, iconv_file=guess)
|
|
ICONVSOFILE=
|
|
case "$iconv_file" in
|
|
no)
|
|
ICONVSOFILE=none
|
|
;;
|
|
yes)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
AC_MSG_ERROR([You must supply PATH to --with-iconv-sofile option.])
|
|
;;
|
|
guess)
|
|
if test "$liteonly" != yes ; then
|
|
if test "$ICONVLIB" = ""; then
|
|
ICONVSOFILE=none
|
|
else
|
|
AC_MSG_CHECKING(pathname of iconv shared library)
|
|
ic_libdir=
|
|
ic_libname=
|
|
case "$host" in
|
|
*-hpux*)
|
|
SO=sl
|
|
;;
|
|
*)
|
|
SO=so
|
|
;;
|
|
esac
|
|
for arg in $ICONVLIB; do
|
|
case "$arg" in
|
|
-L*) ic_libdir="$ic_libdir `echo $arg | sed s/-L//`" ;;
|
|
-l*) ic_libname=`echo $arg | sed s/-l//` ;;
|
|
/*.$SO*) ICONVSOFILE=$arg ;;
|
|
esac
|
|
done
|
|
if test "$ICONVSOFILE" = ""; then
|
|
if test "$ic_libname" = ""; then
|
|
AC_MSG_RESULT(unknown)
|
|
AC_MSG_WARN([use --with-iconv-sofile for specifying iconv shared library file])
|
|
ICONVSOFILE=none
|
|
else
|
|
if test "$ic_libdir" = ""; then
|
|
# Standard (and semi-standard) library directories
|
|
ic_libdir="/lib /usr/lib /usr/local/lib"
|
|
fi
|
|
for dir in $ic_libdir; do
|
|
ICONVSOFILE=`ls -r $dir/lib$ic_libname.$SO* 2>/dev/null | head -1`
|
|
if test "$ICONVSOFILE" != ""; then
|
|
break
|
|
fi
|
|
done
|
|
if test "$ICONVSOFILE" != ""; then
|
|
AC_MSG_RESULT($ICONVSOFILE)
|
|
else
|
|
AC_MSG_RESULT(unknown)
|
|
AC_MSG_WARN([use --with-iconv-sofile for specifying iconv shared library file])
|
|
ICONVSOFILE=none
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
ICONVSOFILE=none
|
|
fi
|
|
;;
|
|
*)
|
|
if test "$liteonly" = yes ; then
|
|
AC_MSG_ERROR([you can't set iconv options at all when you set value \"yes\" to --enable-liteonly, because lite library does not have iconv support.])
|
|
fi
|
|
ICONVSOFILE=$iconv_file
|
|
;;
|
|
esac
|
|
AC_SUBST(ICONVSOFILE)
|
|
|
|
dnl Figure out preload stuff.
|
|
PRELOAD_VAR="LD_PRELOAD"
|
|
PRELOAD_SEP=":"
|
|
PRELOAD_LAST=""
|
|
case "$host" in
|
|
*-solaris*)
|
|
PRELOAD_SEP=" "
|
|
;;
|
|
*-linux*)
|
|
PRELOAD_SEP=" "
|
|
;;
|
|
*-osf*)
|
|
PRELOAD_VAR="_RLD_LIST"
|
|
PRELOAD_LAST=":DEFAULT"
|
|
;;
|
|
*-netbsd*)
|
|
if test -x /usr/bin/file -a -x /usr/bin/grep ; then
|
|
case "`/usr/bin/file /usr/bin/grep`" in
|
|
*ELF*)
|
|
PRELOAD_SEP=" "
|
|
;;
|
|
esac
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(PRELOAD_VAR)
|
|
AC_SUBST(PRELOAD_SEP)
|
|
AC_SUBST(PRELOAD_LAST)
|
|
|
|
dnl Checks for standard tools.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AM_PROG_LIBTOOL
|
|
|
|
AC_PATH_PROGS(PERL, perl, perl)
|
|
|
|
dnl Checks for header files.
|
|
AC_CHECK_HEADERS(unistd.h locale.h langinfo.h pwd.h)
|
|
if test "$install_runidn" = yes ; then
|
|
AC_CHECK_HEADERS(dlfcn.h)
|
|
fi
|
|
|
|
saved_CPPFLAGS=$CPPFLAGS
|
|
CPPFLAGS="$CPPFLAGS $ICONVINC"
|
|
if test "$liteonly" != yes ; then
|
|
AC_CHECK_HEADER(iconv.h, , [AC_MSG_ERROR([iconv.h doesn't exist])])
|
|
fi
|
|
CPPFLAGS=$saved_CPPFLAGS
|
|
|
|
dnl Checks for data types.
|
|
AC_TYPE_UID_T
|
|
dnl for dnsproxy.
|
|
AC_CHECK_TYPE(BOOL, int)
|
|
|
|
dnl Checks for libraries.
|
|
if test "$install_runidn" = yes ; then
|
|
AC_CHECK_LIB(socket, socket)
|
|
AC_CHECK_LIB(nsl, inet_addr)
|
|
AC_CHECK_LIB(dl, dlopen, [
|
|
LIBS="-ldl $LIBS"
|
|
LIBDL="-ldl"
|
|
AC_DEFINE(HAVE_LIBDL, 1, [Define if you have the dl library (-ldl).])
|
|
AC_SUBST(LIBDL)
|
|
])
|
|
fi
|
|
|
|
dnl Checks for library functions.
|
|
AC_CHECK_FUNCS(vsnprintf setvbuf setlocale nl_langinfo memmove bcopy setenv \
|
|
unsetenv)
|
|
if test "$install_runidn" = yes ; then
|
|
AC_CHECK_FUNCS(gethostbyname gethostbyname2 gethostbyaddr)
|
|
AC_CHECK_FUNCS(gethostbyname_r gethostbyname2_r gethostbyaddr_r, find_gethost_r=yes)
|
|
AC_CHECK_FUNCS(getipnodebyname getipnodebyaddr freehostent)
|
|
AC_CHECK_FUNCS(getaddrinfo freeaddrinfo getnameinfo)
|
|
AC_CHECK_FUNCS(dlopen dlsym)
|
|
fi
|
|
|
|
if test "$install_runidn" = yes ; then
|
|
dnl Checks the flavor of gethostbyaddr* functions.
|
|
AC_CACHE_CHECK(flavor of gethostbyaddr, ac_cv_flavor_gethostbyaddr,
|
|
[ac_cv_flavor_gethostbyaddr=unknown
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)gethostbyaddr(NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_gethostbyaddr=glibc2_2,,
|
|
ac_cv_flavor_gethostbyaddr=unknown)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
struct hostent *gethostbyaddr(const char *addr, size_t len, int type) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)gethostbyaddr(NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_gethostbyaddr=glibc,,
|
|
ac_cv_flavor_gethostbyaddr=unknown)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
struct hostent *gethostbyaddr(const char *addr, int len, int type) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)gethostbyaddr(NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_gethostbyaddr=traditional,,
|
|
ac_cv_flavor_gethostbyaddr=unknown)
|
|
if test "$ac_cv_func_gethostbyaddr" = no ; then
|
|
ac_cv_flavor_gethostbyaddr=none
|
|
fi])
|
|
|
|
case "$ac_cv_flavor_gethostbyaddr" in
|
|
glibc2_2)
|
|
ac_cv_type_ghba_addr_t='const void *'
|
|
ac_cv_type_ghba_addrlen_t='socklen_t'
|
|
;;
|
|
glibc)
|
|
ac_cv_type_ghba_addr_t='const char *'
|
|
ac_cv_type_ghba_addrlen_t='size_t'
|
|
;;
|
|
traditional | none)
|
|
ac_cv_type_ghba_addr_t='const char *'
|
|
ac_cv_type_ghba_addrlen_t='int'
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([can't build runidn, since parameter type list of gethostbyaddr() is unknown to configure.])
|
|
;;
|
|
esac
|
|
AC_DEFINE_UNQUOTED(GHBA_ADDR_T, $ac_cv_type_ghba_addr_t,
|
|
[Define as the type of the 1st argument of gethostbyaddr.])
|
|
AC_DEFINE_UNQUOTED(GHBA_ADDRLEN_T, $ac_cv_type_ghba_addrlen_t,
|
|
[Define as the type of the 2nd argument of gethostbyaddr.])
|
|
|
|
dnl Checks the flavor of getnameinfo functions.
|
|
AC_CACHE_CHECK(flavor of getnameinfo, ac_cv_flavor_getnameinfo,
|
|
[ac_cv_flavor_getnameinfo=unknown
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
|
|
socklen_t hostlen, char *serv, socklen_t servlen,
|
|
unsigned int flags) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_getnameinfo=glibc2_2_2,,
|
|
ac_cv_flavor_getnameinfo=unknown)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
|
|
socklen_t hostlen, char *serv, socklen_t servlen,
|
|
int flags) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_getnameinfo=rfc2553bis_03,,
|
|
ac_cv_flavor_getnameinfo=unknown)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
|
|
size_t hostlen, char *serv, size_t servlen, int flags) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_getnameinfo=rfc2553,,
|
|
ac_cv_flavor_getnameinfo=unknown)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
|
|
size_t hostlen, char *serv, size_t servlen, int flags) {
|
|
return NULL;
|
|
}
|
|
int main() {
|
|
(void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
|
|
return 0;
|
|
}
|
|
], ac_cv_flavor_getnameinfo=rfc2133,,
|
|
ac_cv_flavor_getnameinfo=unknown)
|
|
if test "$ac_cv_func_getnameinfo" = no ; then
|
|
ac_cv_flavor_getnameinfo=none
|
|
fi])
|
|
|
|
case "$ac_cv_flavor_getnameinfo" in
|
|
glibc2_2_2)
|
|
ac_cv_type_gni_salen_t='socklen_t'
|
|
ac_cv_type_gni_hostlen_t='socklen_t'
|
|
ac_cv_type_gni_servlen_t='socklen_t'
|
|
ac_cv_type_gni_flags_t='unsigned int'
|
|
;;
|
|
rfc2553bis_03)
|
|
ac_cv_type_gni_salen_t='socklen_t'
|
|
ac_cv_type_gni_hostlen_t='socklen_t'
|
|
ac_cv_type_gni_servlen_t='socklen_t'
|
|
ac_cv_type_gni_flags_t='int'
|
|
;;
|
|
rfc2553)
|
|
ac_cv_type_gni_salen_t='socklen_t'
|
|
ac_cv_type_gni_hostlen_t='size_t'
|
|
ac_cv_type_gni_servlen_t='size_t'
|
|
ac_cv_type_gni_flags_t='int'
|
|
;;
|
|
rfc2133 | none)
|
|
ac_cv_type_gni_salen_t='size_t'
|
|
ac_cv_type_gni_hostlen_t='size_t'
|
|
ac_cv_type_gni_servlen_t='size_t'
|
|
ac_cv_type_gni_flags_t='int'
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([can't build runidn, since parameter type list of getnameinfo() is unknown to configure.])
|
|
esac
|
|
AC_DEFINE_UNQUOTED(GNI_SALEN_T, $ac_cv_type_gni_salen_t,
|
|
[Define as the type of the 2nd argument of getnameinfo.])
|
|
AC_DEFINE_UNQUOTED(GNI_HOSTLEN_T, $ac_cv_type_gni_hostlen_t,
|
|
[Define as the type of the 4th argument of getnameinfo.])
|
|
AC_DEFINE_UNQUOTED(GNI_SERVLEN_T, $ac_cv_type_gni_servlen_t,
|
|
[Define as the type of the 6th argument of getnameinfo.])
|
|
AC_DEFINE_UNQUOTED(GNI_FLAGS_T, $ac_cv_type_gni_flags_t,
|
|
[Define as the type of the 7th argument of getnameinfo.])
|
|
fi
|
|
|
|
dnl resume here.
|
|
dnl Checks the flavor of gethost*_r functions.
|
|
if test "$find_gethost_r" = yes; then
|
|
AC_CACHE_CHECK(flavor of gethostbyname_r, ac_cv_flavor_gethost_r,
|
|
[AC_TRY_RUN(
|
|
changequote(<<, >>)dnl
|
|
<<
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
#include <stdio.h>
|
|
int main()
|
|
{
|
|
int err = 0;
|
|
struct hostent hebuf, *hp;
|
|
char buf[10];
|
|
/* Try resolving a invalid name using glibc flavor. */
|
|
(void)gethostbyname_r("@#!", &hebuf, buf, sizeof(buf), &hp, &err);
|
|
if (err != 0)
|
|
return 0; /* glibc flavor */
|
|
else
|
|
return 1; /* Sun flavor */
|
|
}
|
|
>>,
|
|
changequote([, ])dnl
|
|
ac_cv_flavor_gethost_r=glibc,
|
|
ac_cv_flavor_gethost_r=sun,
|
|
ac_cv_flavor_gethost_r=sun)])
|
|
if test "$ac_cv_flavor_gethost_r" = "glibc"; then
|
|
AC_DEFINE(GETHOST_R_GLIBC_FLAVOR, 1,
|
|
[Define if the prototype of gethost*_r is glibc flavor.])
|
|
fi
|
|
fi
|
|
|
|
dnl Find system shared object paths.
|
|
AC_FIND_SYSTEM_SHOBJ(libc)
|
|
if test "$install_runidn" = yes ; then
|
|
AC_FIND_SYSTEM_SHOBJ(libnsl)
|
|
fi
|
|
|
|
dnl Checks for iconv library.
|
|
if test "$liteonly" != yes ; then
|
|
AC_MSG_CHECKING(for iconv)
|
|
saved_CPPFLAGS=$CPPFLAGS
|
|
saved_LIBS=$LIBS
|
|
CPPFLAGS="$CPPFLAGS $ICONVINC"
|
|
LIBS="$LIBS $ICONVLIB"
|
|
AC_TRY_LINK([
|
|
#include <iconv.h>
|
|
], [
|
|
iconv_t i;
|
|
i = iconv_open("ISO-8859-1", "UTF-8");
|
|
], [iconv_try_link=yes], [iconv_try_link=no])
|
|
LIBS=$saved_LIBS
|
|
CPPFLAGS=$saved_CPPFLAGS
|
|
AC_MSG_RESULT($iconv_try_link)
|
|
if test "$iconv_try_link" = no ; then
|
|
AC_MSG_ERROR(iconv function not available)
|
|
fi
|
|
fi
|
|
|
|
dnl Check for codeset name for UTF-8.
|
|
if test "$liteonly" != yes ; then
|
|
AC_MSG_CHECKING([for codeset name $UTF8_NAME])
|
|
saved_CPPFLAGS=$CPPFLAGS
|
|
saved_LIBS=$LIBS
|
|
CPPFLAGS="$CPPFLAGS $ICONVINC"
|
|
LIBS="$LIBS $ICONVLIB"
|
|
AC_TRY_RUN([
|
|
#include <stddef.h>
|
|
#include <stdlib.h>
|
|
#include <iconv.h>
|
|
#define UTF8_NAME "$UTF8_NAME"
|
|
#define ICONV_FAIL ((iconv_t)(-1))
|
|
/* Check if the codeset name UTF8_NAME is valid by performing iconv_open(). */
|
|
int main() {
|
|
int i;
|
|
/* list of codeset names likely to exist */
|
|
static char *codeset[] = {
|
|
"ASCII", "ISO-8859-1", "ISO8859-1", "iso8859_1", "8859-1",
|
|
"Shift_JIS", "SJIS", "sjis", NULL,
|
|
};
|
|
|
|
/* First try null conversion. */
|
|
if (iconv_open(UTF8_NAME, UTF8_NAME) != ICONV_FAIL) return 0;
|
|
|
|
/* Unfortunately, above check fails on certain systems, such as Solaris. */
|
|
for (i = 0; codeset[i] != NULL; i++) {
|
|
if (iconv_open(UTF8_NAME, codeset[i]) != ICONV_FAIL) return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
], utf8_name_valid=yes, utf8_name_valid=no, utf8_name_valid=unknown)
|
|
LIBS=$saved_LIBS
|
|
CPPFLAGS=$saved_CPPFLAGS
|
|
AC_MSG_RESULT($utf8_name_valid)
|
|
fi
|
|
|
|
dnl Output.
|
|
AC_CONFIG_HEADER(include/config.h)
|
|
AC_OUTPUT(
|
|
Makefile
|
|
include/Makefile
|
|
include/idn/Makefile
|
|
include/mdn/Makefile
|
|
lib/Makefile
|
|
man/Makefile
|
|
tools/Makefile
|
|
tools/idnconv/Makefile
|
|
tools/runidn/Makefile
|
|
tools/runidn/runidn
|
|
map/Makefile
|
|
lib/tests/Makefile
|
|
)
|