]> git.ipfire.org Git - thirdparty/bird.git/blobdiff - configure.in
BFD protocol, ready for release.
[thirdparty/bird.git] / configure.in
index fc18657d6d9f6aa515d5980269e600566f460e6a..9b5dc3e2b499d290001c2b7e3a1f9ed39c328c64 100644 (file)
@@ -10,6 +10,7 @@ AC_ARG_ENABLE(debug,  [  --enable-debug          enable internal debugging routin
 AC_ARG_ENABLE(memcheck,        [  --enable-memcheck       check memory allocations when debugging (default: enabled)],,enable_memcheck=yes)
 AC_ARG_ENABLE(client,  [  --enable-client         enable building of BIRD client (default: enabled)],,enable_client=yes)
 AC_ARG_ENABLE(ipv6,    [  --enable-ipv6           enable building of IPv6 version (default: disabled)],,enable_ipv6=no)
+AC_ARG_ENABLE(pthreads,        [  --enable-pthreads       enable POSIX threads support (default: detect)],,enable_pthreads=try)
 AC_ARG_WITH(suffix,    [  --with-suffix=STRING    use specified suffix for BIRD files (default: 6 for IPv6 version)],[given_suffix="yes"])
 AC_ARG_WITH(sysconfig, [  --with-sysconfig=FILE   use specified BIRD system configuration file])
 AC_ARG_WITH(protocols, [  --with-protocols=LIST   include specified routing protocols (default: all)],,[with_protocols="all"])
@@ -47,11 +48,10 @@ AC_SUBST(runtimedir)
 if test "$enable_ipv6" = yes ; then
        ip=ipv6
        SUFFIX=6
-       all_protocols=bfd,bgp,ospf,pipe,radv,rip,static
+       proto_radv=radv
 else
        ip=ipv4
        SUFFIX=""
-       all_protocols=bfd,bgp,ospf,pipe,rip,static
 fi
 
 if test "$given_suffix" = yes ; then
@@ -59,10 +59,6 @@ if test "$given_suffix" = yes ; then
 fi
 AC_SUBST(SUFFIX)
 
-if test "$with_protocols" = all ; then
-       with_protocols="$all_protocols"
-fi
-
 if test "$enable_debug" = yes ; then
        CONFIG_FILE="bird$SUFFIX.conf"
        CONTROL_SOCKET="bird$SUFFIX.ctl"
@@ -87,12 +83,29 @@ if test -z "$GCC" ; then
        AC_MSG_ERROR([This program requires the GNU C Compiler.])
 fi
 
+if test "$enable_pthreads" != no ; then
+       BIRD_CHECK_PTHREADS
+
+       if test "$bird_cv_lib_pthreads" = yes ; then
+               AC_DEFINE(USE_PTHREADS)
+               CFLAGS="$CFLAGS -pthread"
+               LDFLAGS="$LDFLAGS -pthread"
+               proto_bfd=bfd
+       elif test "$enable_pthreads" = yes ; then
+               AC_MSG_ERROR([POSIX threads not available.])
+       fi
+
+       if test "$enable_pthreads" = try ; then
+               enable_pthreads="$bird_cv_lib_pthreads"
+       fi
+fi
+
 if test "$bird_cflags_default" = yes ; then
        BIRD_CHECK_GCC_OPTION(bird_cv_c_option_wno_pointer_sign, -Wno-pointer-sign, -Wall)
        BIRD_CHECK_GCC_OPTION(bird_cv_c_option_fno_strict_aliasing, -fno-strict-aliasing)
        BIRD_CHECK_GCC_OPTION(bird_cv_c_option_fno_strict_overflow, -fno-strict-overflow)
 
-       CFLAGS="$CFLAGS -pthread -Wall -Wstrict-prototypes -Wno-parentheses"
+       CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -Wno-parentheses"
        BIRD_ADD_GCC_OPTION(bird_cv_c_option_wno_pointer_sign, -Wno-pointer-sign)
        BIRD_ADD_GCC_OPTION(bird_cv_c_option_fno_strict_aliasing, -fno-strict-aliasing)
        BIRD_ADD_GCC_OPTION(bird_cv_c_option_fno_strict_overflow, -fno-strict-overflow)
@@ -183,6 +196,13 @@ fi
 
 AC_SUBST(iproutedir)
 
+all_protocols="$proto_bfd bgp ospf pipe $proto_radv rip static"
+all_protocols=`echo $all_protocols | sed 's/ /,/g'`
+
+if test "$with_protocols" = all ; then
+       with_protocols="$all_protocols"
+fi
+
 AC_MSG_CHECKING([protocols])
 protocols=`echo "$with_protocols" | sed 's/,/ /g'`
 if test "$protocols" = no ; then protocols= ; fi
@@ -272,6 +292,7 @@ BIRD was configured with the following options:
        Iproute2 directory:     $iproutedir
        System configuration:   $sysdesc
        Debugging:              $enable_debug
+       POSIX threads:          $enable_pthreads
        Routing protocols:      $protocols
        Client:                 $enable_client
 EOF