Annotation of embedaddon/bird2/configure.ac, revision 1.1

1.1     ! misho       1: dnl ** This is a configure script template for BIRD
        !             2: dnl ** Process it with autoconf to get ./configure
        !             3: dnl ** (c) 1999--2000 Martin Mares <mj@ucw.cz>
        !             4: 
        !             5: AC_INIT
        !             6: AC_CONFIG_SRCDIR([conf/confbase.Y])
        !             7: AC_CONFIG_AUX_DIR([tools])
        !             8: 
        !             9: AC_ARG_ENABLE([client],
        !            10:   [AS_HELP_STRING([--enable-client], [enable building of BIRD client @<:@yes@:>@])],
        !            11:   [],
        !            12:   [enable_client=yes]
        !            13: )
        !            14: 
        !            15: AC_ARG_ENABLE([debug],
        !            16:   [AS_HELP_STRING([--enable-debug], [enable internal debugging routines @<:@no@:>@])],
        !            17:   [],
        !            18:   [enable_debug=no]
        !            19: )
        !            20: 
        !            21: AC_ARG_ENABLE([debug-generated],
        !            22:   [AS_HELP_STRING([--enable-debug-generated], [enable this to abstain from generating #line @<:@no@:>@])],
        !            23:   [],
        !            24:   [enable_debug_generated=no]
        !            25: )
        !            26: 
        !            27: AC_ARG_ENABLE([memcheck],
        !            28:   [AS_HELP_STRING([--enable-memcheck], [check memory allocations when debugging @<:@yes@:>@])],
        !            29:   [],
        !            30:   [enable_memcheck=yes]
        !            31: )
        !            32: 
        !            33: AC_ARG_ENABLE([pthreads],
        !            34:   [AS_HELP_STRING([--enable-pthreads], [enable POSIX threads support @<:@try@:>@])],
        !            35:   [],
        !            36:   [enable_pthreads=try]
        !            37: )
        !            38: 
        !            39: AC_ARG_ENABLE([libssh],
        !            40:   [AS_HELP_STRING([--enable-libssh], [enable LibSSH support together with RPKI @<:@try@:>@])],
        !            41:   [],
        !            42:   [enable_libssh=try]
        !            43: )
        !            44: 
        !            45: AC_ARG_ENABLE([mpls-kernel],
        !            46:   [AS_HELP_STRING([--enable-mpls-kernel], [enable MPLS support in kernel protocol @<:@try@:>@])],
        !            47:   [],
        !            48:   [enable_mpls_kernel=try]
        !            49: )
        !            50: 
        !            51: AC_ARG_WITH([protocols],
        !            52:   [AS_HELP_STRING([--with-protocols=LIST], [include specified routing protocols @<:@all@:>@])],
        !            53:   [],
        !            54:   [with_protocols="all"]
        !            55: )
        !            56: 
        !            57: AC_ARG_WITH([sysconfig],
        !            58:   [AS_HELP_STRING([--with-sysconfig=FILE], [use specified BIRD system configuration file])]
        !            59: )
        !            60: 
        !            61: AC_ARG_WITH([runtimedir],
        !            62:   [AS_HELP_STRING([--with-runtimedir=PATH], [run-state data, obsolete variant of --runstatedir])],
        !            63:   [runstatedir="$with_runtimedir"]
        !            64: )
        !            65: 
        !            66: AC_ARG_WITH([iproutedir],
        !            67:   [AS_HELP_STRING([--with-iproutedir=PATH], [path to iproute2 config files @<:@/etc/iproute2@:>@])],
        !            68:   [given_iproutedir="yes"]
        !            69: )
        !            70: 
        !            71: AC_ARG_VAR([FLEX], [location of the Flex program])
        !            72: AC_ARG_VAR([BISON], [location of the Bison program])
        !            73: AC_ARG_VAR([M4], [location of the M4 program])
        !            74: 
        !            75: 
        !            76: if test "$srcdir" = . ; then
        !            77:   # Building in current directory => create obj directory holding all objects
        !            78:   objdir=obj
        !            79: else
        !            80:   # Building in separate directory
        !            81:   objdir=.
        !            82: fi
        !            83: 
        !            84: exedir=.
        !            85: 
        !            86: AC_SUBST([objdir])
        !            87: AC_SUBST([exedir])
        !            88: AC_SUBST([srcdir])
        !            89: 
        !            90: # Workaround for older Autoconfs that do not define runstatedir
        !            91: AS_IF([test -z "${runstatedir}"], [runstatedir='${localstatedir}/run'])
        !            92: AC_SUBST([runstatedir])
        !            93: 
        !            94: CONFIG_FILE="\$(sysconfdir)/bird.conf"
        !            95: AC_SUBST([CONFIG_FILE])
        !            96: 
        !            97: CONTROL_SOCKET="\$(runstatedir)/bird.ctl"
        !            98: AC_SUBST([CONTROL_SOCKET])
        !            99: 
        !           100: AC_SEARCH_LIBS([clock_gettime], [rt posix4],
        !           101:   [],
        !           102:   [AC_MSG_ERROR([Function clock_gettime not available.])]
        !           103: )
        !           104: 
        !           105: AC_CANONICAL_HOST
        !           106: 
        !           107: # Store this value because ac_test_CFLAGS is overwritten by AC_PROG_CC
        !           108: if test "$ac_test_CFLAGS" != set ; then
        !           109:   bird_cflags_default=yes
        !           110: fi
        !           111: 
        !           112: AC_PROG_CC
        !           113: AC_PROG_CC_C99
        !           114: if test -z "$GCC" ; then
        !           115:   AC_MSG_ERROR([This program requires the GNU C Compiler.])
        !           116: fi
        !           117: 
        !           118: BIRD_CHECK_THREAD_LOCAL
        !           119: if test "$bird_cv_thread_local" = yes ; then
        !           120:   AC_DEFINE([HAVE_THREAD_LOCAL], [1], [Define to 1 if _Thread_local is available])
        !           121: fi
        !           122: 
        !           123: if test "$enable_pthreads" != no ; then
        !           124:   BIRD_CHECK_PTHREADS
        !           125: 
        !           126:   if test "$bird_cv_lib_pthreads" = yes ; then
        !           127:     AC_DEFINE([USE_PTHREADS], [1], [Define to 1 if pthreads are enabled])
        !           128:     CFLAGS="$CFLAGS -pthread"
        !           129:     LDFLAGS="$LDFLAGS -pthread"
        !           130:     proto_bfd=bfd
        !           131:   elif test "$enable_pthreads" = yes ; then
        !           132:     AC_MSG_ERROR([POSIX threads not available.])
        !           133:   fi
        !           134: 
        !           135:   if test "$enable_pthreads" = try ; then
        !           136:     enable_pthreads="$bird_cv_lib_pthreads"
        !           137:   fi
        !           138: fi
        !           139: 
        !           140: # This is assumed to be necessary for proper BIRD build
        !           141: CFLAGS="$CFLAGS -fno-strict-aliasing -fno-strict-overflow"
        !           142: 
        !           143: if test "$bird_cflags_default" = yes ; then
        !           144:   BIRD_CHECK_GCC_OPTION([bird_cv_c_option_wno_pointer_sign], [-Wno-pointer-sign], [-Wall])
        !           145:   BIRD_CHECK_GCC_OPTION([bird_cv_c_option_wno_missing_init], [-Wno-missing-field-initializers], [-Wall -Wextra])
        !           146: 
        !           147:   if test "$enable_debug" = no; then
        !           148:     BIRD_CHECK_LTO
        !           149:   fi
        !           150: 
        !           151:   if test "$bird_cv_c_lto" = yes; then
        !           152:     CFLAGS="$CFLAGS -flto"
        !           153:     LDFLAGS="$LDFLAGS -flto=4 -g"
        !           154:   else
        !           155:     LDFLAGS="$LDFLAGS -g"
        !           156:   fi
        !           157: 
        !           158:   CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -Wno-parentheses"
        !           159:   BIRD_ADD_GCC_OPTION([bird_cv_c_option_wno_pointer_sign], [-Wno-pointer-sign])
        !           160:   BIRD_ADD_GCC_OPTION([bird_cv_c_option_wno_missing_init], [-Wno-missing-field-initializers])
        !           161: fi
        !           162: 
        !           163: 
        !           164: AC_MSG_CHECKING([CFLAGS])
        !           165: AC_MSG_RESULT([$CFLAGS])
        !           166: 
        !           167: AC_MSG_CHECKING([LDFLAGS])
        !           168: AC_MSG_RESULT([$LDFLAGS])
        !           169: 
        !           170: AC_PROG_CPP
        !           171: AC_PROG_INSTALL
        !           172: AC_PROG_RANLIB
        !           173: AC_CHECK_PROG([FLEX], [flex], [flex])
        !           174: AC_CHECK_PROG([BISON], [bison], [bison])
        !           175: AC_CHECK_PROGS([M4], [gm4 m4])
        !           176: 
        !           177: test -z "$FLEX"         && AC_MSG_ERROR([Flex is missing.])
        !           178: test -z "$BISON" && AC_MSG_ERROR([Bison is missing.])
        !           179: test -z "$M4"   && AC_MSG_ERROR([M4 is missing.])
        !           180: 
        !           181: AC_MSG_CHECKING([bison version])
        !           182: BIRD_CHECK_BISON_VERSION(BISON_VERSION)
        !           183: AC_MSG_RESULT([$BISON_VERSION])
        !           184: if test "$bird_bison_synclines" = yes && test "$enable_debug_generated" = no; then
        !           185:   M4FLAGS="$M4FLAGS -s"
        !           186: fi
        !           187: 
        !           188: if test "$bird_bison_enhanced_error" = yes; then
        !           189:   BISONFLAGS="$BISONFLAGS -Dparse.lac=full -Dparse.error=verbose"
        !           190: fi
        !           191: 
        !           192: AC_SUBST([M4FLAGS])
        !           193: AC_SUBST([BISONFLAGS])
        !           194: 
        !           195: BIRD_CHECK_PROG_FLAVOR_GNU([$M4],
        !           196:   [],
        !           197:   [AC_MSG_ERROR([Provided M4 is not GNU M4.])]
        !           198: )
        !           199: 
        !           200: if test -n "$with_sysconfig" -a "$with_sysconfig" != no ; then
        !           201:   if test -f $with_sysconfig ; then
        !           202:     sysdesc=$with_sysconfig
        !           203:   else
        !           204:     sysdesc=$srcdir/sysdep/cf/$with_sysconfig
        !           205:     if ! test -f $sysdesc ; then
        !           206:       sysdesc=$sysdesc.h
        !           207:     fi
        !           208:   fi
        !           209: elif test -f sysconfig.h ; then
        !           210:   sysdesc=sysconfig
        !           211: else
        !           212:   case "$host_os" in
        !           213:     linux*)
        !           214:       sysdesc=linux
        !           215:       default_iproutedir="/etc/iproute2"
        !           216:       ;;
        !           217:     freebsd*)
        !           218:       sysdesc=bsd
        !           219:       CPPFLAGS="$CPPFLAGS -I/usr/local/include"
        !           220:       LDFLAGS="$LDFLAGS -L/usr/local/lib"
        !           221:       ;;
        !           222:     kfreebsd*)
        !           223:       sysdesc=bsd
        !           224:       ;;
        !           225:     netbsd*)
        !           226:       sysdesc=bsd
        !           227:       CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
        !           228:       LDFLAGS="$LDFLAGS -L/usr/pkg/lib -R/usr/pkg/lib"
        !           229:       ;;
        !           230:     openbsd*)
        !           231:       sysdesc=bsd
        !           232:       ;;
        !           233:     dragonfly*)
        !           234:       sysdesc=bsd
        !           235:       ;;
        !           236:     *)
        !           237:       AC_MSG_ERROR([Cannot determine correct system configuration. Please use --with-sysconfig to set it manually.])
        !           238:       ;;
        !           239:     esac
        !           240:     sysdesc=$srcdir/sysdep/cf/$sysdesc.h
        !           241: fi
        !           242: AC_MSG_CHECKING([which OS configuration should we use])
        !           243: AC_MSG_RESULT([$sysdesc])
        !           244: if ! test -f $sysdesc ; then
        !           245:   AC_MSG_ERROR([The system configuration file is missing.])
        !           246: fi
        !           247: sysname=`echo $sysdesc | sed 's/\.h$//'`
        !           248: AC_DEFINE_UNQUOTED([SYSCONF_INCLUDE], ["$sysdesc"], [Which sysdep header to include])
        !           249: 
        !           250: AC_MSG_CHECKING([system-dependent directories])
        !           251: sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '`"
        !           252: AC_MSG_RESULT([$sysdep_dirs])
        !           253: AC_SUBST([sysdep_dirs])
        !           254: 
        !           255: if test "$with_iproutedir" = no ; then with_iproutedir= ; fi
        !           256: 
        !           257: if test -n "$given_iproutedir"
        !           258: then iproutedir=$with_iproutedir
        !           259: else iproutedir=$default_iproutedir
        !           260: fi
        !           261: 
        !           262: AC_SUBST([iproutedir])
        !           263: 
        !           264: DAEMON_LIBS=
        !           265: AC_SUBST(DAEMON_LIBS)
        !           266: 
        !           267: if test "$enable_libssh" != no ; then
        !           268:   AC_CHECK_HEADER([libssh/libssh.h], [true], [fail=yes], [ ])
        !           269:   AC_CHECK_LIB([ssh], [ssh_connect], [true], [fail=yes])
        !           270: 
        !           271:   if test "$fail" != yes ; then
        !           272:     AC_DEFINE([HAVE_LIBSSH], [1], [Define to 1 if you have the `ssh' library (-lssh).])
        !           273:     DAEMON_LIBS="-lssh $DAEMON_LIBS"
        !           274:     proto_rpki=rpki
        !           275:     enable_libssh=yes
        !           276:   else
        !           277:     if test "$enable_libssh" = yes ; then
        !           278:       AC_MSG_ERROR([LibSSH not available.])
        !           279:     else
        !           280:       enable_libssh=no
        !           281:     fi
        !           282:   fi
        !           283: fi
        !           284: 
        !           285: if test "$enable_mpls_kernel" != no ; then
        !           286:   BIRD_CHECK_MPLS_KERNEL
        !           287: 
        !           288:   if test "$bird_cv_mpls_kernel" = yes ; then
        !           289:     AC_DEFINE([HAVE_MPLS_KERNEL], [1], [Define to 1 if kernel is MPLS capable])
        !           290:   elif test "$enable_mpls_kernel" = yes ; then
        !           291:     AC_MSG_ERROR([Kernel MPLS support not found.])
        !           292:   fi
        !           293: 
        !           294:   if test "$enable_mpls_kernel" = try ; then
        !           295:     enable_mpls_kernel="$bird_cv_mpls_kernel"
        !           296:   fi
        !           297: fi
        !           298: 
        !           299: all_protocols="$proto_bfd babel bgp mrt ospf perf pipe radv rip $proto_rpki static"
        !           300: 
        !           301: all_protocols=`echo $all_protocols | sed 's/ /,/g'`
        !           302: 
        !           303: if test "$with_protocols" = all ; then
        !           304:   with_protocols="$all_protocols"
        !           305: fi
        !           306: 
        !           307: AH_TEMPLATE([CONFIG_BABEL],    [Babel protocol])
        !           308: AH_TEMPLATE([CONFIG_BFD],      [BFD protocol])
        !           309: AH_TEMPLATE([CONFIG_BGP],      [BGP protocol])
        !           310: AH_TEMPLATE([CONFIG_MRT],      [MRT protocol])
        !           311: AH_TEMPLATE([CONFIG_OSPF],     [OSPF protocol])
        !           312: AH_TEMPLATE([CONFIG_PIPE],     [Pipe protocol])
        !           313: AH_TEMPLATE([CONFIG_RADV],     [RAdv protocol])
        !           314: AH_TEMPLATE([CONFIG_RIP],      [RIP protocol])
        !           315: AH_TEMPLATE([CONFIG_RPKI],     [RPKI protocol])
        !           316: AH_TEMPLATE([CONFIG_STATIC],   [Static protocol])
        !           317: 
        !           318: AC_MSG_CHECKING([protocols])
        !           319: protocols=`echo "$with_protocols" | sed 's/,/ /g'`
        !           320: if test "$protocols" = no ; then protocols= ; fi
        !           321: for a in $protocols ; do
        !           322:   if ! test -f $srcdir/proto/$a/Makefile ; then
        !           323:     AC_MSG_RESULT([failed])
        !           324:     AC_MSG_ERROR([Requested protocol $a not found])
        !           325:   fi
        !           326:   AC_DEFINE_UNQUOTED([CONFIG_`echo $a | tr 'a-z' 'A-Z'`])
        !           327: done
        !           328: AC_MSG_RESULT([ok])
        !           329: AC_SUBST([protocols])
        !           330: 
        !           331: case $sysdesc in
        !           332:   */linux*)
        !           333:     AC_CHECK_HEADER([linux/rtnetlink.h],
        !           334:       [],
        !           335:       [AC_MSG_ERROR([Appropriate version of Linux kernel headers not found.])],
        !           336:       [
        !           337:        dnl Some older versions of Linux kernel headers require these includes
        !           338:        #include <asm/types.h>
        !           339:        #include <sys/socket.h>
        !           340:       ]
        !           341:     )
        !           342:     ;;
        !           343: esac
        !           344: 
        !           345: AC_CHECK_HEADERS_ONCE([alloca.h syslog.h])
        !           346: AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [], [#include <sys/socket.h>])
        !           347: 
        !           348: AC_C_BIGENDIAN(
        !           349:   [AC_DEFINE([CPU_BIG_ENDIAN], [1], [Define to 1 if cpu is big endian])],
        !           350:   [AC_DEFINE([CPU_LITTLE_ENDIAN], [1], [Define to 1 if cpu is little endian])],
        !           351:   [AC_MSG_ERROR([Cannot determine CPU endianity.])]
        !           352: )
        !           353: 
        !           354: BIRD_CHECK_ANDROID_GLOB
        !           355: if test "$bird_cv_lib_glob" = no ; then
        !           356:   AC_MSG_ERROR([glob.h not found.])
        !           357: elif test "$bird_cv_lib_glob" != yes ; then
        !           358:   LIBS="$LIBS $bird_cv_lib_glob"
        !           359: fi
        !           360: 
        !           361: BIRD_CHECK_ANDROID_LOG
        !           362: if test "$bird_cv_lib_log" = no ; then
        !           363:   AC_MSG_ERROR([don't know how to link syslog.])
        !           364: elif test "$bird_cv_lib_log" != yes ; then
        !           365:   LIBS="$LIBS $bird_cv_lib_log"
        !           366: fi
        !           367: 
        !           368: if test "$enable_debug" = yes ; then
        !           369:   AC_DEFINE([DEBUGGING], [1], [Define to 1 if debugging is enabled])
        !           370:   LDFLAGS="$LDFLAGS -rdynamic"
        !           371:   CFLAGS="$CFLAGS -O0 -ggdb -g3"
        !           372: 
        !           373:   BIRD_CHECK_GCC_OPTION([bird_cv_c_option_dwarf4], [-gdwarf-4], [])
        !           374:   BIRD_ADD_GCC_OPTION([bird_cv_c_option_dwarf4], [-gdwarf-4])
        !           375: 
        !           376:   AC_CHECK_HEADER([execinfo.h],
        !           377:     [
        !           378:       AC_DEFINE([HAVE_EXECINFO_H], [1], [Define to 1 if you have the <execinfo.h> header file.])
        !           379:       AC_SEARCH_LIBS([backtrace], [execinfo],
        !           380:        [],
        !           381:        [AC_MSG_ERROR([Function backtrace not available.])]
        !           382:       )
        !           383:     ]
        !           384:   )
        !           385: 
        !           386:   if test "$enable_memcheck" = yes ; then
        !           387:     AC_CHECK_LIB([dmalloc], [dmalloc_debug])
        !           388:     if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then
        !           389:       AC_CHECK_LIB([efence], [malloc])
        !           390:     fi
        !           391:   fi
        !           392: fi
        !           393: 
        !           394: CLIENT=birdcl
        !           395: CLIENT_LIBS=
        !           396: if test "$enable_client" = yes ; then
        !           397:   CLIENT="$CLIENT birdc"
        !           398:   BASE_LIBS="$LIBS"
        !           399:   LIBS=""
        !           400: 
        !           401:   AC_CHECK_HEADERS([curses.h],
        !           402:     [],
        !           403:     [AC_MSG_ERROR([The client requires ncurses library. Either install the library or use --disable-client to compile without the client.])],
        !           404:     [AC_INCLUDES_DEFAULT]
        !           405:   )
        !           406: 
        !           407:   AC_SEARCH_LIBS([tgetent], [tinfo tinfow ncurses curses termcap],
        !           408:     [TINFO_LIBS="$LIBS"; LIBS=""],
        !           409:     [AC_MSG_ERROR([The client requires ncurses library. Either install the library or use --disable-client to compile without the client.])],
        !           410:   )
        !           411: 
        !           412:   AC_CHECK_HEADERS([readline/readline.h readline/history.h],
        !           413:     [],
        !           414:     [AC_MSG_ERROR([The client requires GNU Readline library. Either install the library or use --disable-client to compile without the client.])],
        !           415:     [AC_INCLUDES_DEFAULT]
        !           416:   )
        !           417: 
        !           418:   AC_SEARCH_LIBS([rl_callback_read_char], [readline],
        !           419:     [READLINE_LIBS="$LIBS"; LIBS=""],
        !           420:     [AC_MSG_ERROR([The client requires GNU Readline library. Either install the library or use --disable-client to compile without the client.])],
        !           421:     [$TINFO_LIBS]
        !           422:   )
        !           423: 
        !           424:   AC_CHECK_LIB([readline], [rl_crlf],
        !           425:     [AC_DEFINE([HAVE_RL_CRLF], [1], [Define to 1 if you have rl_crlf()])],
        !           426:     [],
        !           427:     [$TINFO_LIBS]
        !           428:   )
        !           429: 
        !           430:   AC_CHECK_LIB([readline], [rl_ding],
        !           431:     [AC_DEFINE([HAVE_RL_DING], [1], [Define to 1 if you have rl_ding()])],
        !           432:     [],
        !           433:     [$TINFO_LIBS]
        !           434:   )
        !           435: 
        !           436:   LIBS="$BASE_LIBS"
        !           437:   CLIENT_LIBS="$READLINE_LIBS $TINFO_LIBS"
        !           438: fi
        !           439: AC_SUBST([CLIENT])
        !           440: AC_SUBST([CLIENT_LIBS])
        !           441: 
        !           442: mkdir -p $objdir/sysdep
        !           443: AC_CONFIG_HEADERS([$objdir/sysdep/autoconf.h:sysdep/autoconf.h.in])
        !           444: AC_CONFIG_FILES([Makefile:Makefile.in])
        !           445: AC_OUTPUT
        !           446: 
        !           447: AC_MSG_RESULT()
        !           448: AC_MSG_RESULT([BIRD was configured with the following options:])
        !           449: AC_MSG_RESULT([        Source directory:       $srcdir])
        !           450: AC_MSG_RESULT([        Object directory:       $objdir])
        !           451: AC_MSG_RESULT([        Iproute2 directory:     $iproutedir])
        !           452: AC_MSG_RESULT([        System configuration:   $sysdesc])
        !           453: AC_MSG_RESULT([        Debugging:              $enable_debug])
        !           454: AC_MSG_RESULT([        POSIX threads:          $enable_pthreads])
        !           455: AC_MSG_RESULT([        Routing protocols:      $protocols])
        !           456: AC_MSG_RESULT([        Kernel MPLS support:    $enable_mpls_kernel])
        !           457: AC_MSG_RESULT([        Client:                 $enable_client])
        !           458: 
        !           459: rm -f $objdir/.*-stamp

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>