operations on 2.1/2.2 kernels. This allows passing of real interface indexes instead of referencing interfaces by their IP addresses which fails badly in presence of unnumbered interfaces. Unfortunately, this structure is not visible with glibc 2.0 as it provides its own networking headers :-( Both libc5 and glibc 2.1 should be OK.
139 lines
3.9 KiB
Plaintext
139 lines
3.9 KiB
Plaintext
dnl ** This is a configure script template for BIRD
|
|
dnl ** Process it with autoconf to get ./configure
|
|
dnl ** (c) 1999 Martin Mares <mj@ucw.cz>
|
|
|
|
AC_REVISION($Id$)
|
|
AC_INIT(conf/confbase.Y)
|
|
AC_CONFIG_AUX_DIR(tools)
|
|
|
|
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=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: rip,static)],,[with_protocols="rip,static"])
|
|
|
|
if test "$srcdir" = . ; then
|
|
# Building in current directory => create obj directory holding all objects
|
|
objdir=obj
|
|
mkdir -p obj
|
|
srcdir_rel=..
|
|
makefiles="Makefile:tools/Makefile-top.in obj/Makefile:tools/Makefile.in obj/Rules:tools/Rules.in"
|
|
exedir=..
|
|
else
|
|
# Building in separate directory
|
|
objdir=.
|
|
srcdir_rel=$srcdir
|
|
makefiles="Makefile:tools/Makefile.in Rules:tools/Rules.in"
|
|
exedir=.
|
|
fi
|
|
case $srcdir_rel in
|
|
/*) srcdir_rel_mf=$srcdir_rel ;;
|
|
*) srcdir_rel_mf="\$(root-rel)$srcdir_rel" ;;
|
|
esac
|
|
AC_SUBST(objdir)
|
|
AC_SUBST(exedir)
|
|
AC_SUBST(srcdir_rel_mf)
|
|
|
|
AC_CANONICAL_HOST
|
|
AC_MSG_CHECKING([which OS configuration should we use])
|
|
if test -n "$with_sysconfig" -a "$with_sysconfig" != no ; then
|
|
if test -f $with_sysconfig ; then
|
|
sysdesc=$with_sysconfig
|
|
else
|
|
sysdesc=$srcdir/sysdep/cf/$with_sysconfig
|
|
if ! test -f $sysdesc ; then
|
|
sysdesc=$sysdesc.h
|
|
fi
|
|
fi
|
|
elif test -f sysconfig.h ; then
|
|
sysdesc=sysconfig
|
|
else
|
|
case "$host_os" in
|
|
linux*) case `uname -r` in
|
|
1.*|2.0.*) sysdesc=linux-20 ;;
|
|
*) sysdesc=linux-21 ;;
|
|
esac
|
|
;;
|
|
*) AC_MSG_RESULT(unknown)
|
|
AC_MSG_ERROR([Cannot determine correct system configuration.])
|
|
;;
|
|
esac
|
|
sysdesc=$srcdir/sysdep/cf/$sysdesc.h
|
|
fi
|
|
AC_MSG_RESULT($sysdesc)
|
|
if ! test -f $sysdesc ; then
|
|
AC_MSG_ERROR([The system configuration file is missing.])
|
|
fi
|
|
sysname=`echo $sysdesc | sed 's/\.h$//'`
|
|
AC_DEFINE_UNQUOTED(SYSCONF_INCLUDE, "$sysdesc")
|
|
|
|
AC_MSG_CHECKING([system-dependent directories])
|
|
sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '` lib"
|
|
AC_MSG_RESULT($sysdep_dirs)
|
|
AC_SUBST(sysdep_dirs)
|
|
|
|
AC_MSG_CHECKING([protocols])
|
|
protocols=`echo "$with_protocols" | sed 's/,/ /g'`
|
|
if test "$protocols" = no ; then protocols= ; fi
|
|
for a in $protocols ; do
|
|
if ! test -f $srcdir/proto/$a/Makefile ; then
|
|
AC_MSG_RESULT(failed)
|
|
AC_MSG_ERROR([Requested protocol $a not found.])
|
|
fi
|
|
AC_DEFINE_UNQUOTED(CONFIG_`echo $a | tr 'a-z' 'A-Z'`)
|
|
done
|
|
AC_MSG_RESULT(ok)
|
|
AC_SUBST(protocols)
|
|
|
|
AC_PROG_CC
|
|
if test -z "$GCC" ; then
|
|
AC_MSG_ERROR([This program requires the GNU C Compiler.])
|
|
fi
|
|
AC_MSG_CHECKING([what CFLAGS should we use])
|
|
if test "$ac_test_CFLAGS" != set ; then
|
|
CFLAGS="$CFLAGS -Wall -W -Wstrict-prototypes -Wno-unused -Wno-parentheses"
|
|
fi
|
|
AC_MSG_RESULT($CFLAGS)
|
|
|
|
AC_PROG_CPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_RANLIB
|
|
AC_CHECK_PROG(FLEX, flex, flex)
|
|
AC_CHECK_PROG(BISON, bison, bison)
|
|
AC_CHECK_PROGS(M4, gm4 m4, m4)
|
|
if test -z "$FLEX" -o -z "$BISON" -o -z "$M4" ; then
|
|
AC_MSG_ERROR([Some tools required for building BIRD are missing.])
|
|
fi
|
|
|
|
AC_CHECK_HEADER(syslog.h, [AC_DEFINE(HAVE_SYSLOG)])
|
|
|
|
BIRD_CHECK_INTEGERS
|
|
BIRD_CHECK_ENDIAN
|
|
BIRD_CHECK_STRUCT_ALIGN
|
|
BIRD_CHECK_TIME_T
|
|
BIRD_CHECK_STRUCT_MREQN
|
|
|
|
if test "$enable_debug" = yes ; then
|
|
AC_DEFINE(PATH_CONFIG_DIR, ".")
|
|
AC_DEFINE(DEBUGGING)
|
|
AC_CHECK_LIB(dmalloc, dmalloc_debug)
|
|
if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then
|
|
AC_CHECK_LIB(efence, malloc)
|
|
fi
|
|
else
|
|
AC_DEFINE_UNQUOTED(PATH_CONFIG_DIR, "$sysconfdir")
|
|
fi
|
|
|
|
AC_CONFIG_HEADER(sysdep/autoconf.h)
|
|
AC_OUTPUT_COMMANDS(,[CPP="$CPP" $srcdir/tools/mergedirs $srcdir $srcdir_rel $objdir $sysdep_dirs])
|
|
AC_OUTPUT($makefiles)
|
|
|
|
cat >&AC_FD_MSG <<EOF
|
|
|
|
BIRD was configured with the following options:
|
|
Source directory: $srcdir
|
|
Object directory: $objdir
|
|
System configuration: $sysdesc
|
|
Debugging: $enable_debug
|
|
Routing protocols: $protocols
|
|
EOF
|
|
rm -f $objdir/.*-stamp
|