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

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