Commit a244e0d1 authored by Francis Dupont's avatar Francis Dupont

[master] made configure more suitable for cross-compiling (#3723)

parent 1d290647
......@@ -26,6 +26,8 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])dnl be backward compatible
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4macros])
AC_CANONICAL_HOST
# Checks for programs.
AC_PROG_CXX
......@@ -253,19 +255,18 @@ case "$host" in
# In OS X 10.9 (and possibly any future versions?) pthread_cond_destroy
# doesn't work as documented, which makes some of unit tests fail.
AC_TRY_RUN([
#include <Availability.h>
int main(void)
{
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1090
return 1;
#else
return 0;
#endif
#endif
return 1;
}],[kea_undefined_pthread_behavior=yes],[],[])
AC_MSG_CHECKING([OS X versions where destroying locked locks do not fail])
AC_TRY_COMPILE(
[#include <Availability.h>],
[#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
#error " OS X >= 10.9"
#endif
#endif
return 1;],
[AC_MSG_RESULT([OS X < 10.9])],
[AC_MSG_RESULT([OS X >= 10.9])
kea_undefined_pthread_behavior=yes])
# libtool doesn't work perfectly with Darwin: libtool embeds the
# final install path in dynamic libraries and our loadable python
......@@ -364,44 +365,61 @@ AC_TYPE_SIZE_T
# Detect OS type (it may be used to do OS-specific things, e.g.
# interface detection in DHCP)
AC_MSG_CHECKING(OS family)
system=`uname -s`
case $system in
Linux)
AC_MSG_CHECKING(OS type)
case $host in
*-linux*)
AC_DEFINE([OS_LINUX], [1], [Running on Linux?])
OS_TYPE="Linux"
CPPFLAGS="$CPPFLAGS -DOS_LINUX"
;;
Darwin | FreeBSD | NetBSD | OpenBSD)
*-apple-darwin*)
AC_DEFINE([OS_BSD], [1], [Running on BSD?])
AC_DEFINE([OS_OSX], [1], [Running on OSX?])
OS_TYPE="BSD"
BSD_TYPE="OSX"
CPPFLAGS="$CPPFLAGS -DOS_BSD"
;;
*-freebsd*)
AC_DEFINE([OS_BSD], [1], [Running on BSD?])
AC_DEFINE([OS_FREEBSD], [1], [Running on FreeBSD?])
OS_TYPE="BSD"
BSD_TYPE="FreeBSD"
CPPFLAGS="$CPPFLAGS -DOS_BSD"
;;
*-netbsd*)
AC_DEFINE([OS_BSD], [1], [Running on BSD?])
AC_DEFINE([OS_NETBSD], [1], [Running on NetBSD?])
OS_TYPE="BSD"
BSD_TYPE="NetBSD"
CPPFLAGS="$CPPFLAGS -DOS_BSD"
;;
*-openbsd*)
AC_DEFINE([OS_BSD], [1], [Running on BSD?])
AC_DEFINE([OS_OPENBSD], [1], [Running on OpenBSD?])
OS_TYPE="BSD"
BSD_TYPE="OpenBSD"
CPPFLAGS="$CPPFLAGS -DOS_BSD"
;;
SunOS)
*-solaris*)
AC_DEFINE([OS_SOLARIS], [1], [Running on Solaris?])
OS_TYPE="Solaris"
CPPFLAGS="$CPPFLAGS -DOS_SUN"
;;
*)
OS_TYPE="Unknown"
AC_MSG_WARN("Unsupported OS: uname returned $system")
# $host_os is more user friendly than full $host
AC_MSG_WARN("Unsupported OS: $host_os")
;;
esac
AC_MSG_RESULT($OS_TYPE)
AM_CONDITIONAL(OS_LINUX, test $OS_TYPE = Linux)
AM_COND_IF([OS_LINUX], [AC_DEFINE([OS_LINUX], [1], [Running on Linux?])])
AM_CONDITIONAL(OS_BSD, test $OS_TYPE = BSD)
AM_COND_IF([OS_BSD], [AC_DEFINE([OS_BSD], [1], [Running on BSD?])])
AM_CONDITIONAL(OS_SOLARIS, test $OS_TYPE = Solaris)
AM_COND_IF([OS_SOLARIS], [AC_DEFINE([OS_SOLARIS], [1], [Running on Solaris?])])
# Deal with variants
AM_CONDITIONAL(OS_FREEBSD, test $system = FreeBSD)
AM_COND_IF([OS_FREEBSD], [AC_DEFINE([OS_FREEBSD], [1], [Running on FreeBSD?])])
AM_CONDITIONAL(OS_NETBSD, test $system = NetBSD)
AM_COND_IF([OS_NETBSD], [AC_DEFINE([OS_NETBSD], [1], [Running on NetBSD?])])
AM_CONDITIONAL(OS_OPENBSD, test $system = OpenBSD)
AM_COND_IF([OS_OPENBSD], [AC_DEFINE([OS_OPENBSD], [1], [Running on OpenBSD?])])
AM_CONDITIONAL(OS_OSX, test $system = Darwin)
AM_COND_IF([OS_OSX], [AC_DEFINE([OS_OSX], [1], [Running on OSX?])])
AM_CONDITIONAL(OS_OSX, test $BSD_TYPE = OSX)
AM_CONDITIONAL(OS_FREEBSD, test $BSD_TYPE = FreeBSD)
AM_CONDITIONAL(OS_NETBSD, test $BSD_TYPE = NetBSD)
AM_CONDITIONAL(OS_OPENBSD, test $BSD_TYPE = OpenBSD)
AC_MSG_CHECKING(for sa_len in struct sockaddr)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment