diff --git a/INSTALL b/INSTALL index 38784fe6..a0b107ef 100644 --- a/INSTALL +++ b/INSTALL @@ -9,13 +9,23 @@ Default location for configuration file is /usr/local/etc/bird.conf and for control socket is /usr/local/var/run/bird.ctl . You can change that by --sysconfdir and --localstatedir configure options. +To compile current development BIRD source code from Git repository, you +also need Git (to download the source code) and Autoconf (to generate +the configure script and associated files using 'autoreconf' tool): + +$ git clone git://git.nic.cz/bird.git +$ cd bird +$ autoreconf + +Then continue as in usual installation above. + Requirements ============ For compiling BIRD you need these programs and libraries: - - GNU C Compiler + - GNU C Compiler (or LLVM Clang) - GNU Make - GNU Bison - GNU M4 diff --git a/configure.ac b/configure.ac index 52bca085..de612ec2 100644 --- a/configure.ac +++ b/configure.ac @@ -218,28 +218,11 @@ case $sysdesc in esac AC_CHECK_HEADERS_ONCE([alloca.h syslog.h]) +AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [], [#include ]) + AC_CHECK_HEADER([linux/lwtunnel.h], [AC_DEFINE([HAVE_LWTUNNEL], [1], [Define to 1 if you have the header file.])]) AC_CHECK_MEMBERS([struct rtvia.rtvia_family], [AC_DEFINE([HAVE_STRUCT_RTVIA], [1], [Define to 1 if you have rtvia structure.])],,[#include ]) -AC_MSG_CHECKING(whether 'struct sockaddr' has sa_len) -AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM( - [[ - #include - #include - ]], - [[ - static struct sockaddr sa; - int i = sizeof(sa.sa_len); - ]] - )], - [ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SIN_LEN,,sin_len) - ], - [AC_MSG_RESULT(no)] -) - AC_C_BIGENDIAN( [AC_DEFINE([CPU_BIG_ENDIAN], [1], [Define to 1 if cpu is big endian])], [AC_DEFINE([CPU_LITTLE_ENDIAN], [1], [Define to 1 if cpu is little endian])], diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 6722fc69..d1246ea5 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -516,7 +516,7 @@ static inline void sockaddr_fill4(struct sockaddr_in *sa, ip_addr a, uint port) { memset(sa, 0, sizeof(struct sockaddr_in)); -#ifdef HAVE_SIN_LEN +#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN sa->sin_len = sizeof(struct sockaddr_in); #endif sa->sin_family = AF_INET;