2003-03-25 Paul Jakma <paul@dishone.st>

* sync to latest zebra CVS
	* spec file: updated and added define for ospf-api/client

NB: OSPF-API has been broken by the zebra.org changes, which
has added struct ospf * as a new arg to many functions
This commit is contained in:
paul 2003-03-25 05:07:42 +00:00
parent 1ef74ef70b
commit 6898008484
38 changed files with 24406 additions and 20376 deletions

View File

@ -1,3 +1,7 @@
2003-03-25 Paul Jakma <paul@dishone.st>
* Sync to Zebra CVS
2003-03-17 Amir Guindehi <amir@datacore.ch>
* Extended SNMP checks in configure.ac so that net-snmp works

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,22 +57,28 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INCLUDES = @INCLUDES@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -87,70 +91,76 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @VTYSH@ @OSPFCLIENT@ doc
EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
vtysh/Makefile.am update-autotools
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = README ./stamp-h.in AUTHORS COPYING COPYING.LIB ChangeLog \
INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
config.guess config.h.in config.sub configure configure.in install-sh \
missing mkinstalldirs
CONFIG_CLEAN_FILES =
DIST_SOURCES =
RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
uninstall-info-recursive all-recursive install-data-recursive \
install-exec-recursive installdirs-recursive install-recursive \
uninstall-recursive check-recursive installcheck-recursive
DIST_COMMON = README ./stamp-h.in AUTHORS COPYING COPYING.LIB ChangeLog \
INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
config.guess config.h.in config.sub configure configure.ac \
configure.in depcomp install-sh missing mkinstalldirs
DIST_SUBDIRS = $(SUBDIRS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): configure.ac
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h
@if test ! -f $@; then \
rm -f stamp-h; \
$(MAKE) stamp-h; \
else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h stamp-hT
@echo timestamp > stamp-hT 2> /dev/null
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
@mv stamp-hT stamp-h
$(srcdir)/config.h.in: $(srcdir)/./stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
rm -f $(srcdir)/./stamp-h.in; \
$(MAKE) $(srcdir)/./stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
@rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT
@echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
@mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
distclean-hdr:
-rm -f config.h
maintainer-clean-hdr:
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@ -158,12 +168,7 @@ maintainer-clean-hdr:
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
$(RECURSIVE_TARGETS):
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
@ -186,11 +191,16 @@ mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" != "." || dot_seen=yes; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
@ -209,90 +219,66 @@ tags-recursive:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
# Avoid unsightly `./'.
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
GZIP_ENV = --best
distdir: $(DISTFILES)
-rm -rf $(distdir)
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile
$(mkinstalldirs) $(distdir)/vtysh
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
for subdir in $(SUBDIRS); do \
@ -300,84 +286,141 @@ distdir: $(DISTFILES)
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" \
distdir=../$(distdir)/$$subdir \
distdir) \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="${top_distdir}" distdir="$(distdir)" \
dist-hook
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
chmod a-w $(distdir)
dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
&& cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
|| (echo "Error: files left after uninstall" 1>&2; \
exit 1) ) \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
&& rm -f $(distdir).tar.gz \
&& (test `find . -type f -print | wc -l` -eq 0 \
|| (echo "Error: files left after distclean" 1>&2; \
exit 1) )
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
@echo "$(distdir).tar.gz is ready for distribution" | \
sed 'h;s/./=/g;p;x;p;x'
check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
all-recursive-am: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
install-exec-am:
install-exec: install-exec-recursive
install-data-am:
install-data: install-data-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
uninstall-am:
uninstall: uninstall-recursive
all-am: Makefile config.h
all-redirect: all-recursive-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
distclean: distclean-recursive
-rm -f config.status config.cache config.log
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
mostlyclean-am: mostlyclean-generic
clean: clean-recursive
uninstall-am: uninstall-info-am
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
uninstall-info: uninstall-info-recursive
distclean: distclean-recursive
-rm -f config.status
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
install-data-recursive uninstall-data-recursive install-exec-recursive \
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
all-recursive check-recursive installcheck-recursive info-recursive \
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
install-exec-am install-exec install-data-am install-data install-am \
install uninstall-am uninstall all-redirect all-am all installdirs-am \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
clean-generic clean-recursive dist dist-all distcheck distclean \
distclean-generic distclean-hdr distclean-recursive \
distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
info-recursive install install-am install-data install-data-am \
install-data-recursive install-exec install-exec-am \
install-exec-recursive install-info install-info-am \
install-info-recursive install-man install-recursive \
install-strip installcheck installcheck-am installdirs \
installdirs-am installdirs-recursive maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive mostlyclean \
mostlyclean-generic mostlyclean-recursive tags tags-recursive \
uninstall uninstall-am uninstall-info-am \
uninstall-info-recursive uninstall-recursive
dist-hook:
@ -389,7 +432,6 @@ dist-hook:
mkdir $(distdir)/init/redhat
cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat
cp -p $(srcdir)/init/redhat/zebra.* $(distdir)/init/redhat
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

573
aclocal.m4 vendored
View File

