1999-01-09 15:02:11 +00:00
|
|
|
dnl ** Additional Autoconf tests for BIRD configure script
|
|
|
|
dnl ** (c) 1999 Martin Mares <mj@ucw.cz>
|
|
|
|
|
2017-03-14 12:46:51 +00:00
|
|
|
AC_DEFUN([BIRD_CHECK_PTHREADS],
|
2013-11-19 21:33:48 +00:00
|
|
|
[
|
|
|
|
bird_tmp_cflags="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS -pthread"
|
2017-05-09 16:58:22 +00:00
|
|
|
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[whether POSIX threads are available],
|
|
|
|
[bird_cv_lib_pthreads],
|
|
|
|
[
|
|
|
|
AC_LINK_IFELSE(
|
|
|
|
[
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[ #include <pthread.h> ],
|
|
|
|
[
|
|
|
|
pthread_t pt;
|
|
|
|
pthread_create(&pt, NULL, NULL, NULL);
|
|
|
|
]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_pthreads=yes],
|
|
|
|
[bird_cv_lib_pthreads=no]
|
|
|
|
)
|
|
|
|
]
|
|
|
|
)
|
2013-11-19 21:33:48 +00:00
|
|
|
|
|
|
|
CFLAGS="$bird_tmp_cflags"
|
|
|
|
])
|
|
|
|
|
2018-09-10 13:11:55 +00:00
|
|
|
dnl ** Android API before version 24 doesn't implement spinlocks.
|
|
|
|
AC_DEFUN([BIRD_CHECK_PTHREAD_SPINLOCK],
|
|
|
|
[
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[whether POSIX threads provide spinlocks],
|
|
|
|
[bird_cv_lib_pthread_spinlock],
|
|
|
|
[
|
|
|
|
AC_LINK_IFELSE(
|
|
|
|
[
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[ #include <pthread.h> ],
|
|
|
|
[
|
|
|
|
pthread_spinlock_t lock;
|
|
|
|
pthread_spin_lock(&lock);
|
|
|
|
]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_pthread_spinlock=yes],
|
|
|
|
[bird_cv_lib_pthread_spinlock=no]
|
|
|
|
)
|
|
|
|
]
|
|
|
|
)
|
|
|
|
])
|
|
|
|
|
2017-09-25 11:00:05 +00:00
|
|
|
AC_DEFUN([BIRD_CHECK_MPLS_KERNEL],
|
|
|
|
[
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[for Linux MPLS headers],
|
|
|
|
[bird_cv_mpls_kernel],
|
|
|
|
[
|
|
|
|
AC_COMPILE_IFELSE(
|
|
|
|
[
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[
|
|
|
|
#include <linux/lwtunnel.h>
|
|
|
|
#include <linux/netlink.h>
|
|
|
|
#include <linux/rtnetlink.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
void t(int arg);
|
|
|
|
],
|
|
|
|
[
|
|
|
|
t(AF_MPLS);
|
|
|
|
t(RTA_VIA);
|
|
|
|
t(RTA_NEWDST);
|
|
|
|
t(RTA_ENCAP_TYPE);
|
|
|
|
t(RTA_ENCAP);
|
|
|
|
struct rtvia rtvia;
|
|
|
|
t(LWTUNNEL_ENCAP_MPLS);
|
|
|
|
]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_mpls_kernel=yes],
|
|
|
|
[bird_cv_mpls_kernel=no]
|
|
|
|
)
|
|
|
|
]
|
|
|
|
)
|
|
|
|
])
|
|
|
|
|
2018-04-23 13:54:20 +00:00
|
|
|
AC_DEFUN([BIRD_CHECK_ANDROID_GLOB],
|
|
|
|
[
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[for glob.h],
|
|
|
|
[bird_cv_lib_glob],
|
|
|
|
AC_LINK_IFELSE([
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[
|
|
|
|
#include <glob.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
],
|
|
|
|
[ glob(NULL, 0, NULL, NULL); ]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_glob=yes],
|
|
|
|
[
|
|
|
|
bird_tmp_libs="$LIBS"
|
|
|
|
LIBS="$LIBS -landroid-glob"
|
|
|
|
AC_LINK_IFELSE([
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[
|
|
|
|
#include <glob.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
],
|
|
|
|
[ glob(NULL, 0, NULL, NULL); ]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_glob=-landroid-glob],
|
|
|
|
[bird_cv_lib_glob=no]
|
|
|
|
)
|
|
|
|
LIBS="$bird_tmp_libs"
|
|
|
|
]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([BIRD_CHECK_ANDROID_LOG],
|
|
|
|
[
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[for syslog lib flags],
|
|
|
|
[bird_cv_lib_log],
|
|
|
|
AC_LINK_IFELSE([
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[ #include <sys/syslog.h> ],
|
|
|
|
[ syslog(0, ""); ]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_log=yes],
|
|
|
|
[
|
|
|
|
bird_tmp_libs="$LIBS"
|
|
|
|
LIBS="$LIBS -llog"
|
|
|
|
AC_LINK_IFELSE([
|
|
|
|
AC_LANG_PROGRAM(
|
|
|
|
[ #include <sys/syslog.h> ],
|
|
|
|
[ syslog(0, ""); ]
|
|
|
|
)
|
|
|
|
],
|
|
|
|
[bird_cv_lib_log=-llog],
|
|
|
|
[bird_cv_lib_log=no]
|
|
|
|
)
|
|
|
|
LIBS="$bird_tmp_libs"
|
|
|
|
]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
])
|
2017-09-25 11:00:05 +00:00
|
|
|
|
2017-03-14 12:46:51 +00:00
|
|
|
AC_DEFUN([BIRD_CHECK_GCC_OPTION],
|
2013-04-17 13:09:50 +00:00
|
|
|
[
|
|
|
|
bird_tmp_cflags="$CFLAGS"
|
|
|
|
CFLAGS="$3 $2"
|
2017-05-09 16:58:22 +00:00
|
|
|
|
|
|
|
AC_CACHE_CHECK(
|
|
|
|
[whether CC supports $2],
|
|
|
|
[$1],
|
|
|
|
[
|
|
|
|
AC_COMPILE_IFELSE(
|
|
|
|
[AC_LANG_PROGRAM()],
|
|
|
|
[$1=yes],
|
|
|
|
[$1=no]
|
|
|
|
)
|
|
|
|
]
|
|
|
|
)
|
2013-04-17 13:09:50 +00:00
|
|
|
|
|
|
|
CFLAGS="$bird_tmp_cflags"
|
|
|
|
])
|
|
|
|
|
2017-03-14 12:46:51 +00:00
|
|
|
AC_DEFUN([BIRD_ADD_GCC_OPTION],
|
2013-04-17 13:09:50 +00:00
|
|
|
[
|
|
|
|
if test "$$1" = yes ; then
|
|
|
|
CFLAGS="$CFLAGS $2"
|
|
|
|
fi
|
|
|
|
])
|
2010-03-24 15:39:18 +00:00
|
|
|
|
2009-05-21 22:26:30 +00:00
|
|
|
# BIRD_CHECK_PROG_FLAVOR_GNU(PROGRAM-PATH, IF-SUCCESS, [IF-FAILURE])
|
2017-05-09 16:58:22 +00:00
|
|
|
# copied from autoconf internal _AC_PATH_PROG_FLAVOR_GNU
|
2017-05-09 11:44:02 +00:00
|
|
|
AC_DEFUN([BIRD_CHECK_PROG_FLAVOR_GNU],
|
2017-05-09 16:58:22 +00:00
|
|
|
[
|
|
|
|
# Check for GNU $1
|
|
|
|
case `"$1" --version 2>&1` in
|
|
|
|
*GNU*)
|
|
|
|
$2
|
|
|
|
;;
|
|
|
|
m4_ifval([$3],
|
|
|
|
[*)
|
|
|
|
$3
|
|
|
|
;;
|
|
|
|
]
|
|
|
|
)
|
|
|
|
esac
|
2017-05-09 11:44:02 +00:00
|
|
|
])
|
2018-07-17 13:30:59 +00:00
|
|
|
|
|
|
|
AC_DEFUN([BIRD_CHECK_BISON_VERSION],
|
|
|
|
[
|
|
|
|
$1=`bison --version | ( read line; echo ${line##* } )`
|
|
|
|
case "$$1" in
|
|
|
|
1.* | 2.0* | 2.1* | 2.2* | 2.3*)
|
|
|
|
AC_MSG_ERROR([Provided Bison version $$1 is too old, need at least 2.4])
|
|
|
|
;;
|
|
|
|
2.*)
|
|
|
|
bird_bison_synclines=no
|
2018-08-14 12:36:44 +00:00
|
|
|
bird_bison_enhanced_error=no
|
2018-07-17 13:30:59 +00:00
|
|
|
;;
|
|
|
|
3.* | 4.* | 5.* | 6.* | 7.* | 8.* | 9.*)
|
|
|
|
bird_bison_synclines=yes
|
2018-08-14 12:36:44 +00:00
|
|
|
bird_bison_enhanced_error=yes
|
2018-07-17 13:30:59 +00:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([Couldn't parse Bison version $$1. Call the developers for help.])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
])
|