Commit Graph

201 Commits

Author SHA1 Message Date
Hasso Tepper
675769b1b1 build: MacOSX needs BSD struct ip_mreq hack too
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2013-01-11 21:50:06 +01:00
Doug VanLeuven
327c4cdf75 testzebra: pragma weak: detect systems with weak alias and provide alternative
LLVM clang does not support #pragma weak (bug 3679) on OS X. There are
other systems where the #pragma weak has varying syntax.

Added m4 file from the autoconf archives:
http://www.gnu.org/software/autoconf-archive/ax_sys_weak_alias.html

Fix up zebra/*_null.c files to use #pragma weak alias or stub functions
if not available. It's incomplete in that the different format #pragma
enable easier fixes on need.

Tested on 64bit OS X 10.7, FreeBSD 9.0 amd64 & i386 (32bit) using
gcc & clang. Tested on linux 64bit.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2013-01-11 21:50:06 +01:00
David Lamparter
a16dcf7c11 build: check for .git in configure.ac
Don't error out when someone tries using --with-pkg-git-version on
something that isn't actually a git checkout (like a dist tarball).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-12-13 11:20:50 +01:00
David Lamparter
fd76f41ac0 build: update ICC warning CFLAGS
Intel's icc doesn't accept "-wd <number>" anymore, it's "-wd<number>"
these days.  But, anyhow, the warnings disabled in Quagga's configure.ac
don't seem to appear anywhere at all, so let's just remove the option
completely.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-12-13 10:41:18 +01:00
David Lamparter
0be793e674 build: include git info
If enabled with --with-pkg-gitversion on ./configure, this will append
git version strings and branch information at the following places:
 - overall version number: 0.99.21-g0123456
 - login motd and show version: tag information + git id + branches

Sample output:
  Hello, this is Quagga (version 0.99.21-g14b49ad-dirty).
  Copyright 1996-2005 Kunihiro Ishiguro, et al.

  This is a git build of quagga_0_99_21_release-106-g14b49ad-dirty
  Associated branch(es):
	local:master

[v2]: fix build without gitinfo (add "else" branch)
[v2]: fix for repos without any tags (different git describe output)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-12-12 15:34:37 +01:00
Avneesh Sachdev
5adc2528d3 zebra: add module to communicate routes to FPM
Enhance zebra to send routes to the (optional) Forwarding Path Manager
component using the interface defined by fpm/fpm.h.

  * configure.ac

    - Add --enable-fpm flag.

      The FPM-related code in zebra is activated only if the build is
      configured with '--enable-fpm'.

    - Add HAVE_NETLINK automake conditional.

      This allows us to conditionally build netlink-dependent C code.

  * zebra/{rib.h,zebra_rib.c}

    - Add the 'fpm_q_entries' field to the rib_dest_t structure. This
      allows dests to be placed on the fpm queue.

    - Define a couple new rib_dest_t flags that hold FPM-related
      state.

    - Invoke the zfpm_trigger_update() function for a route_node
      whenever the information to be sent to the FPM changes.

    - rib_can_delete_dest(): Return FALSE if we have to update the FPM
      about the given dest. This ensures that the dest is not deleted
      even if there are no ribs hanging off of it.

  * zebra/zebra_fpm.c

    This file holds most of the code for interacting with the FPM.

    - If quagga was configured with '--enable-fpm', periodically try
      to connect to the FPM.

    - When the connection comes up, enqueue all relevent dests to the
      FPM queue.

    - When the FPM socket is readable, dequeue the next rib_dest_t
      from the FPM queue, encode it in to a message and send the
      message to the FPM.

    - When the connection to the FPM goes down, remove all dests from
      the FPM queue, and then start trying to connect to the FPM
      again.

    - Expose the following new operational commands:

      show zebra fpm stats
      clear zebra fpm stats

  * zebra/zebra_fpm_netlink.c

    - zfpm_netlink_encode_route(): Function to encode information
      about a rib_dest_t in netlink format.

  * zebra/zebra_fpm_private.h

    Private header file for the zebra FPM module.

  * zebra/zebra_fpm.h

    Header file exported by zebra FPM module to the rest of zebra.

  * zebra/debug.c

    Add the 'debug zebra fpm' command.

  * zebra/main.c

    Initialize the zebra-FPM code on startup.

  * zebra/misc_null.c

    Add stub for zfpm_trigger_update().

  * zebra/Makefile.am

    - Include new file zebra_fpm.c in build.

    - Include zebra_fpm_netlink.c in build if HAVE_NETLINK is defined.

  * vtysh/Makefile.am

    Include zebra_fpm.c in list of files that define cli commands.

Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-11-30 21:41:17 +01:00
Doug VanLeuven
9234b38273 build: check actually-used BSD link state fields
ifi_link_state missing in OS X. There could be other *BSD's that haven't
implemented it and possibly affects older implementations.

The existing HAVE_BSD_LINK_DETECT configure.ac check is only confirming
the link state detection using ifmediareq.ifm_status found in
<net/if_media.h>. This is the link state detection used in
zebra/ioctl.c. Later, *BSD redefined struct if_data in <net/if.h> and
included link state detection. This is the method used in
zebra/kernel_socket.c

Additional test defined in config.ac to test for member struct
if_data.ifi_link_state defined in <net/if.h> separate from test for
<net/if_media.h> ifmediareq.ifm_status

Fixed #ifdef's in zebra/kernel_socket.c to use the new #define
No impact on older function calls in zebra/ioctl.c

Tested on 64bit OS X 10.7, FreeBSD 9.0 amd64 & i386 (32bit)
using gcc & clang. Tested on linux 64bit.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-11-05 11:22:24 -05:00
David Lamparter
e2b1580cbc build: compile tests/ by default
Broke the tests again... let's just build them by default so it's easier
to notice.  If anyone doesn't want to build tests, there's
--disable-tests.

NB: tests will be neither run nor installed.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-11-03 09:51:21 -07:00
Brad Smith
1b54f798d3 build: fix autoconf multicast check on OpenBSD
Fix the "BSD struct ip_mreq hack" autoconf test to work with OpenBSD.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-09-25 05:56:04 +02:00
David Lamparter
ee1ac2d52a build: fix isisd topology out of tree build
isisd got the include directory wrong on building with a separate build
directory.

  * configure.ac: adjust ISIS_TOPOLOGY_INCLUDES

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-07-19 13:00:29 +02:00
Joachim Nilsson
1080c13f5d configure: Add --with-pkg-extra-version=VER for packagers/distributions.
This change adds a --with-pkg-extra-version option to ./configure to allow
packagers and distributions to fine tune the version displayed to the end
user to assist in support. It is also very useful when reporting bugs on
the official Quagga mailing lists.

There are two ways of utilsing this functionality:

      a) ./configure --with-pkg-extra-version=-wmo1
      b) EXTRAVERSION=-wmo1 ./configure

The latter is a common way for many distributions to add extra version
strings to signify their own patch level to a given package.

Also, minor whitespace fix in configure summary.

Signed-off-by: Joachim Nilsson <joachim.nilsson@westermo.se>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2012-07-13 18:53:53 +02:00
Vincent Bernat
d6be5fb9bc agentx: add AgentX support to Quagga.
--enable-snmp will enable AgentX support in Quagga. SMUX is still here
and can be enabled with --enable-snmp=smux. AgentX support can be
enabled with "agentx" in configuration file. As for SMUX, this command
is not understood by vtysh. It can be disabled with "no agentx",
though there is no real use of this since this command cannot be used
with vtysh.

If "agentx" and "no agentx" command were added to vtysh, it would not
be possible to disable agentx support after enabling it because
NetSNMP does not expose the appropriate methods for this.

The internals of AgentX are hidden by NetSNMP. Therefore, we don't
have a file descriptor to add to the threading system. We do not have
the timers to set either. Therefore, the event loop is modified to
make use of snmp_select_info() from NetSNMP.

Traps are not supported yet.
2012-06-25 19:03:23 +02:00
Vincent Bernat
08d7f6533e build: use net-snmp-config to configure NetSNMP
The correct method to link to NetSNMP is to use net-snmp-config (which
is like pkg-config). Explicit link to libcrypto is also dropped
(NetSNMP libs are linked to libcrypto, no need to link Quagga to
it). Moreover, @SNMP_INCLUDES@ is dropped because useless. Due to a
bug in configure.ac, it was properly populated.
2012-06-25 19:03:23 +02:00
Vincent Bernat
6b1e37f853 build: only define HAVE_SNMP
NetSNMP is the only SNMP implementation for Quagga. We don't need two
different symbols.
2012-06-25 19:03:23 +02:00
David Lamparter
828f235df4 release: 0.99.21 2012-05-01 21:43:53 +02:00
David Ward
f027d331fc doc: only package man pages for daemons that are built
Signed-off-by: David Ward <david.ward@ll.mit.edu>
Signed-off-by: David Lamparter <equinox@diac24.net>
2012-05-01 17:51:26 +02:00
Paul Jakma
5734509c05 babeld: Initial import, for Babel routing protocol.
* Initial import of the Babel routing protocol, ported to Quagga.
* LICENCE: Update the original LICENCE file to include all known potentially
  applicable copyright claims.  Ask that any future contributors to babeld/
  grant MIT/X11 licence to their work.
* *.{c,h}: Add GPL headers, in according with the SFLC guidance on
  dealing with potentially mixed GPL/other licensed work, at:

  https://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
2012-03-25 17:06:51 +01:00
Paul Jakma
fa482834ea HACKING.tex: Change to a LaTeX version of HACKING
* configure.ac: Check for latexmk and pdflatex
* Makefile.am: Add a conditional target to build HACKING.pdf, as a convenience
* HACKING.tex: A slightly more structured HACKING, is readable on its own.
* HACKING: removed
2012-03-08 16:14:13 +00:00
David Lamparter
ca9f342c2c build: fixup autoconf for cross-compiling (to OpenWRT)
MALLOC/REALLOC aren't used properly (no rpl_malloc), remove them

while at it, infer some sane ipforwarding method from the OS value.
(v2 on that, "==" is not a proper operator for standard "test")
2011-12-13 19:12:42 +04:00
Denis Ovsienko
48f99b0c2b release: 0.99.20 2011-09-29 16:55:23 +04:00
Dmitrij Tejblum
eda3529e9c configure: test for glibc backtrace even without glibc.
Other platform may have compatible facilities.
2011-09-27 21:45:37 +04:00
Dmitrij Tejblum
10d04cdb41 lib: use "protocol-independed API" from RFC3678, if that is available
(This commit is based on the patch from BZ#420, and should fix that bug.)

* configure.ac: detect availability of that API
* sockopt.c (setsockopt_ipv4_multicast): use it for join/leave IPv4
  multicast groups
2011-09-27 21:39:12 +04:00
Denis Ovsienko
b82cdeb18f delete CVS keywords 2011-09-27 21:34:26 +04:00
Denis Ovsienko
6159928d28 configure: fix OpenPAM detection 2011-09-27 21:33:16 +04:00
Denis Ovsienko
2b43bf231c configure: fix FreeBSD header detection (BZ#408)
This change is based on Xavier Beaudouin's patch (which fixes detection
of 3 config.h macros on FreeBSD without any impact to Linux build of
Quagga) and FreeBSD port patch (which fixes 5 config.h macros, but
breaks the Linux build), it fixes 5 macros and works for both FreeBSD 8
and Linux.
2011-09-27 20:59:46 +04:00
Stephen Hemminger
b69442d456 configure: dismiss libutil.h
Recent versions of libc on Linux (Debian Testing) create lots of
compile warnings about direct usage of libutil.h
2011-09-27 20:47:18 +04:00
Denis Ovsienko
0998342b5f release: 0.99.19 2011-09-26 18:50:06 +04:00
Greg Troxel
0d51c7ef83 build: treat opaque-lsa default correctly for ospfapi
In deciding whether to default ospfapi to on or off, use the same rule
for opaque-lsa as earlier: != no rather than = yes, so that not having
set it implies yes.
2011-03-24 10:19:43 -04:00
Paul Jakma
36de261b57 build: change sense of opaque-{lsa,te} enable args to enable by default
* configure.ac: (AC_ARG_ENABLE({ospf-te,opaque-lsa})) reverse the sense to
  --disable
  (enable_{opaque_lsa,ospf_te}) treat as enabled unless explicitly disabled.
2011-03-22 12:09:11 +00:00
Paul Jakma
d8509631b4 release: 0.99.18
* configure.ac: Bump to 0.99.18
2011-03-21 14:56:00 +00:00
Denis Ovsienko
a6be12128c release: 0.99.17
* configure.ac: bump up version number
2010-08-19 13:36:43 +04:00
David Lamparter
745bf05f58 isisd: change ISIS_METHOD to use C preprocessor
this fixes warnings from vtysh extract.pl by making sure the isis method
files always 'work'. (previously, extract.pl would grab unselected isis
method sources and then complain about missing headers)
2010-04-28 20:15:44 -04:00
Denis Ovsienko
438589e31f release: 0.99.16
* configure.ac: bump up version number
2010-03-09 13:53:20 +03:00
David Ward
cdb9950482 configure: fix spelling 2009-12-03 20:22:47 +03:00
Dmitry Tejblum
9964fcfc22 configure: fix HAVE_CLOCK_MONOTONIC spelling 2009-11-05 16:50:36 +03:00
Paul Jakma
3849ce4e25 release: 0.99.15
* configure.ac: Bump to 0.99.15
2009-08-28 19:16:31 +01:00
Paul Jakma
998274cd7c [build] Bump release to 0.99.14 2009-07-21 15:21:20 +01:00
Paul Jakma
62c9f504bd [build] fix default CFLAGS and squish warning
* configure.ac: Move down the AC_SYS_LARGEFILE test - it was setting CFLAGS
  and so disabling the default CFLAGS setting section.
  Squish warning by adding AC_CONFIG_MACRO_DIR on the reccommendation of
  autoreconf.
2009-07-19 17:33:21 +01:00
Joakim Tjernlund
cbcd9bfc50 [doc] Add "--disable-doc" to configure
Configure option "--disable-doc" will prevent building
the documents under doc. Saves build time and the need to
have document building tools installed. Useful when your build
machine is different from your development machine.
2009-06-25 14:01:19 +01:00
Tomasz Pala
80abd9fe37 [configure] Allow for large-file support, e.g. for log files >2GB 2009-06-24 22:11:34 +01:00
Paul Jakma
5bc52c76c2 [doc] remove -dither arg to imagemagick, in building PDFs
* doc/Makefile.am: arguments for the 'convert' programme seem to have
  changed incompatibly at some stage - just remove the problematic -dither.
2009-06-22 16:11:06 +01:00
Jeremy Jackson
7ec573661f [configure] fix check for GNU awk/gawk to abort ./configure if missing
It also prints what were comments explaining why gawk is necessary, and
not-in-PATH to help user figure out why it's not found.

Build was mysteriously failing with the old version of this check when gawk
wasn't installed.
2009-06-19 15:03:31 +01:00
Jeremy Jackson
e84999d93a [configure] remove unused/broken autoconf cache variable ac_statedir
It wasn't used, and the code wasn't printing progress or the result in some
cases.  the test uses minimal resources, so it's probably better to not
cache so as to avoid inconsistencies if --with-prefix or directory variables
are changed between ./configure runs.
2009-06-19 15:03:31 +01:00
Jeremy Jackson
5589ffa7dd [configure/cleanup] fix broken autoconf cache variables
Fix zebra_rtread and zebra_ipforward_path.

It looks like someone tried to make this cached, but it was being ignored at
least on autoconf 2.6.1.  2.6.2 now gives a warning about the situation,
hence this fix.

Although they are just warnings, it's dangerous to leave them as-is, because
someone not diligent in reading the autoconf manual might just stick _cv_ in
the name, with the effect that running a ./configure --config-cache would
fail horribly, since variables are being set inside the AC_CACHE_CHECK()
block that would not be seen when the variable's value was read from cache.

Also added m4 quotes [] to macro arguments as autoconf manual
suggests.
2009-06-19 15:03:31 +01:00
Jeremy Jackson
7f177ee8df [configure] remote support for AIX, it conflicts on newer autoconf
AC_AIX and AC_GNU_SOURCE conflict > autoconf 2.53 or so,
but the replacement AC_USE_SYSTEM_EXTENSIONS isn't available
until later versions.  So either we narrow the supported
autconf version range, or disable AIX (if it has any effect),
or determin that AC_AIX doesn't do anything useful anyhow.
2009-06-19 15:03:31 +01:00
Jeremy Jackson
25f45887ab [configure] add configure support for PCRE Posix library
Debian tried unsuccessfully to build with libpcreposix.  This adds proper
support to autoconf/configure.ac for it.

Based on the patch by C.J.  Adams-Collier in bug #483.

bgpd/bgp_{regex,routemap}.h: Pull in PCRE POSIX header if available.
2009-06-19 15:01:16 +01:00
Paul Jakma
6511cab267 [configure] Refine CLOCK_MONOTONIC test
* configure.ac: Check for the actual CLOCK_MONOTONIC symbol, as clock_gettime
  need not imply that clock type is supported
* lib/zebra.h: use the method given in autoconf docs for sys/time.h
  inclusion
2009-06-18 20:18:31 +01:00
Stephen Hemminger
c4376c9d28 [configure] Detect support for monotonic clock
Quagga has code to support monotonic clock to avoid issues where
time of day changes. The support was incomplete since it was not being
detected by autoconf.
2009-06-18 20:18:31 +01:00
Paul Jakma
3453a7122c [bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch
* configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in
  support for the old TCP-MD5 patch for Linux 2.4 systems.  This overrides
  auto-detection of TCP-MD5 supported by the target system.
* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old
  Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional
  on the previous configure arg.
2009-06-12 14:21:02 +01:00
Paul Jakma
5012bc3d21 [release] Bump version to 0.99.12 2009-05-08 23:20:19 +01:00