@ -1,70 +1,133 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p5
# aclocal.m4 generated automatically by aclocal 1.5
dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
# Copyright 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
# serial 5
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# We require 2.13 because we rely on SHELL being computed by configure.
AC_PREREQ([2.13])
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
# -----------------------------------------------------------
# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
# The purpose of this macro is to provide the user with a means to
# check macros which are provided without letting her know how the
# information is coded.
# If this macro is not defined by Autoconf, define it here.
ifdef([AC_PROVIDE_IFELSE],
[],
[define([AC_PROVIDE_IFELSE],
[ifdef([AC_PROVIDE_$1],
[$2], [$3])])])
# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
# ----------------------------------------------
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
[AC_REQUIRE([AC_PROG_INSTALL])dnl
# test to see if srcdir already configured
if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
fi
# Define the identity of the package.
PACKAGE=$1
AC_SUBST(PACKAGE)dnl
VERSION=$2
AC_SUBST(VERSION)dnl
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
# the ones we care about.
ifdef([m4_pattern_allow],
[m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
# Autoconf 2.50 always computes EXEEXT. However we need to be
# compatible with 2.13, for now. So we always define EXEEXT, but we
# don't compute it.
AC_SUBST(EXEEXT)
# Similar for OBJEXT -- only we only use OBJEXT if the user actually
# requests that it be used. This is a bit dumb.
: ${OBJEXT=o}
AC_SUBST(OBJEXT)
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal)
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake)
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AM_MISSING_PROG(AMTAR, tar)
AM_PROG_INSTALL_SH
AM_PROG_INSTALL_STRIP
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_][CC],
defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_][CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_][CXX],
defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
])
#
# Check to make sure that the build environment is sane.
#
# serial 3
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
echo timestamp > conftest.file
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
set X `ls -t $srcdir/configure conftest.file`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
@ -74,7 +137,7 @@ if (
alias in your environment])
fi
test "[$]2" = conftestfile
test "$[2]" = conftest.file
)
then
# Ok.
@ -83,45 +146,415 @@ else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
# serial 2
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
am_backtick='`'
AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
fi
])
# AM_AUX_DIR_EXPAND
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND], [
# expand $ac_aux_dir to an absolute path
am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
])
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
install_sh=${install_sh-"$am_aux_dir/install-sh"}
AC_SUBST(install_sh)])
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# serial 4 -*- Autoconf -*-
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ---------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX" or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
for depmode in $am_compiler_list; do
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
echo '#include "conftest.h"' > conftest.c
echo 'int i;' > conftest.h
echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
none) break ;;
esac
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
source=conftest.c object=conftest.o \
depfile=conftest.Po tmpdepfile=conftest.TPo \
$SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
grep conftest.h conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
AC_SUBST([$1DEPMODE])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[rm -f .deps 2>/dev/null
mkdir .deps 2>/dev/null
if test -d .deps; then
DEPDIR=.deps
else
# MS-DOS does not allow filenames that begin with a dot.
DEPDIR=_deps
fi
rmdir .deps 2>/dev/null
AC_SUBST(DEPDIR)
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
pushdef([subst], defn([AC_SUBST]))
subst(AMDEPBACKSLASH)
popdef([subst])
])
# Generate code to set up dependency tracking.
# This macro should only be invoked once -- use via AC_REQUIRE.
# Usage:
# AM_OUTPUT_DEPENDENCY_COMMANDS
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
AC_OUTPUT_COMMANDS([
test x"$AMDEP_TRUE" != x"" ||
for mf in $CONFIG_FILES; do
case "$mf" in
Makefile) dirpart=.;;
*/Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
*) continue;;
esac
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
# Extract the definition of DEP_FILES from the Makefile without
# running `make'.
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
test -z "$DEPDIR" && continue
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n -e '/^U = / s///p' < "$mf"`
test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
# We invoke sed twice because it is the simplest approach to
# changing $(DEPDIR) to its actual value in the expansion.
for file in `sed -n -e '
/^DEP_FILES = .*\\\\$/ {
s/^DEP_FILES = //
:loop
s/\\\\$//
p
n
/\\\\$/ b loop
p
}
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
$ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
], [AMDEP_TRUE="$AMDEP_TRUE"
ac_aux_dir="$ac_aux_dir"])])
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
doit:
@echo done
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include='#'
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# We grep out `Entering directory' and `Leaving directory'
# messages which can occur if `w' ends up in MAKEFLAGS.
# In particular we don't look at `^make:' because GNU make might
# be invoked under some other name (usually "gmake"), in which
# case it prints its new name instead of `make'.
if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
am__include=include
am__quote=
_am_result=GNU
fi
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
am__include=.include
am__quote='"'
_am_result=BSD
fi
fi
AC_SUBST(am__include)
AC_SUBST(am__quote)
AC_MSG_RESULT($_am_result)
rm -f confinc confmf
])
# serial 3
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
#
# FIXME: Once using 2.50, use this:
# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_DEFUN([AM_CONDITIONAL],
[ifelse([$1], [TRUE],
[errprint(__file__:__line__: [$0: invalid condition: $1
])dnl
m4exit(1)])dnl
ifelse([$1], [FALSE],
[errprint(__file__:__line__: [$0: invalid condition: $1
])dnl
m4exit(1)])dnl
AC_SUBST([$1_TRUE])
AC_SUBST([$1_FALSE])
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
# serial 3
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. We must strip everything past the first ":",
# and everything past the last "/".
AC_PREREQ([2.12])
AC_DEFUN([AM_CONFIG_HEADER],
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
[ifdef([AC_FOREACH],dnl
[dnl init our file count if it isn't already
m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
dnl prepare to store our destination file list for use in config.status
AC_FOREACH([_AM_File], [$1],
[m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
dnl and add it to the list of files AC keeps track of, along
dnl with our hook
AC_CONFIG_HEADERS(_AM_File,
dnl COMMANDS, [, INIT-CMDS]
[# update the timestamp
echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
m4_popdef([_AM_Dest])])],dnl
[AC_CONFIG_HEADER([$1])
AC_OUTPUT_COMMANDS(
ifelse(patsubst([$1], [[^ ]], []),
[],
[test -z "$CONFIG_HEADERS" || echo timestamp >dnl
patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
[am_indx=1
for am_file in $1; do
case " \$CONFIG_HEADERS " in
*" \$am_file "*)
am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
if test -n "\$am_dir"; then
am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
am_tmpdir=\$am_tmpdir\$am_subdir/
if test ! -d \$am_tmpdir; then
mkdir \$am_tmpdir
fi
done
fi
echo timestamp > "\$am_dir"stamp-h\$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])
am_indx=\`expr \$am_indx + 1\`
done])
])]) # AM_CONFIG_HEADER
# _AM_DIRNAME(PATH)
# -----------------
# Like AS_DIRNAME, only do it during macro expansion
AC_DEFUN([_AM_DIRNAME],
[m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
m4_if(m4_regexp([$1], [^/.*]), -1,
[.],
m4_patsubst([$1], [^\(/\).*], [\1])),
m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
]) # _AM_DIRNAME

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -119,288 +126,307 @@ bgpd_LDADD = ../lib/libzebra.a
sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2
EXTRA_DIST = $(sysconf_DATA) BGP4-MIB.txt
subdir = bgpd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libbgp_a_AR = $(AR) cru
libbgp_a_LIBADD =
am_libbgp_a_OBJECTS = bgpd.$(OBJEXT) bgp_fsm.$(OBJEXT) \
bgp_aspath.$(OBJEXT) bgp_community.$(OBJEXT) bgp_attr.$(OBJEXT) \
bgp_debug.$(OBJEXT) bgp_route.$(OBJEXT) bgp_zebra.$(OBJEXT) \
bgp_open.$(OBJEXT) bgp_routemap.$(OBJEXT) bgp_packet.$(OBJEXT) \
bgp_network.$(OBJEXT) bgp_filter.$(OBJEXT) bgp_regex.$(OBJEXT) \
bgp_clist.$(OBJEXT) bgp_dump.$(OBJEXT) bgp_snmp.$(OBJEXT) \
bgp_ecommunity.$(OBJEXT) bgp_mplsvpn.$(OBJEXT) \
bgp_nexthop.$(OBJEXT) bgp_damp.$(OBJEXT) bgp_table.$(OBJEXT) \
bgp_advertise.$(OBJEXT) bgp_vty.$(OBJEXT)
libbgp_a_OBJECTS = $(am_libbgp_a_OBJECTS)
sbin_PROGRAMS = bgpd$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_bgpd_OBJECTS = bgp_main.$(OBJEXT) bgpd.$(OBJEXT) bgp_fsm.$(OBJEXT) \
bgp_aspath.$(OBJEXT) bgp_community.$(OBJEXT) bgp_attr.$(OBJEXT) \
bgp_debug.$(OBJEXT) bgp_route.$(OBJEXT) bgp_zebra.$(OBJEXT) \
bgp_open.$(OBJEXT) bgp_routemap.$(OBJEXT) bgp_packet.$(OBJEXT) \
bgp_network.$(OBJEXT) bgp_filter.$(OBJEXT) bgp_regex.$(OBJEXT) \
bgp_clist.$(OBJEXT) bgp_dump.$(OBJEXT) bgp_snmp.$(OBJEXT) \
bgp_ecommunity.$(OBJEXT) bgp_mplsvpn.$(OBJEXT) \
bgp_nexthop.$(OBJEXT) bgp_damp.$(OBJEXT) bgp_table.$(OBJEXT) \
bgp_advertise.$(OBJEXT) bgp_vty.$(OBJEXT)
bgpd_OBJECTS = $(am_bgpd_OBJECTS)
bgpd_DEPENDENCIES = ../lib/libzebra.a
bgpd_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libbgp_a_LIBADD =
libbgp_a_OBJECTS = bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \
bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \
bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \
bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \
bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o
PROGRAMS = $(sbin_PROGRAMS)
bgpd_OBJECTS = bgp_main.o bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \
bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \
bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \
bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \
bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o
bgpd_DEPENDENCIES = ../lib/libzebra.a
bgpd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/bgp_advertise.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_aspath.Po $(DEPDIR)/bgp_attr.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_clist.Po $(DEPDIR)/bgp_community.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_damp.Po $(DEPDIR)/bgp_debug.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_dump.Po $(DEPDIR)/bgp_ecommunity.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_filter.Po $(DEPDIR)/bgp_fsm.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_main.Po $(DEPDIR)/bgp_mplsvpn.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_network.Po $(DEPDIR)/bgp_nexthop.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_open.Po $(DEPDIR)/bgp_packet.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_regex.Po $(DEPDIR)/bgp_route.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_routemap.Po $(DEPDIR)/bgp_snmp.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_table.Po $(DEPDIR)/bgp_vty.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_zebra.Po $(DEPDIR)/bgpd.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/bgp_advertise.P .deps/bgp_aspath.P .deps/bgp_attr.P \
.deps/bgp_clist.P .deps/bgp_community.P .deps/bgp_damp.P \
.deps/bgp_debug.P .deps/bgp_dump.P .deps/bgp_ecommunity.P \
.deps/bgp_filter.P .deps/bgp_fsm.P .deps/bgp_main.P .deps/bgp_mplsvpn.P \
.deps/bgp_network.P .deps/bgp_nexthop.P .deps/bgp_open.P \
.deps/bgp_packet.P .deps/bgp_regex.P .deps/bgp_route.P \
.deps/bgp_routemap.P .deps/bgp_snmp.P .deps/bgp_table.P .deps/bgp_vty.P \
.deps/bgp_zebra.P .deps/bgpd.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
OBJECTS = $(libbgp_a_OBJECTS) $(bgpd_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign bgpd/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign bgpd/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES)
libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES)
-rm -f libbgp.a
$(AR) cru libbgp.a $(libbgp_a_OBJECTS) $(libbgp_a_LIBADD)
$(libbgp_a_AR) libbgp.a $(libbgp_a_OBJECTS) $(libbgp_a_LIBADD)
$(RANLIB) libbgp.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
bgpd: $(bgpd_OBJECTS) $(bgpd_DEPENDENCIES)
@rm -f bgpd
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
bgpd$(EXEEXT): $(bgpd_OBJECTS) $(bgpd_DEPENDENCIES)
@rm -f bgpd$(EXEEXT)
$(LINK) $(bgpd_LDFLAGS) $(bgpd_OBJECTS) $(bgpd_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_advertise.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_aspath.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_attr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_clist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_community.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_damp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_debug.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_ecommunity.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_fsm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_mplsvpn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_nexthop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_open.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_regex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_route.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_snmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_table.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_vty.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgpd.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = bgpd
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign bgpd/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-sbinPROGRAMS install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
install-sysconfDATA: $(sysconf_DATA)
@ -415,7 +441,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,24 +1,21 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* accconfig.h -- `autoheader' will generate config.h.in for zebra.
Copyright (C) 1998, 1999 Kunihiro Ishiguro <kunihiro@zebra.org> */
/* Define if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
#ifndef _ALL_SOURCE
#undef _ALL_SOURCE
#endif
/* Version of GNU Zebra */
#undef VERSION
/* Define to empty if the keyword does not work. */
#undef const
/* Solaris on x86. */
#undef SOLARIS_X86
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Package name of GNU Zebra */
#undef PACKAGE
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define if host is GNU/Linux */
#undef GNU_LINUX
/* Define if your processor stores words with the most significant
byte first (like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Define if you have the AF_ROUTE socket. */
#undef HAVE_AF_ROUTE
/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON
@ -29,12 +26,123 @@
/* Define if you have the inet_pton function. */
#undef HAVE_INET_PTON
/* Define if you have the setproctitle function. */
#undef HAVE_SETPROCTITLE
/* Define if you have ipv6 stack. */
#undef HAVE_IPV6
/* Define if you wish to support ipv6 router advertisment. */
/* #undef HAVE_RTADV */
/* whether system has GNU regex */
#undef HAVE_GNU_REGEX
/* whether system has SNMP library */
#undef HAVE_SNMP
/* whether sockaddr has a sa_len field */
#undef HAVE_SA_LEN
/* whether sockaddr_in has a sin_len field */
#undef HAVE_SIN_LEN
/* whether sockaddr_un has a sun_len field */
#undef HAVE_SUN_LEN
/* whether sockaddr_in6 has a sin6_scope_id field */
#undef HAVE_SIN6_SCOPE_ID
/* Define if there is socklen_t. */
#undef HAVE_SOCKLEN_T
/* Define if there is sockaddr_dl structure. */
#undef HAVE_SOCKADDR_DL
/* Define if there is ifaliasreq structure. */
#undef HAVE_IFALIASREQ
/* Define if there is in6_aliasreq structure. */
#undef HAVE_IN6_ALIASREQ
/* Define if there is rt_addrinfo structure. */
#undef HAVE_RT_ADDRINFO
/* Define if there is in_pktinfo structure. */
#undef HAVE_INPKTINFO
/* Define if you have the getrusage function. */
#undef HAVE_RUSAGE
/* Define if /proc/net/dev exists. */
#undef HAVE_PROC_NET_DEV
/* Define if /proc/net/if_inet6 exists. */
#undef HAVE_PROC_NET_IF_INET6
/* Define if NET_RT_IFLIST exists in sys/socket.h. */
#undef HAVE_NET_RT_IFLIST
/* Define if you have INRIA ipv6 stack. */
#undef INRIA_IPV6
/* Define if you have KAME project ipv6 stack. */
#undef KAME
/* Define if you have Linux ipv6 stack. */
#undef LINUX_IPV6
/* Define if you have NRL ipv6 stack. */
#undef NRL
/* Define if you have BSDI NRL IPv6 stack. */
#undef BSDI_NRL
/* Define if one-vty option is specified. */
#undef VTYSH
/* Define if interface aliases don't have distinct indeces */
#undef HAVE_BROKEN_ALIASES
/* Define if disable-bgp-announce option is specified. */
#undef DISABLE_BGP_ANNOUNCE
/* PAM support */
#undef USE_PAM
/* TCP/IP communication between zebra and protocol daemon. */
#undef HAVE_TCP_ZEBRA
/* The OSPF NSSA option (RFC1587). */
#undef HAVE_NSSA
/* The OSPF Opaque LSA option (RFC2370). */
#undef HAVE_OPAQUE_LSA
/* Traffic Engineering Extension to OSPF
(draft-katz-yeung-ospf-traffic-06.txt). */
#undef HAVE_OSPF_TE
/* Linux netlink. */
#undef HAVE_NETLINK
/* PATHS */
#undef PATH_ZEBRA_PID
#undef PATH_RIPD_PID
#undef PATH_RIPNGD_PID
#undef PATH_BGPD_PID
#undef PATH_OSPFD_PID
#undef PATH_OSPF6D_PID
/* Define if Solaris */
#undef SUNOS_5
/* Define if FreeBSD 3.2 */
#undef FREEBSD_32
/* Define if OpenBSD */
#undef OPEN_BSD
#ifdef HAVE_IPV6
#ifdef KAME
#ifndef INET6
@ -43,296 +151,300 @@
#endif /* KAME */
#endif /* HAVE_IPV6 */
/* Define if you have the bcopy function. */
#undef HAVE_BCOPY
/* Define if you have the bzero function. */
#undef HAVE_BZERO
/* Define if you have the daemon function. */
#undef HAVE_DAEMON
/* Define if you have the getaddrinfo function. */
#undef HAVE_GETADDRINFO
/* Define if you have the getifaddrs function. */
#undef HAVE_GETIFADDRS
/* Define if you have the if_indextoname function. */
#undef HAVE_IF_INDEXTONAME
/* Define if you have the if_nametoindex function. */
#undef HAVE_IF_NAMETOINDEX
/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON
/* Define if you have the setproctitle function. */
#undef HAVE_SETPROCTITLE
/* Define if you have the snprintf function. */
#undef HAVE_SNPRINTF
/* Define if you have the strerror function. */
#undef HAVE_STRERROR
/* Define if you have the strlcat function. */
#undef HAVE_STRLCAT
/* Define if you have the strlcpy function. */
#undef HAVE_STRLCPY
/* Define if you have the vsnprintf function. */
#undef HAVE_VSNPRINTF
/* Define if you have the <asm/types.h> header file. */
#undef HAVE_ASM_TYPES_H
/* Define if you have the <inet/nd.h> header file. */
#undef HAVE_INET_ND_H
/* Define if you have the <kvm.h> header file. */
#undef HAVE_KVM_H
/* Define if you have the <libutil.h> header file. */
#undef HAVE_LIBUTIL_H
/* Define if you have the <linux/version.h> header file. */
#undef HAVE_LINUX_VERSION_H
/* Define if you have the <net/if_dl.h> header file. */
#undef HAVE_NET_IF_DL_H
/* Define if you have the <net/if_var.h> header file. */
#undef HAVE_NET_IF_VAR_H
/* Define if you have the <net/netopt.h> header file. */
#undef HAVE_NET_NETOPT_H
/* Define if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define if you have the <netinet/icmp6.h> header file. */
#undef HAVE_NETINET_ICMP6_H
/* Define if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define if you have the <netinet/in6.h> header file. */
#undef HAVE_NETINET_IN6_H
/* Define if you have the <netinet/in6_var.h> header file. */
#undef HAVE_NETINET_IN6_VAR_H
/* Define if you have the <netinet/in_var.h> header file. */
#undef HAVE_NETINET_IN_VAR_H
/* Define if you have the <netinet6/nd6.h> header file. */
#undef HAVE_NETINET6_ND6_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H
/* Define if you have the <sys/conf.h> header file. */
#undef HAVE_SYS_CONF_H
/* Define if you have the <sys/ksym.h> header file. */
#undef HAVE_SYS_KSYM_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_H
/* Define if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <sys/times.h> header file. */
#undef HAVE_SYS_TIMES_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the crypt library (-lcrypt). */
#undef HAVE_LIBCRYPT
/* Define if you have the kvm library (-lkvm). */
#undef HAVE_LIBKVM
/* Define if you have the m library (-lm). */
#undef HAVE_LIBM
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the readline library (-lreadline). */
#undef HAVE_LIBREADLINE
/* Define if you have the resolv library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define if you have the socket library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Define if you have the tinfo library (-ltinfo). */
#undef HAVE_LIBTINFO
/* Define if you have the xnet library (-lxnet). */
#undef HAVE_LIBXNET
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
/* Broken Alias */
#undef HAVE_BROKEN_ALIASES
/* Use TCP for zebra communication */
#undef HAVE_TCP_ZEBRA
/* OSPF NSSA */
#undef HAVE_NSSA
/* OSPF Opaque LSA */
#undef HAVE_OPAQUE_LSA
/* OSPF Opaque LSA */
#undef HAVE_OPAQUE_LSA
/* OSPF TE */
#undef HAVE_OSPF_TE
/* SunOS 5 */
#undef SUNOS_5
/* SunOS 5 */
#undef SUNOS_5
/* GNU Linux */
#undef GNU_LINUX
/* FreeBSD 3.2 */
#undef FREEBSD_32
/* OpenBSD */
#undef OPEN_BSD
/* VTY shell */
#undef VTYSH
/* Use PAM for authentication */
#undef USE_PAM
/* Use PAM for authentication */
#undef USE_PAM
/* netlink */
#undef HAVE_NETLINK
/* netlink */
#undef HAVE_NETLINK
/* NET_RT_IFLIST */
#undef HAVE_NET_RT_IFLIST
/* /proc/net/dev */
#undef HAVE_PROC_NET_DEV
/* /proc/net/if_inet6 */
#undef HAVE_PROC_NET_IF_INET6
/* IPv6 */
#undef HAVE_IPV6
/* Inria IPv6 */
#undef INRIA_IPV6
/* IPv6 */
#undef HAVE_IPV6
/* KAME IPv6 */
#undef KAME
/* IPv6 */
#undef HAVE_IPV6
/* NRL */
#undef NRL
#ifdef SUNOS_5
typedef unsigned int u_int32_t;
typedef unsigned short u_int16_t;
typedef unsigned short u_int8_t;
#endif /* SUNOS_5 */
#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#endif /* HAVE_SOCKLEN_T */
/* BSDI */
#undef BSDI_NRL
/* Linux IPv6 */
#undef LINUX_IPV6
/* Disable BGP installation to zebra */
#undef DISABLE_BGP_ANNOUNCE
/* FreeBSD 3.2 */
#undef FREEBSD_32
/* GNU Linux */
#undef GNU_LINUX
/* Define if you have the <asm/types.h> header file. */
#undef HAVE_ASM_TYPES_H
/* Define if you have the `bcopy' function. */
#undef HAVE_BCOPY
/* Broken Alias */
#undef HAVE_BROKEN_ALIASES
/* Define if you have the `bzero' function. */
#undef HAVE_BZERO
/* Define if you have the `daemon' function. */
#undef HAVE_DAEMON
/* Define if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO
/* Define if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS
/* GNU regexp library */
#undef HAVE_GNU_REGEX
/* ifaliasreq */
#undef HAVE_IFALIASREQ
/* Define if you have the `if_indextoname' function. */
#undef HAVE_IF_INDEXTONAME
/* Define if you have the `if_nametoindex' function. */
#undef HAVE_IF_NAMETOINDEX
/* in6_aliasreq */
#undef HAVE_IN6_ALIASREQ
/* Define if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
/* Define if you have the <inet/nd.h> header file. */
#undef HAVE_INET_ND_H
/* inet_ntop */
#undef HAVE_INET_NTOP
/* inet_pton */
#undef HAVE_INET_PTON
/* GNU regexp library */
#undef HAVE_GNU_REGEX
/* in_pktinfo */
#undef HAVE_INPKTINFO
/* Define if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* IPv6 */
#undef HAVE_IPV6
/* Define if you have the <kvm.h> header file. */
#undef HAVE_KVM_H
/* Define if you have the `crypt' library (-lcrypt). */
#undef HAVE_LIBCRYPT
/* Define if you have the `kvm' library (-lkvm). */
#undef HAVE_LIBKVM
/* Define if you have the `m' library (-lm). */
#undef HAVE_LIBM
/* Define if you have the `ncurses' library (-lncurses). */
#undef HAVE_LIBNCURSES
/* Define if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the `readline' library (-lreadline). */
#undef HAVE_LIBREADLINE
/* Define if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Define if you have the `tinfo' library (-ltinfo). */
#undef HAVE_LIBTINFO
/* Define if you have the <libutil.h> header file. */
#undef HAVE_LIBUTIL_H
/* Define if you have the `xnet' library (-lxnet). */
#undef HAVE_LIBXNET
/* Define if you have the <linux/version.h> header file. */
#undef HAVE_LINUX_VERSION_H
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define if you have the <netinet6/nd6.h> header file. */
#undef HAVE_NETINET6_ND6_H
/* Define if you have the <netinet/icmp6.h> header file. */
#undef HAVE_NETINET_ICMP6_H
/* Define if you have the <netinet/in6.h> header file. */
#undef HAVE_NETINET_IN6_H
/* Define if you have the <netinet/in6_var.h> header file. */
#undef HAVE_NETINET_IN6_VAR_H
/* Define if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define if you have the <netinet/in_var.h> header file. */
#undef HAVE_NETINET_IN_VAR_H
/* netlink */
#undef HAVE_NETLINK
/* SNMP */
#undef HAVE_SNMP
#undef HAVE_NETSNMP
/* SNMP */
#undef UCD_COMPATIBLE
/* Define if you have the <net/if_dl.h> header file. */
#undef HAVE_NET_IF_DL_H
/* SNMP */
#undef HAVE_SNMP
/* Define if you have the <net/if_var.h> header file. */
#undef HAVE_NET_IF_VAR_H
/* SNMP */
#undef HAVE_SNMP
/* Define if you have the <net/netopt.h> header file. */
#undef HAVE_NET_NETOPT_H
/* sa_len */
#undef HAVE_SA_LEN
/* NET_RT_IFLIST */
#undef HAVE_NET_RT_IFLIST
/* sin_len */
#undef HAVE_SIN_LEN
/* OSPF NSSA */
#undef HAVE_NSSA
/* sun_len */
#undef HAVE_SUN_LEN
/* OSPF Opaque LSA */
#undef HAVE_OPAQUE_LSA
/* scope id */
#undef HAVE_SIN6_SCOPE_ID
/* OSPF TE */
#undef HAVE_OSPF_TE
/* socklen_t */
#undef HAVE_SOCKLEN_T
/* /proc/net/dev */
#undef HAVE_PROC_NET_DEV
/* sockaddr_dl */
#undef HAVE_SOCKADDR_DL
/* ifaliasreq */
#undef HAVE_IFALIASREQ
/* in6_aliasreq */
#undef HAVE_IN6_ALIASREQ
/* /proc/net/if_inet6 */
#undef HAVE_PROC_NET_IF_INET6
/* rt_addrinfo */
#undef HAVE_RT_ADDRINFO
/* in_pktinfo */
#undef HAVE_INPKTINFO
/* rusage */
#undef HAVE_RUSAGE
/* zebra PID */
#undef PATH_ZEBRA_PID
/* sa_len */
#undef HAVE_SA_LEN
/* Define if you have the `setproctitle' function. */
#undef HAVE_SETPROCTITLE
/* scope id */
#undef HAVE_SIN6_SCOPE_ID
/* sin_len */
#undef HAVE_SIN_LEN
/* SNMP */
#undef HAVE_SNMP
/* Define if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* sockaddr_dl */
#undef HAVE_SOCKADDR_DL
/* socklen_t */
#undef HAVE_SOCKLEN_T
/* Define if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have the `strlcat' function. */
#undef HAVE_STRLCAT
/* Define if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
/* Define if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H
/* sun_len */
#undef HAVE_SUN_LEN
/* Define if you have the <sys/conf.h> header file. */
#undef HAVE_SYS_CONF_H
/* Define if you have the <sys/ksym.h> header file. */
#undef HAVE_SYS_KSYM_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H
/* Define if you have the <sys/times.h> header file. */
#undef HAVE_SYS_TIMES_H
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Use TCP for zebra communication */
#undef HAVE_TCP_ZEBRA
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Inria IPv6 */
#undef INRIA_IPV6
/* KAME IPv6 */
#undef KAME
/* Linux IPv6 */
#undef LINUX_IPV6
/* NRL */
#undef NRL
/* OpenBSD */
#undef OPEN_BSD
/* Name of package */
#undef PACKAGE
/* bgpd PID */
#undef PATH_BGPD_PID
/* ospf6d PID */
#undef PATH_OSPF6D_PID
/* ospfd PID */
#undef PATH_OSPFD_PID
/* ripd PID */
#undef PATH_RIPD_PID
@ -340,12 +452,40 @@
/* ripngd PID */
#undef PATH_RIPNGD_PID
/* bgpd PID */
#undef PATH_BGPD_PID
/* zebra PID */
#undef PATH_ZEBRA_PID
/* ospfd PID */
#undef PATH_OSPFD_PID
/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE
/* ospf6d PID */
#undef PATH_OSPF6D_PID
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* SunOS 5 */
#undef SUNOS_5
/* SNMP */
#undef UCD_COMPATIBLE
/* Use PAM for authentication */
#undef USE_PAM
/* Version number of package */
#undef VERSION
/* VTY shell */
#undef VTYSH
/* Define if your processor stores words with the most significant byte first
(like Motorola and SPARC, unlike Intel and VAX). */
#undef WORDS_BIGENDIAN
/* Define if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Define to empty if `const' does not conform to ANSI C. */
#undef const

8896
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -69,8 +69,6 @@ AC_ARG_ENABLE(ripngd,
[ --disable-ripngd do not build ripngd])
AC_ARG_ENABLE(ospfd,
[ --disable-ospfd do not build ospfd])
AC_ARG_ENABLE(ospfclient,
[ --disable-ospfclient do not build ospfclient])
AC_ARG_ENABLE(ospf6d,
[ --disable-ospf6d do not build ospf6d])
AC_ARG_ENABLE(bgp-announce,
@ -89,7 +87,13 @@ dnl Temporary option until OSPF NSSA implementation complete
AC_ARG_ENABLE(nssa,
[ --enable-nssa enable OSPF NSSA option])
AC_ARG_ENABLE(opaque-lsa,
[ --enable-opaque-lsa enable OSPF Opaque-LSA support (RFC2370)])
[ --enable-opaque-lsa enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
AC_ARG_ENABLE(ospfapi,
[ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database,
(this is the default if --enable-opaque-lsa is not set)])
AC_ARG_ENABLE(ospfclient,
[ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
(this is the default if --disable-ospfapi is set)])
AC_ARG_ENABLE(ospf-te,
[ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
AC_ARG_ENABLE(multipath,
@ -536,10 +540,17 @@ else
OSPFD="ospfd"
fi
if test "${enable_ospfclient}" = "no";then
OSPFCLIENT=""
else
OSPFCLIENT="ospfclient"
OSPFAPI=""
OSPFCLIENT=""
if test "${enable_opaque_lsa}" = "yes"; then
if test "${enable_ospfapi}" != "no";then
OSPFAPI="-DSUPPORT_OSPF_API"
if test "${enable_ospfclient}" != "no";then
OSPFCLIENT="ospfclient"
fi
fi
fi
case "${enable_ripngd}" in
@ -568,6 +579,7 @@ AC_SUBST(VTYSH)
AC_SUBST(INCLUDES)
AC_SUBST(CURSES)
AC_SUBST(OSPFCLIENT)
AC_SUBST(OSPFAPI)
AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
AC_CHECK_LIB(crypt, crypt)
@ -596,55 +608,64 @@ dnl check SNMP library
dnl ------------------
if test "${enable_snmp}" = "yes";then
dnl AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
old_libs="${LIBS}"
LIBS="-L/usr/local/lib"
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
if test "${HAVE_SNMP}" = ""; then
old_libs="${LIBS}"
LIBS="-L/usr/lib"
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(crypto, main, [NEED_CRYPTO=yes ], )
if test "${NEED_CRYPTO}" = ""; then
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes ],)
else
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
fi
AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
if test "${NEED_CRYPTO}" = ""; then
AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
else
AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
fi
LIBS="${old_libs}"
fi
if test "${HAVE_SNMP}" = ""; then
old_libs="${LIBS}"
LIBS="-L/usr/lib"
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
if test "${HAVE_SNMP}" = ""; then
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
if test "${NEED_CRYPTO}" = "yes"; then
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
fi
fi
LIBS="${old_libs}"
fi
LIBS="${old_libs}"
if test "${HAVE_SNMP}" = ""; then
old_libs="${LIBS}"
LIBS="-L/usr/local/lib"
AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
LIBS="${old_libs}"
fi
if test "${HAVE_SNMP}" = ""; then
if test "${NEED_CRYPTO}" = ""; then
old_libs="${LIBS}"
LIBS="-L/usr/lib"
AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
LIBS="${old_libs}"
else
old_libs="${LIBS}"
LIBS="-L/usr/lib"
AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
LIBS="${old_libs}"
fi
old_libs="${LIBS}"
LIBS="-L/usr/local/lib"
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
if test "${HAVE_SNMP}" = ""; then
unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
if test "${NEED_CRYPTO}" = "yes"; then
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
fi
fi
LIBS="${old_libs}"
fi
if test "${HAVE_SNMP}" = "yes"; then
for ac_snmp in /usr/include/net-snmp/library/asn1.h /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
do
test -f "${ac_snmp}" && break
done
case ${ac_snmp} in
/usr/include/net-snmp/*)
AC_DEFINE(HAVE_SNMP,,SNMP)
AC_DEFINE(HAVE_NETSNMP,,SNMP)
AC_DEFINE(UCD_COMPATIBLE,,SNMP)
CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library"
if test "${HAVE_NETSNMP}" = "yes"; then
AC_DEFINE(HAVE_NETSNMP,,SNMP)
LIBS="${LIBS} -lnetsnmp"
LIBS="${LIBS} -lnetsnmp"
else
LIBS="${LIBS} -lsnmp"
LIBS="${LIBS} -lsnmp"
fi
;;
/usr/include/ucd-snmp/*)

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,22 +57,28 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INCLUDES = @INCLUDES@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -87,6 +91,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
info_TEXINFOS = zebra.texi
@ -98,94 +105,263 @@ zebra_TEXINFOS = appendix.texi basic.texi bgpd.texi filter.texi install.texi \
man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS)
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
INFO_DEPS = zebra.info
DVIS = zebra.dvi
TEXINFOS = zebra.texi
man1dir = $(mandir)/man1
man8dir = $(mandir)/man8
MANS = $(man_MANS)
NROFF = nroff
DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
texinfo.tex
MANS = $(man_MANS)
DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
texinfo.tex
all: all-am
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
.SUFFIXES: .dvi .info .ps .texi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
zebra.info: zebra.texi $(zebra_TEXINFOS)
zebra.dvi: zebra.texi $(zebra_TEXINFOS)
DVIPS = dvips
.texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.texinfo.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
.txi.dvi:
TEXINPUTS=.:$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
.txi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
MAKEINFO = @MAKEINFO@
TEXI2DVI = texi2dvi
DVIPS = dvips
.dvi.ps:
$(DVIPS) $< -o $@
uninstall-info-am:
$(PRE_UNINSTALL)
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
(if cd $(DESTDIR)$(infodir); then \
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
else :; fi); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f zebra.aux zebra.cp zebra.cps zebra.dvi zebra.fn zebra.ky zebra.log \
zebra.op zebra.pg zebra.ps zebra.toc zebra.tp zebra.vr
maintainer-clean-aminfo:
cd $(srcdir) && \
for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
man1dir = $(mandir)/man1
install-man1: $(man1_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@$(NORMAL_UNINSTALL)
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
rm -f $(DESTDIR)$(man1dir)/$$inst; \
done
man8dir = $(mandir)/man8
install-man8: $(man8_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man8dir)
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
done
uninstall-man8:
@$(NORMAL_UNINSTALL)
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
rm -f $(DESTDIR)$(man8dir)/$$inst; \
done
tags: TAGS
TAGS:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="${top_distdir}" distdir="$(distdir)" \
dist-info
check-am: all-am
check: check-am
all-am: Makefile $(INFO_DEPS) $(MANS)
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am: $(DVIS)
info: info-am
info-am: $(INFO_DEPS)
install-data-am: install-info-am install-man
install-exec-am:
install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \
for file in $$list; do \
d=$(srcdir); \
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
@ -193,224 +369,44 @@ install-info-am: $(INFO_DEPS)
done; \
done
@$(POST_INSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
@if (install-info --version && \
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \
else : ; fi
install-man: install-man1 install-man8
uninstall-info:
$(PRE_UNINSTALL)
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
ii=yes; \
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
list='$(INFO_DEPS)'; \
for file in $$list; do \
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
done
dist-info: $(INFO_DEPS)
list='$(INFO_DEPS)'; \
for base in $$list; do \
d=$(srcdir); \
for file in `cd $$d && eval echo $$base*`; do \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file; \
done; \
done
mostlyclean-aminfo:
-rm -f zebra.aux zebra.cp zebra.cps zebra.dvi zebra.fn zebra.fns \
zebra.ky zebra.kys zebra.ps zebra.log zebra.pg zebra.toc \
zebra.tp zebra.tps zebra.vr zebra.vrs zebra.op zebra.tr \
zebra.cv zebra.cn
clean-aminfo:
distclean-aminfo:
maintainer-clean-aminfo:
cd $(srcdir) && for i in $(INFO_DEPS); do \
rm -f $$i; \
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
rm -f $$i-[0-9]*; \
fi; \
done
install-man1:
$(mkinstalldirs) $(DESTDIR)$(man1dir)
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
done
uninstall-man1:
@list='$(man1_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.1*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
rm -f $(DESTDIR)$(man1dir)/$$inst; \
done
install-man8:
$(mkinstalldirs) $(DESTDIR)$(man8dir)
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
done
uninstall-man8:
@list='$(man8_MANS)'; \
l2='$(man_MANS)'; for i in $$l2; do \
case "$$i" in \
*.8*) list="$$list $$i" ;; \
esac; \
done; \
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
rm -f $(DESTDIR)$(man8dir)/$$inst; \
done
install-man: $(MANS)
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-man1 install-man8
uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-man1 uninstall-man8
tags: TAGS
TAGS:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = doc
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign doc/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
info-am: $(INFO_DEPS)
info: info-am
dvi-am: $(DVIS)
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: install-info-am install-man
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-info uninstall-man
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS) $(MANS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1 \
$(DESTDIR)$(mandir)/man8
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-aminfo clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-aminfo distclean-generic clean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
uninstall-man1 install-man8 uninstall-man8 install-man uninstall-man \
tags distdir info-am info dvi-am dvi check check-am installcheck-am \
installcheck install-exec-am install-exec install-data-am install-data \
install-am install uninstall-am uninstall all-redirect all-am all \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-man
uninstall-man: uninstall-man1 uninstall-man8
.PHONY: all all-am check check-am clean clean-generic dist-info \
distclean distclean-generic distdir dvi dvi-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-man1 install-man8 install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
mostlyclean-aminfo mostlyclean-generic uninstall uninstall-am \
uninstall-info-am uninstall-man uninstall-man1 uninstall-man8
draft-zebra-00.txt:
groff -T ascii -ms draft-zebra-00.ms > draft-zebra-00.txt
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,11 +90,14 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
noinst_LIBRARIES = libzebra.a
lib_LIBRARIES = libzebra.a
libzebra_a_SOURCES = \
version.c network.c pid_output.c getopt.c getopt1.c daemon.c \
@ -112,243 +119,294 @@ noinst_HEADERS = \
EXTRA_DIST = regex.c regex-gnu.h
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(lib_LIBRARIES)
libzebra_a_AR = $(AR) cru
am_libzebra_a_OBJECTS = version.$(OBJEXT) network.$(OBJEXT) \
pid_output.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
daemon.$(OBJEXT) print_version.$(OBJEXT) checksum.$(OBJEXT) \
vector.$(OBJEXT) linklist.$(OBJEXT) vty.$(OBJEXT) \
command.$(OBJEXT) sockunion.$(OBJEXT) prefix.$(OBJEXT) \
thread.$(OBJEXT) if.$(OBJEXT) memory.$(OBJEXT) buffer.$(OBJEXT) \
table.$(OBJEXT) hash.$(OBJEXT) filter.$(OBJEXT) \
routemap.$(OBJEXT) distribute.$(OBJEXT) stream.$(OBJEXT) \
str.$(OBJEXT) log.$(OBJEXT) plist.$(OBJEXT) zclient.$(OBJEXT) \
sockopt.$(OBJEXT) smux.$(OBJEXT) md5.$(OBJEXT) \
if_rmap.$(OBJEXT) keychain.$(OBJEXT)
libzebra_a_OBJECTS = $(am_libzebra_a_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libzebra_a_OBJECTS = version.o network.o pid_output.o getopt.o \
getopt1.o daemon.o print_version.o checksum.o vector.o linklist.o vty.o \
command.o sockunion.o prefix.o thread.o if.o memory.o buffer.o table.o \
hash.o filter.o routemap.o distribute.o stream.o str.o log.o plist.o \
zclient.o sockopt.o smux.o md5.o if_rmap.o keychain.o
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/buffer.Po $(DEPDIR)/checksum.Po \
@AMDEP_TRUE@ $(DEPDIR)/command.Po $(DEPDIR)/daemon.Po \
@AMDEP_TRUE@ $(DEPDIR)/distribute.Po $(DEPDIR)/filter.Po \
@AMDEP_TRUE@ $(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po \
@AMDEP_TRUE@ $(DEPDIR)/hash.Po $(DEPDIR)/if.Po \
@AMDEP_TRUE@ $(DEPDIR)/if_rmap.Po $(DEPDIR)/keychain.Po \
@AMDEP_TRUE@ $(DEPDIR)/linklist.Po $(DEPDIR)/log.Po \
@AMDEP_TRUE@ $(DEPDIR)/md5.Po $(DEPDIR)/memory.Po \
@AMDEP_TRUE@ $(DEPDIR)/network.Po $(DEPDIR)/pid_output.Po \
@AMDEP_TRUE@ $(DEPDIR)/plist.Po $(DEPDIR)/prefix.Po \
@AMDEP_TRUE@ $(DEPDIR)/print_version.Po $(DEPDIR)/routemap.Po \
@AMDEP_TRUE@ $(DEPDIR)/smux.Po $(DEPDIR)/sockopt.Po \
@AMDEP_TRUE@ $(DEPDIR)/sockunion.Po $(DEPDIR)/str.Po \
@AMDEP_TRUE@ $(DEPDIR)/stream.Po $(DEPDIR)/table.Po \
@AMDEP_TRUE@ $(DEPDIR)/thread.Po $(DEPDIR)/vector.Po \
@AMDEP_TRUE@ $(DEPDIR)/version.Po $(DEPDIR)/vty.Po \
@AMDEP_TRUE@ $(DEPDIR)/zclient.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libzebra_a_SOURCES)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/buffer.P .deps/checksum.P .deps/command.P \
.deps/daemon.P .deps/distribute.P .deps/filter.P .deps/getopt.P \
.deps/getopt1.P .deps/hash.P .deps/if.P .deps/if_rmap.P \
.deps/keychain.P .deps/linklist.P .deps/log.P .deps/md5.P \
.deps/memory.P .deps/network.P .deps/pid_output.P .deps/plist.P \
.deps/prefix.P .deps/print_version.P .deps/routemap.P .deps/smux.P \
.deps/sockopt.P .deps/sockunion.P .deps/str.P .deps/stream.P \
.deps/table.P .deps/thread.P .deps/vector.P .deps/version.P .deps/vty.P \
.deps/zclient.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(libzebra_a_SOURCES)
OBJECTS = $(libzebra_a_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign lib/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
AR = ar
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
$(RANLIB) $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
rm -f $(DESTDIR)$(libdir)/$$p; \
done
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libzebra.a: $(libzebra_a_OBJECTS) $(libzebra_a_DEPENDENCIES)
-rm -f libzebra.a
$(libzebra_a_AR) libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
$(RANLIB) libzebra.a
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/buffer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/checksum.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/command.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/daemon.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/distribute.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/if.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/if_rmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/keychain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/linklist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memory.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/pid_output.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/plist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/prefix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print_version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/smux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sockopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sockunion.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/str.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/table.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/thread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vector.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vty.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zclient.Po@am__quote@
libzebra.a: $(libzebra_a_OBJECTS) $(libzebra_a_DEPENDENCIES)
-rm -f libzebra.a
$(AR) cru libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
$(RANLIB) libzebra.a
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = lib
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign lib/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-tags mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-tags distclean-depend distclean-generic \
clean-am
clean-am: clean-generic clean-libLIBRARIES mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-tags \
maintainer-clean-depend maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-libLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \
distclean-depend clean-depend maintainer-clean-depend info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \
mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-libLIBRARIES
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-libLIBRARIES distclean distclean-compile distclean-depend \
distclean-generic distclean-tags distdir dvi dvi-am info \
info-am install install-am install-data install-data-am \
install-exec install-exec-am install-info install-info-am \
install-libLIBRARIES install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-libLIBRARIES
version.c: Makefile
echo '' >version.c
echo 'char *host_name = "$(host_alias)";' >>version.c
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -123,291 +130,317 @@ ospf6d_LDADD = ../lib/libzebra.a
sysconf_DATA = ospf6d.conf.sample
EXTRA_DIST = $(sysconf_DATA)
subdir = ospf6d
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libospf6_a_AR = $(AR) cru
libospf6_a_LIBADD =
am_libospf6_a_OBJECTS = ospf6_dump.$(OBJEXT) ospf6d.$(OBJEXT) \
ospf6_interface.$(OBJEXT) ospf6_network.$(OBJEXT) \
ospf6_neighbor.$(OBJEXT) ospf6_message.$(OBJEXT) \
ospf6_lsa.$(OBJEXT) ospf6_spf.$(OBJEXT) ospf6_route.$(OBJEXT) \
ospf6_zebra.$(OBJEXT) ospf6_ism.$(OBJEXT) ospf6_dbex.$(OBJEXT) \
ospf6_lsdb.$(OBJEXT) ospf6_prefix.$(OBJEXT) ospf6_top.$(OBJEXT) \
ospf6_area.$(OBJEXT) ospf6_nsm.$(OBJEXT) \
ospf6_routemap.$(OBJEXT) ospf6_proto.$(OBJEXT) \
ospf6_hook.$(OBJEXT) ospf6_asbr.$(OBJEXT) \
ospf6_bintree.$(OBJEXT) ospf6_linklist.$(OBJEXT) \
ospf6_abr.$(OBJEXT) ospf6_intra.$(OBJEXT) ospf6_damp.$(OBJEXT)
libospf6_a_OBJECTS = $(am_libospf6_a_OBJECTS)
sbin_PROGRAMS = ospf6d$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_ospf6d_OBJECTS = ospf6_main.$(OBJEXT) ospf6_dump.$(OBJEXT) \
ospf6d.$(OBJEXT) ospf6_interface.$(OBJEXT) \
ospf6_network.$(OBJEXT) ospf6_neighbor.$(OBJEXT) \
ospf6_message.$(OBJEXT) ospf6_lsa.$(OBJEXT) ospf6_spf.$(OBJEXT) \
ospf6_route.$(OBJEXT) ospf6_zebra.$(OBJEXT) ospf6_ism.$(OBJEXT) \
ospf6_dbex.$(OBJEXT) ospf6_lsdb.$(OBJEXT) \
ospf6_prefix.$(OBJEXT) ospf6_top.$(OBJEXT) ospf6_area.$(OBJEXT) \
ospf6_nsm.$(OBJEXT) ospf6_routemap.$(OBJEXT) \
ospf6_proto.$(OBJEXT) ospf6_hook.$(OBJEXT) ospf6_asbr.$(OBJEXT) \
ospf6_bintree.$(OBJEXT) ospf6_linklist.$(OBJEXT) \
ospf6_abr.$(OBJEXT) ospf6_intra.$(OBJEXT) ospf6_damp.$(OBJEXT)
ospf6d_OBJECTS = $(am_ospf6d_OBJECTS)
ospf6d_DEPENDENCIES = ../lib/libzebra.a
ospf6d_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libospf6_a_LIBADD =
libospf6_a_OBJECTS = ospf6_dump.o ospf6d.o ospf6_interface.o \
ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \
ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \
ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \
ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \
ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o
PROGRAMS = $(sbin_PROGRAMS)
ospf6d_OBJECTS = ospf6_main.o ospf6_dump.o ospf6d.o ospf6_interface.o \
ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \
ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \
ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \
ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \
ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o
ospf6d_DEPENDENCIES = ../lib/libzebra.a
ospf6d_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf6_abr.Po $(DEPDIR)/ospf6_area.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_asbr.Po $(DEPDIR)/ospf6_bintree.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_damp.Po $(DEPDIR)/ospf6_dbex.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_dump.Po $(DEPDIR)/ospf6_hook.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_interface.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_intra.Po $(DEPDIR)/ospf6_ism.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_linklist.Po $(DEPDIR)/ospf6_lsa.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_lsdb.Po $(DEPDIR)/ospf6_main.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_message.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_neighbor.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_network.Po $(DEPDIR)/ospf6_nsm.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_prefix.Po $(DEPDIR)/ospf6_proto.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_route.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_routemap.Po $(DEPDIR)/ospf6_spf.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_top.Po $(DEPDIR)/ospf6_zebra.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6d.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = README ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/ospf6_abr.P .deps/ospf6_area.P .deps/ospf6_asbr.P \
.deps/ospf6_bintree.P .deps/ospf6_damp.P .deps/ospf6_dbex.P \
.deps/ospf6_dump.P .deps/ospf6_hook.P .deps/ospf6_interface.P \
.deps/ospf6_intra.P .deps/ospf6_ism.P .deps/ospf6_linklist.P \
.deps/ospf6_lsa.P .deps/ospf6_lsdb.P .deps/ospf6_main.P \
.deps/ospf6_message.P .deps/ospf6_neighbor.P .deps/ospf6_network.P \
.deps/ospf6_nsm.P .deps/ospf6_prefix.P .deps/ospf6_proto.P \
.deps/ospf6_route.P .deps/ospf6_routemap.P .deps/ospf6_spf.P \
.deps/ospf6_top.P .deps/ospf6_zebra.P .deps/ospf6d.P
DIST_COMMON = README $(noinst_HEADERS) ChangeLog Makefile.am \
Makefile.in
SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
OBJECTS = $(libospf6_a_OBJECTS) $(ospf6d_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospf6d/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign ospf6d/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES)
libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES)
-rm -f libospf6.a
$(AR) cru libospf6.a $(libospf6_a_OBJECTS) $(libospf6_a_LIBADD)
$(libospf6_a_AR) libospf6.a $(libospf6_a_OBJECTS) $(libospf6_a_LIBADD)
$(RANLIB) libospf6.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
ospf6d: $(ospf6d_OBJECTS) $(ospf6d_DEPENDENCIES)
@rm -f ospf6d
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
ospf6d$(EXEEXT): $(ospf6d_OBJECTS) $(ospf6d_DEPENDENCIES)
@rm -f ospf6d$(EXEEXT)
$(LINK) $(ospf6d_LDFLAGS) $(ospf6d_OBJECTS) $(ospf6d_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_abr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_area.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_asbr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_bintree.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_damp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_dbex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_hook.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_intra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_ism.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_linklist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_lsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_lsdb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_message.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_neighbor.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_nsm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_prefix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_proto.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_route.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_spf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_top.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6d.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = ospf6d
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospf6d/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-sbinPROGRAMS install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
install-sysconfDATA: $(sysconf_DATA)
@ -422,7 +455,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,17 +90,22 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = -I../lib -I../
noinst_LIBRARIES = libospfapiclient.a
lib_LIBRARIES = libospfapiclient.a
sbin_PROGRAMS = ospfclient
libospfapiclient_a_SOURCES = \
ospf_apiclient.c
noinst_HEADERS = \
ospfapiheaderdir = $(includedir)/ospfapi
ospfapiheader_HEADERS = \
ospf_apiclient.h
@ -105,269 +114,291 @@ ospfclient_SOURCES = \
ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a
subdir = ospfclient
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(lib_LIBRARIES)
libospfapiclient_a_AR = $(AR) cru
libospfapiclient_a_LIBADD =
am_libospfapiclient_a_OBJECTS = ospf_apiclient.$(OBJEXT)
libospfapiclient_a_OBJECTS = $(am_libospfapiclient_a_OBJECTS)
sbin_PROGRAMS = ospfclient$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I..
am_ospfclient_OBJECTS = ospfclient.$(OBJEXT) ospf_apiclient.$(OBJEXT)
ospfclient_OBJECTS = $(am_ospfclient_OBJECTS)
ospfclient_DEPENDENCIES = ../ospfd/libospf.a ../lib/libzebra.a
ospfclient_LDFLAGS =
DEFS = @DEFS@
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libospfapiclient_a_LIBADD =
libospfapiclient_a_OBJECTS = ospf_apiclient.o
PROGRAMS = $(sbin_PROGRAMS)
ospfclient_OBJECTS = ospfclient.o ospf_apiclient.o
ospfclient_DEPENDENCIES = ../ospfd/libospf.a ../lib/libzebra.a
ospfclient_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_apiclient.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospfclient.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
HEADERS = $(ospfapiheader_HEADERS)
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/ospf_apiclient.P .deps/ospfclient.P
DIST_COMMON = README $(ospfapiheader_HEADERS) AUTHORS COPYING ChangeLog \
INSTALL Makefile.am Makefile.in NEWS
SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
OBJECTS = $(libospfapiclient_a_OBJECTS) $(ospfclient_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfclient/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign ospfclient/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
AR = ar
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
$(RANLIB) $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
rm -f $(DESTDIR)$(libdir)/$$p; \
done
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
libospfapiclient.a: $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_DEPENDENCIES)
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libospfapiclient.a: $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_DEPENDENCIES)
-rm -f libospfapiclient.a
$(AR) cru libospfapiclient.a $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_LIBADD)
$(libospfapiclient_a_AR) libospfapiclient.a $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_LIBADD)
$(RANLIB) libospfapiclient.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
ospfclient: $(ospfclient_OBJECTS) $(ospfclient_DEPENDENCIES)
@rm -f ospfclient
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
ospfclient$(EXEEXT): $(ospfclient_OBJECTS) $(ospfclient_DEPENDENCIES)
@rm -f ospfclient$(EXEEXT)
$(LINK) $(ospfclient_LDFLAGS) $(ospfclient_OBJECTS) $(ospfclient_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_apiclient.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospfclient.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
install-ospfapiheaderHEADERS: $(ospfapiheader_HEADERS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(ospfapiheaderdir)
@list='$(ospfapiheader_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfapiheaderdir)/$$f"; \
$(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfapiheaderdir)/$$f; \
done
uninstall-ospfapiheaderHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(ospfapiheader_HEADERS)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(ospfapiheaderdir)/$$f"; \
rm -f $(DESTDIR)$(ospfapiheaderdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = ospfclient
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospfclient/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(sbindir) $(DESTDIR)$(ospfapiheaderdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am: install-ospfapiheaderHEADERS
install-exec-am: install-libLIBRARIES install-sbinPROGRAMS
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
uninstall-ospfapiheaderHEADERS uninstall-sbinPROGRAMS
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-libLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am \
install-libLIBRARIES install-man install-ospfapiheaderHEADERS \
install-sbinPROGRAMS install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic tags \
uninstall uninstall-am uninstall-info-am uninstall-libLIBRARIES \
uninstall-ospfapiheaderHEADERS uninstall-sbinPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -1,7 +1,6 @@
## Process this file with automake to produce Makefile.in.
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
LOCAL_OPTS = @OSPFAPI@
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA=@INSTALL@ -m 600

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,13 +90,16 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
LOCAL_OPTS = -DSUPPORT_OSPF_API
LOCAL_OPTS = @OSPFAPI@
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA = @INSTALL@ -m 600
noinst_LIBRARIES = libospf.a
lib_LIBRARIES = libospf.a
sbin_PROGRAMS = ospfd
libospf_a_SOURCES = \
@ -103,12 +110,17 @@ libospf_a_SOURCES = \
ospf_opaque.c ospf_te.c ospf_vty.c ospf_api.c ospf_apiserver.c
ospfdheaderdir = $(includedir)/ospfd
ospfdheader_HEADERS = \
ospf_api.h ospf_asbr.h ospf_dump.h ospf_lsa.h ospf_lsdb.h \
ospf_nsm.h ospf_ism.h ospf_opaque.h ospfd.h
noinst_HEADERS = \
ospf_dump.h ospf_interface.h ospf_ism.h ospf_neighbor.h \
ospf_network.h ospf_nsm.h ospf_packet.h ospf_zebra.h ospfd.h \
ospf_lsa.h ospf_spf.h ospf_route.h ospf_ase.h ospf_abr.h ospf_ia.h \
ospf_flood.h ospf_lsdb.h ospf_asbr.h ospf_snmp.h ospf_opaque.h \
ospf_te.h ospf_vty.h ospf_api.h ospf_apiserver.h
ospf_interface.h ospf_neighbor.h ospf_network.h ospf_packet.h \
ospf_zebra.h ospf_spf.h ospf_route.h ospf_ase.h ospf_abr.h ospf_ia.h \
ospf_flood.h ospf_snmp.h ospf_te.h ospf_vty.h ospf_apiserver.h
ospfd_SOURCES = \
@ -120,289 +132,355 @@ ospfd_LDADD = ../lib/libzebra.a
sysconf_DATA = ospfd.conf.sample
EXTRA_DIST = $(sysconf_DATA) OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt
subdir = ospfd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(lib_LIBRARIES)
libospf_a_AR = $(AR) cru
libospf_a_LIBADD =
am_libospf_a_OBJECTS = ospfd.$(OBJEXT) ospf_zebra.$(OBJEXT) \
ospf_interface.$(OBJEXT) ospf_ism.$(OBJEXT) \
ospf_neighbor.$(OBJEXT) ospf_nsm.$(OBJEXT) ospf_dump.$(OBJEXT) \
ospf_network.$(OBJEXT) ospf_packet.$(OBJEXT) ospf_lsa.$(OBJEXT) \
ospf_spf.$(OBJEXT) ospf_route.$(OBJEXT) ospf_ase.$(OBJEXT) \
ospf_abr.$(OBJEXT) ospf_ia.$(OBJEXT) ospf_flood.$(OBJEXT) \
ospf_lsdb.$(OBJEXT) ospf_asbr.$(OBJEXT) ospf_routemap.$(OBJEXT) \
ospf_snmp.$(OBJEXT) ospf_opaque.$(OBJEXT) ospf_te.$(OBJEXT) \
ospf_vty.$(OBJEXT) ospf_api.$(OBJEXT) ospf_apiserver.$(OBJEXT)
libospf_a_OBJECTS = $(am_libospf_a_OBJECTS)
sbin_PROGRAMS = ospfd$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_ospfd_OBJECTS = ospf_main.$(OBJEXT) ospfd.$(OBJEXT) \
ospf_zebra.$(OBJEXT) ospf_interface.$(OBJEXT) \
ospf_ism.$(OBJEXT) ospf_neighbor.$(OBJEXT) ospf_nsm.$(OBJEXT) \
ospf_dump.$(OBJEXT) ospf_network.$(OBJEXT) \
ospf_packet.$(OBJEXT) ospf_lsa.$(OBJEXT) ospf_spf.$(OBJEXT) \
ospf_route.$(OBJEXT) ospf_ase.$(OBJEXT) ospf_abr.$(OBJEXT) \
ospf_ia.$(OBJEXT) ospf_flood.$(OBJEXT) ospf_lsdb.$(OBJEXT) \
ospf_asbr.$(OBJEXT) ospf_routemap.$(OBJEXT) ospf_snmp.$(OBJEXT) \
ospf_opaque.$(OBJEXT) ospf_te.$(OBJEXT) ospf_vty.$(OBJEXT) \
ospf_api.$(OBJEXT) ospf_apiserver.$(OBJEXT)
ospfd_OBJECTS = $(am_ospfd_OBJECTS)
ospfd_DEPENDENCIES = ../lib/libzebra.a
ospfd_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libospf_a_LIBADD =
libospf_a_OBJECTS = ospfd.o ospf_zebra.o ospf_interface.o ospf_ism.o \
ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o ospf_packet.o \
ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o ospf_ia.o \
ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o ospf_snmp.o \
ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o ospf_apiserver.o
PROGRAMS = $(sbin_PROGRAMS)
ospfd_OBJECTS = ospf_main.o ospfd.o ospf_zebra.o ospf_interface.o \
ospf_ism.o ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o \
ospf_packet.o ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o \
ospf_ia.o ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o \
ospf_snmp.o ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o \
ospf_apiserver.o
ospfd_DEPENDENCIES = ../lib/libzebra.a
ospfd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_abr.Po $(DEPDIR)/ospf_api.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_apiserver.Po $(DEPDIR)/ospf_asbr.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_ase.Po $(DEPDIR)/ospf_dump.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_flood.Po $(DEPDIR)/ospf_ia.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_interface.Po $(DEPDIR)/ospf_ism.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_lsa.Po $(DEPDIR)/ospf_lsdb.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_main.Po $(DEPDIR)/ospf_neighbor.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_network.Po $(DEPDIR)/ospf_nsm.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_opaque.Po $(DEPDIR)/ospf_packet.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_route.Po $(DEPDIR)/ospf_routemap.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_snmp.Po $(DEPDIR)/ospf_spf.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_te.Po $(DEPDIR)/ospf_vty.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_zebra.Po $(DEPDIR)/ospfd.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS) $(ospfdheader_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/ospf_abr.P .deps/ospf_api.P .deps/ospf_apiserver.P \
.deps/ospf_asbr.P .deps/ospf_ase.P .deps/ospf_dump.P .deps/ospf_flood.P \
.deps/ospf_ia.P .deps/ospf_interface.P .deps/ospf_ism.P \
.deps/ospf_lsa.P .deps/ospf_lsdb.P .deps/ospf_main.P \
.deps/ospf_neighbor.P .deps/ospf_network.P .deps/ospf_nsm.P \
.deps/ospf_opaque.P .deps/ospf_packet.P .deps/ospf_route.P \
.deps/ospf_routemap.P .deps/ospf_snmp.P .deps/ospf_spf.P \
.deps/ospf_te.P .deps/ospf_vty.P .deps/ospf_zebra.P .deps/ospfd.P
DIST_COMMON = $(noinst_HEADERS) $(ospfdheader_HEADERS) ChangeLog \
Makefile.am Makefile.in
SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
OBJECTS = $(libospf_a_OBJECTS) $(ospfd_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfd/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign ospfd/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
AR = ar
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libdir)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
$(RANLIB) $(DESTDIR)$(libdir)/$$p; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
rm -f $(DESTDIR)$(libdir)/$$p; \
done
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES)
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES)
-rm -f libospf.a
$(AR) cru libospf.a $(libospf_a_OBJECTS) $(libospf_a_LIBADD)
$(libospf_a_AR) libospf.a $(libospf_a_OBJECTS) $(libospf_a_LIBADD)
$(RANLIB) libospf.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
ospfd: $(ospfd_OBJECTS) $(ospfd_DEPENDENCIES)
@rm -f ospfd
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
ospfd$(EXEEXT): $(ospfd_OBJECTS) $(ospfd_DEPENDENCIES)
@rm -f ospfd$(EXEEXT)
$(LINK) $(ospfd_LDFLAGS) $(ospfd_OBJECTS) $(ospfd_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_abr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_api.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_apiserver.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_asbr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ase.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_flood.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ia.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ism.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_lsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_lsdb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_neighbor.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_nsm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_opaque.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_packet.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_route.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_snmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_spf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_te.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_vty.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospfd.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
install-ospfdheaderHEADERS: $(ospfdheader_HEADERS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(ospfdheaderdir)
@list='$(ospfdheader_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfdheaderdir)/$$f"; \
$(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfdheaderdir)/$$f; \
done
uninstall-ospfdheaderHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(ospfdheader_HEADERS)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(ospfdheaderdir)/$$f"; \
rm -f $(DESTDIR)$(ospfdheaderdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = ospfd
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospfd/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(ospfdheaderdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am: install-ospfdheaderHEADERS
install-exec-am: install-libLIBRARIES install-sbinPROGRAMS \
install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
uninstall-ospfdheaderHEADERS uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-libLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am \
install-libLIBRARIES install-man install-ospfdheaderHEADERS \
install-sbinPROGRAMS install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-libLIBRARIES \
uninstall-ospfdheaderHEADERS uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
install-sysconfDATA: $(sysconf_DATA)
@ -417,7 +495,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1490,7 +1490,8 @@ ospf_apiserver_opaque_lsa_new (struct ospf_area *area,
}
/* Set opaque-LSA header fields. */
lsa_header_set (s, options, protolsa->type, protolsa->id);
lsa_header_set (s, options, protolsa->type, protolsa->id,
area->ospf->router_id);
/* Set opaque-LSA body fields. */
stream_put (s, ((u_char *) protolsa) + sizeof (struct lsa_header),

View File

@ -49,7 +49,8 @@
#define DEBUG
struct ospf_route *
ospf_find_asbr_route (struct route_table *rtrs, struct prefix_ipv4 *asbr)
ospf_find_asbr_route (struct ospf *ospf,
struct route_table *rtrs, struct prefix_ipv4 *asbr)
{
struct route_node *rn;
struct ospf_route *or, *best = NULL;
@ -69,7 +70,7 @@ ospf_find_asbr_route (struct route_table *rtrs, struct prefix_ipv4 *asbr)
chosen = list_new ();
/* First try to find intra-area non-bb paths. */
if (!CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
for (node = listhead ((list) rn->info); node; nextnode (node))
if ((or = getdata (node)) != NULL)
if (or->cost < OSPF_LS_INFINITY)
@ -147,12 +148,12 @@ ospf_ase_complete_direct_routes (struct ospf_route *ro, struct in_addr nexthop)
}
int
ospf_ase_forward_address_check (struct in_addr fwd_addr)
ospf_ase_forward_address_check (struct ospf *ospf, struct in_addr fwd_addr)
{
listnode ifn;
struct ospf_interface *oi;
for (ifn = listhead (ospf_top->oiflist); ifn; nextnode (ifn))
for (ifn = listhead (ospf->oiflist); ifn; nextnode (ifn))
if ((oi = getdata (ifn)) != NULL)
if (if_is_operative (oi->ifp))
if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
@ -164,7 +165,8 @@ ospf_ase_forward_address_check (struct in_addr fwd_addr)
/* Calculate ASBR route. */
struct ospf_route *
ospf_ase_calculate_asbr_route (struct route_table *rt_network,
ospf_ase_calculate_asbr_route (struct ospf *ospf,
struct route_table *rt_network,
struct route_table *rt_router,
struct as_external_lsa *al)
{
@ -178,7 +180,7 @@ ospf_ase_calculate_asbr_route (struct route_table *rt_network,
asbr.prefixlen = IPV4_MAX_BITLEN;
apply_mask_ipv4 (&asbr);
asbr_route = ospf_find_asbr_route (rt_router, &asbr);
asbr_route = ospf_find_asbr_route (ospf, rt_router, &asbr);
if (asbr_route == NULL)
{
@ -198,7 +200,7 @@ ospf_ase_calculate_asbr_route (struct route_table *rt_network,
zlog_info ("ospf_ase_calculate(): "
"Forwarding address is not 0.0.0.0.");
if (! ospf_ase_forward_address_check (al->e[0].fwd_addr))
if (! ospf_ase_forward_address_check (ospf, al->e[0].fwd_addr))
{
zlog_info ("ospf_ase_calculate(): "
"Forwarding address is one of our addresses, Ignore.");
@ -279,7 +281,7 @@ ospf_ase_calculate_new_route (struct ospf_lsa *lsa,
#define OSPF_ASE_CALC_INTERVAL 1
int
ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
ospf_ase_calculate_route (struct ospf *ospf, struct ospf_lsa * lsa)
{
u_int32_t metric;
struct as_external_lsa *al;
@ -343,7 +345,7 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
asbr.prefixlen = IPV4_MAX_BITLEN;
apply_mask_ipv4 (&asbr);
asbr_route = ospf_find_asbr_route (ospf_top->new_rtrs, &asbr);
asbr_route = ospf_find_asbr_route (ospf, ospf->new_rtrs, &asbr);
if (asbr_route == NULL)
{
zlog_info ("Route[External]: Can't find originating ASBR route");
@ -383,7 +385,7 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
routing table entry must specify an intra-area or inter-area
path; if no such path exists, do nothing with the LSA and
consider the next in the list. */
if (! ospf_ase_forward_address_check (al->e[0].fwd_addr))
if (! ospf_ase_forward_address_check (ospf, al->e[0].fwd_addr))
{
zlog_info ("Route[External]: Forwarding address is our router address");
return 0;
@ -393,7 +395,7 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
asbr.prefix = al->e[0].fwd_addr;
asbr.prefixlen = IPV4_MAX_BITLEN;
rn = route_node_match (ospf_top->new_table, (struct prefix *) &asbr);
rn = route_node_match (ospf->new_table, (struct prefix *) &asbr);
if (rn == NULL || (asbr_route = rn->info) == NULL)
{
@ -437,7 +439,7 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
/* if there is a Intra/Inter area route to the N
do not install external route */
if ((rn = route_node_lookup (ospf_top->new_table,
if ((rn = route_node_lookup (ospf->new_table,
(struct prefix *) &p)) != NULL
&& (rn->info != NULL))
{
@ -448,14 +450,14 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
/* Find a route to the same dest */
/* If there is no route, create new one. */
if ((rn = route_node_lookup (ospf_top->new_external_route,
if ((rn = route_node_lookup (ospf->new_external_route,
(struct prefix *) &p)) == NULL
|| (or = rn->info) == NULL)
{
zlog_info ("Route[External]: Adding a new route %s/%d",
inet_ntoa (p.prefix), p.prefixlen);
ospf_route_add (ospf_top->new_external_route, &p, new, asbr_route);
ospf_route_add (ospf->new_external_route, &p, new, asbr_route);
if (al->e[0].fwd_addr.s_addr)
ospf_ase_complete_direct_routes (new, al->e[0].fwd_addr);
@ -470,7 +472,7 @@ ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
external paths. When all paths are type 2 external
paths, the paths with the smallest advertised type 2
metric are always preferred. */
ret = ospf_route_cmp (new, or);
ret = ospf_route_cmp (ospf, new, or);
/* (c) If the new AS external path is still indistinguishable
from the current paths in the N's routing table entry,
@ -610,10 +612,11 @@ int
ospf_ase_calculate_timer (struct thread *t)
{
struct ospf *ospf;
struct ospf_lsa *lsa;
struct route_node *rn;
#ifdef HAVE_NSSA
listnode node;
struct ospf_area *area;
listnode node;
struct ospf_area *area;
#endif /* HAVE_NSSA */
ospf = THREAD_ARG (t);
@ -624,13 +627,13 @@ ospf_ase_calculate_timer (struct thread *t)
ospf->ase_calc = 0;
/* Calculate external route for each AS-external-LSA */
foreach_lsa (EXTERNAL_LSDB (ospf_top), NULL, 0,
ospf_ase_calculate_route);
LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
ospf_ase_calculate_route (ospf, lsa);
#ifdef HAVE_NSSA
/* This version simple adds to the table all NSSA areas */
if (ospf_top->anyNSSA)
for (node = listhead (ospf_top->areas); node; nextnode (node))
if (ospf->anyNSSA)
for (node = listhead (ospf->areas); node; nextnode (node))
{
area = getdata (node);
if (IS_DEBUG_OSPF_NSSA)
@ -638,9 +641,8 @@ ospf_ase_calculate_timer (struct thread *t)
inet_ntoa (area->area_id));
if (area->external_routing == OSPF_AREA_NSSA)
foreach_lsa (NSSA_LSDB (area), NULL, 0,
ospf_ase_calculate_route);
LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
ospf_ase_calculate_route (ospf, lsa);
}
/* kevinm: And add the NSSA routes in ospf_top */
foreach_lsa(NSSA_LSDB (ospf_top), NULL, 0,
@ -650,35 +652,35 @@ ospf_ase_calculate_timer (struct thread *t)
/* Compare old and new external routing table and install the
difference info zebra/kernel */
ospf_ase_compare_tables (ospf_top->new_external_route,
ospf_top->old_external_route);
ospf_ase_compare_tables (ospf->new_external_route,
ospf->old_external_route);
/* Delete old external routing table */
ospf_route_table_free (ospf_top->old_external_route);
ospf_top->old_external_route = ospf_top->new_external_route;
ospf_top->new_external_route = route_table_init ();
ospf_route_table_free (ospf->old_external_route);
ospf->old_external_route = ospf->new_external_route;
ospf->new_external_route = route_table_init ();
}
return 0;
}
void
ospf_ase_calculate_schedule ()
ospf_ase_calculate_schedule (struct ospf *ospf)
{
if (! ospf_top)
if (ospf == NULL)
return;
ospf_top->ase_calc = 1;
ospf->ase_calc = 1;
}
void
ospf_ase_calculate_timer_add ()
ospf_ase_calculate_timer_add (struct ospf *ospf)
{
if (! ospf_top)
if (ospf == NULL)
return;
if (! ospf_top->t_ase_calc)
ospf_top->t_ase_calc = thread_add_timer (master, ospf_ase_calculate_timer,
ospf_top, OSPF_ASE_CALC_INTERVAL);
if (! ospf->t_ase_calc)
ospf->t_ase_calc = thread_add_timer (master, ospf_ase_calculate_timer,
ospf, OSPF_ASE_CALC_INTERVAL);
}
void
@ -756,7 +758,7 @@ ospf_ase_external_lsas_finish (struct route_table *rt)
}
void
ospf_ase_incremental_update (struct ospf_lsa *lsa, struct ospf *top)
ospf_ase_incremental_update (struct ospf *ospf, struct ospf_lsa *lsa)
{
list lsas;
listnode node;
@ -773,31 +775,31 @@ ospf_ase_incremental_update (struct ospf_lsa *lsa, struct ospf *top)
/* if new_table is NULL, there was no spf calculation, thus
incremental update is unneeded */
if (!top->new_table)
if (!ospf->new_table)
return;
/* If there is already an intra-area or inter-area route
to the destination, no recalculation is necessary
(internal routes take precedence). */
rn = route_node_lookup (top->new_table, (struct prefix *) &p);
rn = route_node_lookup (ospf->new_table, (struct prefix *) &p);
if (rn && rn->info)
{
route_unlock_node (rn);
return;
}
rn = route_node_lookup (top->external_lsas, (struct prefix *) &p);
rn = route_node_lookup (ospf->external_lsas, (struct prefix *) &p);
assert (rn && rn->info);
lsas = rn->info;
for (node = listhead (lsas); node; nextnode (node))
if ((lsa = getdata (node)) != NULL)
ospf_ase_calculate_route (lsa, NULL, 0);
ospf_ase_calculate_route (ospf, lsa);
/* prepare temporary old routing table for compare */
tmp_old = route_table_init ();
rn = route_node_lookup (top->old_external_route, (struct prefix *) &p);
rn = route_node_lookup (ospf->old_external_route, (struct prefix *) &p);
if (rn && rn->info)
{
rn2 = route_node_get (tmp_old, (struct prefix *) &p);
@ -805,23 +807,23 @@ ospf_ase_incremental_update (struct ospf_lsa *lsa, struct ospf *top)
}
/* install changes to zebra */
ospf_ase_compare_tables (top->new_external_route, tmp_old);
ospf_ase_compare_tables (ospf->new_external_route, tmp_old);
/* update top->old_external_route table */
/* update ospf->old_external_route table */
if (rn && rn->info)
ospf_route_free ((struct ospf_route *) rn->info);
rn2 = route_node_lookup (top->new_external_route, (struct prefix *) &p);
/* if new route exists, install it to top->old_external_route */
rn2 = route_node_lookup (ospf->new_external_route, (struct prefix *) &p);
/* if new route exists, install it to ospf->old_external_route */
if (rn2 && rn2->info)
{
if (!rn)
rn = route_node_get (top->old_external_route, (struct prefix *) &p);
rn = route_node_get (ospf->old_external_route, (struct prefix *) &p);
rn->info = rn2->info;
}
else
{
/* remove route node from top->old_external_route */
/* remove route node from ospf->old_external_route */
if (rn)
{
rn->info = NULL;
@ -832,7 +834,7 @@ ospf_ase_incremental_update (struct ospf_lsa *lsa, struct ospf *top)
if (rn2)
{
/* rn2->info is stored in route node of top->old_external_route */
/* rn2->info is stored in route node of ospf->old_external_route */
rn2->info = NULL;
route_unlock_node (rn2);
route_unlock_node (rn2);

View File

@ -111,7 +111,8 @@ ospf_external_info_check (struct ospf_lsa *lsa)
}
void
ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
ospf_process_self_originated_lsa (struct ospf *ospf,
struct ospf_lsa *new, struct ospf_area *area)
{
struct ospf_interface *oi;
struct external_info *ei;
@ -148,7 +149,7 @@ ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
/* Look through all interfaces, not just area, since interface
could be moved from one area to another. */
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
/* These are sanity check. */
if ((oi = getdata (node)) != NULL)
if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &new->data->id))
@ -179,7 +180,7 @@ ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
break;
case OSPF_SUMMARY_LSA:
case OSPF_ASBR_SUMMARY_LSA:
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
break;
case OSPF_AS_EXTERNAL_LSA :
#ifdef HAVE_NSSA
@ -187,9 +188,9 @@ ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
#endif /* HAVE_NSSA */
ei = ospf_external_info_check (new);
if (ei)
ospf_external_lsa_refresh (new, ei, LSA_REFRESH_FORCE);
ospf_external_lsa_refresh (ospf, new, ei, LSA_REFRESH_FORCE);
else
ospf_lsa_flush_as (new);
ospf_lsa_flush_as (ospf, new);
break;
#ifdef HAVE_OPAQUE_LSA
case OSPF_OPAQUE_AREA_LSA:
@ -229,8 +230,8 @@ ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
ABRs calculate external routes from Type-5's and non-self Type-7s
*/
int
ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
struct ospf_lsa *new)
ospf_flood (struct ospf *ospf, struct ospf_neighbor *nbr,
struct ospf_lsa *current, struct ospf_lsa *new)
{
struct ospf_interface *oi;
struct timeval now;
@ -281,7 +282,7 @@ ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
DR and the LSA was received from a router other than the
Backup DR) the LSA will be flooded back out the receiving
interface. */
lsa_ack_flag = ospf_flood_through (nbr, new);
lsa_ack_flag = ospf_flood_through (ospf, nbr, new);
#ifdef HAVE_OPAQUE_LSA
/* Remove the current database copy from all neighbors' Link state
@ -302,17 +303,17 @@ ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
#ifdef HAVE_OPAQUE_LSA
case OSPF_OPAQUE_AS_LSA:
#endif /* HAVE_OPAQUE_LSA */
ospf_ls_retransmit_delete_nbr_all (NULL, current);
ospf_ls_retransmit_delete_nbr_as (ospf, current);
break;
default:
ospf_ls_retransmit_delete_nbr_all (nbr->oi->area, current);
ospf_ls_retransmit_delete_nbr_area (nbr->oi->area, current);
break;
}
}
/* Do some internal house keeping that is needed here */
SET_FLAG (new->flags, OSPF_LSA_RECEIVED);
ospf_lsa_is_self_originated (new); /* Let it set the flag */
ospf_lsa_is_self_originated (ospf, new); /* Let it set the flag */
/* Install the new LSA in the link state database
(replacing the current database copy). This may cause the
@ -321,15 +322,7 @@ ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
procedure cannot overwrite the newly installed LSA until
MinLSArrival seconds have elapsed. */
new = ospf_lsa_install (nbr->oi, new);
#ifdef HAVE_NSSA
if (IS_DEBUG_OSPF_NSSA)
zlog_info ("LSA[Flooding]: Type-%d installed", new->data->type);
/* if (new->data->type == OSPF_AS_NSSA_LSA )
return 0; */
#endif /* HAVE_NSSA */
new = ospf_lsa_install (ospf, nbr->oi, new);
/* Acknowledge the receipt of the LSA by sending a Link State
Acknowledgment packet back out the receiving interface. */
@ -340,11 +333,11 @@ ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
receiving router itself, the router must take special action,
either updating the LSA or in some cases flushing it from
the routing domain. */
if (ospf_lsa_is_self_originated (new))
ospf_process_self_originated_lsa (new, oi->area);
if (ospf_lsa_is_self_originated (ospf, new))
ospf_process_self_originated_lsa (ospf, new, oi->area);
else
/* Update statistics value for OSPF-MIB. */
ospf_top->rx_lsa_count++;
ospf->rx_lsa_count++;
return 0;
}
@ -355,6 +348,7 @@ ospf_flood_through_interface (struct ospf_interface *oi,
struct ospf_neighbor *inbr,
struct ospf_lsa *lsa)
{
struct ospf *ospf = oi->ospf;
struct ospf_neighbor *onbr;
struct route_node *rn;
int retx_flag;
@ -440,7 +434,7 @@ ospf_flood_through_interface (struct ospf_interface *oi,
continue;
}
if (IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf_top->opaque)
if (IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf->opaque)
&& IS_LSA_SELF (lsa)
&& onbr->state == NSM_Full)
{
@ -579,8 +573,8 @@ ospf_flood_through_interface (struct ospf_interface *oi,
}
int
ospf_flood_through_area (struct ospf_area * area,struct ospf_neighbor *inbr,
struct ospf_lsa *lsa)
ospf_flood_through_area (struct ospf_area *area,
struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
{
listnode node;
int lsa_ack_flag = 0;
@ -618,7 +612,8 @@ ospf_flood_through_area (struct ospf_area * area,struct ospf_neighbor *inbr,
}
int
ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
ospf_flood_through_as (struct ospf *ospf, struct ospf_neighbor *inbr,
struct ospf_lsa *lsa)
{
listnode node;
int lsa_ack_flag;
@ -643,7 +638,7 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
zlog_info ("Flood/AS: NSSA TRANSLATED LSA");
#endif /* HAVE_NSSA */
for (node = listhead (ospf_top->areas); node; nextnode (node))
for (node = listhead (ospf->areas); node; nextnode (node))
{
int continue_flag = 0;
struct ospf_area *area = getdata (node);
@ -659,13 +654,12 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
case OSPF_AREA_NSSA: /* Sending Type 5 or 7 into NSSA area */
#ifdef HAVE_NSSA
/* Type-7, flood NSSA area */
if (lsa->data->type == OSPF_AS_NSSA_LSA &&
area == lsa->area) {
if (lsa->data->type == OSPF_AS_NSSA_LSA
&& area == lsa->area)
/* We will send it. */
continue_flag = 0;
} else {
else
continue_flag = 1; /* Skip this NSSA area for Type-5's et al */
}
break;
#endif /* HAVE_NSSA */
@ -707,7 +701,8 @@ ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
}
int
ospf_flood_through (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
ospf_flood_through (struct ospf *ospf,
struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
{
int lsa_ack_flag = 0;
@ -736,7 +731,7 @@ ospf_flood_through (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
#ifdef HAVE_OPAQUE_LSA
case OSPF_OPAQUE_AS_LSA:
#endif /* HAVE_OPAQUE_LSA */
lsa_ack_flag = ospf_flood_through_as (inbr, lsa);
lsa_ack_flag = ospf_flood_through_as (ospf, inbr, lsa);
break;
#ifdef HAVE_NSSA
/* Type-7 Only received within NSSA, then flooded */
@ -770,7 +765,7 @@ ospf_flood_through (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
#ifdef HAVE_OPAQUE_LSA
case OSPF_OPAQUE_AS_LSA:
#endif /* HAVE_OPAQUE_LSA */
lsa_ack_flag = ospf_flood_through_as (inbr, lsa);
lsa_ack_flag = ospf_flood_through_as (ospf, inbr, lsa);
break;
#ifdef HAVE_NSSA
/* Type-7 Only received within NSSA, then flooded */
@ -964,62 +959,44 @@ ospf_ls_retransmit_lookup (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
return ospf_lsdb_lookup (&nbr->ls_rxmt, lsa);
}
/* Remove All neighbor/interface's Link State Retransmit list in area. */
void
ospf_ls_retransmit_delete_nbr_all (struct ospf_area *area,
struct ospf_lsa *lsa)
ospf_ls_retransmit_delete_nbr_if (struct ospf_interface *oi,
struct ospf_lsa *lsa)
{
listnode node;
list oiflist = area ? area->oiflist : ospf_top->oiflist;
for (node = listhead (oiflist); node; nextnode (node))
{
struct ospf_interface *oi = getdata (node);
struct route_node *rn;
struct ospf_neighbor *nbr;
struct ospf_lsa *lsr;
if (ospf_if_is_enable (oi))
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
/* If LSA find in LS-retransmit list, then remove it. */
if ((nbr = rn->info) != NULL)
{
lsr = ospf_ls_retransmit_lookup (nbr, lsa);
struct route_node *rn;
struct ospf_neighbor *nbr;
struct ospf_lsa *lsr;
if (ospf_if_is_enable (oi))
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
/* If LSA find in LS-retransmit list, then remove it. */
if ((nbr = rn->info) != NULL)
{
lsr = ospf_ls_retransmit_lookup (nbr, lsa);
/* If LSA find in ls-retransmit list, remove it. */
if (lsr != NULL && lsr->data->ls_seqnum == lsa->data->ls_seqnum)
ospf_ls_retransmit_delete (nbr, lsr);
}
}
/* If LSA find in ls-retransmit list, remove it. */
if (lsr != NULL && lsr->data->ls_seqnum == lsa->data->ls_seqnum)
ospf_ls_retransmit_delete (nbr, lsr);
}
}
/* Add LSA to the current database copy of all neighbors'
Link state retransmission lists. */
void
ospf_ls_retransmit_add_nbr_all (struct ospf_interface *ospfi,
struct ospf_lsa *lsa)
ospf_ls_retransmit_delete_nbr_area (struct ospf_area *area,
struct ospf_lsa *lsa)
{
listnode node;
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
{
struct ospf_interface *oi = getdata (node);
struct route_node *rn;
struct ospf_neighbor *nbr;
struct ospf_lsa *old;
for (node = listhead (area->oiflist); node; nextnode (node))
ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
}
if (ospf_if_is_enable (oi))
if (OSPF_AREA_SAME (&ospfi->area, &oi->area))
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL)
if (nbr->state == NSM_Full)
{
if ((old = ospf_ls_retransmit_lookup (nbr, lsa)))
ospf_ls_retransmit_delete (nbr, old);
void
ospf_ls_retransmit_delete_nbr_as (struct ospf *ospf, struct ospf_lsa *lsa)
{
listnode node;
ospf_ls_retransmit_add (nbr, lsa);
}
}
for (node = listhead (ospf->oiflist); node; nextnode (node))
ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
}
@ -1031,22 +1008,13 @@ ospf_lsa_flush_area (struct ospf_lsa *lsa, struct ospf_area *area)
{
lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
ospf_flood_through_area (area, NULL, lsa);
ospf_lsa_maxage (lsa);
ospf_lsa_maxage (area->ospf, lsa);
}
void
ospf_lsa_flush_as (struct ospf_lsa *lsa)
ospf_lsa_flush_as (struct ospf *ospf, struct ospf_lsa *lsa)
{
lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
ospf_flood_through_as (NULL, lsa);
ospf_lsa_maxage (lsa);
}
/* Flush LSA through AS -- used for AS-external-LSAs. */
void
ospf_flush_through_as (struct ospf_lsa *lsa)
{
lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
ospf_flood_through_as (NULL, lsa);
ospf_lsa_maxage (lsa);
ospf_flood_through_as (ospf, NULL, lsa);
ospf_lsa_maxage (ospf, lsa);
}

View File

@ -32,6 +32,7 @@
#include "stream.h"
#include "log.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_spf.h"
#include "ospfd/ospf_interface.h"
#include "ospfd/ospf_ism.h"
@ -42,7 +43,6 @@
#include "ospfd/ospf_nsm.h"
#include "ospfd/ospf_packet.h"
#include "ospfd/ospf_abr.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_network.h"
#include "ospfd/ospf_dump.h"
#ifdef HAVE_SNMP
@ -58,7 +58,7 @@ ospf_if_get_output_cost (struct ospf_interface *oi)
u_int32_t bw, refbw;
bw = oi->ifp->bandwidth ? oi->ifp->bandwidth : OSPF_DEFAULT_BANDWIDTH;
refbw = ospf_top ? ospf_top->ref_bandwidth : OSPF_DEFAULT_REF_BANDWIDTH;
refbw = oi->ospf->ref_bandwidth;
/* A specifed ip ospf cost overrides a calculated one. */
if (OSPF_IF_PARAM_CONFIGURED (IF_DEF_PARAMS (oi->ifp), output_cost_cmd) ||
@ -160,7 +160,7 @@ ospf_delete_from_if (struct interface *ifp, struct ospf_interface *oi)
}
struct ospf_interface *
ospf_if_new (struct interface *ifp, struct prefix *p)
ospf_if_new (struct ospf *ospf, struct interface *ifp, struct prefix *p)
{
struct ospf_interface *oi;
@ -172,7 +172,7 @@ ospf_if_new (struct interface *ifp, struct prefix *p)
oi->address = p;
ospf_add_to_if (ifp, oi);
listnode_add (ospf_top->oiflist, oi);
listnode_add (ospf->oiflist, oi);
/* Clear self-originated network-LSA. */
oi->network_lsa_self = NULL;
@ -193,7 +193,6 @@ ospf_if_new (struct interface *ifp, struct prefix *p)
/* Add pseudo neighbor. */
oi->nbr_self = ospf_nbr_new (oi);
oi->nbr_self->state = NSM_TwoWay;
/* oi->nbr_self->router_id = ospf_top->router_id; */
oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
oi->nbr_self->options = OSPF_OPTION_E;
@ -201,11 +200,13 @@ ospf_if_new (struct interface *ifp, struct prefix *p)
oi->t_ls_upd_event = NULL;
oi->t_ls_ack_direct = NULL;
oi->crypt_seqnum = time (NULL);
#ifdef HAVE_OPAQUE_LSA
ospf_opaque_type9_lsa_init (oi);
#endif /* HAVE_OPAQUE_LSA */
oi->ospf = ospf_top;
oi->ospf = ospf;
return oi;
}
@ -307,7 +308,7 @@ ospf_if_free (struct ospf_interface *oi)
ospf_delete_from_if (oi->ifp, oi);
listnode_delete (ospf_top->oiflist, oi);
listnode_delete (oi->ospf->oiflist, oi);
listnode_delete (oi->area->oiflist, oi);
memset (oi, 0, sizeof (*oi));
@ -320,13 +321,13 @@ ospf_if_free (struct ospf_interface *oi)
* return it if yes.
*/
struct ospf_interface *
ospf_if_is_configured (struct in_addr *address)
ospf_if_is_configured (struct ospf *ospf, struct in_addr *address)
{
listnode node;
struct ospf_interface *oi;
struct prefix *addr;
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
{
if (oi->type == OSPF_IFTYPE_POINTOPOINT)
@ -348,12 +349,13 @@ ospf_if_is_up (struct ospf_interface *oi)
}
struct ospf_interface *
ospf_if_lookup_by_local_addr (struct interface *ifp, struct in_addr address)
ospf_if_lookup_by_local_addr (struct ospf *ospf,
struct interface *ifp, struct in_addr address)
{
listnode node;
struct ospf_interface *oi;
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
{
if (ifp && oi->ifp != ifp)
@ -367,34 +369,36 @@ ospf_if_lookup_by_local_addr (struct interface *ifp, struct in_addr address)
}
struct ospf_interface *
ospf_if_lookup_by_prefix (struct prefix_ipv4 *p)
ospf_if_lookup_by_prefix (struct ospf *ospf, struct prefix_ipv4 *p)
{
listnode node;
struct ospf_interface *oi;
struct prefix ptmp;
/* Check each Interface. */
for (node = listhead (ospf_top->oiflist); node; nextnode (node)) {
if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
{
if (oi->type == OSPF_IFTYPE_POINTOPOINT) {
prefix_copy (&ptmp, oi->connected->destination);
ptmp.prefixlen = IPV4_MAX_BITLEN;
}
else
prefix_copy (&ptmp, oi->address);
for (node = listhead (ospf->oiflist); node; nextnode (node))
{
if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
{
if (oi->type == OSPF_IFTYPE_POINTOPOINT)
{
prefix_copy (&ptmp, oi->connected->destination);
ptmp.prefixlen = IPV4_MAX_BITLEN;
}
else
prefix_copy (&ptmp, oi->address);
apply_mask (&ptmp);
if (prefix_same (&ptmp, (struct prefix *) p))
return oi;
}
}
apply_mask (&ptmp);
if (prefix_same (&ptmp, (struct prefix *) p))
return oi;
}
}
return NULL;
}
/* determine receiving interface by source of packet */
struct ospf_interface *
ospf_if_lookup_recv_interface (struct in_addr src)
ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src)
{
listnode node;
struct prefix_ipv4 addr;
@ -406,7 +410,7 @@ ospf_if_lookup_recv_interface (struct in_addr src)
match = NULL;
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
{
oi = getdata (node);
@ -439,6 +443,8 @@ ospf_if_stream_set (struct ospf_interface *oi)
void
ospf_if_stream_unset (struct ospf_interface *oi)
{
struct ospf *ospf = oi->ospf;
if (oi->obuf)
{
ospf_fifo_free (oi->obuf);
@ -446,13 +452,14 @@ ospf_if_stream_unset (struct ospf_interface *oi)
if (oi->on_write_q)
{
listnode_delete (ospf_top->oi_write_q, oi);
if (list_isempty(ospf_top->oi_write_q))
OSPF_TIMER_OFF (ospf_top->t_write);
listnode_delete (ospf->oi_write_q, oi);
if (list_isempty(ospf->oi_write_q))
OSPF_TIMER_OFF (ospf->t_write);
oi->on_write_q = 0;
}
}
}
struct ospf_if_params *
ospf_new_if_params ()
@ -662,7 +669,7 @@ ospf_if_up (struct ospf_interface *oi)
else
{
if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
ospf_if_add_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
ospf_if_add_allspfrouters (oi->ospf, oi->address, oi->ifp->ifindex);
ospf_if_stream_set (oi);
OSPF_ISM_EVENT_SCHEDULE (oi, ISM_InterfaceUp);
}
@ -680,7 +687,7 @@ ospf_if_down (struct ospf_interface *oi)
/* Shutdown packet reception and sending */
ospf_if_stream_unset (oi);
if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
ospf_if_drop_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
ospf_if_drop_allspfrouters (oi->ospf, oi->address, oi->ifp->ifindex);
return 1;
@ -713,7 +720,7 @@ ospf_vl_data_free (struct ospf_vl_data *vl_data)
u_int vlink_count = 0;
struct ospf_interface *
ospf_vl_new (struct ospf_vl_data *vl_data)
ospf_vl_new (struct ospf *ospf, struct ospf_vl_data *vl_data)
{
struct ospf_interface * voi;
struct interface * vi;
@ -748,7 +755,7 @@ ospf_vl_new (struct ospf_vl_data *vl_data)
co->address = (struct prefix *)p;
voi = ospf_if_new (vi, co->address);
voi = ospf_if_new (ospf, vi, co->address);
if (voi == NULL)
{
if (IS_DEBUG_OSPF_EVENT)
@ -768,7 +775,7 @@ ospf_vl_new (struct ospf_vl_data *vl_data)
zlog_info ("ospf_vl_new(): set if->name to %s", vi->name);
area_id.s_addr = 0;
area = ospf_area_get (area_id, OSPF_AREA_ID_FORMAT_ADDRESS);
area = ospf_area_get (ospf, area_id, OSPF_AREA_ID_FORMAT_ADDRESS);
voi->area = area;
if (IS_DEBUG_OSPF_EVENT)
@ -800,7 +807,7 @@ ospf_vl_lookup (struct ospf_area *area, struct in_addr vl_peer)
struct ospf_vl_data *vl_data;
listnode node;
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (area->ospf->vlinks); node; nextnode (node))
if ((vl_data = getdata (node)) != NULL)
if (vl_data->vl_peer.s_addr == vl_peer.s_addr &&
IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
@ -826,16 +833,16 @@ ospf_vl_shutdown (struct ospf_vl_data *vl_data)
}
void
ospf_vl_add (struct ospf_vl_data *vl_data)
ospf_vl_add (struct ospf *ospf, struct ospf_vl_data *vl_data)
{
listnode_add (ospf_top->vlinks, vl_data);
listnode_add (ospf->vlinks, vl_data);
#ifdef HAVE_SNMP
ospf_snmp_vl_add (vl_data);
#endif /* HAVE_SNMP */
}
void
ospf_vl_delete (struct ospf_vl_data *vl_data)
ospf_vl_delete (struct ospf *ospf, struct ospf_vl_data *vl_data)
{
ospf_vl_shutdown (vl_data);
ospf_vl_if_delete (vl_data);
@ -843,7 +850,7 @@ ospf_vl_delete (struct ospf_vl_data *vl_data)
#ifdef HAVE_SNMP
ospf_snmp_vl_delete (vl_data);
#endif /* HAVE_SNMP */
listnode_delete (ospf_top->vlinks, vl_data);
listnode_delete (ospf->vlinks, vl_data);
ospf_vl_data_free (vl_data);
}
@ -899,9 +906,10 @@ ospf_vl_set_params (struct ospf_vl_data *vl_data, struct vertex *v)
void
ospf_vl_up_check (struct ospf_area * area, struct in_addr rid,
ospf_vl_up_check (struct ospf_area *area, struct in_addr rid,
struct vertex *v)
{
struct ospf *ospf = area->ospf;
listnode node;
struct ospf_vl_data *vl_data;
struct ospf_interface *oi;
@ -913,7 +921,7 @@ ospf_vl_up_check (struct ospf_area * area, struct in_addr rid,
zlog_info ("ospf_vl_up_check(): Area is %s", inet_ntoa (area->area_id));
}
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (ospf->vlinks); node; nextnode (node))
{
if ((vl_data = getdata (node)) == NULL)
continue;
@ -950,23 +958,23 @@ ospf_vl_up_check (struct ospf_area * area, struct in_addr rid,
}
void
ospf_vl_unapprove ()
ospf_vl_unapprove (struct ospf *ospf)
{
listnode node;
struct ospf_vl_data *vl_data;
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (ospf->vlinks); node; nextnode (node))
if ((vl_data = getdata (node)) != NULL)
UNSET_FLAG (vl_data->flags, OSPF_VL_FLAG_APPROVED);
}
void
ospf_vl_shut_unapproved ()
ospf_vl_shut_unapproved (struct ospf *ospf)
{
listnode node;
struct ospf_vl_data *vl_data;
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (ospf->vlinks); node; nextnode (node))
if ((vl_data = getdata (node)) != NULL)
if (!CHECK_FLAG (vl_data->flags, OSPF_VL_FLAG_APPROVED))
ospf_vl_shutdown (vl_data);
@ -992,7 +1000,7 @@ ospf_vls_in_area (struct ospf_area *area)
struct ospf_vl_data *vl_data;
int c = 0;
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (area->ospf->vlinks); node; nextnode (node))
if ((vl_data = getdata (node)) != NULL)
if (IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
c++;

View File

@ -192,7 +192,7 @@ ospf_dr_eligible_routers (struct route_table *nbrs, list el_list)
/* Generate AdjOK? NSM event. */
void
ospf_dr_change (struct route_table *nbrs)
ospf_dr_change (struct ospf *ospf, struct route_table *nbrs)
{
struct route_node *rn;
struct ospf_neighbor *nbr;
@ -204,7 +204,7 @@ ospf_dr_change (struct route_table *nbrs)
/* Is neighbor upper 2-Way? */
if (nbr->state >= NSM_TwoWay)
/* Ignore myself. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf->router_id))
OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_AdjOK);
}
@ -252,17 +252,17 @@ ospf_dr_election (struct ospf_interface *oi)
/* if DR or BDR changes, cause AdjOK? neighbor event. */
if (!IPV4_ADDR_SAME (&old_dr, &DR (oi)) ||
!IPV4_ADDR_SAME (&old_bdr, &BDR (oi)))
ospf_dr_change (oi->nbrs);
ospf_dr_change (oi->ospf, oi->nbrs);
if (oi->type == OSPF_IFTYPE_BROADCAST || oi->type == OSPF_IFTYPE_POINTOPOINT)
{
/* Multicast group change. */
if ((old_state != ISM_DR && old_state != ISM_Backup) &&
(new_state == ISM_DR || new_state == ISM_Backup))
ospf_if_add_alldrouters (ospf_top, oi->address, oi->ifp->ifindex);
ospf_if_add_alldrouters (oi->ospf, oi->address, oi->ifp->ifindex);
else if ((old_state == ISM_DR || old_state == ISM_Backup) &&
(new_state != ISM_DR && new_state != ISM_Backup))
ospf_if_drop_alldrouters (ospf_top, oi->address, oi->ifp->ifindex);
ospf_if_drop_alldrouters (oi->ospf, oi->address, oi->ifp->ifindex);
}
return new_state;
@ -404,7 +404,7 @@ ism_interface_up (struct ospf_interface *oi)
next_state = ISM_Waiting;
if (oi->type == OSPF_IFTYPE_NBMA)
ospf_nbr_nbma_if_update (oi);
ospf_nbr_nbma_if_update (oi->ospf, oi);
/* ospf_ism_event (t); */
return next_state;
@ -582,7 +582,7 @@ ism_change_state (struct ospf_interface *oi, int state)
oi->state_change++;
if (old_state == ISM_Down || state == ISM_Down)
ospf_check_abr_status();
ospf_check_abr_status (oi->ospf);
/* Originate router-LSA. */
if (oi->area)
@ -621,7 +621,7 @@ ism_change_state (struct ospf_interface *oi, int state)
#endif /* HAVE_OPAQUE_LSA */
/* Check area border status. */
ospf_check_abr_status ();
ospf_check_abr_status (oi->ospf);
}
/* Execute ISM event process. */

File diff suppressed because it is too large Load Diff

View File

@ -207,14 +207,6 @@ struct as_external_lsa
#define IS_LSA_SELF(L) (CHECK_FLAG ((L)->flags, OSPF_LSA_SELF))
#define IS_LSA_MAXAGE(L) (LS_AGE ((L)) == OSPF_LSA_MAXAGE)
#define OSPF_SUMMARY_LSA_SELF_FIND_BY_PREFIX(A,P) \
foreach_lsa (SUMMARY_LSDB ((A)), \
(struct prefix_ipv4 *) (P), 0, find_summary)
#define OSPF_SUMMARY_ASBR_LSA_SELF_FIND_BY_PREFIX(A,P) \
foreach_lsa (ASBR_SUMMARY_LSDB ((A)), \
(struct prefix_ipv4 *) (P), 0, find_asbr_summary)
#define OSPF_LSA_UPDATE_DELAY 2
#define OSPF_LSA_UPDATE_TIMER_ON(T,F) \
@ -237,15 +229,16 @@ int get_age (struct ospf_lsa *);
u_int16_t ospf_lsa_checksum (struct lsa_header *);
struct stream;
const char *dump_lsa_key (struct ospf_lsa *lsa);
u_int32_t lsa_seqnum_increment (struct ospf_lsa *lsa);
void lsa_header_set (struct stream *s, u_char options, u_char type, struct in_addr id);
struct ospf_neighbor *ospf_nbr_lookup_ptop (struct route_table *nbrs, struct in_addr router_id);
const char *dump_lsa_key (struct ospf_lsa *);
u_int32_t lsa_seqnum_increment (struct ospf_lsa *);
void lsa_header_set (struct stream *, u_char, u_char, struct in_addr,
struct in_addr);
struct ospf_neighbor *ospf_nbr_lookup_ptop (struct ospf_interface *);
/* Prototype for LSA primitive. */
struct ospf_lsa *ospf_lsa_new ();
struct ospf_lsa *ospf_lsa_dup ();
void ospf_lsa_free (struct ospf_lsa *lsa);
void ospf_lsa_free (struct ospf_lsa *);
struct ospf_lsa *ospf_lsa_lock (struct ospf_lsa *);
void ospf_lsa_unlock (struct ospf_lsa *);
void ospf_lsa_discard (struct ospf_lsa *);
@ -267,17 +260,18 @@ struct ospf_lsa *ospf_summary_lsa_originate (struct prefix_ipv4 *, u_int32_t,
struct ospf_lsa *ospf_summary_asbr_lsa_originate (struct prefix_ipv4 *,
u_int32_t,
struct ospf_area *);
struct ospf_lsa *ospf_summary_lsa_refresh (struct ospf_lsa *);
struct ospf_lsa *ospf_summary_asbr_lsa_refresh (struct ospf_lsa *);
struct ospf_lsa *ospf_summary_lsa_refresh (struct ospf *, struct ospf_lsa *);
struct ospf_lsa *ospf_summary_asbr_lsa_refresh (struct ospf *, struct ospf_lsa *);
struct ospf_lsa *ospf_lsa_install (struct ospf_interface *, struct ospf_lsa *);
struct ospf_lsa *ospf_lsa_install (struct ospf *,
struct ospf_interface *, struct ospf_lsa *);
void ospf_external_lsa_flush (u_char, struct prefix_ipv4 *,
void ospf_external_lsa_flush (struct ospf *, u_char, struct prefix_ipv4 *,
unsigned int, struct in_addr);
struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *oi);
struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *);
struct ospf_lsa *ospf_external_lsa_originate (struct external_info *);
struct ospf_lsa *ospf_external_lsa_originate (struct ospf *, struct external_info *);
int ospf_external_lsa_originate_timer (struct thread *);
struct ospf_lsa *ospf_lsa_lookup (struct ospf_area *, u_int32_t,
struct in_addr, struct in_addr);
@ -286,24 +280,25 @@ struct ospf_lsa *ospf_lsa_lookup_by_header (struct ospf_area *,
struct lsa_header *);
int ospf_lsa_more_recent (struct ospf_lsa *, struct ospf_lsa *);
int ospf_lsa_different (struct ospf_lsa *, struct ospf_lsa *);
void ospf_flush_self_originated_lsas_now (struct ospf *top);
void ospf_flush_self_originated_lsas_now (struct ospf *);
int ospf_lsa_is_self_originated (struct ospf_lsa *);
int ospf_lsa_is_self_originated (struct ospf *, struct ospf_lsa *);
int find_summary (struct ospf_lsa *, void *, int);
int find_asbr_summary (struct ospf_lsa *, void *, int);
struct ospf_lsa *ospf_lsa_lookup_by_prefix (struct ospf_lsdb *, u_char,
struct prefix_ipv4 *,
struct in_addr);
void ospf_lsa_maxage (struct ospf_lsa *);
void ospf_lsa_maxage (struct ospf *, struct ospf_lsa *);
u_int32_t get_metric (u_char *);
int ospf_lsa_maxage_walker (struct thread *);
void ospf_external_lsa_refresh_default (void);
void ospf_external_lsa_refresh_default (struct ospf *);
void ospf_external_lsa_refresh_type (u_char, int);
void ospf_external_lsa_refresh (struct ospf_lsa *, struct external_info *ei,
int force);
struct in_addr ospf_lsa_unique_id (struct ospf_lsdb *, u_char,
void ospf_external_lsa_refresh_type (struct ospf *, u_char, int);
void ospf_external_lsa_refresh (struct ospf *, struct ospf_lsa *,
struct external_info *, int);
struct in_addr ospf_lsa_unique_id (struct ospf *, struct ospf_lsdb *, u_char,
struct prefix_ipv4 *);
void ospf_schedule_lsa_flood_area (struct ospf_area *, struct ospf_lsa *);
void ospf_schedule_lsa_flush_area (struct ospf_area *, struct ospf_lsa *);
@ -312,16 +307,17 @@ void ospf_refresher_register_lsa (struct ospf *, struct ospf_lsa *);
void ospf_refresher_unregister_lsa (struct ospf *, struct ospf_lsa *);
int ospf_lsa_refresh_walker (struct thread *);
void ospf_lsa_init ();
void ospf_lsa_maxage_delete (struct ospf *, struct ospf_lsa *);
void ospf_lsa_maxage_delete (struct ospf_lsa *);
void ospf_discard_from_db (struct ospf_lsdb *, struct ospf_lsa*);
int ospf_lsa_discard_callback (struct ospf_lsa *, void *, int);
void ospf_discard_from_db (struct ospf *, struct ospf_lsdb *, struct ospf_lsa*);
int is_prefix_default (struct prefix_ipv4 *);
int metric_type (u_char);
int metric_value (u_char);
int metric_type (struct ospf *, u_char);
int metric_value (struct ospf *, u_char);
#ifdef HAVE_NSSA
struct in_addr ospf_get_nssa_ip (struct ospf_area *);
#endif /* HAVE NSSA */
#ifdef HAVE_NSSA
struct in_addr ospf_get_nssa_ip (struct ospf_area *);

View File

@ -202,20 +202,15 @@ ospf_nbr_add_self (struct ospf_interface *oi)
/* Get neighbor count by status.
Specify status = 0, get all neighbor other than myself. */
int
ospf_nbr_count (struct route_table *nbrs, int state)
ospf_nbr_count (struct ospf_interface *oi, int state)
{
struct route_node *rn;
struct ospf_neighbor *nbr;
struct route_node *rn;
int count = 0;
/* Sanity check. */
if (nbrs == NULL)
return 0;
for (rn = route_top (nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL)
/* Ignore myself. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info))
if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
if (state == 0 || nbr->state == state)
count++;
@ -224,23 +219,18 @@ ospf_nbr_count (struct route_table *nbrs, int state)
#ifdef HAVE_OPAQUE_LSA
int
ospf_opaque_capable_nbr_count (struct route_table *nbrs, int state)
ospf_nbr_count_opaque_capable (struct ospf_interface *oi)
{
struct route_node *rn;
struct ospf_neighbor *nbr;
struct route_node *rn;
int count = 0;
/* Sanity check. */
if (nbrs == NULL)
return 0;
for (rn = route_top (nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL)
/* Ignore myself. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
if ((state == 0 || nbr->state == state)
&& CHECK_FLAG (nbr->options, OSPF_OPTION_O))
count++;
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info))
if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
if (nbr->state == NSM_Full)
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
count++;
return count;
}

View File

@ -222,13 +222,8 @@ ospf_db_summary_isempty (struct ospf_neighbor *nbr)
}
int
ospf_db_summary_add (struct ospf_lsa *lsa, void *v, int i)
ospf_db_summary_add (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
{
struct ospf_neighbor *nbr = (struct ospf_neighbor *) v;
if (lsa == NULL)
return 0;
#ifdef HAVE_OPAQUE_LSA
switch (lsa->data->type)
{
@ -283,73 +278,58 @@ ospf_db_summary_clear (struct ospf_neighbor *nbr)
#ifdef HAVE_OPAQUE_LSA
/* The area link state database consists of the router-LSAs,
network-LSAs, summary-LSAs, and type-9/10 opaque-LSAs contained
^^^^^^^^^^^^^^^^^^^^^^^^^^^
in the area structure, along with the AS-external and type-11
^^^^^^^^^^^
opaque LSAs contained in the global structure.
^^^^^^
AS-external and type-11 opaque LSAs are omitted from a virtual
^^^^^^^^^^^^^^^^^^
neighbor's Database summary list. AS-external and type-11 opaque
^^^^^^^^^^^^^^^^^^
LSAs are omitted from the Database summary list if the area has
been configured as a stub. */
#else /* HAVE_OPAQUE_LSA */
/* The area link state database consists of the router-LSAs,
network-LSAs and summary-LSAs contained in the area structure,
along with the AS-external- LSAs contained in the global structure.
AS- external-LSAs are omitted from a virtual neighbor's Database
along with the AS-external-LSAs contained in the global structure.
AS-external-LSAs are omitted from a virtual neighbor's Database
summary list. AS-external-LSAs are omitted from the Database
summary list if the area has been configured as a stub. */
#endif /* HAVE_OPAQUE_LSA */
int
nsm_negotiation_done (struct ospf_neighbor *nbr)
{
struct ospf_area *area;
struct ospf_area *area = nbr->oi->area;
struct ospf_lsa *lsa;
struct route_node *rn;
area = nbr->oi->area;
LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
foreach_lsa (ROUTER_LSDB (area), nbr, 0, ospf_db_summary_add);
foreach_lsa (NETWORK_LSDB (area), nbr, 0, ospf_db_summary_add);
foreach_lsa (SUMMARY_LSDB (area), nbr, 0, ospf_db_summary_add);
foreach_lsa (ASBR_SUMMARY_LSDB (area), nbr, 0, ospf_db_summary_add);
#ifdef HAVE_OPAQUE_LSA
/* Process only if the neighbor is opaque capable. */
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
{
foreach_lsa (OPAQUE_LINK_LSDB (area), nbr, 0, ospf_db_summary_add);
foreach_lsa (OPAQUE_AREA_LSDB (area), nbr, 0, ospf_db_summary_add);
LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
}
#endif /* HAVE_OPAQUE_LSA */
if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK &&
area->external_routing == OSPF_AREA_DEFAULT)
foreach_lsa (EXTERNAL_LSDB (ospf_top), nbr, 0, ospf_db_summary_add);
if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
&& area->external_routing == OSPF_AREA_DEFAULT)
LSDB_LOOP (EXTERNAL_LSDB (nbr->oi->ospf), rn, lsa)
ospf_db_summary_add (nbr, lsa);
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O) &&
(nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK &&
area->external_routing == OSPF_AREA_DEFAULT))
foreach_lsa (OPAQUE_AS_LSDB (ospf_top),
nbr, 0, ospf_db_summary_add);
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O)
&& (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
&& area->external_routing == OSPF_AREA_DEFAULT))
LSDB_LOOP (OPAQUE_AS_LSDB (nbr->oi->ospf), rn, lsa)
ospf_db_summary_add (nbr, lsa);
#endif /* HAVE_OPAQUE_LSA */
/* OSPF_NSM_TIMER_OFF (nbr->t_db_desc); */
return 0;
}
int
nsm_exchange_done (struct ospf_neighbor *nbr)
{
struct ospf_interface *oi;
oi = nbr->oi;
if (ospf_ls_request_isempty (nbr))
return NSM_Full;
@ -382,18 +362,18 @@ nsm_adj_ok (struct ospf_neighbor *nbr)
next_state = nbr->state;
/* These netowork types must be adjacency. */
if (oi->type == OSPF_IFTYPE_POINTOPOINT ||
oi->type == OSPF_IFTYPE_POINTOMULTIPOINT ||
oi->type == OSPF_IFTYPE_VIRTUALLINK)
if (oi->type == OSPF_IFTYPE_POINTOPOINT
|| oi->type == OSPF_IFTYPE_POINTOMULTIPOINT
|| oi->type == OSPF_IFTYPE_VIRTUALLINK)
flag = 1;
/* Router itself is the DRouter or the BDRouter. */
if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi)) ||
IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi)))
if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi))
|| IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi)))
flag = 1;
if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi)) ||
IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi))
|| IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
flag = 1;
if (nbr->state == NSM_TwoWay && flag == 1)
@ -683,7 +663,7 @@ static char *ospf_nsm_event_str[] =
void
nsm_change_state (struct ospf_neighbor *nbr, int state)
{
struct ospf_interface *oi;
struct ospf_interface *oi = nbr->oi;
struct ospf_area *vl_area = NULL;
u_char old_state;
int x;
@ -705,10 +685,8 @@ nsm_change_state (struct ospf_neighbor *nbr, int state)
/* Statistics. */
nbr->state_change++;
oi = nbr->oi;
if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
vl_area = ospf_area_lookup_by_area_id (oi->vl_data->vl_area_id);
vl_area = ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id);
/* One of the neighboring routers changes to/from the FULL state. */
if ((old_state != NSM_Full && state == NSM_Full) ||
@ -719,31 +697,31 @@ nsm_change_state (struct ospf_neighbor *nbr, int state)
oi->full_nbrs++;
oi->area->full_nbrs++;
ospf_check_abr_status ();
ospf_check_abr_status (oi->ospf);
if (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
if (++vl_area->full_vls == 1)
ospf_schedule_abr_task ();
ospf_schedule_abr_task (oi->ospf);
/* kevinm: refresh any redistributions */
for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++) {
if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6)
continue;
ospf_external_lsa_refresh_type(x, force);
}
for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++)
{
if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6)
continue;
ospf_external_lsa_refresh_type (oi->ospf, x, force);
}
}
else
{
oi->full_nbrs--;
oi->area->full_nbrs--;
ospf_check_abr_status ();
ospf_check_abr_status (oi->ospf);
if (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
if (vl_area->full_vls > 0)
if (--vl_area->full_vls == 0)
ospf_schedule_abr_task ();
ospf_schedule_abr_task (oi->ospf);
/* clear neighbor retransmit list */
if (!ospf_ls_retransmit_isempty (nbr))
@ -758,7 +736,7 @@ nsm_change_state (struct ospf_neighbor *nbr, int state)
if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
{
struct ospf_area *vl_area =
ospf_area_lookup_by_area_id (oi->vl_data->vl_area_id);
ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id);
if (vl_area)
ospf_router_lsa_timer_add (vl_area);

View File

@ -545,7 +545,7 @@ register_opaque_info_per_type (struct ospf_opaque_functab *functab,
break;
case OSPF_OPAQUE_AS_LSA:
top = ospf_top;
if (new->area != NULL && (top = new->area->top) == NULL)
if (new->area != NULL && (top = new->area->ospf) == NULL)
{
free_opaque_info_per_type ((void *) oipt);
oipt = NULL;
@ -653,7 +653,7 @@ lookup_opaque_info_by_type (struct ospf_lsa *lsa)
break;
case OSPF_OPAQUE_AS_LSA:
top = ospf_top;
if ((area = lsa->area) != NULL && (top = area->top) == NULL)
if ((area = lsa->area) != NULL && (top = area->ospf) == NULL)
{
zlog_warn ("Type-11 Opaque-LSA: Reference to OSPF is missing?");
break; /* Unlikely to happen. */
@ -1572,7 +1572,7 @@ ospf_opaque_lsa_install (struct ospf_lsa *lsa, int rt_recalc)
}
break;
case OSPF_OPAQUE_AREA_LSA:
if (lsa->area == NULL || (top = lsa->area->top) == NULL)
if (lsa->area == NULL || (top = lsa->area->ospf) == NULL)
{
/* Above conditions must have passed. */
zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@ -1581,7 +1581,7 @@ ospf_opaque_lsa_install (struct ospf_lsa *lsa, int rt_recalc)
break;
case OSPF_OPAQUE_AS_LSA:
top = ospf_top;
if (lsa->area != NULL && (top = lsa->area->top) == NULL)
if (lsa->area != NULL && (top = lsa->area->ospf) == NULL)
{
/* Above conditions must have passed. */
zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@ -1603,6 +1603,7 @@ out:
void
ospf_opaque_lsa_refresh (struct ospf_lsa *lsa)
{
struct ospf *ospf = ospf_top;
struct ospf_opaque_functab *functab;
if ((functab = ospf_opaque_functab_lookup (lsa)) == NULL
@ -1619,7 +1620,7 @@ ospf_opaque_lsa_refresh (struct ospf_lsa *lsa)
zlog_info ("LSA[Type%d:%s]: Flush stray Opaque-LSA", lsa->data->type, inet_ntoa (lsa->data->id));
lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
ospf_lsa_maxage (lsa);
ospf_lsa_maxage (ospf, lsa);
}
else
(* functab->lsa_refresher)(lsa);
@ -1683,7 +1684,7 @@ ospf_opaque_lsa_reoriginate_schedule (void *lsa_type_dependent,
zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: Type-10 Opaque-LSA: Invalid parameter?");
goto out;
}
if ((top = area->top) == NULL)
if ((top = area->ospf) == NULL)
{
zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: AREA(%s) -> TOP?", inet_ntoa (area->area_id));
goto out;
@ -1712,7 +1713,7 @@ ospf_opaque_lsa_reoriginate_schedule (void *lsa_type_dependent,
}
/* Fake "area" to pass "ospf" to a lookup function later. */
dummy.top = top;
dummy.ospf = top;
area = &dummy;
func = ospf_opaque_type11_lsa_reoriginate_timer;
@ -1826,7 +1827,7 @@ ospf_opaque_type9_lsa_reoriginate_timer (struct thread *t)
if (! CHECK_FLAG (top->config, OSPF_OPAQUE_CAPABLE)
|| ! ospf_if_is_enable (oi)
|| ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full) == 0)
|| ospf_nbr_count_opaque_capable (oi) == 0)
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Suspend re-origination of Type-9 Opaque-LSAs (opaque-type=%u) for a while...", oipt->opaque_type);
@ -1866,7 +1867,7 @@ ospf_opaque_type10_lsa_reoriginate_timer (struct thread *t)
}
area = (struct ospf_area *) oipt->owner;
if (area == NULL || (top = area->top) == NULL)
if (area == NULL || (top = area->ospf) == NULL)
{
zlog_warn ("ospf_opaque_type10_lsa_reoriginate_timer: Something wrong?");
goto out;
@ -1878,7 +1879,7 @@ ospf_opaque_type10_lsa_reoriginate_timer (struct thread *t)
{
if ((oi = getdata (node)) == NULL)
continue;
if ((n = ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full)) > 0)
if ((n = ospf_nbr_count_opaque_capable (oi)) > 0)
break;
}
@ -1947,6 +1948,7 @@ extern int ospf_lsa_refresh_delay (struct ospf_lsa *); /* ospf_lsa.c */
void
ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0)
{
struct ospf *ospf = ospf_top;
struct opaque_info_per_type *oipt;
struct opaque_info_per_id *oipi;
struct ospf_lsa *lsa;
@ -1978,10 +1980,10 @@ ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0)
{
case OSPF_OPAQUE_LINK_LSA:
case OSPF_OPAQUE_AREA_LSA:
ospf_ls_retransmit_delete_nbr_all (lsa->area, lsa);
ospf_ls_retransmit_delete_nbr_area (lsa->area, lsa);
break;
case OSPF_OPAQUE_AS_LSA:
ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
break;
default:
zlog_warn ("ospf_opaque_lsa_refresh_schedule: Unexpected LSA-type(%u)", lsa->data->type);
@ -2023,6 +2025,7 @@ ospf_opaque_lsa_refresh_timer (struct thread *t)
void
ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0)
{
struct ospf *ospf = ospf_top;
struct opaque_info_per_type *oipt;
struct opaque_info_per_id *oipi;
struct ospf_lsa *lsa;
@ -2046,10 +2049,10 @@ ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0)
{
case OSPF_OPAQUE_LINK_LSA:
case OSPF_OPAQUE_AREA_LSA:
ospf_ls_retransmit_delete_nbr_all (lsa->area, lsa);
ospf_ls_retransmit_delete_nbr_area (lsa->area, lsa);
break;
case OSPF_OPAQUE_AS_LSA:
ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
break;
default:
zlog_warn ("ospf_opaque_lsa_flush_schedule: Unexpected LSA-type(%u)", lsa->data->type);
@ -2074,7 +2077,7 @@ ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0)
zlog_info ("Schedule Type-%u Opaque-LSA to FLUSH: [opaque-type=%u, opaque-id=%x]", lsa->data->type, GET_OPAQUE_TYPE (ntohl (lsa->data->id.s_addr)), GET_OPAQUE_ID (ntohl (lsa->data->id.s_addr)));
/* This lsa will be flushed and removed eventually. */
ospf_lsa_maxage (lsa);
ospf_lsa_maxage (ospf, lsa);
out:
return;
@ -2241,7 +2244,7 @@ ospf_opaque_self_originated_lsa_received (struct ospf_neighbor *nbr, list lsas)
break;
case OSPF_OPAQUE_AS_LSA:
SET_FLAG (top->opaque, OPAQUE_BLOCK_TYPE_11_LSA_BIT);
ospf_flood_through_as (NULL/*inbr*/, lsa);
ospf_flood_through_as (top, NULL/*inbr*/, lsa);
break;
default:
zlog_warn ("ospf_opaque_self_originated_lsa_received: Unexpected LSA-type(%u)", lsa->data->type);
@ -2331,7 +2334,7 @@ ospf_opaque_ls_ack_received (struct ospf_neighbor *nbr, list acks)
continue;
if (! ospf_if_is_enable (oi)
|| ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full) == 0)
|| ospf_nbr_count_opaque_capable (oi) == 0)
continue;
ospf_opaque_lsa_originate_schedule (oi, &delay);
@ -2353,7 +2356,7 @@ ospf_opaque_type9_lsa_rxmt_nbr_check (struct ospf_interface *oi)
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Self-originated type-9 Opaque-LSAs: OI(%s): Flush completed", IF_NAME (oi));
UNSET_FLAG (oi->area->top->opaque, OPAQUE_BLOCK_TYPE_09_LSA_BIT);
UNSET_FLAG (oi->area->ospf->opaque, OPAQUE_BLOCK_TYPE_09_LSA_BIT);
}
return;
}
@ -2384,7 +2387,7 @@ ospf_opaque_type10_lsa_rxmt_nbr_check (struct ospf_area *area)
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Self-originated type-10 Opaque-LSAs: AREA(%s): Flush completed", inet_ntoa (area->area_id));
UNSET_FLAG (area->top->opaque, OPAQUE_BLOCK_TYPE_10_LSA_BIT);
UNSET_FLAG (area->ospf->opaque, OPAQUE_BLOCK_TYPE_10_LSA_BIT);
}
return;
@ -2481,7 +2484,7 @@ oi_to_top (struct ospf_interface *oi)
struct ospf *top = NULL;
struct ospf_area *area;
if (oi == NULL || (area = oi->area) == NULL || (top = area->top) == NULL)
if (oi == NULL || (area = oi->area) == NULL || (top = area->ospf) == NULL)
zlog_warn ("Broken relationship for \"OI -> AREA -> OSPF\"?");
return top;

View File

@ -482,22 +482,21 @@ ospf_ls_ack_timer (struct thread *thread)
int
ospf_write (struct thread *thread)
{
struct ospf *ospf = THREAD_ARG (thread);
struct ospf_interface *oi;
struct ospf_packet *op;
struct sockaddr_in sa_dst;
u_char type;
int ret;
int flags = 0;
struct ip iph;
struct msghdr msg;
struct iovec iov[2];
struct ospf *top;
u_char type;
int ret;
int flags = 0;
listnode node;
top = THREAD_ARG (thread);
top->t_write = NULL;
ospf->t_write = NULL;
node = listhead (top->oi_write_q);
node = listhead (ospf->oi_write_q);
assert (node);
oi = getdata (node);
assert (oi);
@ -507,9 +506,9 @@ ospf_write (struct thread *thread)
assert (op);
assert (op->length >= OSPF_HEADER_SIZE);
if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS) ||
op->dst.s_addr == htonl (OSPF_ALLDROUTERS))
ospf_if_ipmulticast (top, oi->address, oi->ifp->ifindex);
if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS)
|| op->dst.s_addr == htonl (OSPF_ALLDROUTERS))
ospf_if_ipmulticast (ospf, oi->address, oi->ifp->ifindex);
/* Rewrite the md5 signature & update the seq */
ospf_make_md5_digest (oi, op);
@ -529,7 +528,7 @@ ospf_write (struct thread *thread)
iph.ip_hl = sizeof (struct ip) >> 2;
iph.ip_v = IPVERSION;
iph.ip_tos = 0;
iph.ip_tos = IPTOS_PREC_INTERNETCONTROL;
#if defined(__NetBSD__) || defined(__FreeBSD__)
iph.ip_len = iph.ip_hl*4 + op->length;
#else
@ -556,7 +555,7 @@ ospf_write (struct thread *thread)
iov[1].iov_base = STREAM_DATA (op->s);
iov[1].iov_len = op->length;
ret = sendmsg (top->fd, &msg, flags);
ret = sendmsg (ospf->fd, &msg, flags);
if (ret < 0)
zlog_warn ("*** sendmsg in ospf_write failed with %s", strerror (errno));
@ -589,13 +588,13 @@ ospf_write (struct thread *thread)
if (ospf_fifo_head (oi->obuf) == NULL)
{
oi->on_write_q = 0;
list_delete_node (top->oi_write_q, node);
list_delete_node (ospf->oi_write_q, node);
}
/* If packets still remain in queue, call write thread. */
if (!list_isempty (top->oi_write_q))
ospf_top->t_write =
thread_add_write (master, ospf_write, top, top->fd);
if (!list_isempty (ospf->oi_write_q))
ospf->t_write =
thread_add_write (master, ospf_write, ospf, ospf->fd);
return 0;
}
@ -617,10 +616,8 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,
hello = (struct ospf_hello *) STREAM_PNT (s);
/* If Hello is myself, silently discard. */
if (IPV4_ADDR_SAME (&ospfh->router_id, &ospf_top->router_id)) {
zlog_info ("Packet %s [Hello:RECV]: router_id matches our router id");
if (IPV4_ADDR_SAME (&ospfh->router_id, &oi->ospf->router_id))
return;
}
/* If incoming interface is passive one, ignore Hello. */
if (OSPF_IF_PARAM (oi, passive_interface) == OSPF_IF_PASSIVE) {
@ -681,7 +678,7 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,
#endif /* REJECT_IF_TBIT_ON */
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE)
if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE)
&& CHECK_FLAG (hello->options, OSPF_OPTION_O))
{
/*
@ -823,7 +820,7 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,
return;
}
if (ospf_nbr_bidirectional (&ospf_top->router_id, hello->neighbors,
if (ospf_nbr_bidirectional (&oi->ospf->router_id, hello->neighbors,
size - OSPF_HELLO_MIN_SIZE))
{
OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived);
@ -1050,7 +1047,7 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (dd->options, OSPF_OPTION_O)
&& !CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
&& !CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
{
/*
* This node is not configured to handle O-bit, for now.
@ -1081,7 +1078,7 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
if ((IS_SET_DD_ALL (dd->flags) == OSPF_DD_FLAG_ALL) &&
(size == OSPF_DB_DESC_MIN_SIZE))
{
if (IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) > 0)
if (IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) > 0)
{
/* We're Slave---obey */
zlog_warn ("Packet[DD]: Negotiation done (Slave).");
@ -1098,7 +1095,7 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
/* Ack from the Slave */
else if (!IS_SET_DD_MS (dd->flags) && !IS_SET_DD_I (dd->flags) &&
ntohl (dd->dd_seqnum) == nbr->dd_seqnum &&
IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) < 0)
IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) < 0)
{
zlog_warn ("Packet[DD]: Negotiation done (Master).");
nbr->dd_flags &= ~OSPF_DD_FLAG_I;
@ -1113,7 +1110,7 @@ ospf_db_desc (struct ip *iph, struct ospf_header *ospfh,
nbr->options = dd->options;
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Neighbor[%s] is %sOpaque-capable.",
@ -1610,8 +1607,8 @@ ospf_ls_upd (struct ip *iph, struct ospf_header *ospfh,
then take the following actions. */
if (IS_LSA_MAXAGE (lsa) && !current &&
(ospf_nbr_count (oi->nbrs, NSM_Exchange) +
ospf_nbr_count (oi->nbrs, NSM_Loading)) == 0)
(ospf_nbr_count (oi, NSM_Exchange) +
ospf_nbr_count (oi, NSM_Loading)) == 0)
{
/* Response Link State Acknowledgment. */
ospf_ls_ack_send (nbr, lsa);
@ -1623,7 +1620,7 @@ ospf_ls_upd (struct ip *iph, struct ospf_header *ospfh,
#ifdef HAVE_OPAQUE_LSA
if (IS_OPAQUE_LSA (lsa->data->type)
&& IPV4_ADDR_SAME (&lsa->data->adv_router, &ospf_top->router_id))
&& IPV4_ADDR_SAME (&lsa->data->adv_router, &oi->ospf->router_id))
{
/*
* Even if initial flushing seems to be completed, there might
@ -1676,7 +1673,7 @@ ospf_ls_upd (struct ip *iph, struct ospf_header *ospfh,
(ret = ospf_lsa_more_recent (current, lsa)) < 0)
{
/* Actual flooding procedure. */
if (ospf_flood (nbr, current, lsa) < 0) /* Trap NSSA later. */
if (ospf_flood (oi->ospf, nbr, current, lsa) < 0) /* Trap NSSA later. */
DISCARD_LSA (lsa, 4);
continue;
}
@ -1973,9 +1970,9 @@ ospf_associate_packet_vl (struct interface *ifp, struct ospf_interface *oi,
struct ip *iph, struct ospf_header *ospfh)
{
struct ospf_interface *rcv_oi;
listnode node;
struct ospf_vl_data *vl_data;
struct ospf_area *vl_area;
listnode node;
if (IN_MULTICAST (ntohl (iph->ip_dst.s_addr)) ||
!OSPF_IS_AREA_BACKBONE (ospfh))
@ -1983,16 +1980,17 @@ ospf_associate_packet_vl (struct interface *ifp, struct ospf_interface *oi,
if ((rcv_oi = oi) == NULL)
{
if ((rcv_oi = ospf_if_lookup_by_local_addr (ifp, iph->ip_dst)) == NULL)
if ((rcv_oi = ospf_if_lookup_by_local_addr (oi->ospf, ifp,
iph->ip_dst)) == NULL)
return NULL;
}
for (node = listhead (ospf_top->vlinks); node; nextnode (node))
for (node = listhead (oi->ospf->vlinks); node; nextnode (node))
{
if ((vl_data = getdata (node)) == NULL)
continue;
vl_area = ospf_area_lookup_by_area_id (vl_data->vl_area_id);
vl_area = ospf_area_lookup_by_area_id (oi->ospf, vl_data->vl_area_id);
if (!vl_area)
continue;
@ -2195,7 +2193,7 @@ ospf_read (struct thread *thread)
{
int ret;
struct stream *ibuf;
struct ospf *top;
struct ospf *ospf;
struct ospf_interface *oi;
struct ip *iph;
struct ospf_header *ospfh;
@ -2203,25 +2201,25 @@ ospf_read (struct thread *thread)
struct interface *ifp;
/* first of all get interface pointer. */
top = THREAD_ARG (thread);
top->t_read = NULL;
ospf = THREAD_ARG (thread);
ospf->t_read = NULL;
/* read OSPF packet. */
ibuf = ospf_recv_packet (top->fd, &ifp);
ibuf = ospf_recv_packet (ospf->fd, &ifp);
if (ibuf == NULL)
return -1;
iph = (struct ip *) STREAM_DATA (ibuf);
/* prepare for next packet. */
top->t_read = thread_add_read (master, ospf_read, top, top->fd);
ospf->t_read = thread_add_read (master, ospf_read, ospf, ospf->fd);
/* IP Header dump. */
if (IS_DEBUG_OSPF_PACKET(0, RECV))
ospf_ip_header_dump (ibuf);
/* Self-originated packet should be discarded silently. */
if (ospf_if_lookup_by_local_addr (NULL, iph->ip_src))
if (ospf_if_lookup_by_local_addr (ospf, NULL, iph->ip_src))
{
stream_free (ibuf);
return 0;
@ -2234,7 +2232,7 @@ ospf_read (struct thread *thread)
ospfh = (struct ospf_header *) STREAM_PNT (ibuf);
/* associate packet with ospf interface */
oi = ospf_if_lookup_recv_interface (iph->ip_src);
oi = ospf_if_lookup_recv_if (ospf, iph->ip_src);
if (ifp && oi && oi->ifp != ifp)
{
zlog_warn ("Packet from [%s] received on wrong link %s",
@ -2336,7 +2334,7 @@ ospf_make_header (int type, struct ospf_interface *oi, struct stream *s)
ospfh->version = (u_char) OSPF_VERSION;
ospfh->type = (u_char) type;
ospfh->router_id = ospf_top->router_id;
ospfh->router_id = oi->ospf->router_id;
ospfh->checksum = 0;
ospfh->area_id = oi->area->area_id;
@ -2453,25 +2451,21 @@ ospf_make_hello (struct ospf_interface *oi, struct stream *s)
/* Add neighbor seen. */
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL) {
/* ignore 0.0.0.0 node. */
if (nbr->router_id.s_addr != 0)
if (nbr->state != NSM_Attempt)
/* ignore Down neighbor. */
if (nbr->state != NSM_Down)
/* this is myself for DR election. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
if ((nbr = rn->info))
if (nbr->router_id.s_addr != 0) /* Ignore 0.0.0.0 node. */
if (nbr->state != NSM_Attempt) /* Ignore Down neighbor. */
if (nbr->state != NSM_Down) /* This is myself for DR election. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
{
/* Check neighbor is sane? */
if (nbr->d_router.s_addr != 0 &&
IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4) &&
IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
flag = 0;
if (nbr->d_router.s_addr != 0
&& IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4)
&& IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
flag = 1;
stream_put_ipv4 (s, nbr->router_id.s_addr);
length += 4;
}
}
/* Let neighbor generate BackupSeen. */
if (flag == 1)
@ -2503,7 +2497,7 @@ ospf_make_db_desc (struct ospf_interface *oi, struct ospf_neighbor *nbr,
/* Set Options. */
options = OPTIONS (oi);
#ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
{
if (IS_SET_DD_I (nbr->dd_flags)
|| CHECK_FLAG (nbr->options, OSPF_OPTION_O))

View File

@ -496,15 +496,15 @@ struct variable ospf_variables[] =
/* The administrative status of OSPF. When OSPF is enbled on at least
one interface return 1. */
int
ospf_admin_stat ()
ospf_admin_stat (struct ospf *ospf)
{
listnode node;
struct ospf_interface *oi;
if (! ospf_top)
if (ospf == NULL)
return 0;
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
{
oi = getdata (node);
@ -518,6 +518,8 @@ static u_char *
ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
int exact, size_t *var_len, WriteMethod **write_method)
{
struct ospf *ospf = ospf_top;
/* Check whether the instance identifier is valid */
if (smux_header_generic (v, name, length, exact, var_len, write_method)
== MATCH_FAILED)
@ -528,14 +530,14 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
{
case OSPFROUTERID: /* 1 */
/* Router-ID of this OSPF instance. */
if (ospf_top)
return SNMP_IPADDRESS (ospf_top->router_id);
if (ospf)
return SNMP_IPADDRESS (ospf->router_id);
else
return SNMP_IPADDRESS (ospf_empty_addr);
break;
case OSPFADMINSTAT: /* 2 */
/* The administrative status of OSPF in the router. */
if (ospf_admin_stat ())
if (ospf_admin_stat (ospf))
return SNMP_INTEGER (OSPF_STATUS_ENABLED);
else
return SNMP_INTEGER (OSPF_STATUS_DISABLED);
@ -546,22 +548,22 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
break;
case OSPFAREABDRRTRSTATUS: /* 4 */
/* Area Border router status. */
if (ospf_top && CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ABR))
if (ospf && CHECK_FLAG (ospf->flags, OSPF_FLAG_ABR))
return SNMP_INTEGER (SNMP_TRUE);
else
return SNMP_INTEGER (SNMP_FALSE);
break;
case OSPFASBDRRTRSTATUS: /* 5 */
/* AS Border router status. */
if (ospf_top && CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ASBR))
if (ospf && CHECK_FLAG (ospf->flags, OSPF_FLAG_ASBR))
return SNMP_INTEGER (SNMP_TRUE);
else
return SNMP_INTEGER (SNMP_FALSE);
break;
case OSPFEXTERNLSACOUNT: /* 6 */
/* External LSA counts. */
if (ospf_top)
return SNMP_INTEGER (ospf_lsdb_count_all (ospf_top->lsdb));
if (ospf)
return SNMP_INTEGER (ospf_lsdb_count_all (ospf->lsdb));
else
return SNMP_INTEGER (0);
break;
@ -575,16 +577,16 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
break;
case OSPFORIGINATENEWLSAS: /* 9 */
/* The number of new link-state advertisements. */
if (ospf_top)
return SNMP_INTEGER (ospf_top->lsa_originate_count);
if (ospf)
return SNMP_INTEGER (ospf->lsa_originate_count);
else
return SNMP_INTEGER (0);
break;
case OSPFRXNEWLSAS: /* 10 */
/* The number of link-state advertisements received determined
to be new instantiations. */
if (ospf_top)
return SNMP_INTEGER (ospf_top->rx_lsa_count);
if (ospf)
return SNMP_INTEGER (ospf->rx_lsa_count);
else
return SNMP_INTEGER (0);
break;
@ -612,7 +614,7 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
}
struct ospf_area *
ospf_area_lookup_next (struct in_addr *area_id, int first)
ospf_area_lookup_next (struct ospf *ospf, struct in_addr *area_id, int first)
{
struct ospf_area *area;
listnode node;
@ -622,7 +624,7 @@ ospf_area_lookup_next (struct in_addr *area_id, int first)
if (first)
{
node = listhead (ospf_top->areas);
node = listhead (ospf->areas);
if (node)
{
area = getdata (node);
@ -631,7 +633,7 @@ ospf_area_lookup_next (struct in_addr *area_id, int first)
}
return NULL;
}
for (node = listhead (ospf_top->areas); node; nextnode (node))
for (node = listhead (ospf->areas); node; nextnode (node))
{
area = getdata (node);
@ -648,10 +650,11 @@ struct ospf_area *
ospfAreaLookup (struct variable *v, oid name[], size_t *length,
struct in_addr *addr, int exact)
{
int len;
struct ospf *ospf = ospf_top;
struct ospf_area *area;
int len;
if (! ospf_top)
if (ospf == NULL)
return NULL;
if (exact)
@ -662,7 +665,7 @@ ospfAreaLookup (struct variable *v, oid name[], size_t *length,
oid2in_addr (name + v->namelen, sizeof (struct in_addr), addr);
area = ospf_area_lookup_by_area_id (*addr);
area = ospf_area_lookup_by_area_id (ospf, *addr);
return area;
}
@ -674,7 +677,7 @@ ospfAreaLookup (struct variable *v, oid name[], size_t *length,
oid2in_addr (name + v->namelen, len, addr);
area = ospf_area_lookup_next (addr, len == 0 ? 1 : 0);
area = ospf_area_lookup_next (ospf, addr, len == 0 ? 1 : 0);
if (area == NULL)
return NULL;
@ -779,8 +782,9 @@ struct ospf_area *
ospfStubAreaLookup (struct variable *v, oid name[], size_t *length,
struct in_addr *addr, int exact)
{
int len;
struct ospf *ospf = ospf_top;
struct ospf_area *area;
int len;
if (! ospf_top)
return NULL;
@ -798,7 +802,7 @@ ospfStubAreaLookup (struct variable *v, oid name[], size_t *length,
oid2in_addr (name + v->namelen, sizeof (struct in_addr), addr);
area = ospf_area_lookup_by_area_id (*addr);
area = ospf_area_lookup_by_area_id (ospf, *addr);
if (area->external_routing == OSPF_AREA_STUB)
return area;
@ -906,6 +910,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
struct in_addr *area_id, u_char *type,
struct in_addr *ls_id, struct in_addr *router_id, int exact)
{
struct ospf *ospf = ospf_top;
struct ospf_area *area;
struct ospf_lsa *lsa;
int len;
@ -929,7 +934,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
/* Lookup area first. */
oid2in_addr (offset, IN_ADDR_SIZE, area_id);
area = ospf_area_lookup_by_area_id (*area_id);
area = ospf_area_lookup_by_area_id (ospf, *area_id);
if (! area)
return NULL;
offset += IN_ADDR_SIZE;
@ -962,9 +967,9 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
/* First we search area. */
if (len == IN_ADDR_SIZE)
area = ospf_area_lookup_by_area_id (*area_id);
area = ospf_area_lookup_by_area_id (ospf, *area_id);
else
area = ospf_area_lookup_next (area_id, len == 0 ? 1 : 0);
area = ospf_area_lookup_next (ospf, area_id, len == 0 ? 1 : 0);
if (area == NULL)
return NULL;
@ -1038,7 +1043,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
return lsa;
}
}
while ((area = ospf_area_lookup_next (area_id, 0)) != NULL);
while ((area = ospf_area_lookup_next (ospf, area_id, 0)) != NULL);
}
return NULL;
}
@ -1116,6 +1121,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
oid *offset;
int offsetlen;
int len;
struct ospf *ospf = ospf_top;
struct ospf_area *area;
struct ospf_area_range *range;
struct prefix_ipv4 p;
@ -1134,7 +1140,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
/* Lookup area first. */
oid2in_addr (offset, IN_ADDR_SIZE, area_id);
area = ospf_area_lookup_by_area_id (*area_id);
area = ospf_area_lookup_by_area_id (ospf, *area_id);
if (! area)
return NULL;
@ -1160,9 +1166,9 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
/* First we search area. */
if (len == IN_ADDR_SIZE)
area = ospf_area_lookup_by_area_id (*area_id);
area = ospf_area_lookup_by_area_id (ospf,*area_id);
else
area = ospf_area_lookup_next (area_id, len == 0 ? 1 : 0);
area = ospf_area_lookup_next (ospf, area_id, len == 0 ? 1 : 0);
if (area == NULL)
return NULL;
@ -1197,7 +1203,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
return range;
}
}
while ((area = ospf_area_lookup_next (area_id, 0)) != NULL);
while ((area = ospf_area_lookup_next (ospf, area_id, 0)) != NULL);
}
return NULL;
}
@ -1210,9 +1216,10 @@ ospfAreaRangeEntry (struct variable *v, oid *name, size_t *length, int exact,
struct in_addr area_id;
struct in_addr range_net;
struct in_addr mask;
struct ospf *ospf = ospf_top;
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
memset (&area_id, 0, IN_ADDR_SIZE);
@ -1258,8 +1265,9 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
{
int len;
struct ospf_nbr_nbma *nbr_nbma;
struct ospf *ospf = ospf_top;
if (! ospf_top)
if (ospf == NULL)
return NULL;
if (exact)
@ -1274,7 +1282,7 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
oid2in_addr (name + v->namelen, IN_ADDR_SIZE, addr);
nbr_nbma = ospf_nbr_nbma_lookup (ospf_top, *addr);
nbr_nbma = ospf_nbr_nbma_lookup (ospf, *addr);
return nbr_nbma;
}
@ -1286,7 +1294,7 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
oid2in_addr (name + v->namelen, len, addr);
nbr_nbma = ospf_nbr_nbma_lookup_next (addr, len == 0 ? 1 : 0);
nbr_nbma = ospf_nbr_nbma_lookup_next (ospf, addr, len == 0 ? 1 : 0);
if (nbr_nbma == NULL)
return NULL;
@ -1310,9 +1318,10 @@ ospfHostEntry (struct variable *v, oid *name, size_t *length, int exact,
struct ospf_nbr_nbma *nbr_nbma;
struct ospf_interface *oi;
struct in_addr addr;
struct ospf *ospf = ospf_top;
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
memset (&addr, 0, sizeof (struct in_addr));
@ -1600,19 +1609,20 @@ ospfIfEntry (struct variable *v, oid *name, size_t *length, int exact,
unsigned int ifindex;
struct in_addr ifaddr;
struct ospf_interface *oi;
struct ospf *ospf = ospf_top;
ifindex = 0;
memset (&ifaddr, 0, sizeof (struct in_addr));
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
ifp = ospfIfLookup (v, name, length, &ifaddr, &ifindex, exact);
if (ifp == NULL)
return NULL;
oi = ospf_if_lookup_by_local_addr (ifp, ifaddr);
oi = ospf_if_lookup_by_local_addr (ospf, ifp, ifaddr);
if (oi == NULL)
return NULL;
@ -1771,19 +1781,20 @@ ospfIfMetricEntry (struct variable *v, oid *name, size_t *length, int exact,
unsigned int ifindex;
struct in_addr ifaddr;
struct ospf_interface *oi;
struct ospf *ospf = ospf_top;
ifindex = 0;
memset (&ifaddr, 0, sizeof (struct in_addr));
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
ifp = ospfIfMetricLookup (v, name, length, &ifaddr, &ifindex, exact);
if (ifp == NULL)
return NULL;
oi = ospf_if_lookup_by_local_addr (ifp, ifaddr);
oi = ospf_if_lookup_by_local_addr (ospf, ifp, ifaddr);
if (oi == NULL)
return NULL;
@ -2025,14 +2036,15 @@ ospfVirtIfEntry (struct variable *v, oid *name, size_t *length, int exact,
}
struct ospf_neighbor *
ospf_snmp_nbr_lookup (struct in_addr *nbr_addr, unsigned int *ifindex)
ospf_snmp_nbr_lookup (struct ospf *ospf, struct in_addr *nbr_addr,
unsigned int *ifindex)
{
struct listnode *nn;
struct ospf_interface *oi;
struct ospf_neighbor *nbr;
struct route_node *rn;
LIST_LOOP (ospf_top->oiflist, oi, nn)
LIST_LOOP (ospf->oiflist, oi, nn)
{
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL
@ -2059,8 +2071,9 @@ ospf_snmp_nbr_lookup_next (struct in_addr *nbr_addr, unsigned int *ifindex,
struct ospf_neighbor *nbr;
struct route_node *rn;
struct ospf_neighbor *min = NULL;
struct ospf *ospf = ospf_top;
LIST_LOOP (ospf_top->oiflist, oi, nn)
LIST_LOOP (ospf->oiflist, oi, nn)
{
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL
@ -2100,6 +2113,7 @@ ospfNbrLookup (struct variable *v, oid *name, size_t *length,
int len;
int first;
struct ospf_neighbor *nbr;
struct ospf *ospf = ospf_top;
if (exact)
{
@ -2109,7 +2123,7 @@ ospfNbrLookup (struct variable *v, oid *name, size_t *length,
oid2in_addr (name + v->namelen, IN_ADDR_SIZE, nbr_addr);
*ifindex = name[v->namelen + IN_ADDR_SIZE];
return ospf_snmp_nbr_lookup (nbr_addr, ifindex);
return ospf_snmp_nbr_lookup (ospf, nbr_addr, ifindex);
}
else
{
@ -2210,12 +2224,13 @@ ospfVirtNbrEntry (struct variable *v, oid *name, size_t *length, int exact,
struct ospf_vl_data *vl_data;
struct in_addr area_id;
struct in_addr neighbor;
struct ospf *ospf = ospf_top;
memset (&area_id, 0, sizeof (struct in_addr));
memset (&neighbor, 0, sizeof (struct in_addr));
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
vl_data = ospfVirtIfLookup (v, name, length, &area_id, &neighbor, exact);
@ -2266,6 +2281,7 @@ ospfExtLsdbLookup (struct variable *v, oid *name, size_t *length, u_char *type,
u_char lsa_type;
int len;
struct ospf_lsa *lsa;
struct ospf *ospf = ospf_top;
if (exact)
{
@ -2288,7 +2304,7 @@ ospfExtLsdbLookup (struct variable *v, oid *name, size_t *length, u_char *type,
/* Router ID. */
oid2in_addr (offset, IN_ADDR_SIZE, router_id);
return ospf_lsdb_lookup_by_id (ospf_top->lsdb, *type, *ls_id, *router_id);
return ospf_lsdb_lookup_by_id (ospf->lsdb, *type, *ls_id, *router_id);
}
else
{
@ -2322,7 +2338,7 @@ ospfExtLsdbLookup (struct variable *v, oid *name, size_t *length, u_char *type,
oid2in_addr (offset, len, router_id);
lsa = ospf_lsdb_lookup_by_id_next (ospf_top->lsdb, *type, *ls_id,
lsa = ospf_lsdb_lookup_by_id_next (ospf->lsdb, *type, *ls_id,
*router_id, first);
if (lsa)
@ -2354,13 +2370,14 @@ ospfExtLsdbEntry (struct variable *v, oid *name, size_t *length, int exact,
u_char type;
struct in_addr ls_id;
struct in_addr router_id;
struct ospf *ospf = ospf_top;
type = OSPF_AS_EXTERNAL_LSA;
memset (&ls_id, 0, sizeof (struct in_addr));
memset (&router_id, 0, sizeof (struct in_addr));
/* Check OSPF instance. */
if (! ospf_top)
if (ospf == NULL)
return NULL;
lsa = ospfExtLsdbLookup (v, name, length, &type, &ls_id, &router_id, exact);

View File

@ -365,39 +365,41 @@ ospf_nexthop_calculation (struct ospf_area *area,
if (l->m[0].type == LSA_LINK_TYPE_POINTOPOINT)
{
/* check for PtMP, signified by PtP link V->W with link_data our PtMP interface */
oi = ospf_if_is_configured(&l->link_data);
/* Check for PtMP, signified by PtP link V->W
with link_data our PtMP interface. */
oi = ospf_if_is_configured (area->ospf, &l->link_data);
if (oi && oi->type == OSPF_IFTYPE_POINTOMULTIPOINT)
{
struct prefix_ipv4 * la = prefix_ipv4_new();
la->prefixlen = oi->address->prefixlen;
/* we link to them on PtMP interface - find the interface on w */
struct prefix_ipv4 la;
la.prefixlen = oi->address->prefixlen;
/* We link to them on PtMP interface
- find the interface on w */
while ((l2 = ospf_get_next_link (w, v, l2)))
{
la->prefix = l2->link_data;
la.prefix = l2->link_data;
if (prefix_cmp((struct prefix *)la, oi->address) == 0)
if (prefix_cmp ((struct prefix *)&la,
oi->address) == 0)
/* link_data is on our PtMP network */
break;
}
}
else
{
while ((l2 = ospf_get_next_link (w, v, l2)))
{
oi = ospf_if_is_configured (&(l2->link_data));
oi = ospf_if_is_configured (area->ospf,
&(l2->link_data));
if (oi == NULL)
continue;
if (!IPV4_ADDR_SAME (&oi->address->u.prefix4, &l->link_data))
if (!IPV4_ADDR_SAME (&oi->address->u.prefix4,
&l->link_data))
continue;
break;
}
}
}
if (oi && l2)
@ -414,7 +416,7 @@ ospf_nexthop_calculation (struct ospf_area *area,
{
while ((l = ospf_get_next_link (v, w, l)))
{
oi = ospf_if_is_configured (&(l->link_data));
oi = ospf_if_is_configured (area->ospf, &(l->link_data));
if (oi)
{
nh = vertex_nexthop_new (v);
@ -995,7 +997,7 @@ ospf_spf_calculate (struct ospf_area *area, struct route_table *new_table,
/* Increment SPF Calculation Counter. */
area->spf_calculation++;
ospf_top->ts_spf = time (NULL);
area->ospf->ts_spf = time (NULL);
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_spf_calculate: Stop");
@ -1003,32 +1005,30 @@ ospf_spf_calculate (struct ospf_area *area, struct route_table *new_table,
/* Timer for SPF calculation. */
int
ospf_spf_calculate_timer (struct thread *t)
ospf_spf_calculate_timer (struct thread *thread)
{
struct ospf *ospf = THREAD_ARG (thread);
struct route_table *new_table, *new_rtrs;
struct ospf *ospf;
/* struct ospf_area *area; */
listnode node;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: Timer (SPF calculation expire)");
ospf = THREAD_ARG (t);
ospf->t_spf_calc = NULL;
/* Allocate new table tree. */
new_table = route_table_init ();
new_rtrs = route_table_init ();
ospf_vl_unapprove ();
ospf_vl_unapprove (ospf);
/* Calculate SPF for each area. */
for (node = listhead (ospf->areas); node; node = nextnode (node))
ospf_spf_calculate (node->data, new_table, new_rtrs);
ospf_vl_shut_unapproved ();
ospf_vl_shut_unapproved (ospf);
ospf_ia_routing (new_table, new_rtrs);
ospf_ia_routing (ospf, new_table, new_rtrs);
ospf_prune_unreachable_networks (new_table);
ospf_prune_unreachable_routers (new_rtrs);
@ -1038,26 +1038,26 @@ ospf_spf_calculate_timer (struct thread *t)
/* If new Router Route is installed,
then schedule re-calculate External routes. */
if (1)
ospf_ase_calculate_schedule ();
ospf_ase_calculate_schedule (ospf);
ospf_ase_calculate_timer_add ();
ospf_ase_calculate_timer_add (ospf);
/* Update routing table. */
ospf_route_install (new_table);
ospf_route_install (ospf, new_table);
/* Update ABR/ASBR routing table */
if (ospf_top->old_rtrs)
if (ospf->old_rtrs)
{
/* old_rtrs's node holds linked list of ospf_route. --kunihiro. */
/* ospf_route_delete (ospf_top->old_rtrs); */
ospf_rtrs_free (ospf_top->old_rtrs);
/* ospf_route_delete (ospf->old_rtrs); */
ospf_rtrs_free (ospf->old_rtrs);
}
ospf_top->old_rtrs = ospf_top->new_rtrs;
ospf_top->new_rtrs = new_rtrs;
ospf->old_rtrs = ospf->new_rtrs;
ospf->new_rtrs = new_rtrs;
if (OSPF_IS_ABR)
ospf_abr_task (new_table, new_rtrs);
ospf_abr_task (ospf);
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation complete");
@ -1068,7 +1068,7 @@ ospf_spf_calculate_timer (struct thread *t)
/* Add schedule for SPF calculation. To avoid frequenst SPF calc, we
set timer for SPF calc. */
void
ospf_spf_calculate_schedule ()
ospf_spf_calculate_schedule (struct ospf *ospf)
{
time_t ht, delay;
@ -1076,34 +1076,34 @@ ospf_spf_calculate_schedule ()
zlog_info ("SPF: calculation timer scheduled");
/* OSPF instance does not exist. */
if (!ospf_top)
if (ospf == NULL)
return;
/* SPF calculation timer is already scheduled. */
if (ospf_top->t_spf_calc)
if (ospf->t_spf_calc)
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation timer is already scheduled: %p",
ospf_top->t_spf_calc);
ospf->t_spf_calc);
return;
}
ht = time (NULL) - ospf_top->ts_spf;
ht = time (NULL) - ospf->ts_spf;
/* Get SPF calculation delay time. */
if (ht < ospf_top->spf_holdtime)
if (ht < ospf->spf_holdtime)
{
if (ospf_top->spf_holdtime - ht < ospf_top->spf_delay)
delay = ospf_top->spf_delay;
if (ospf->spf_holdtime - ht < ospf->spf_delay)
delay = ospf->spf_delay;
else
delay = ospf_top->spf_holdtime - ht;
delay = ospf->spf_holdtime - ht;
}
else
delay = ospf_top->spf_delay;
delay = ospf->spf_delay;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation timer delay = %ld", delay);
ospf_top->t_spf_calc =
thread_add_timer (master, ospf_spf_calculate_timer, ospf_top, delay);
ospf->t_spf_calc =
thread_add_timer (master, ospf_spf_calculate_timer, ospf, delay);
}

File diff suppressed because it is too large Load Diff

View File

@ -59,6 +59,7 @@ int
ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
{
struct interface *ifp;
struct ospf *ospf = ospf_top;
ifp = zebra_interface_add_read (zclient->ibuf);
@ -81,7 +82,7 @@ ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_LOOPBACK;
}
ospf_if_update ();
ospf_if_update (ospf);
#ifdef HAVE_SNMP
ospf_snmp_if_update (ifp);
@ -245,6 +246,7 @@ int
ospf_interface_address_add (int command, struct zclient *zclient,
zebra_size_t length)
{
struct ospf *ospf = ospf_top;
struct connected *c;
c = zebra_interface_address_add_read (zclient->ibuf);
@ -252,19 +254,7 @@ ospf_interface_address_add (int command, struct zclient *zclient,
if (c == NULL)
return 0;
#if 0
if (IS_DEBUG_OSPF (zebra, ZEBRA_INTERFACE))
{
struct prefix *p;
p = c->address;
if (p->family == AF_INET)
zlog_info (" connected address %s/%d",
inet_atop (p->u.prefix4), p->prefixlen);
}
#endif
ospf_if_update ();
ospf_if_update (ospf);
#ifdef HAVE_SNMP
ospf_snmp_if_update (c->ifp);
@ -277,6 +267,7 @@ int
ospf_interface_address_delete (int command, struct zclient *zclient,
zebra_size_t length)
{
struct ospf *ospf = ospf_top;
struct connected *c;
struct interface *ifp;
struct ospf_interface *oi;
@ -308,7 +299,7 @@ ospf_interface_address_delete (int command, struct zclient *zclient,
connected_free (c);
ospf_if_update();
ospf_if_update (ospf);
return 0;
}
@ -482,42 +473,43 @@ ospf_is_type_redistributed (int type)
int
ospf_redistribute_set (int type, int mtype, int mvalue)
{
struct ospf *ospf = ospf_top;
int force = 0;
if (ospf_is_type_redistributed (type))
{
if (mtype != ospf_top->dmetric[type].type)
if (mtype != ospf->dmetric[type].type)
{
ospf_top->dmetric[type].type = mtype;
ospf->dmetric[type].type = mtype;
force = LSA_REFRESH_FORCE;
}
if (mvalue != ospf_top->dmetric[type].value)
if (mvalue != ospf->dmetric[type].value)
{
ospf_top->dmetric[type].value = mvalue;
ospf->dmetric[type].value = mvalue;
force = LSA_REFRESH_FORCE;
}
ospf_external_lsa_refresh_type (type, force);
ospf_external_lsa_refresh_type (ospf, type, force);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, type),
metric_type (type), metric_value (type));
metric_type (ospf, type), metric_value (ospf, type));
return CMD_SUCCESS;
}
ospf_top->dmetric[type].type = mtype;
ospf_top->dmetric[type].value = mvalue;
ospf->dmetric[type].type = mtype;
ospf->dmetric[type].value = mvalue;
zclient_redistribute_set (zclient, type);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Start Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, type),
metric_type (type), metric_value (type));
metric_type (ospf, type), metric_value (ospf, type));
ospf_asbr_status_update (++ospf_top->redistribute);
ospf_asbr_status_update (ospf, ++ospf->redistribute);
return CMD_SUCCESS;
}
@ -525,6 +517,8 @@ ospf_redistribute_set (int type, int mtype, int mvalue)
int
ospf_redistribute_unset (int type)
{
struct ospf *ospf = ospf_top;
if (type == zclient->redist_default)
return CMD_SUCCESS;
@ -537,13 +531,13 @@ ospf_redistribute_unset (int type)
zlog_info ("Redistribute[%s]: Stop",
LOOKUP (ospf_redistributed_proto, type));
ospf_top->dmetric[type].type = -1;
ospf_top->dmetric[type].value = -1;
ospf->dmetric[type].type = -1;
ospf->dmetric[type].value = -1;
/* Remove the routes from OSPF table. */
ospf_redistribute_withdraw (type);
ospf_asbr_status_update (--ospf_top->redistribute);
ospf_asbr_status_update (ospf, --ospf->redistribute);
return CMD_SUCCESS;
}
@ -551,48 +545,50 @@ ospf_redistribute_unset (int type)
int
ospf_redistribute_default_set (int originate, int mtype, int mvalue)
{
struct ospf *ospf = ospf_top;
int force = 0;
if (ospf_is_type_redistributed (DEFAULT_ROUTE))
{
if (mtype != ospf_top->dmetric[DEFAULT_ROUTE].type)
if (mtype != ospf->dmetric[DEFAULT_ROUTE].type)
{
ospf_top->dmetric[DEFAULT_ROUTE].type = mtype;
ospf->dmetric[DEFAULT_ROUTE].type = mtype;
force = 1;
}
if (mvalue != ospf_top->dmetric[DEFAULT_ROUTE].value)
if (mvalue != ospf->dmetric[DEFAULT_ROUTE].value)
{
force = 1;
ospf_top->dmetric[DEFAULT_ROUTE].value = mvalue;
ospf->dmetric[DEFAULT_ROUTE].value = mvalue;
}
ospf_external_lsa_refresh_default ();
ospf_external_lsa_refresh_default (ospf);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, DEFAULT_ROUTE),
metric_type (DEFAULT_ROUTE),
metric_value (DEFAULT_ROUTE));
metric_type (ospf, DEFAULT_ROUTE),
metric_value (ospf, DEFAULT_ROUTE));
return CMD_SUCCESS;
}
ospf_top->default_originate = originate;
ospf_top->dmetric[DEFAULT_ROUTE].type = mtype;
ospf_top->dmetric[DEFAULT_ROUTE].value = mvalue;
ospf->default_originate = originate;
ospf->dmetric[DEFAULT_ROUTE].type = mtype;
ospf->dmetric[DEFAULT_ROUTE].value = mvalue;
zclient_redistribute_default_set (zclient);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[DEFAULT]: Start Type[%d], Metric[%d]",
metric_type (DEFAULT_ROUTE), metric_value (DEFAULT_ROUTE));
metric_type (ospf, DEFAULT_ROUTE),
metric_value (ospf, DEFAULT_ROUTE));
if (ospf_top->router_id.s_addr == 0)
ospf_top->external_origin |= (1 << DEFAULT_ROUTE);
if (ospf->router_id.s_addr == 0)
ospf->external_origin |= (1 << DEFAULT_ROUTE);
else
thread_add_timer (master, ospf_default_originate_timer,
&ospf_top->default_originate, 1);
&ospf->default_originate, 1);
ospf_asbr_status_update (++ospf_top->redistribute);
ospf_asbr_status_update (ospf, ++ospf->redistribute);
return CMD_SUCCESS;
}
@ -600,19 +596,21 @@ ospf_redistribute_default_set (int originate, int mtype, int mvalue)
int
ospf_redistribute_default_unset ()
{
struct ospf *ospf = ospf_top;
if (!ospf_is_type_redistributed (DEFAULT_ROUTE))
return CMD_SUCCESS;
ospf_top->default_originate = DEFAULT_ORIGINATE_NONE;
ospf_top->dmetric[DEFAULT_ROUTE].type = -1;
ospf_top->dmetric[DEFAULT_ROUTE].value = -1;
ospf->default_originate = DEFAULT_ORIGINATE_NONE;
ospf->dmetric[DEFAULT_ROUTE].type = -1;
ospf->dmetric[DEFAULT_ROUTE].value = -1;
zclient_redistribute_default_unset (zclient);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[DEFAULT]: Stop");
ospf_asbr_status_update (--ospf_top->redistribute);
ospf_asbr_status_update (ospf, --ospf->redistribute);
return CMD_SUCCESS;
}
@ -620,6 +618,8 @@ ospf_redistribute_default_unset ()
int
ospf_external_lsa_originate_check (struct external_info *ei)
{
struct ospf *ospf = ospf_top;
/* If prefix is multicast, then do not originate LSA. */
if (IN_MULTICAST (htonl (ei->p.prefix.s_addr)))
{
@ -630,7 +630,7 @@ ospf_external_lsa_originate_check (struct external_info *ei)
/* Take care of default-originate. */
if (is_prefix_default (&ei->p))
if (ospf_top->default_originate == DEFAULT_ORIGINATE_NONE)
if (ospf->default_originate == DEFAULT_ORIGINATE_NONE)
{
zlog_info ("LSA[Type5:0.0.0.0]: Not originate AS-exntenal-LSA "
"for default");
@ -642,21 +642,26 @@ ospf_external_lsa_originate_check (struct external_info *ei)
/* If connected prefix is OSPF enable interface, then do not announce. */
int
ospf_distribute_check_connected (struct external_info *ei)
ospf_distribute_check_connected (struct ospf *ospf,
struct external_info *ei)
{
struct route_node *rn;
for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
if (rn->info != NULL)
if (prefix_match (&rn->p, (struct prefix *)&ei->p))
return 0;
{
route_unlock_node (rn);
return 0;
}
return 1;
}
/* return 1 if external LSA must be originated, 0 otherwise */
int
ospf_redistribute_check (struct external_info *ei, int *changed)
ospf_redistribute_check (struct ospf *ospf,
struct external_info *ei, int *changed)
{
struct route_map_set_values save_values;
struct prefix_ipv4 *p = &ei->p;
@ -669,7 +674,8 @@ ospf_redistribute_check (struct external_info *ei, int *changed)
return 0;
/* Take care connected route. */
if (type == ZEBRA_ROUTE_CONNECT && !ospf_distribute_check_connected (ei))
if (type == ZEBRA_ROUTE_CONNECT &&
!ospf_distribute_check_connected (ospf, ei))
return 0;
if (!DEFAULT_ROUTE_TYPE (type) && DISTRIBUTE_NAME (type))
@ -746,6 +752,7 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
struct in_addr nexthop;
struct prefix_ipv4 p;
struct external_info *ei;
struct ospf *ospf = ospf_top;
s = zclient->ibuf;
ifindex = 0;
@ -782,25 +789,26 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
{
ei = ospf_external_info_add (api.type, p, ifindex, nexthop);
if (ospf_top->router_id.s_addr == 0)
if (ospf->router_id.s_addr == 0)
/* Set flags to generate AS-external-LSA originate event
for each redistributed protocols later. */
ospf_top->external_origin |= (1 << api.type);
ospf->external_origin |= (1 << api.type);
else
{
if (ei)
{
if (is_prefix_default (&p))
ospf_external_lsa_refresh_default ();
ospf_external_lsa_refresh_default (ospf);
else
{
struct ospf_lsa *current;
current = ospf_external_info_find_lsa (&ei->p);
current = ospf_external_info_find_lsa (ospf, &ei->p);
if (!current)
ospf_external_lsa_originate (ei);
ospf_external_lsa_originate (ospf, ei);
else if (IS_LSA_MAXAGE (current))
ospf_external_lsa_refresh (current, ei, LSA_REFRESH_FORCE);
ospf_external_lsa_refresh (ospf, current,
ei, LSA_REFRESH_FORCE);
else
zlog_warn ("ospf_zebra_read_ipv4() : %s already exists",
inet_ntoa (p.prefix));
@ -812,9 +820,9 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
{
ospf_external_info_delete (api.type, p);
if ( !is_prefix_default (&p))
ospf_external_lsa_flush (api.type, &p, ifindex, nexthop);
ospf_external_lsa_flush (ospf, api.type, &p, ifindex, nexthop);
else
ospf_external_lsa_refresh_default ();
ospf_external_lsa_refresh_default (ospf);
}
return 0;
@ -822,7 +830,7 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
int
ospf_distribute_list_out_set (int type, char *name)
ospf_distribute_list_out_set (struct ospf *ospf, int type, char *name)
{
/* Lookup access-list for distribute-list. */
DISTRIBUTE_LIST (type) = access_list_lookup (AFI_IP, name);
@ -836,17 +844,17 @@ ospf_distribute_list_out_set (int type, char *name)
/* If access-list have been set, schedule update timer. */
if (DISTRIBUTE_LIST (type))
ospf_distribute_list_update (type);
ospf_distribute_list_update (ospf, type);
return CMD_SUCCESS;
}
int
ospf_distribute_list_out_unset (int type, char *name)
ospf_distribute_list_out_unset (struct ospf *ospf, int type, char *name)
{
/* Schedule update timer. */
if (DISTRIBUTE_LIST (type))
ospf_distribute_list_update (type);
ospf_distribute_list_update (ospf, type);
/* Unset distribute-list. */
DISTRIBUTE_LIST (type) = NULL;
@ -869,11 +877,12 @@ ospf_distribute_list_update_timer (struct thread *thread)
struct route_table *rt;
struct ospf_lsa *lsa;
u_char type;
struct ospf *ospf = ospf_top;
type = (int) THREAD_ARG (thread);
rt = EXTERNAL_INFO (type);
ospf_top->t_distribute_update = NULL;
ospf->t_distribute_update = NULL;
zlog_info ("Zebra[Redistribute]: distribute-list update timer fired!");
@ -883,11 +892,11 @@ ospf_distribute_list_update_timer (struct thread *thread)
if ((ei = rn->info) != NULL)
{
if (is_prefix_default (&ei->p))
ospf_external_lsa_refresh_default ();
else if ((lsa = ospf_external_info_find_lsa (&ei->p)))
ospf_external_lsa_refresh (lsa, ei, LSA_REFRESH_IF_CHANGED);
ospf_external_lsa_refresh_default (ospf);
else if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_IF_CHANGED);
else
ospf_external_lsa_originate (ei);
ospf_external_lsa_originate (ospf, ei);
}
return 0;
}
@ -896,49 +905,45 @@ ospf_distribute_list_update_timer (struct thread *thread)
/* Update distribute-list and set timer to apply access-list. */
void
ospf_distribute_list_update (int type)
ospf_distribute_list_update (struct ospf *ospf, int type)
{
struct route_table *rt;
zlog_info ("ospf_distribute_list_update(): start");
/* External info does not exist. */
if (!(rt = EXTERNAL_INFO (type)))
return;
/* If exists previously invoked thread, then cancel it. */
if (ospf_top->t_distribute_update)
OSPF_TIMER_OFF (ospf_top->t_distribute_update);
if (ospf->t_distribute_update)
OSPF_TIMER_OFF (ospf->t_distribute_update);
/* Set timer. */
ospf_top->t_distribute_update =
ospf->t_distribute_update =
thread_add_timer (master, ospf_distribute_list_update_timer,
(void *) type, OSPF_DISTRIBUTE_UPDATE_DELAY);
zlog_info ("ospf_distribute_list_update(): stop");
}
/* If access-list is updated, apply some check. */
void
ospf_filter_update (struct access_list *access)
{
struct ospf *ospf = ospf_top;
int type;
int abr_inv = 0;
struct ospf_area *area;
listnode node;
/* If OSPF instatnce does not exist, return right now. */
if (!ospf_top)
if (ospf == NULL)
return;
/* Update distribute-list, and apply filter. */
for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
{
if (ROUTEMAP (type) != NULL)
{
/* if route-map is not NULL it may be using this access list */
ospf_distribute_list_update (type);
ospf_distribute_list_update (ospf, type);
continue;
}
@ -959,12 +964,12 @@ ospf_filter_update (struct access_list *access)
/* Schedule distribute-list update timer. */
if (DISTRIBUTE_LIST (type) == NULL ||
strcmp (DISTRIBUTE_NAME (type), access->name) == 0)
ospf_distribute_list_update (type);
ospf_distribute_list_update (ospf, type);
}
}
/* Update Area access-list. */
for (node = listhead (ospf_top->areas); node; nextnode (node))
for (node = listhead (ospf->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
{
if (EXPORT_NAME (area))
@ -982,7 +987,7 @@ ospf_filter_update (struct access_list *access)
/* Schedule ABR tasks -- this will be changed -- takada. */
if (OSPF_IS_ABR && abr_inv)
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
}
@ -1010,6 +1015,7 @@ ospf_distance_set (struct vty *vty, char *distance_str, char *ip_str,
u_char distance;
struct route_node *rn;
struct ospf_distance *odistance;
struct ospf *ospf = ospf_top;
ret = str2prefix_ipv4 (ip_str, &p);
if (ret == 0)
@ -1021,7 +1027,7 @@ ospf_distance_set (struct vty *vty, char *distance_str, char *ip_str,
distance = atoi (distance_str);
/* Get OSPF distance node. */
rn = route_node_get (ospf_top->distance_table, (struct prefix *) &p);
rn = route_node_get (ospf->distance_table, (struct prefix *) &p);
if (rn->info)
{
odistance = rn->info;
@ -1057,6 +1063,7 @@ ospf_distance_unset (struct vty *vty, char *distance_str, char *ip_str,
u_char distance;
struct route_node *rn;
struct ospf_distance *odistance;
struct ospf *ospf = ospf_top;
ret = str2prefix_ipv4 (ip_str, &p);
if (ret == 0)
@ -1067,7 +1074,7 @@ ospf_distance_unset (struct vty *vty, char *distance_str, char *ip_str,
distance = atoi (distance_str);
rn = route_node_lookup (ospf_top->distance_table, (struct prefix *)&p);
rn = route_node_lookup (ospf->distance_table, (struct prefix *)&p);
if (! rn)
{
vty_out (vty, "Can't find specified prefix%s", VTY_NEWLINE);
@ -1088,12 +1095,12 @@ ospf_distance_unset (struct vty *vty, char *distance_str, char *ip_str,
}
void
ospf_distance_reset ()
ospf_distance_reset (struct ospf *ospf)
{
struct route_node *rn;
struct ospf_distance *odistance;
for (rn = route_top (ospf_top->distance_table); rn; rn = route_next (rn))
for (rn = route_top (ospf->distance_table); rn; rn = route_next (rn))
if ((odistance = rn->info) != NULL)
{
if (odistance->access_list)
@ -1107,58 +1114,26 @@ ospf_distance_reset ()
u_char
ospf_distance_apply (struct prefix_ipv4 *p, struct ospf_route *or)
{
#if 0
struct route_node *rn;
struct ospf_distance *odistance;
struct access_list *alist;
struct prefix_ipv4 q;
struct ospf *ospf = ospf_top;
memset (&q, 0, sizeof (struct prefix_ipv4));
q.family = AF_INET;
/* q.prefix = */
q.prefixlen = IPV4_MAX_BITLEN;
#endif /* 0 */
if (! ospf_top)
if (ospf == NULL)
return 0;
#if 0
rn = route_node_match (ospf_top->distance_table, (struct prefix *) &q);
if (rn)
{
odistance = rn->info;
route_unlock_node (rn);
if (odistance->access_list)
{
alist = access_list_lookup (AFI_IP, odistance->access_list);
if (alist == NULL)
return 0;
if (access_list_apply (alist, (struct prefix *) p) == FILTER_DENY)
return 0;
return odistance->distance;
}
else
return odistance->distance;
}
#endif /* 0 */
if (ospf_top->distance_intra)
if (ospf->distance_intra)
if (or->path_type == OSPF_PATH_INTRA_AREA)
return ospf_top->distance_intra;
return ospf->distance_intra;
if (ospf_top->distance_inter)
if (ospf->distance_inter)
if (or->path_type == OSPF_PATH_INTER_AREA)
return ospf_top->distance_inter;
return ospf->distance_inter;
if (ospf_top->distance_external)
if (ospf->distance_external)
if (or->path_type == OSPF_PATH_TYPE1_EXTERNAL
|| or->path_type == OSPF_PATH_TYPE2_EXTERNAL)
return ospf_top->distance_external;
return ospf->distance_external;
if (ospf_top->distance_all)
return ospf_top->distance_all;
if (ospf->distance_all)
return ospf->distance_all;
return 0;
}

View File

@ -58,8 +58,8 @@ struct ospf *ospf_top;
extern struct zclient *zclient;
void ospf_remove_vls_through_area (struct ospf_area *);
void ospf_network_free (struct ospf_network *);
void ospf_remove_vls_through_area (struct ospf *, struct ospf_area *);
void ospf_network_free (struct ospf *, struct ospf_network *);
void ospf_area_free (struct ospf_area *);
void ospf_network_run (struct ospf *, struct prefix *, struct ospf_area *);
@ -93,29 +93,29 @@ ospf_router_id_get (list if_list)
#define OSPF_EXTERNAL_LSA_ORIGINATE_DELAY 1
void
ospf_router_id_update ()
ospf_router_id_update (struct ospf *ospf)
{
listnode node;
struct in_addr router_id, router_id_old;
listnode node;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Router-ID[OLD:%s]: Update",inet_ntoa (ospf_top->router_id));
zlog_info ("Router-ID[OLD:%s]: Update", inet_ntoa (ospf->router_id));
router_id_old = ospf_top->router_id;
router_id_old = ospf->router_id;
if (ospf_top->router_id_static.s_addr != 0)
router_id = ospf_top->router_id_static;
if (ospf->router_id_static.s_addr != 0)
router_id = ospf->router_id_static;
else
router_id = ospf_router_id_get (ospf_top->oiflist);
router_id = ospf_router_id_get (ospf->oiflist);
ospf_top->router_id = router_id;
ospf->router_id = router_id;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Router-ID[NEW:%s]: Update", inet_ntoa (ospf_top->router_id));
zlog_info ("Router-ID[NEW:%s]: Update", inet_ntoa (ospf->router_id));
if (!IPV4_ADDR_SAME (&router_id_old, &router_id))
{
for (node = listhead (ospf_top->oiflist); node; nextnode (node))
for (node = listhead (ospf->oiflist); node; nextnode (node))
{
struct ospf_interface *oi = getdata (node);
@ -124,23 +124,23 @@ ospf_router_id_update ()
}
/* If AS-external-LSA is queued, then flush those LSAs. */
if (router_id_old.s_addr == 0 && ospf_top->external_origin)
if (router_id_old.s_addr == 0 && ospf->external_origin)
{
int type;
/* Originate each redistributed external route. */
for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
if (ospf_top->external_origin & (1 << type))
if (ospf->external_origin & (1 << type))
thread_add_event (master, ospf_external_lsa_originate_timer,
NULL, type);
ospf, type);
/* Originate Deafult. */
if (ospf_top->external_origin & (1 << ZEBRA_ROUTE_MAX))
if (ospf->external_origin & (1 << ZEBRA_ROUTE_MAX))
thread_add_event (master, ospf_default_originate_timer,
&ospf_top->default_originate, 0);
&ospf->default_originate, 0);
ospf_top->external_origin = 0;
ospf->external_origin = 0;
}
OSPF_TIMER_ON (ospf_top->t_router_lsa_update,
OSPF_TIMER_ON (ospf->t_router_lsa_update,
ospf_router_lsa_update_timer, OSPF_LSA_UPDATE_DELAY);
}
}
@ -148,11 +148,13 @@ ospf_router_id_update ()
int
ospf_router_id_update_timer (struct thread *thread)
{
struct ospf *ospf = ospf_top;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Router-ID: Update timer fired!");
ospf_top->t_router_id_update = NULL;
ospf_router_id_update ();
ospf->t_router_id_update = NULL;
ospf_router_id_update (ospf);
return 0;
}
@ -213,7 +215,7 @@ ospf_new ()
new->maxage_lsa = list_new ();
new->t_maxage_walker =
thread_add_timer (master, ospf_lsa_maxage_walker,
NULL, OSPF_LSA_MAXAGE_CHECK_INTERVAL);
new, OSPF_LSA_MAXAGE_CHECK_INTERVAL);
/* Distance table init. */
new->distance_table = route_table_init ();
@ -235,19 +237,23 @@ ospf_new ()
struct ospf *
ospf_get ()
{
if (ospf_top != NULL)
return ospf_top;
struct ospf *ospf = ospf_top;
ospf_top = ospf_new ();
if (ospf != NULL)
return ospf;
if (ospf_top->router_id_static.s_addr == 0)
ospf_router_id_update ();
ospf = ospf_new ();
if (ospf->router_id_static.s_addr == 0)
ospf_router_id_update (ospf);
#ifdef HAVE_OPAQUE_LSA
ospf_opaque_type11_lsa_init (ospf_top);
ospf_opaque_type11_lsa_init (ospf);
#endif /* HAVE_OPAQUE_LSA */
return ospf_top;
ospf_top = ospf;
return ospf;
}
void
@ -255,6 +261,7 @@ ospf_finish (struct ospf *ospf)
{
struct route_node *rn;
struct ospf_nbr_nbma *nbr_nbma;
struct ospf_lsa *lsa;
listnode node;
int i;
@ -271,7 +278,7 @@ ospf_finish (struct ospf *ospf)
struct ospf_area *area = getdata (node);
nextnode (node);
ospf_remove_vls_through_area (area);
ospf_remove_vls_through_area (ospf, area);
}
for (node = listhead (ospf->vlinks); node; )
@ -279,7 +286,7 @@ ospf_finish (struct ospf *ospf)
struct ospf_vl_data *vl_data = node->data;
nextnode (node);
ospf_vl_delete (vl_data);
ospf_vl_delete (ospf, vl_data);
}
list_delete (ospf->vlinks);
@ -324,7 +331,7 @@ ospf_finish (struct ospf *ospf)
if ((network = rn->info) != NULL)
{
ospf_network_free (network);
ospf_network_free (ospf, network);
rn->info = NULL;
route_unlock_node (rn);
}
@ -356,11 +363,12 @@ ospf_finish (struct ospf *ospf)
close (ospf->fd);
#ifdef HAVE_OPAQUE_LSA
foreach_lsa (OPAQUE_AS_LSDB (ospf), ospf_top->lsdb, 0,
ospf_lsa_discard_callback);
LSDB_LOOP (OPAQUE_AS_LSDB (ospf), rn, lsa)
ospf_discard_from_db (ospf, ospf->lsdb, lsa);
#endif /* HAVE_OPAQUE_LSA */
foreach_lsa (EXTERNAL_LSDB (ospf), ospf->lsdb, 0,
ospf_lsa_discard_callback);
LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
ospf_discard_from_db (ospf, ospf->lsdb, lsa);
ospf_lsdb_delete_all (ospf->lsdb);
ospf_lsdb_free (ospf->lsdb);
@ -409,7 +417,7 @@ ospf_finish (struct ospf *ospf)
route_unlock_node (rn);
}
ospf_distance_reset ();
ospf_distance_reset (ospf);
route_table_finish (ospf->distance_table);
XFREE (MTYPE_OSPF_TOP, ospf);
@ -420,14 +428,14 @@ ospf_finish (struct ospf *ospf)
/* allocate new OSPF Area object */
struct ospf_area *
ospf_area_new (struct in_addr area_id)
ospf_area_new (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *new;
/* Allocate new config_network. */
new = XCALLOC (MTYPE_OSPF_AREA, sizeof (struct ospf_area));
new->top = ospf_top;
new->ospf = ospf;
new->area_id = area_id;
@ -449,7 +457,7 @@ ospf_area_new (struct in_addr area_id)
new->ranges = route_table_init ();
if (area_id.s_addr == OSPF_AREA_BACKBONE)
ospf_top->backbone = new;
ospf->backbone = new;
return new;
}
@ -457,22 +465,28 @@ ospf_area_new (struct in_addr area_id)
void
ospf_area_free (struct ospf_area *area)
{
struct route_node *rn;
struct ospf_lsa *lsa;
/* Free LSDBs. */
foreach_lsa (ROUTER_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
foreach_lsa (NETWORK_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
foreach_lsa (SUMMARY_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
foreach_lsa (ASBR_SUMMARY_LSDB (area), area->lsdb, 0,
ospf_lsa_discard_callback);
LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
#ifdef HAVE_NSSA
foreach_lsa (NSSA_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
#endif /* HAVE_NSSA */
#ifdef HAVE_OPAQUE_LSA
foreach_lsa (OPAQUE_AREA_LSDB (area), area->lsdb, 0,
ospf_lsa_discard_callback);
foreach_lsa (OPAQUE_LINK_LSDB (area), area->lsdb, 0,
ospf_lsa_discard_callback);
ospf_opaque_type10_lsa_term (area);
LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
ospf_discard_from_db (area->ospf, area->lsdb, lsa);
#endif /* HAVE_OPAQUE_LSA */
ospf_lsdb_delete_all (area->lsdb);
@ -493,17 +507,17 @@ ospf_area_free (struct ospf_area *area)
OSPF_TIMER_OFF (area->t_router_lsa_self);
if (OSPF_IS_AREA_BACKBONE (area))
ospf_top->backbone = NULL;
area->ospf->backbone = NULL;
XFREE (MTYPE_OSPF_AREA, area);
}
void
ospf_area_check_free (struct in_addr area_id)
ospf_area_check_free (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area &&
listcount (area->oiflist) == 0 &&
area->ranges->top == NULL &&
@ -515,35 +529,35 @@ ospf_area_check_free (struct in_addr area_id)
IMPORT_NAME (area) == NULL &&
area->auth_type == OSPF_AUTH_NULL)
{
listnode_delete (ospf_top->areas, area);
listnode_delete (ospf->areas, area);
ospf_area_free (area);
}
}
struct ospf_area *
ospf_area_get (struct in_addr area_id, int format)
ospf_area_get (struct ospf *ospf, struct in_addr area_id, int format)
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (!area)
{
area = ospf_area_new (area_id);
area = ospf_area_new (ospf, area_id);
area->format = format;
listnode_add_sort (ospf_top->areas, area);
ospf_check_abr_status ();
listnode_add_sort (ospf->areas, area);
ospf_check_abr_status (ospf);
}
return area;
}
struct ospf_area *
ospf_area_lookup_by_area_id (struct in_addr area_id)
ospf_area_lookup_by_area_id (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *area;
listnode node;
for (node = listhead (ospf_top->areas); node; nextnode (node))
for (node = listhead (ospf->areas); node; nextnode (node))
{
area = getdata (node);
@ -581,10 +595,10 @@ ospf_network_new (struct in_addr area_id, int format)
}
void
ospf_network_free (struct ospf_network *network)
ospf_network_free (struct ospf *ospf, struct ospf_network *network)
{
ospf_area_check_free (network->area_id);
ospf_schedule_abr_task ();
ospf_area_check_free (ospf, network->area_id);
ospf_schedule_abr_task (ospf);
XFREE (MTYPE_OSPF_NETWORK, network);
}
@ -607,7 +621,7 @@ ospf_network_set (struct ospf *ospf, struct prefix_ipv4 *p,
}
rn->info = network = ospf_network_new (area_id, ret);
area = ospf_area_get (area_id, ret);
area = ospf_area_get (ospf, area_id, ret);
/* Run network config now. */
ospf_network_run (ospf, (struct prefix *)p, area);
@ -618,12 +632,12 @@ ospf_network_set (struct ospf *ospf, struct prefix_ipv4 *p,
for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
rn; rn = route_next (rn))
if ((ei = rn->info) != NULL)
if (ospf_external_info_find_lsa (&ei->p))
if (!ospf_distribute_check_connected (ei))
ospf_external_lsa_flush (ei->type, &ei->p,
if (ospf_external_info_find_lsa (ospf, &ei->p))
if (!ospf_distribute_check_connected (ospf, ei))
ospf_external_lsa_flush (ospf, ei->type, &ei->p,
ei->ifindex, ei->nexthop);
ospf_area_check_free (area_id);
ospf_area_check_free (ospf, area_id);
return 1;
}
@ -644,11 +658,11 @@ ospf_network_unset (struct ospf *ospf, struct prefix_ipv4 *p,
if (!IPV4_ADDR_SAME (&area_id, &network->area_id))
return 0;
ospf_network_free (rn->info);
ospf_network_free (ospf, rn->info);
rn->info = NULL;
route_unlock_node (rn);
ospf_if_update ();
ospf_if_update (ospf);
/* Update connected redistribute. */
if (ospf_is_type_redistributed (ZEBRA_ROUTE_CONNECT))
@ -656,9 +670,9 @@ ospf_network_unset (struct ospf *ospf, struct prefix_ipv4 *p,
for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
rn; rn = route_next (rn))
if ((ei = rn->info) != NULL)
if (!ospf_external_info_find_lsa (&ei->p))
if (ospf_distribute_check_connected (ei))
ospf_external_lsa_originate (ei);
if (!ospf_external_info_find_lsa (ospf, &ei->p))
if (ospf_distribute_check_connected (ospf, ei))
ospf_external_lsa_originate (ospf, ei);
return 1;
}
@ -721,13 +735,13 @@ ospf_network_run (struct ospf *ospf, struct prefix *p, struct ospf_area *area)
addr = co->address;
if (p->family == co->address->family
&& ! ospf_if_is_configured (&(addr->u.prefix4))
&& ! ospf_if_is_configured (ospf, &(addr->u.prefix4))
&& ospf_network_match_iface(co,p))
{
struct ospf_interface *oi;
assert(co);
oi = ospf_if_new (ifp, co->address);
oi = ospf_if_new (ospf, ifp, co->address);
oi->connected = co;
oi->nbr_self->address = *oi->address;
@ -746,11 +760,11 @@ ospf_network_run (struct ospf *ospf, struct prefix *p, struct ospf_area *area)
ospf_nbr_add_self (oi);
/* Make sure pseudo neighbor's router_id. */
oi->nbr_self->router_id = ospf_top->router_id;
oi->nbr_self->router_id = ospf->router_id;
oi->nbr_self->src = oi->address->u.prefix4;
/* Relate ospf interface to ospf instance. */
oi->ospf = ospf_top;
oi->ospf = ospf;
/* update network type as interface flag */
/* If network type is specified previously,
@ -814,7 +828,7 @@ ospf_ls_upd_queue_empty (struct ospf_interface *oi)
}
void
ospf_if_update ()
ospf_if_update (struct ospf *ospf)
{
struct route_node *rn;
listnode node;
@ -822,19 +836,19 @@ ospf_if_update ()
struct ospf_network *network;
struct ospf_area *area;
if (ospf_top != NULL)
if (ospf != NULL)
{
/* Update Router ID scheduled. */
if (ospf_top->router_id_static.s_addr == 0)
if (ospf_top->t_router_id_update == NULL)
if (ospf->router_id_static.s_addr == 0)
if (ospf->t_router_id_update == NULL)
{
ospf_top->t_router_id_update =
ospf->t_router_id_update =
thread_add_timer (master, ospf_router_id_update_timer, NULL,
OSPF_ROUTER_ID_UPDATE_DELAY);
}
/* Find interfaces that not configured already. */
for (node = listhead (ospf_top->oiflist); node; node = next)
for (node = listhead (ospf->oiflist); node; node = next)
{
int found = 0;
struct ospf_interface *oi = getdata (node);
@ -845,7 +859,7 @@ ospf_if_update ()
if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
continue;
for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
{
if (rn->info == NULL)
continue;
@ -863,28 +877,28 @@ ospf_if_update ()
}
/* Run each interface. */
for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
if (rn->info != NULL)
{
network = (struct ospf_network *) rn->info;
area = ospf_area_get (network->area_id, network->format);
ospf_network_run (ospf_top, &rn->p, area);
area = ospf_area_get (ospf, network->area_id, network->format);
ospf_network_run (ospf, &rn->p, area);
}
}
}
void
ospf_remove_vls_through_area (struct ospf_area *area)
ospf_remove_vls_through_area (struct ospf *ospf, struct ospf_area *area)
{
listnode node, next;
struct ospf_vl_data *vl_data;
for (node = listhead (ospf_top->vlinks); node; node = next)
for (node = listhead (ospf->vlinks); node; node = next)
{
next = node->next;
if ((vl_data = getdata (node)) != NULL)
if (IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
ospf_vl_delete (vl_data);
ospf_vl_delete (ospf, vl_data);
}
}
@ -956,31 +970,31 @@ ospf_area_type_set (struct ospf_area *area, int type)
}
ospf_router_lsa_timer_add (area);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (area->ospf);
}
int
ospf_area_shortcut_set (struct ospf_area *area, int mode)
ospf_area_shortcut_set (struct ospf *ospf, struct ospf_area *area, int mode)
{
if (area->shortcut_configured == mode)
return 0;
area->shortcut_configured = mode;
ospf_router_lsa_timer_add (area);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
ospf_area_check_free (area->area_id);
ospf_area_check_free (ospf, area->area_id);
return 1;
}
int
ospf_area_shortcut_unset (struct ospf_area *area)
ospf_area_shortcut_unset (struct ospf *ospf, struct ospf_area *area)
{
area->shortcut_configured = OSPF_SHORTCUT_DEFAULT;
ospf_router_lsa_timer_add (area);
ospf_area_check_free (area->area_id);
ospf_schedule_abr_task ();
ospf_area_check_free (ospf, area->area_id);
ospf_schedule_abr_task (ospf);
return 1;
}
@ -1008,7 +1022,7 @@ ospf_area_stub_set (struct ospf *ospf, struct in_addr area_id)
struct ospf_area *area;
int format = OSPF_AREA_ID_FORMAT_DECIMAL;
area = ospf_area_get (area_id, format);
area = ospf_area_get (ospf, area_id, format);
if (ospf_area_vlink_count (ospf, area))
return 0;
@ -1023,14 +1037,14 @@ ospf_area_stub_unset (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area == NULL)
return 1;
if (area->external_routing == OSPF_AREA_STUB)
ospf_area_type_set (area, OSPF_AREA_DEFAULT);
ospf_area_check_free (area_id);
ospf_area_check_free (ospf, area_id);
return 1;
}
@ -1041,7 +1055,7 @@ ospf_area_no_summary_set (struct ospf *ospf, struct in_addr area_id)
struct ospf_area *area;
int format = OSPF_AREA_ID_FORMAT_DECIMAL;
area = ospf_area_get (area_id, format);
area = ospf_area_get (ospf, area_id, format);
area->no_summary = 1;
return 1;
@ -1052,12 +1066,12 @@ ospf_area_no_summary_unset (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area == NULL)
return 0;
area->no_summary = 0;
ospf_area_check_free (area_id);
ospf_area_check_free (ospf, area_id);
return 1;
}
@ -1068,7 +1082,7 @@ ospf_area_nssa_set (struct ospf *ospf, struct in_addr area_id)
struct ospf_area *area;
int format = OSPF_AREA_ID_FORMAT_DECIMAL;
area = ospf_area_get (area_id, format);
area = ospf_area_get (ospf, area_id, format);
if (ospf_area_vlink_count (ospf, area))
return 0;
@ -1086,7 +1100,7 @@ ospf_area_nssa_unset (struct ospf *ospf, struct in_addr area_id)
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area == NULL)
return 0;
@ -1096,7 +1110,7 @@ ospf_area_nssa_unset (struct ospf *ospf, struct in_addr area_id)
ospf_area_type_set (area, OSPF_AREA_DEFAULT);
}
ospf_area_check_free (area_id);
ospf_area_check_free (ospf, area_id);
return 1;
}
@ -1107,7 +1121,7 @@ ospf_area_nssa_translator_role_set (struct ospf *ospf, struct in_addr area_id,
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area == NULL)
return 0;
@ -1122,19 +1136,20 @@ ospf_area_nssa_translator_role_unset (struct ospf *ospf,
{
struct ospf_area *area;
area = ospf_area_lookup_by_area_id (area_id);
area = ospf_area_lookup_by_area_id (ospf, area_id);
if (area == NULL)
return 0;
area->NSSATranslator = OSPF_NSSA_ROLE_CANDIDATE;
ospf_area_check_free (area_id);
ospf_area_check_free (ospf, area_id);
return 1;
}
int
ospf_area_export_list_set (struct ospf_area *area, char *list_name)
ospf_area_export_list_set (struct ospf *ospf,
struct ospf_area *area, char *list_name)
{
struct access_list *list;
list = access_list_lookup (AFI_IP, list_name);
@ -1145,13 +1160,13 @@ ospf_area_export_list_set (struct ospf_area *area, char *list_name)
free (EXPORT_NAME (area));
EXPORT_NAME (area) = strdup (list_name);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
return 1;
}
int
ospf_area_export_list_unset (struct ospf_area * area)
ospf_area_export_list_unset (struct ospf *ospf, struct ospf_area * area)
{
EXPORT_LIST (area) = 0;
@ -1161,15 +1176,16 @@ ospf_area_export_list_unset (struct ospf_area * area)
EXPORT_NAME (area) = NULL;
ospf_area_check_free (area->area_id);
ospf_area_check_free (ospf, area->area_id);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
return 1;
}
int
ospf_area_import_list_set (struct ospf_area *area, char *name)
ospf_area_import_list_set (struct ospf *ospf,
struct ospf_area *area, char *name)
{
struct access_list *list;
list = access_list_lookup (AFI_IP, name);
@ -1180,13 +1196,13 @@ ospf_area_import_list_set (struct ospf_area *area, char *name)
free (IMPORT_NAME (area));
IMPORT_NAME (area) = strdup (name);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
return 1;
}
int
ospf_area_import_list_unset (struct ospf_area * area)
ospf_area_import_list_unset (struct ospf *ospf, struct ospf_area * area)
{
IMPORT_LIST (area) = 0;
@ -1194,9 +1210,9 @@ ospf_area_import_list_unset (struct ospf_area * area)
free (IMPORT_NAME (area));
IMPORT_NAME (area) = NULL;
ospf_area_check_free (area->area_id);
ospf_area_check_free (ospf, area->area_id);
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
return 1;
}
@ -1369,7 +1385,7 @@ ospf_nbr_nbma_add (struct ospf_nbr_nbma *nbr_nbma,
}
void
ospf_nbr_nbma_if_update (struct ospf_interface *oi)
ospf_nbr_nbma_if_update (struct ospf *ospf, struct ospf_interface *oi)
{
struct ospf_nbr_nbma *nbr_nbma;
struct route_node *rn;
@ -1378,7 +1394,7 @@ ospf_nbr_nbma_if_update (struct ospf_interface *oi)
if (oi->type != OSPF_IFTYPE_NBMA)
return;
for (rn = route_top (ospf_top->nbr_nbma); rn; rn = route_next (rn))
for (rn = route_top (ospf->nbr_nbma); rn; rn = route_next (rn))
if ((nbr_nbma = rn->info))
if (nbr_nbma->oi == NULL && nbr_nbma->nbr == NULL)
{
@ -1411,18 +1427,18 @@ ospf_nbr_nbma_lookup (struct ospf *ospf, struct in_addr nbr_addr)
}
struct ospf_nbr_nbma *
ospf_nbr_nbma_lookup_next (struct in_addr *addr, int first)
ospf_nbr_nbma_lookup_next (struct ospf *ospf, struct in_addr *addr, int first)
{
#if 0
struct ospf_nbr_nbma *nbr_nbma;
listnode node;
#endif
if (! ospf_top)
if (ospf == NULL)
return NULL;
#if 0
for (node = listhead (ospf_top->nbr_nbma); node; nextnode (node))
for (node = listhead (ospf->nbr_nbma); node; nextnode (node))
{
nbr_nbma = getdata (node);
@ -1567,16 +1583,17 @@ ospf_nbr_nbma_poll_interval_unset (struct ospf *ospf, struct in_addr addr)
void
ospf_prefix_list_update (struct prefix_list *plist)
{
struct ospf *ospf = ospf_top;
struct ospf_area *area;
listnode node;
int abr_inv = 0;
/* If OSPF instatnce does not exist, return right now. */
if (!ospf_top)
if (ospf == NULL)
return;
/* Update Area prefix-list. */
for (node = listhead (ospf_top->areas); node; nextnode (node))
for (node = listhead (ospf->areas); node; nextnode (node))
{
area = getdata (node);
@ -1601,7 +1618,7 @@ ospf_prefix_list_update (struct prefix_list *plist)
/* Schedule ABR tasks. */
if (OSPF_IS_ABR && abr_inv)
ospf_schedule_abr_task ();
ospf_schedule_abr_task (ospf);
}
void

View File

@ -32,6 +32,11 @@
#define IPPROTO_OSPFIGP 89
#endif /* IPPROTO_OSPFIGP */
/* IP precedence. */
#ifndef IPTOS_PREC_INTERNETCONTROL
#define IPTOS_PREC_INTERNETCONTROL 0xC0
#endif /* IPTOS_PREC_INTERNETCONTROL */
/* VTY port number. */
#define OSPF_VTY_PORT 2604
#define OSPF_VTYSH_PATH "/tmp/.ospfd"
@ -288,7 +293,7 @@ struct ospf
struct ospf_area
{
/* OSPF instance. */
struct ospf *top;
struct ospf *ospf;
/* Zebra interface list belonging to the area. */
list oiflist;
@ -456,7 +461,7 @@ struct ospf_nbr_nbma
#define OSPF_TIMER_ON(T,F,V) \
do { \
if (!(T)) \
(T) = thread_add_timer (master, (F), NULL, (V)); \
(T) = thread_add_timer (master, (F), ospf, (V)); \
} while (0)
#define OSPF_AREA_TIMER_ON(T,F,V) \
@ -482,12 +487,6 @@ struct ospf_nbr_nbma
} \
} while (0)
#define OSPF_SCHEDULE_MAXAGE(T, F) \
do { \
if (!(T)) \
(T) = thread_add_timer (master, (F), 0, 2); \
} while (0)
/* Messages */
extern struct message ospf_ism_state_msg[];
extern struct message ospf_nsm_state_msg[];
@ -521,12 +520,12 @@ int ospf_area_no_summary_unset (struct ospf *, struct in_addr);
int ospf_area_nssa_set (struct ospf *, struct in_addr);
int ospf_area_nssa_unset (struct ospf *, struct in_addr);
int ospf_area_nssa_translator_role_set (struct ospf *, struct in_addr, int);
int ospf_area_export_list_set (struct ospf_area *, char *);
int ospf_area_export_list_unset (struct ospf_area *);
int ospf_area_import_list_set (struct ospf_area *, char *);
int ospf_area_import_list_unset (struct ospf_area *);
int ospf_area_shortcut_set (struct ospf_area *, int);
int ospf_area_shortcut_unset (struct ospf_area *);
int ospf_area_export_list_set (struct ospf *, struct ospf_area *, char *);
int ospf_area_export_list_unset (struct ospf *, struct ospf_area *);
int ospf_area_import_list_set (struct ospf *, struct ospf_area *, char *);
int ospf_area_import_list_unset (struct ospf *, struct ospf_area *);
int ospf_area_shortcut_set (struct ospf *, struct ospf_area *, int);
int ospf_area_shortcut_unset (struct ospf *, struct ospf_area *);
int ospf_timers_spf_set (struct ospf *, u_int32_t, u_int32_t);
int ospf_timers_spf_unset (struct ospf *);
int ospf_timers_refresh_set (struct ospf *, int);
@ -539,18 +538,18 @@ int ospf_nbr_nbma_poll_interval_set (struct ospf *, struct in_addr, int);
int ospf_nbr_nbma_poll_interval_unset (struct ospf *, struct in_addr);
void ospf_prefix_list_update (struct prefix_list *);
void ospf_init ();
void ospf_if_update ();
void ospf_if_update (struct ospf *);
void ospf_ls_upd_queue_empty (struct ospf_interface *);
void ospf_terminate ();
void ospf_nbr_nbma_if_update (struct ospf_interface *);
void ospf_nbr_nbma_if_update (struct ospf *, struct ospf_interface *);
struct ospf_nbr_nbma *ospf_nbr_nbma_lookup (struct ospf *, struct in_addr);
struct ospf_nbr_nbma *ospf_nbr_nbma_lookup_next (struct in_addr *, int);
struct ospf_nbr_nbma *ospf_nbr_nbma_lookup_next (struct ospf *,
struct in_addr *, int);
int ospf_oi_count (struct interface *);
struct ospf_area *ospf_area_new (struct in_addr);
struct ospf_area *ospf_area_get (struct in_addr, int);
void ospf_area_check_free (struct in_addr);
struct ospf_area *ospf_area_lookup_by_area_id (struct in_addr);
struct ospf_area *ospf_area_get (struct ospf *, struct in_addr, int);
void ospf_area_check_free (struct ospf *, struct in_addr);
struct ospf_area *ospf_area_lookup_by_area_id (struct ospf *, struct in_addr);
void ospf_area_add_if (struct ospf_area *, struct ospf_interface *);
void ospf_area_del_if (struct ospf_area *, struct ospf_interface *);

View File

@ -1,5 +1,5 @@
# conditionals
%define with_snmp 1
%define with_snmp 0
%define with_vtysh 1
%define with_ospf_te 1
%define with_nssa 1
@ -8,6 +8,8 @@
%define with_vtysh 1
%define with_pam 1
%define with_ipv6 1
%define with_ospfclient 0
%define with_ospfapi 0
%define with_multipath 64
# path defines
@ -24,7 +26,7 @@
Summary: Routing daemon
Name: zebra
Version: 0.94
Release: 2003031801
Release: 2003032501
License: GPL
Group: System Environment/Daemons
Source0: ftp://ftp.zebra.org/pub/zebra/%{name}-%{version}.tar.gz
@ -105,6 +107,16 @@ developing OSPF-API and zebra applications.
%if %with_vtysh
--enable-vtysh \
%endif
%if %with_ospfclient
--enable-ospfclient=yes \
%else
--enable-ospfclient=no\
%endif
%if %with_ospfapi
--enable-ospfapi=yes \
%else
--enable-ospfapi=no \
%endif
%if %with_pam
--with-libpam
%endif
@ -243,8 +255,10 @@ fi
%files devel
%defattr(-,root,root)
%dir %{_libdir}/*
%dir %{_includedir}/ospfd/*
%dir %{_includedir}/ospfd/*
%if %with_ospfapi
%dir %{_includedir}/ospfapi/*
%endif
%changelog
* Mon Mar 18 2003 Paul Jakma <paul@dishone.st>

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -112,277 +119,271 @@ ripd_LDADD = ../lib/libzebra.a
sysconf_DATA = ripd.conf.sample
EXTRA_DIST = $(sysconf_DATA) RIPv2-MIB.txt
subdir = ripd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
librip_a_AR = $(AR) cru
librip_a_LIBADD =
am_librip_a_OBJECTS = ripd.$(OBJEXT) rip_zebra.$(OBJEXT) \
rip_interface.$(OBJEXT) rip_debug.$(OBJEXT) rip_snmp.$(OBJEXT) \
rip_routemap.$(OBJEXT) rip_peer.$(OBJEXT) rip_offset.$(OBJEXT)
librip_a_OBJECTS = $(am_librip_a_OBJECTS)
sbin_PROGRAMS = ripd$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_ripd_OBJECTS = rip_main.$(OBJEXT) ripd.$(OBJEXT) rip_zebra.$(OBJEXT) \
rip_interface.$(OBJEXT) rip_debug.$(OBJEXT) rip_snmp.$(OBJEXT) \
rip_routemap.$(OBJEXT) rip_peer.$(OBJEXT) rip_offset.$(OBJEXT)
ripd_OBJECTS = $(am_ripd_OBJECTS)
ripd_DEPENDENCIES = ../lib/libzebra.a
ripd_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
librip_a_LIBADD =
librip_a_OBJECTS = ripd.o rip_zebra.o rip_interface.o rip_debug.o \
rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o
PROGRAMS = $(sbin_PROGRAMS)
ripd_OBJECTS = rip_main.o ripd.o rip_zebra.o rip_interface.o \
rip_debug.o rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o
ripd_DEPENDENCIES = ../lib/libzebra.a
ripd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/rip_debug.Po \
@AMDEP_TRUE@ $(DEPDIR)/rip_interface.Po $(DEPDIR)/rip_main.Po \
@AMDEP_TRUE@ $(DEPDIR)/rip_offset.Po $(DEPDIR)/rip_peer.Po \
@AMDEP_TRUE@ $(DEPDIR)/rip_routemap.Po $(DEPDIR)/rip_snmp.Po \
@AMDEP_TRUE@ $(DEPDIR)/rip_zebra.Po $(DEPDIR)/ripd.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/rip_debug.P .deps/rip_interface.P .deps/rip_main.P \
.deps/rip_offset.P .deps/rip_peer.P .deps/rip_routemap.P \
.deps/rip_snmp.P .deps/rip_zebra.P .deps/ripd.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
OBJECTS = $(librip_a_OBJECTS) $(ripd_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ripd/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign ripd/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES)
librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES)
-rm -f librip.a
$(AR) cru librip.a $(librip_a_OBJECTS) $(librip_a_LIBADD)
$(librip_a_AR) librip.a $(librip_a_OBJECTS) $(librip_a_LIBADD)
$(RANLIB) librip.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
ripd: $(ripd_OBJECTS) $(ripd_DEPENDENCIES)
@rm -f ripd
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
ripd$(EXEEXT): $(ripd_OBJECTS) $(ripd_DEPENDENCIES)
@rm -f ripd$(EXEEXT)
$(LINK) $(ripd_LDFLAGS) $(ripd_OBJECTS) $(ripd_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_debug.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_offset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_peer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_snmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripd.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = ripd
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ripd/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-sbinPROGRAMS install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
install-sysconfDATA: $(sysconf_DATA)
@ -397,7 +398,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -112,277 +119,269 @@ ripngd_LDADD = ../lib/libzebra.a
sysconf_DATA = ripngd.conf.sample
EXTRA_DIST = $(sysconf_DATA)
subdir = ripngd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libripng_a_AR = $(AR) cru
libripng_a_LIBADD =
am_libripng_a_OBJECTS = ripng_interface.$(OBJEXT) ripngd.$(OBJEXT) \
ripng_zebra.$(OBJEXT) ripng_route.$(OBJEXT) \
ripng_debug.$(OBJEXT) ripng_routemap.$(OBJEXT)
libripng_a_OBJECTS = $(am_libripng_a_OBJECTS)
sbin_PROGRAMS = ripngd$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_ripngd_OBJECTS = ripng_main.$(OBJEXT) ripng_interface.$(OBJEXT) \
ripngd.$(OBJEXT) ripng_zebra.$(OBJEXT) ripng_route.$(OBJEXT) \
ripng_debug.$(OBJEXT) ripng_routemap.$(OBJEXT)
ripngd_OBJECTS = $(am_ripngd_OBJECTS)
ripngd_DEPENDENCIES = ../lib/libzebra.a
ripngd_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libripng_a_LIBADD =
libripng_a_OBJECTS = ripng_interface.o ripngd.o ripng_zebra.o \
ripng_route.o ripng_debug.o ripng_routemap.o
PROGRAMS = $(sbin_PROGRAMS)
ripngd_OBJECTS = ripng_main.o ripng_interface.o ripngd.o ripng_zebra.o \
ripng_route.o ripng_debug.o ripng_routemap.o
ripngd_DEPENDENCIES = ../lib/libzebra.a
ripngd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ripng_debug.Po \
@AMDEP_TRUE@ $(DEPDIR)/ripng_interface.Po \
@AMDEP_TRUE@ $(DEPDIR)/ripng_main.Po $(DEPDIR)/ripng_route.Po \
@AMDEP_TRUE@ $(DEPDIR)/ripng_routemap.Po \
@AMDEP_TRUE@ $(DEPDIR)/ripng_zebra.Po $(DEPDIR)/ripngd.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/ripng_debug.P .deps/ripng_interface.P \
.deps/ripng_main.P .deps/ripng_route.P .deps/ripng_routemap.P \
.deps/ripng_zebra.P .deps/ripngd.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
OBJECTS = $(libripng_a_OBJECTS) $(ripngd_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ripngd/Makefile
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign ripngd/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
AR = ar
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
distclean-noinstLIBRARIES:
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES)
libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES)
-rm -f libripng.a
$(AR) cru libripng.a $(libripng_a_OBJECTS) $(libripng_a_LIBADD)
$(libripng_a_AR) libripng.a $(libripng_a_OBJECTS) $(libripng_a_LIBADD)
$(RANLIB) libripng.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
ripngd: $(ripngd_OBJECTS) $(ripngd_DEPENDENCIES)
@rm -f ripngd
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
ripngd$(EXEEXT): $(ripngd_OBJECTS) $(ripngd_DEPENDENCIES)
@rm -f ripngd$(EXEEXT)
$(LINK) $(ripngd_LDFLAGS) $(ripngd_OBJECTS) $(ripngd_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_debug.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_route.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_routemap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_zebra.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripngd.Po@am__quote@
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = ripngd
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ripngd/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
mostlyclean-sbinPROGRAMS mostlyclean-tags \
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \
distclean-sbinPROGRAMS distclean-tags distclean-depend \
distclean-generic clean-am
clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
distclean-compile distclean-depend distclean-generic \
distclean-tags distdir dvi dvi-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-sbinPROGRAMS install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
install-sysconfDATA: $(sysconf_DATA)
@ -397,7 +396,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -101,265 +108,253 @@ vtysh_LDADD = ../lib/libzebra.a
sysconf_DATA = vtysh.conf.sample
EXTRA_DIST = extract.pl vtysh.conf.sample
subdir = vtysh
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
bin_PROGRAMS = vtysh$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS)
am_vtysh_OBJECTS = vtysh_main.$(OBJEXT) vtysh.$(OBJEXT) \
vtysh_cmd.$(OBJEXT) vtysh_user.$(OBJEXT) vtysh_config.$(OBJEXT)
vtysh_OBJECTS = $(am_vtysh_OBJECTS)
vtysh_DEPENDENCIES = ../lib/libzebra.a
vtysh_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
vtysh_OBJECTS = vtysh_main.o vtysh.o vtysh_cmd.o vtysh_user.o \
vtysh_config.o
vtysh_DEPENDENCIES = ../lib/libzebra.a
vtysh_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/vtysh.Po $(DEPDIR)/vtysh_cmd.Po \
@AMDEP_TRUE@ $(DEPDIR)/vtysh_config.Po $(DEPDIR)/vtysh_main.Po \
@AMDEP_TRUE@ $(DEPDIR)/vtysh_user.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(vtysh_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/vtysh.P .deps/vtysh_cmd.P .deps/vtysh_config.P \
.deps/vtysh_main.P .deps/vtysh_user.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(vtysh_SOURCES)
OBJECTS = $(vtysh_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign vtysh/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
distclean-binPROGRAMS:
maintainer-clean-binPROGRAMS:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign vtysh/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
else :; fi; \
done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
rm -f $(DESTDIR)$(bindir)/$$f; \
done
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
vtysh$(EXEEXT): $(vtysh_OBJECTS) $(vtysh_DEPENDENCIES)
@rm -f vtysh$(EXEEXT)
$(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_cmd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_user.Po@am__quote@
vtysh: $(vtysh_OBJECTS) $(vtysh_DEPENDENCIES)
@rm -f vtysh
$(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sysconfdir)
@list='$(sysconf_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f"; \
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f; \
done
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = vtysh
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign vtysh/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-binPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
mostlyclean-tags mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
distclean-depend distclean-generic clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-binPROGRAMS \
maintainer-clean-compile maintainer-clean-tags \
maintainer-clean-depend maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-binPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile uninstall-sysconfDATA install-sysconfDATA tags \
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
distdir mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic distclean distclean-compile distclean-depend \
distclean-generic distclean-tags distdir dvi dvi-am info \
info-am install install-am install-binPROGRAMS install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip install-sysconfDATA \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic tags uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-info-am uninstall-sysconfDATA
rebuild4:
@ -367,7 +362,6 @@ rebuild4:
rebuild:
./extract.pl ../zebra/*.c ../ripd/*.c ../ripngd/*.c ../ospfd/*.c ../ospf6d/*.c ../bgpd/*.c ../lib/keychain.c ../lib/routemap.c ../lib/filter.c ../lib/plist.c >vtysh_cmd.c
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -61,25 +61,6 @@ foreach (@ARGV) {
@defun = ($line =~ /(?:DEFUN|ALIAS)\s*\((.+?)\);?\s?\s?\n/sg);
@install = ($line =~ /install_element \(\s*[0-9A-Z_]+,\s*&[^;]*;\s*\n/sg);
# $protocol is VTYSH_PROTO format for redirection of user input
if ($file =~ /lib/) {
if ($file =~ /keychain.c/) {
$protocol = "VTYSH_RIPD";
}
if ($file =~ /routemap.c/) {
$protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
}
if ($file =~ /filter.c/) {
$protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
}
if ($file =~ /plist.c/) {
$protocol = "VTYSH_RIPD|VTYSH_BGPD";
}
} else {
($protocol) = ($file =~ /\/([a-z0-9]+)/);
$protocol = "VTYSH_" . uc $protocol;
}
# DEFUN process
foreach (@defun) {
my (@defun_array);
@ -98,6 +79,33 @@ foreach (@ARGV) {
$cmd =~ s/^\s+//g;
$cmd =~ s/\s+$//g;
# $protocol is VTYSH_PROTO format for redirection of user input
if ($file =~ /lib/) {
if ($file =~ /keychain.c/) {
$protocol = "VTYSH_RIPD";
}
if ($file =~ /routemap.c/) {
$protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
}
if ($file =~ /filter.c/) {
if ($defun_array[1] =~ m/ipv6/) {
$protocol = "VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD";
} else {
$protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
}
}
if ($file =~ /plist.c/) {
if ($defun_array[1] =~ m/ipv6/) {
$protocol = "VTYSH_RIPNGD|VTYSH_BGPD";
} else {
$protocol = "VTYSH_RIPD|VTYSH_BGPD";
}
}
} else {
($protocol) = ($file =~ /\/([a-z0-9]+)/);
$protocol = "VTYSH_" . uc $protocol;
}
# Append _vtysh to structure then build DEFUN again
$defun_array[1] = $cmd . "_vtysh";
$defun_body = join (", ", @defun_array);

View File

@ -1081,6 +1081,20 @@ ALIAS (vtysh_exit_ripd,
"quit",
"Exit current mode and down to previous mode\n")
DEFUNSH (VTYSH_RIPNGD,
vtysh_exit_ripngd,
vtysh_exit_ripngd_cmd,
"exit",
"Exit current mode and down to previous mode\n")
{
return vtysh_exit (vty);
}
ALIAS (vtysh_exit_ripngd,
vtysh_quit_ripngd_cmd,
"quit",
"Exit current mode and down to previous mode\n")
DEFUNSH (VTYSH_RMAP,
vtysh_exit_rmap,
vtysh_exit_rmap_cmd,
@ -1123,7 +1137,21 @@ ALIAS (vtysh_exit_ospfd,
"quit",
"Exit current mode and down to previous mode\n")
DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
DEFUNSH (VTYSH_OSPF6D,
vtysh_exit_ospf6d,
vtysh_exit_ospf6d_cmd,
"exit",
"Exit current mode and down to previous mode\n")
{
return vtysh_exit (vty);
}
ALIAS (vtysh_exit_ospf6d,
vtysh_quit_ospf6d_cmd,
"quit",
"Exit current mode and down to previous mode\n")
DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD|VTYSH_OSPF6D,
vtysh_interface,
vtysh_interface_cmd,
"interface IFNAME",
@ -1155,7 +1183,7 @@ DEFSH (VTYSH_RMAP,
"Metric value for destination routing protocol\n"
"Metric value\n")
DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD|VTYSH_OSPF6D,
vtysh_exit_interface,
vtysh_exit_interface_cmd,
"exit",
@ -1653,7 +1681,7 @@ vtysh_connect_all()
/* To disable readline's filename completion */
int
vtysh_completion_entry_fucntion (int ignore, int invoking_key)
vtysh_completion_entry_function (int ignore, int invoking_key)
{
return 0;
}
@ -1663,7 +1691,7 @@ vtysh_readline_init ()
{
/* readline related settings. */
rl_bind_key ('?', vtysh_rl_describe);
rl_completion_entry_function = vtysh_completion_entry_fucntion;
rl_completion_entry_function = vtysh_completion_entry_function;
rl_attempted_completion_function = (CPPFunction *)new_completion;
/* do not append space after completion. It will be appended
in new_completion() function explicitly */
@ -1753,8 +1781,12 @@ vtysh_init_vty ()
install_element (ENABLE_NODE, &vtysh_quit_all_cmd);
install_element (RIP_NODE, &vtysh_exit_ripd_cmd);
install_element (RIP_NODE, &vtysh_quit_ripd_cmd);
install_element (RIPNG_NODE, &vtysh_exit_ripngd_cmd);
install_element (RIPNG_NODE, &vtysh_quit_ripngd_cmd);
install_element (OSPF_NODE, &vtysh_exit_ospfd_cmd);
install_element (OSPF_NODE, &vtysh_quit_ospfd_cmd);
install_element (OSPF6_NODE, &vtysh_exit_ospf6d_cmd);
install_element (OSPF6_NODE, &vtysh_quit_ospf6d_cmd);
install_element (BGP_NODE, &vtysh_exit_bgpd_cmd);
install_element (BGP_NODE, &vtysh_quit_bgpd_cmd);
install_element (BGP_VPNV4_NODE, &vtysh_exit_bgpd_cmd);

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Makefile.in generated automatically by automake 1.5 from Makefile.am.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -10,6 +11,7 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
@ -59,20 +57,26 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@
AWK = @AWK@
BGPD = @BGPD@
CC = @CC@
CPP = @CPP@
CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@
LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@
@ -85,12 +89,15 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@
VTYSH = @VTYSH@
ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
INSTALL_SDATA = @INSTALL@ -m 600
LIB_IPV6 = @LIB_IPV6@
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
INSTALL_SDATA = @INSTALL@ -m 600
ipforward = @IPFORWARD@
if_method = @IF_METHOD@
@ -129,253 +136,256 @@ EXTRA_DIST = $(sysconf_DATA) if_ioctl.c if_netlink.c if_proc.c if_sysctl.c \
rtread_getmsg.c kernel_socket.c kernel_netlink.c mtu_kvm.c \
GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB
subdir = zebra
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(sbin_PROGRAMS)
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
sbin_PROGRAMS = zebra$(EXEEXT)
PROGRAMS = $(sbin_PROGRAMS)
am_zebra_OBJECTS = zserv.$(OBJEXT) main.$(OBJEXT) interface.$(OBJEXT) \
connected.$(OBJEXT) ioctl.$(OBJEXT) zebra_rib.$(OBJEXT) \
redistribute.$(OBJEXT) debug.$(OBJEXT) rtadv.$(OBJEXT) \
zebra_snmp.$(OBJEXT) zebra_vty.$(OBJEXT)
zebra_OBJECTS = $(am_zebra_OBJECTS)
zebra_LDFLAGS =
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
zebra_OBJECTS = zserv.o main.o interface.o connected.o ioctl.o \
zebra_rib.o redistribute.o debug.o rtadv.o zebra_snmp.o zebra_vty.o
zebra_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/connected.Po $(DEPDIR)/debug.Po \
@AMDEP_TRUE@ $(DEPDIR)/interface.Po $(DEPDIR)/ioctl.Po \
@AMDEP_TRUE@ $(DEPDIR)/main.Po $(DEPDIR)/redistribute.Po \
@AMDEP_TRUE@ $(DEPDIR)/rtadv.Po $(DEPDIR)/zebra_rib.Po \
@AMDEP_TRUE@ $(DEPDIR)/zebra_snmp.Po $(DEPDIR)/zebra_vty.Po \
@AMDEP_TRUE@ $(DEPDIR)/zserv.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(zebra_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/connected.P .deps/debug.P .deps/interface.P \
.deps/ioctl.P .deps/main.P .deps/redistribute.P .deps/rtadv.P \
.deps/zebra_rib.P .deps/zebra_snmp.P .deps/zebra_vty.P .deps/zserv.P
DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
SOURCES = $(zebra_SOURCES)
OBJECTS = $(zebra_OBJECTS)
all: all-redirect
all: all-am
.SUFFIXES:
.SUFFIXES: .S .c .o .s
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign zebra/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign zebra/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
zebra$(EXEEXT): $(zebra_OBJECTS) $(zebra_DEPENDENCIES)
@rm -f zebra$(EXEEXT)
$(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
-rm -f *.$(OBJEXT) core *.core
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/connected.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/debug.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ioctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/redistribute.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rtadv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_rib.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_snmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_vty.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zserv.Po@am__quote@
zebra: $(zebra_OBJECTS) $(zebra_DEPENDENCIES)
@rm -f zebra
$(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
distclean-depend:
-rm -rf $(DEPDIR)
.c.o:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
.c.obj:
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(COMPILE) -c `cygpath -w $<`
CCDEPMODE = @CCDEPMODE@
uninstall-info-am:
uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \
@list='$(sysconf_DATA)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
mkid -fID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
clean-tags:
GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
maintainer-clean-tags:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = zebra
top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign zebra/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
$(mkinstalldirs) "$(distdir)/$$dir"; \
fi; \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
install-data-am:
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-sbinPROGRAMS mostlyclean-compile \
mostlyclean-tags mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-sbinPROGRAMS clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
distclean-am: distclean-sbinPROGRAMS distclean-compile distclean-tags \
distclean-depend distclean-generic clean-am
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-am
maintainer-clean-am: maintainer-clean-sbinPROGRAMS \
maintainer-clean-compile maintainer-clean-tags \
maintainer-clean-depend maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
distclean-am: clean-am distclean-compile distclean-depend \
distclean-generic distclean-tags
dvi: dvi-am
dvi-am:
info: info-am
info-am:
install-data-am:
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \
clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
install-sbinPROGRAMS mostlyclean-compile distclean-compile \
clean-compile maintainer-clean-compile uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
.PHONY: GTAGS all all-am check check-am clean clean-generic \
clean-sbinPROGRAMS distclean distclean-compile distclean-depend \
distclean-generic distclean-tags distdir dvi dvi-am info \
info-am install install-am install-data install-data-am \
install-exec install-exec-am install-info install-info-am \
install-man install-sbinPROGRAMS install-strip \
install-sysconfDATA installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic tags uninstall \
uninstall-am uninstall-info-am uninstall-sbinPROGRAMS \
uninstall-sysconfDATA
#client : client_main.o ../lib/libzebra.a
@ -393,7 +403,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: