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> 2003-03-17 Amir Guindehi <amir@datacore.ch>
* Extended SNMP checks in configure.ac so that net-snmp works * 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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = . top_builddir = .
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,22 +57,28 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INCLUDES = @INCLUDES@ INCLUDES = @INCLUDES@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -87,70 +91,76 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ 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 SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @VTYSH@ @OSPFCLIENT@ doc
EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \ EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
vtysh/Makefile.am update-autotools vtysh/Makefile.am update-autotools
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
DIST_COMMON = README ./stamp-h.in AUTHORS COPYING COPYING.LIB ChangeLog \ DIST_SOURCES =
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
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: .SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile 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) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck $(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) cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): configure.ac
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h config.h: stamp-h
@if test ! -f $@; then \ @if test ! -f $@; then \
rm -f stamp-h; \ rm -f stamp-h; \
$(MAKE) stamp-h; \ $(MAKE) stamp-h; \
else :; fi else :; fi
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status 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) \ cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \ && CONFIG_FILES= CONFIG_HEADERS=config.h \
$(SHELL) ./config.status $(SHELL) ./config.status
@echo timestamp > stamp-h 2> /dev/null @mv stamp-hT stamp-h
$(srcdir)/config.h.in: $(srcdir)/stamp-h.in $(srcdir)/config.h.in: $(srcdir)/./stamp-h.in
@if test ! -f $@; then \ @if test ! -f $@; then \
rm -f $(srcdir)/stamp-h.in; \ rm -f $(srcdir)/./stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \ $(MAKE) $(srcdir)/./stamp-h.in; \
else :; fi 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) cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null @mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
mostlyclean-hdr:
clean-hdr:
distclean-hdr: distclean-hdr:
-rm -f config.h -rm -f config.h
uninstall-info-am:
maintainer-clean-hdr:
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile. # 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' # (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \ @set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
@ -186,11 +191,16 @@ mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive: maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \ @set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \ dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ case "$@" in \
rev="$$subdir $$rev"; \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
test "$$subdir" != "." || dot_seen=yes; \ *) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \ done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \ rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \ for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \ echo "Making $$target in $$subdir"; \
@ -209,90 +219,66 @@ tags-recursive:
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$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=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ 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"; \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then GZIP_ENV = --best
# 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)
distdir: $(DISTFILES) distdir: $(DISTFILES)
-rm -rf $(distdir) -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
mkdir $(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 $(mkinstalldirs) $(distdir)/vtysh
@for file in $(DISTFILES); do \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done done
for subdir in $(SUBDIRS); do \ for subdir in $(SUBDIRS); do \
@ -300,84 +286,141 @@ distdir: $(DISTFILES)
test -d $(distdir)/$$subdir \ test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \
|| exit 1; \ || exit 1; \
chmod 777 $(distdir)/$$subdir; \ (cd $$subdir && \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ $(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" \
distdir=../$(distdir)/$$subdir \
distdir) \
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook $(MAKE) $(AM_MAKEFLAGS) \
info-am: top_distdir="${top_distdir}" distdir="$(distdir)" \
info: info-recursive dist-hook
dvi-am: -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
dvi: dvi-recursive ! -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-am: all-am
check: check-recursive 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-am: Makefile config.h
all-redirect: all-recursive-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive installdirs: installdirs-recursive
installdirs-am: 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: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: 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 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 .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
-rm -f config.status clean-generic clean-recursive dist dist-all distcheck distclean \
distclean-generic distclean-hdr distclean-recursive \
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
maintainer-clean-generic distclean-am info-recursive install install-am install-data install-data-am \
@echo "This command is intended for maintainers to use;" install-data-recursive install-exec install-exec-am \
@echo "it deletes files that may require special tools to rebuild." install-exec-recursive install-info install-info-am \
install-info-recursive install-man install-recursive \
maintainer-clean: maintainer-clean-recursive install-strip installcheck installcheck-am installdirs \
-rm -f config.status installdirs-am installdirs-recursive maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive mostlyclean \
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ mostlyclean-generic mostlyclean-recursive tags tags-recursive \
install-data-recursive uninstall-data-recursive install-exec-recursive \ uninstall uninstall-am uninstall-info-am \
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ uninstall-info-recursive uninstall-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
dist-hook: dist-hook:
@ -389,7 +432,6 @@ dist-hook:
mkdir $(distdir)/init/redhat mkdir $(distdir)/init/redhat
cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat
cp -p $(srcdir)/init/redhat/zebra.* $(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. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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. # Copyright 1996, 1997, 1998, 1999, 2000, 2001
dnl This file is free software; the Free Software Foundation # Free Software Foundation, Inc.
dnl gives unlimited permission to copy and/or distribute it, # This file is free software; the Free Software Foundation
dnl with or without modifications, as long as this notice is preserved. # 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, # This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much -- # Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things. # some checks are only needed if your package does certain things.
# But this isn't really a big deal. # But this isn't really a big deal.
# serial 1 # serial 5
dnl Usage: # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
dnl AM_INIT_AUTOMAKE(package,version, [no-define]) # 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_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL]) [AC_REQUIRE([AC_PROG_INSTALL])dnl
PACKAGE=[$1] # test to see if srcdir already configured
AC_SUBST(PACKAGE) if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
VERSION=[$2] test -f $srcdir/config.status; then
AC_SUBST(VERSION) AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
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])
fi fi
# Define the identity of the package.
PACKAGE=$1
AC_SUBST(PACKAGE)dnl
VERSION=$2
AC_SUBST(VERSION)dnl
ifelse([$3],, ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
dnl FIXME This is truly gross. # the ones we care about.
missing_dir=`cd $ac_aux_dir && pwd` ifdef([m4_pattern_allow],
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) # Autoconf 2.50 always computes EXEEXT. However we need to be
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) # compatible with 2.13, for now. So we always define EXEEXT, but we
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) # don't compute it.
AC_REQUIRE([AC_PROG_MAKE_SET])]) 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. # Check to make sure that the build environment is sane.
# #
# serial 3
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK], AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane]) [AC_MSG_CHECKING([whether build environment is sane])
# Just in case # Just in case
sleep 1 sleep 1
echo timestamp > conftestfile echo timestamp > conftest.file
# Do `set' in a subshell so we don't clobber the current shell's # 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 # arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks # symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing # (eg FreeBSD returns the mod time of the symlink's containing
# directory). # directory).
if ( if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
if test "[$]*" = "X"; then if test "$[*]" = "X"; then
# -L didn't work. # -L didn't work.
set X `ls -t $srcdir/configure conftestfile` set X `ls -t $srcdir/configure conftest.file`
fi fi
if test "[$]*" != "X $srcdir/configure conftestfile" \ rm -f conftest.file
&& test "[$]*" != "X conftestfile $srcdir/configure"; then 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 neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a # if, for instance, CONFIG_SHELL is bash and it inherits a
@ -74,7 +137,7 @@ if (
alias in your environment]) alias in your environment])
fi fi
test "[$]2" = conftestfile test "$[2]" = conftest.file
) )
then then
# Ok. # Ok.
@ -83,45 +146,415 @@ else
AC_MSG_ERROR([newly created file is older than distributed files! AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock]) Check your system clock])
fi fi
rm -f conftest*
AC_MSG_RESULT(yes)]) 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_DEFUN([AM_MISSING_PROG],
[AC_MSG_CHECKING(for working $2) [AC_REQUIRE([AM_MISSING_HAS_RUN])
# Run test in a subshell; some versions of sh will print an error if $1=${$1-"${am_missing_run}$2"}
# 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_SUBST($1)]) 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. # 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_DEFUN([AM_CONFIG_HEADER],
[AC_PREREQ([2.12]) [ifdef([AC_FOREACH],dnl
AC_CONFIG_HEADER([$1]) [dnl init our file count if it isn't already
dnl When config.status generates a header, we must update the stamp-h file. m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
dnl This file resides in the same directory as the config header dnl prepare to store our destination file list for use in config.status
dnl that is generated. We must strip everything past the first ":", AC_FOREACH([_AM_File], [$1],
dnl and everything past the last "/". [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, dnl and add it to the list of files AC keeps track of, along
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, dnl with our hook
<<am_indx=1 AC_CONFIG_HEADERS(_AM_File,
for am_file in <<$1>>; do dnl COMMANDS, [, INIT-CMDS]
case " <<$>>CONFIG_HEADERS " in [# update the timestamp
*" <<$>>am_file "*<<)>> echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ][$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 esac
am_indx=`expr "<<$>>am_indx" + 1` am_indx=\`expr \$am_indx + 1\`
done<<>>dnl>>) done])
changequote([,]))]) ])]) # 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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -119,288 +126,307 @@ bgpd_LDADD = ../lib/libzebra.a
sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2 sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2
EXTRA_DIST = $(sysconf_DATA) BGP4-MIB.txt EXTRA_DIST = $(sysconf_DATA) BGP4-MIB.txt
subdir = bgpd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libbgp_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
libbgp_a_OBJECTS = bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/bgp_advertise.Po \
bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_aspath.Po $(DEPDIR)/bgp_attr.Po \
bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_clist.Po $(DEPDIR)/bgp_community.Po \
bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_damp.Po $(DEPDIR)/bgp_debug.Po \
bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o @AMDEP_TRUE@ $(DEPDIR)/bgp_dump.Po $(DEPDIR)/bgp_ecommunity.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/bgp_filter.Po $(DEPDIR)/bgp_fsm.Po \
@AMDEP_TRUE@ $(DEPDIR)/bgp_main.Po $(DEPDIR)/bgp_mplsvpn.Po \
bgpd_OBJECTS = bgp_main.o bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_network.Po $(DEPDIR)/bgp_nexthop.Po \
bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_open.Po $(DEPDIR)/bgp_packet.Po \
bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_regex.Po $(DEPDIR)/bgp_route.Po \
bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \ @AMDEP_TRUE@ $(DEPDIR)/bgp_routemap.Po $(DEPDIR)/bgp_snmp.Po \
bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o @AMDEP_TRUE@ $(DEPDIR)/bgp_table.Po $(DEPDIR)/bgp_vty.Po \
bgpd_DEPENDENCIES = ../lib/libzebra.a @AMDEP_TRUE@ $(DEPDIR)/bgp_zebra.Po $(DEPDIR)/bgpd.Po
bgpd_LDFLAGS = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
CFLAGS = @CFLAGS@ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) 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 DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES) SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
OBJECTS = $(libbgp_a_OBJECTS) $(bgpd_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign bgpd/Makefile 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) AR = ar
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES: clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES)
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)
-rm -f libbgp.a -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 $(RANLIB) libbgp.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
bgpd: $(bgpd_OBJECTS) $(bgpd_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f bgpd -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) $(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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = bgpd
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ uninstall-sysconfDATA
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
install-data-am install-data install-am install uninstall-am uninstall \ clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
all-redirect all-am all installdirs mostlyclean-generic \ distclean-compile distclean-depend distclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \ distclean-tags distdir dvi dvi-am info info-am install \
mostlyclean distclean maintainer-clean 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) install-sysconfDATA: $(sysconf_DATA)
@ -415,7 +441,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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. /* Version of GNU Zebra */
System headers sometimes define this. #undef VERSION
We just want to avoid a redefinition error message. */
#ifndef _ALL_SOURCE
#undef _ALL_SOURCE
#endif
/* Define to empty if the keyword does not work. */ /* Solaris on x86. */
#undef const #undef SOLARIS_X86
/* Define as the return type of signal handlers (int or void). */ /* Package name of GNU Zebra */
#undef RETSIGTYPE #undef PACKAGE
/* Define if you have the ANSI C header files. */ /* Define if host is GNU/Linux */
#undef STDC_HEADERS #undef GNU_LINUX
/* Define if your processor stores words with the most significant /* Define if you have the AF_ROUTE socket. */
byte first (like Motorola and SPARC, unlike Intel and VAX). */ #undef HAVE_AF_ROUTE
#undef WORDS_BIGENDIAN
/* Define if you have the inet_aton function. */ /* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON #undef HAVE_INET_ATON
@ -29,12 +26,123 @@
/* Define if you have the inet_pton function. */ /* Define if you have the inet_pton function. */
#undef HAVE_INET_PTON #undef HAVE_INET_PTON
/* Define if you have the setproctitle function. */
#undef HAVE_SETPROCTITLE
/* Define if you have ipv6 stack. */ /* Define if you have ipv6 stack. */
#undef HAVE_IPV6 #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 */ /* PAM support */
#undef USE_PAM #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 HAVE_IPV6
#ifdef KAME #ifdef KAME
#ifndef INET6 #ifndef INET6
@ -43,296 +151,300 @@
#endif /* KAME */ #endif /* KAME */
#endif /* HAVE_IPV6 */ #endif /* HAVE_IPV6 */
/* Define if you have the bcopy function. */ #ifdef SUNOS_5
#undef HAVE_BCOPY typedef unsigned int u_int32_t;
typedef unsigned short u_int16_t;
/* Define if you have the bzero function. */ typedef unsigned short u_int8_t;
#undef HAVE_BZERO #endif /* SUNOS_5 */
/* Define if you have the daemon function. */ #ifndef HAVE_SOCKLEN_T
#undef HAVE_DAEMON typedef int socklen_t;
#endif /* HAVE_SOCKLEN_T */
/* 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
/* BSDI */ /* BSDI */
#undef BSDI_NRL #undef BSDI_NRL
/* Linux IPv6 */
#undef LINUX_IPV6
/* Disable BGP installation to zebra */ /* Disable BGP installation to zebra */
#undef DISABLE_BGP_ANNOUNCE #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 */ /* inet_ntop */
#undef HAVE_INET_NTOP #undef HAVE_INET_NTOP
/* inet_pton */ /* inet_pton */
#undef HAVE_INET_PTON #undef HAVE_INET_PTON
/* GNU regexp library */ /* in_pktinfo */
#undef HAVE_GNU_REGEX #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 */ /* SNMP */
#undef HAVE_SNMP #undef HAVE_NETSNMP
/* SNMP */ /* Define if you have the <net/if_dl.h> header file. */
#undef UCD_COMPATIBLE #undef HAVE_NET_IF_DL_H
/* SNMP */ /* Define if you have the <net/if_var.h> header file. */
#undef HAVE_SNMP #undef HAVE_NET_IF_VAR_H
/* SNMP */ /* Define if you have the <net/netopt.h> header file. */
#undef HAVE_SNMP #undef HAVE_NET_NETOPT_H
/* sa_len */ /* NET_RT_IFLIST */
#undef HAVE_SA_LEN #undef HAVE_NET_RT_IFLIST
/* sin_len */ /* OSPF NSSA */
#undef HAVE_SIN_LEN #undef HAVE_NSSA
/* sun_len */ /* OSPF Opaque LSA */
#undef HAVE_SUN_LEN #undef HAVE_OPAQUE_LSA
/* scope id */ /* OSPF TE */
#undef HAVE_SIN6_SCOPE_ID #undef HAVE_OSPF_TE
/* socklen_t */ /* /proc/net/dev */
#undef HAVE_SOCKLEN_T #undef HAVE_PROC_NET_DEV
/* sockaddr_dl */ /* /proc/net/if_inet6 */
#undef HAVE_SOCKADDR_DL #undef HAVE_PROC_NET_IF_INET6
/* ifaliasreq */
#undef HAVE_IFALIASREQ
/* in6_aliasreq */
#undef HAVE_IN6_ALIASREQ
/* rt_addrinfo */ /* rt_addrinfo */
#undef HAVE_RT_ADDRINFO #undef HAVE_RT_ADDRINFO
/* in_pktinfo */
#undef HAVE_INPKTINFO
/* rusage */ /* rusage */
#undef HAVE_RUSAGE #undef HAVE_RUSAGE
/* zebra PID */ /* sa_len */
#undef PATH_ZEBRA_PID #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 */ /* ripd PID */
#undef PATH_RIPD_PID #undef PATH_RIPD_PID
@ -340,12 +452,40 @@
/* ripngd PID */ /* ripngd PID */
#undef PATH_RIPNGD_PID #undef PATH_RIPNGD_PID
/* bgpd PID */ /* zebra PID */
#undef PATH_BGPD_PID #undef PATH_ZEBRA_PID
/* ospfd PID */ /* Define as the return type of signal handlers (`int' or `void'). */
#undef PATH_OSPFD_PID #undef RETSIGTYPE
/* ospf6d PID */ /* Define if you have the ANSI C header files. */
#undef PATH_OSPF6D_PID #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]) [ --disable-ripngd do not build ripngd])
AC_ARG_ENABLE(ospfd, AC_ARG_ENABLE(ospfd,
[ --disable-ospfd do not build ospfd]) [ --disable-ospfd do not build ospfd])
AC_ARG_ENABLE(ospfclient,
[ --disable-ospfclient do not build ospfclient])
AC_ARG_ENABLE(ospf6d, AC_ARG_ENABLE(ospf6d,
[ --disable-ospf6d do not build ospf6d]) [ --disable-ospf6d do not build ospf6d])
AC_ARG_ENABLE(bgp-announce, AC_ARG_ENABLE(bgp-announce,
@ -89,7 +87,13 @@ dnl Temporary option until OSPF NSSA implementation complete
AC_ARG_ENABLE(nssa, AC_ARG_ENABLE(nssa,
[ --enable-nssa enable OSPF NSSA option]) [ --enable-nssa enable OSPF NSSA option])
AC_ARG_ENABLE(opaque-lsa, 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, AC_ARG_ENABLE(ospf-te,
[ --enable-ospf-te enable Traffic Engineering Extension to OSPF]) [ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
AC_ARG_ENABLE(multipath, AC_ARG_ENABLE(multipath,
@ -536,10 +540,17 @@ else
OSPFD="ospfd" OSPFD="ospfd"
fi fi
if test "${enable_ospfclient}" = "no";then OSPFAPI=""
OSPFCLIENT="" OSPFCLIENT=""
else if test "${enable_opaque_lsa}" = "yes"; then
OSPFCLIENT="ospfclient" if test "${enable_ospfapi}" != "no";then
OSPFAPI="-DSUPPORT_OSPF_API"
if test "${enable_ospfclient}" != "no";then
OSPFCLIENT="ospfclient"
fi
fi
fi fi
case "${enable_ripngd}" in case "${enable_ripngd}" in
@ -568,6 +579,7 @@ AC_SUBST(VTYSH)
AC_SUBST(INCLUDES) AC_SUBST(INCLUDES)
AC_SUBST(CURSES) AC_SUBST(CURSES)
AC_SUBST(OSPFCLIENT) AC_SUBST(OSPFCLIENT)
AC_SUBST(OSPFAPI)
AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)]) 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(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
AC_CHECK_LIB(crypt, crypt) AC_CHECK_LIB(crypt, crypt)
@ -596,55 +608,64 @@ dnl check SNMP library
dnl ------------------ dnl ------------------
if test "${enable_snmp}" = "yes";then if test "${enable_snmp}" = "yes";then
dnl AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes) 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 if test "${HAVE_SNMP}" = ""; then
old_libs="${LIBS}"
LIBS="-L/usr/lib"
unset ac_cv_lib_snmp_asn_parse_int unset ac_cv_lib_snmp_asn_parse_int
AC_CHECK_LIB(crypto, main, [NEED_CRYPTO=yes ], ) AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
if test "${NEED_CRYPTO}" = ""; then if test "${NEED_CRYPTO}" = ""; then
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes ],) AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
else else
AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto") AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
fi 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 fi
LIBS="${old_libs}"
if test "${HAVE_SNMP}" = ""; then if test "${HAVE_SNMP}" = ""; then
old_libs="${LIBS}" old_libs="${LIBS}"
LIBS="-L/usr/local/lib" LIBS="-L/usr/local/lib"
AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes) unset ac_cv_lib_snmp_asn_parse_int
LIBS="${old_libs}" AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
fi if test "${HAVE_SNMP}" = ""; then
if test "${HAVE_SNMP}" = ""; then unset ac_cv_lib_snmp_asn_parse_int
if test "${NEED_CRYPTO}" = ""; then AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
old_libs="${LIBS}" if test "${NEED_CRYPTO}" = "yes"; then
LIBS="-L/usr/lib" AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ]) fi
LIBS="${old_libs}" fi
else LIBS="${old_libs}"
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
fi fi
if test "${HAVE_SNMP}" = "yes"; then 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 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 do
test -f "${ac_snmp}" && break test -f "${ac_snmp}" && break
done done
case ${ac_snmp} in case ${ac_snmp} in
/usr/include/net-snmp/*) /usr/include/net-snmp/*)
AC_DEFINE(HAVE_SNMP,,SNMP) AC_DEFINE(HAVE_SNMP,,SNMP)
AC_DEFINE(HAVE_NETSNMP,,SNMP)
AC_DEFINE(UCD_COMPATIBLE,,SNMP) AC_DEFINE(UCD_COMPATIBLE,,SNMP)
CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library" CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library"
if test "${HAVE_NETSNMP}" = "yes"; then if test "${HAVE_NETSNMP}" = "yes"; then
AC_DEFINE(HAVE_NETSNMP,,SNMP) LIBS="${LIBS} -lnetsnmp"
LIBS="${LIBS} -lnetsnmp"
else else
LIBS="${LIBS} -lsnmp" LIBS="${LIBS} -lsnmp"
fi fi
;; ;;
/usr/include/ucd-snmp/*) /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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,22 +57,28 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INCLUDES = @INCLUDES@ INCLUDES = @INCLUDES@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -87,6 +91,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
info_TEXINFOS = zebra.texi 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 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) EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS)
subdir = doc
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
TEXI2DVI = texi2dvi DIST_SOURCES =
INFO_DEPS = zebra.info INFO_DEPS = zebra.info
DVIS = zebra.dvi DVIS = zebra.dvi
TEXINFOS = zebra.texi TEXINFOS = zebra.texi
man1dir = $(mandir)/man1
man8dir = $(mandir)/man8
MANS = $(man_MANS)
NROFF = nroff NROFF = nroff
DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \ MANS = $(man_MANS)
texinfo.tex 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:
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi .SUFFIXES: .dvi .info .ps .texi
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile cd $(top_srcdir) && \
$(AUTOMAKE) --foreign doc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \ cd $(top_builddir) && \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
zebra.info: zebra.texi $(zebra_TEXINFOS) zebra.info: zebra.texi $(zebra_TEXINFOS)
zebra.dvi: zebra.texi $(zebra_TEXINFOS) zebra.dvi: zebra.texi $(zebra_TEXINFOS)
DVIPS = dvips
.texi.info: .texi.info:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \ cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'` && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texi.dvi: .texi.dvi:
TEXINPUTS=.:$$TEXINPUTS \ TEXINPUTS=$(srcdir):$$TEXINPUTS \
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
$(TEXI2DVI) $<
.texi: .texi:
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
cd $(srcdir) \ cd $(srcdir) \
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'` && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
`echo $< | sed 's,.*/,,'`
.texinfo.info: MAKEINFO = @MAKEINFO@
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] TEXI2DVI = texi2dvi
cd $(srcdir) \ DVIPS = dvips
&& $(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,.*/,,'`
.dvi.ps: .dvi.ps:
$(DVIPS) $< -o $@ $(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) install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(infodir) $(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(INFO_DEPS)'; \ @list='$(INFO_DEPS)'; \
for file in $$list; do \ for file in $$list; do \
d=$(srcdir); \ 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 \ if test -f $$d/$$ifile; then \
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
$(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; \
done done
@$(POST_INSTALL) @$(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)'; \ list='$(INFO_DEPS)'; \
for file in $$list; do \ for file in $$list; do \
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
done; \ done; \
else : ; fi 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-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 maintainer-clean: maintainer-clean-am
.PHONY: install-info-am uninstall-info mostlyclean-aminfo \ maintainer-clean-am: distclean-am maintainer-clean-aminfo \
distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \ maintainer-clean-generic
uninstall-man1 install-man8 uninstall-man8 install-man uninstall-man \
tags distdir info-am info dvi-am dvi check check-am installcheck-am \ mostlyclean: mostlyclean-am
installcheck install-exec-am install-exec install-data-am install-data \
install-am install uninstall-am uninstall all-redirect all-am all \ mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean 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: draft-zebra-00.txt:
groff -T ascii -ms draft-zebra-00.ms > 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. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,11 +90,14 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
noinst_LIBRARIES = libzebra.a lib_LIBRARIES = libzebra.a
libzebra_a_SOURCES = \ libzebra_a_SOURCES = \
version.c network.c pid_output.c getopt.c getopt1.c daemon.c \ 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 EXTRA_DIST = regex.c regex-gnu.h
subdir = lib
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libzebra_a_OBJECTS = version.o network.o pid_output.o getopt.o \ depcomp = $(SHELL) $(top_srcdir)/depcomp
getopt1.o daemon.o print_version.o checksum.o vector.o linklist.o vty.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/buffer.Po $(DEPDIR)/checksum.Po \
command.o sockunion.o prefix.o thread.o if.o memory.o buffer.o table.o \ @AMDEP_TRUE@ $(DEPDIR)/command.Po $(DEPDIR)/daemon.Po \
hash.o filter.o routemap.o distribute.o stream.o str.o log.o plist.o \ @AMDEP_TRUE@ $(DEPDIR)/distribute.Po $(DEPDIR)/filter.Po \
zclient.o sockopt.o smux.o md5.o if_rmap.o keychain.o @AMDEP_TRUE@ $(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po \
CFLAGS = @CFLAGS@ @AMDEP_TRUE@ $(DEPDIR)/hash.Po $(DEPDIR)/if.Po \
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @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) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS) CFLAGS = @CFLAGS@
DIST_SOURCES = $(libzebra_a_SOURCES)
HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(libzebra_a_SOURCES) SOURCES = $(libzebra_a_SOURCES)
OBJECTS = $(libzebra_a_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile 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) AR = ar
cd $(top_builddir) \ install-libLIBRARIES: $(lib_LIBRARIES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status @$(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-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
clean-noinstLIBRARIES: libzebra.a: $(libzebra_a_OBJECTS) $(libzebra_a_DEPENDENCIES)
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -rm -f libzebra.a
$(libzebra_a_AR) libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
distclean-noinstLIBRARIES: $(RANLIB) libzebra.a
maintainer-clean-noinstLIBRARIES:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile: mostlyclean-compile:
-rm -f *.o core *.core -rm -f *.$(OBJEXT) core *.core
clean-compile:
distclean-compile: distclean-compile:
-rm -f *.tab.c -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) distclean-depend:
-rm -f libzebra.a -rm -rf $(DEPDIR)
$(AR) cru libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
$(RANLIB) libzebra.a .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 tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = lib
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(HEADERS)
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-tags mostlyclean-depend mostlyclean-generic @echo "it deletes files that may require special tools to rebuild."
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-libLIBRARIES mostlyclean-am
distclean-tags distclean-depend distclean-generic \
clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-tags \ distclean-generic distclean-tags
maintainer-clean-depend maintainer-clean-generic \
distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir mostlyclean-depend \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
distclean-depend clean-depend maintainer-clean-depend info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ uninstall-am: uninstall-info-am uninstall-libLIBRARIES
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
mostlyclean-generic distclean-generic clean-generic \ clean-libLIBRARIES distclean distclean-compile distclean-depend \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean 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 version.c: Makefile
echo '' >version.c echo '' >version.c
echo 'char *host_name = "$(host_alias)";' >>version.c echo 'char *host_name = "$(host_alias)";' >>version.c
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -123,291 +130,317 @@ ospf6d_LDADD = ../lib/libzebra.a
sysconf_DATA = ospf6d.conf.sample sysconf_DATA = ospf6d.conf.sample
EXTRA_DIST = $(sysconf_DATA) EXTRA_DIST = $(sysconf_DATA)
subdir = ospf6d
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libospf6_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
libospf6_a_OBJECTS = ospf6_dump.o ospf6d.o ospf6_interface.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf6_abr.Po $(DEPDIR)/ospf6_area.Po \
ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_asbr.Po $(DEPDIR)/ospf6_bintree.Po \
ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_damp.Po $(DEPDIR)/ospf6_dbex.Po \
ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_dump.Po $(DEPDIR)/ospf6_hook.Po \
ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_interface.Po \
ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o @AMDEP_TRUE@ $(DEPDIR)/ospf6_intra.Po $(DEPDIR)/ospf6_ism.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/ospf6_linklist.Po $(DEPDIR)/ospf6_lsa.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf6_lsdb.Po $(DEPDIR)/ospf6_main.Po \
ospf6d_OBJECTS = ospf6_main.o ospf6_dump.o ospf6d.o ospf6_interface.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_message.Po \
ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_neighbor.Po \
ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_network.Po $(DEPDIR)/ospf6_nsm.Po \
ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_prefix.Po $(DEPDIR)/ospf6_proto.Po \
ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf6_route.Po \
ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o @AMDEP_TRUE@ $(DEPDIR)/ospf6_routemap.Po $(DEPDIR)/ospf6_spf.Po \
ospf6d_DEPENDENCIES = ../lib/libzebra.a @AMDEP_TRUE@ $(DEPDIR)/ospf6_top.Po $(DEPDIR)/ospf6_zebra.Po \
ospf6d_LDFLAGS = @AMDEP_TRUE@ $(DEPDIR)/ospf6d.Po
CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) 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 DIST_COMMON = README $(noinst_HEADERS) 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
SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES) SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
OBJECTS = $(libospf6_a_OBJECTS) $(ospf6d_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospf6d/Makefile 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) AR = ar
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES: clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES)
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)
-rm -f libospf6.a -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 $(RANLIB) libospf6.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
ospf6d: $(ospf6d_OBJECTS) $(ospf6d_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f ospf6d -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) $(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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = ospf6d
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ uninstall-sysconfDATA
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
install-data-am install-data install-am install uninstall-am uninstall \ clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
all-redirect all-am all installdirs mostlyclean-generic \ distclean-compile distclean-depend distclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \ distclean-tags distdir dvi dvi-am info info-am install \
mostlyclean distclean maintainer-clean 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) install-sysconfDATA: $(sysconf_DATA)
@ -422,7 +455,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,17 +90,22 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = -I../lib -I../ INCLUDES = -I../lib -I../
noinst_LIBRARIES = libospfapiclient.a lib_LIBRARIES = libospfapiclient.a
sbin_PROGRAMS = ospfclient sbin_PROGRAMS = ospfclient
libospfapiclient_a_SOURCES = \ libospfapiclient_a_SOURCES = \
ospf_apiclient.c ospf_apiclient.c
noinst_HEADERS = \ ospfapiheaderdir = $(includedir)/ospfapi
ospfapiheader_HEADERS = \
ospf_apiclient.h ospf_apiclient.h
@ -105,269 +114,291 @@ ospfclient_SOURCES = \
ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a
subdir = ospfclient
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libospfapiclient_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
libospfapiclient_a_OBJECTS = ospf_apiclient.o @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_apiclient.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/ospfclient.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
ospfclient_OBJECTS = ospfclient.o ospf_apiclient.o $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
ospfclient_DEPENDENCIES = ../ospfd/libospf.a ../lib/libzebra.a
ospfclient_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
HEADERS = $(noinst_HEADERS) CFLAGS = @CFLAGS@
DIST_SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
HEADERS = $(ospfapiheader_HEADERS)
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ DIST_COMMON = README $(ospfapiheader_HEADERS) AUTHORS COPYING ChangeLog \
Makefile.in NEWS 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
SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES) SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
OBJECTS = $(libospfapiclient_a_OBJECTS) $(ospfclient_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfclient/Makefile 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) AR = ar
cd $(top_builddir) \ install-libLIBRARIES: $(lib_LIBRARIES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status @$(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-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
clean-noinstLIBRARIES: libospfapiclient.a: $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_DEPENDENCIES)
-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)
-rm -f libospfapiclient.a -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 $(RANLIB) libospfapiclient.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
ospfclient: $(ospfclient_OBJECTS) $(ospfclient_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f ospfclient -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) $(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 tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = ospfclient
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(sbindir) $(DESTDIR)$(ospfapiheaderdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
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
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. # 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. # 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. ## Process this file with automake to produce Makefile.in.
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
LOCAL_OPTS = @OSPFAPI@
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA=@INSTALL@ -m 600 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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,13 +90,16 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
LOCAL_OPTS = -DSUPPORT_OSPF_API LOCAL_OPTS = @OSPFAPI@
DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA = @INSTALL@ -m 600 INSTALL_SDATA = @INSTALL@ -m 600
noinst_LIBRARIES = libospf.a lib_LIBRARIES = libospf.a
sbin_PROGRAMS = ospfd sbin_PROGRAMS = ospfd
libospf_a_SOURCES = \ 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 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 = \ noinst_HEADERS = \
ospf_dump.h ospf_interface.h ospf_ism.h ospf_neighbor.h \ ospf_interface.h ospf_neighbor.h ospf_network.h ospf_packet.h \
ospf_network.h ospf_nsm.h ospf_packet.h ospf_zebra.h ospfd.h \ ospf_zebra.h ospf_spf.h ospf_route.h ospf_ase.h ospf_abr.h ospf_ia.h \
ospf_lsa.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
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
ospfd_SOURCES = \ ospfd_SOURCES = \
@ -120,289 +132,355 @@ ospfd_LDADD = ../lib/libzebra.a
sysconf_DATA = ospfd.conf.sample sysconf_DATA = ospfd.conf.sample
EXTRA_DIST = $(sysconf_DATA) OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt EXTRA_DIST = $(sysconf_DATA) OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt
subdir = ospfd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libospf_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
libospf_a_OBJECTS = ospfd.o ospf_zebra.o ospf_interface.o ospf_ism.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_abr.Po $(DEPDIR)/ospf_api.Po \
ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o ospf_packet.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_apiserver.Po $(DEPDIR)/ospf_asbr.Po \
ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o ospf_ia.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_ase.Po $(DEPDIR)/ospf_dump.Po \
ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o ospf_snmp.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_flood.Po $(DEPDIR)/ospf_ia.Po \
ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o ospf_apiserver.o @AMDEP_TRUE@ $(DEPDIR)/ospf_interface.Po $(DEPDIR)/ospf_ism.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/ospf_lsa.Po $(DEPDIR)/ospf_lsdb.Po \
@AMDEP_TRUE@ $(DEPDIR)/ospf_main.Po $(DEPDIR)/ospf_neighbor.Po \
ospfd_OBJECTS = ospf_main.o ospfd.o ospf_zebra.o ospf_interface.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_network.Po $(DEPDIR)/ospf_nsm.Po \
ospf_ism.o ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_opaque.Po $(DEPDIR)/ospf_packet.Po \
ospf_packet.o ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_route.Po $(DEPDIR)/ospf_routemap.Po \
ospf_ia.o ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_snmp.Po $(DEPDIR)/ospf_spf.Po \
ospf_snmp.o ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o \ @AMDEP_TRUE@ $(DEPDIR)/ospf_te.Po $(DEPDIR)/ospf_vty.Po \
ospf_apiserver.o @AMDEP_TRUE@ $(DEPDIR)/ospf_zebra.Po $(DEPDIR)/ospfd.Po
ospfd_DEPENDENCIES = ../lib/libzebra.a COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
ospfd_LDFLAGS = $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) 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 DIST_COMMON = $(noinst_HEADERS) $(ospfdheader_HEADERS) 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
SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES) SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
OBJECTS = $(libospf_a_OBJECTS) $(ospfd_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfd/Makefile 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) AR = ar
cd $(top_builddir) \ install-libLIBRARIES: $(lib_LIBRARIES)
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status @$(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-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
clean-noinstLIBRARIES: libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES)
-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)
-rm -f libospf.a -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 $(RANLIB) libospf.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
ospfd: $(ospfd_OBJECTS) $(ospfd_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f ospfd -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) $(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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ 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 done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = ospfd
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
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 install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ uninstall-ospfdheaderHEADERS uninstall-sbinPROGRAMS \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \ uninstall-sysconfDATA
check-am installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
all-redirect all-am all installdirs mostlyclean-generic \ clean-libLIBRARIES clean-sbinPROGRAMS distclean \
distclean-generic clean-generic maintainer-clean-generic clean \ distclean-compile distclean-depend distclean-generic \
mostlyclean distclean maintainer-clean 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) install-sysconfDATA: $(sysconf_DATA)
@ -417,7 +495,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:

View File

@ -1490,7 +1490,8 @@ ospf_apiserver_opaque_lsa_new (struct ospf_area *area,
} }
/* Set opaque-LSA header fields. */ /* 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. */ /* Set opaque-LSA body fields. */
stream_put (s, ((u_char *) protolsa) + sizeof (struct lsa_header), stream_put (s, ((u_char *) protolsa) + sizeof (struct lsa_header),

View File

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

View File

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

View File

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

View File

@ -192,7 +192,7 @@ ospf_dr_eligible_routers (struct route_table *nbrs, list el_list)
/* Generate AdjOK? NSM event. */ /* Generate AdjOK? NSM event. */
void void
ospf_dr_change (struct route_table *nbrs) ospf_dr_change (struct ospf *ospf, struct route_table *nbrs)
{ {
struct route_node *rn; struct route_node *rn;
struct ospf_neighbor *nbr; struct ospf_neighbor *nbr;
@ -204,7 +204,7 @@ ospf_dr_change (struct route_table *nbrs)
/* Is neighbor upper 2-Way? */ /* Is neighbor upper 2-Way? */
if (nbr->state >= NSM_TwoWay) if (nbr->state >= NSM_TwoWay)
/* Ignore myself. */ /* 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); 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 DR or BDR changes, cause AdjOK? neighbor event. */
if (!IPV4_ADDR_SAME (&old_dr, &DR (oi)) || if (!IPV4_ADDR_SAME (&old_dr, &DR (oi)) ||
!IPV4_ADDR_SAME (&old_bdr, &BDR (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) if (oi->type == OSPF_IFTYPE_BROADCAST || oi->type == OSPF_IFTYPE_POINTOPOINT)
{ {
/* Multicast group change. */ /* Multicast group change. */
if ((old_state != ISM_DR && old_state != ISM_Backup) && if ((old_state != ISM_DR && old_state != ISM_Backup) &&
(new_state == ISM_DR || new_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) && else if ((old_state == ISM_DR || old_state == ISM_Backup) &&
(new_state != ISM_DR && new_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; return new_state;
@ -404,7 +404,7 @@ ism_interface_up (struct ospf_interface *oi)
next_state = ISM_Waiting; next_state = ISM_Waiting;
if (oi->type == OSPF_IFTYPE_NBMA) if (oi->type == OSPF_IFTYPE_NBMA)
ospf_nbr_nbma_if_update (oi); ospf_nbr_nbma_if_update (oi->ospf, oi);
/* ospf_ism_event (t); */ /* ospf_ism_event (t); */
return next_state; return next_state;
@ -582,7 +582,7 @@ ism_change_state (struct ospf_interface *oi, int state)
oi->state_change++; oi->state_change++;
if (old_state == ISM_Down || state == ISM_Down) if (old_state == ISM_Down || state == ISM_Down)
ospf_check_abr_status(); ospf_check_abr_status (oi->ospf);
/* Originate router-LSA. */ /* Originate router-LSA. */
if (oi->area) if (oi->area)
@ -621,7 +621,7 @@ ism_change_state (struct ospf_interface *oi, int state)
#endif /* HAVE_OPAQUE_LSA */ #endif /* HAVE_OPAQUE_LSA */
/* Check area border status. */ /* Check area border status. */
ospf_check_abr_status (); ospf_check_abr_status (oi->ospf);
} }
/* Execute ISM event process. */ /* 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_SELF(L) (CHECK_FLAG ((L)->flags, OSPF_LSA_SELF))
#define IS_LSA_MAXAGE(L) (LS_AGE ((L)) == OSPF_LSA_MAXAGE) #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_DELAY 2
#define OSPF_LSA_UPDATE_TIMER_ON(T,F) \ #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 *); u_int16_t ospf_lsa_checksum (struct lsa_header *);
struct stream; struct stream;
const char *dump_lsa_key (struct ospf_lsa *lsa); const char *dump_lsa_key (struct ospf_lsa *);
u_int32_t lsa_seqnum_increment (struct ospf_lsa *lsa); u_int32_t lsa_seqnum_increment (struct ospf_lsa *);
void lsa_header_set (struct stream *s, u_char options, u_char type, struct in_addr id); void lsa_header_set (struct stream *, u_char, u_char, struct in_addr,
struct ospf_neighbor *ospf_nbr_lookup_ptop (struct route_table *nbrs, struct in_addr router_id); struct in_addr);
struct ospf_neighbor *ospf_nbr_lookup_ptop (struct ospf_interface *);
/* Prototype for LSA primitive. */ /* Prototype for LSA primitive. */
struct ospf_lsa *ospf_lsa_new (); struct ospf_lsa *ospf_lsa_new ();
struct ospf_lsa *ospf_lsa_dup (); 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 *); struct ospf_lsa *ospf_lsa_lock (struct ospf_lsa *);
void ospf_lsa_unlock (struct ospf_lsa *); void ospf_lsa_unlock (struct ospf_lsa *);
void ospf_lsa_discard (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 *, struct ospf_lsa *ospf_summary_asbr_lsa_originate (struct prefix_ipv4 *,
u_int32_t, u_int32_t,
struct ospf_area *); struct ospf_area *);
struct ospf_lsa *ospf_summary_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_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); 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 *); int ospf_external_lsa_originate_timer (struct thread *);
struct ospf_lsa *ospf_lsa_lookup (struct ospf_area *, u_int32_t, struct ospf_lsa *ospf_lsa_lookup (struct ospf_area *, u_int32_t,
struct in_addr, struct in_addr); struct in_addr, struct in_addr);
@ -286,24 +280,25 @@ struct ospf_lsa *ospf_lsa_lookup_by_header (struct ospf_area *,
struct lsa_header *); struct lsa_header *);
int ospf_lsa_more_recent (struct ospf_lsa *, struct ospf_lsa *); int ospf_lsa_more_recent (struct ospf_lsa *, struct ospf_lsa *);
int ospf_lsa_different (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); struct ospf_lsa *ospf_lsa_lookup_by_prefix (struct ospf_lsdb *, u_char,
int find_asbr_summary (struct ospf_lsa *, void *, int); 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 *); u_int32_t get_metric (u_char *);
int ospf_lsa_maxage_walker (struct thread *); 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_type (struct ospf *, u_char, int);
void ospf_external_lsa_refresh (struct ospf_lsa *, struct external_info *ei, void ospf_external_lsa_refresh (struct ospf *, struct ospf_lsa *,
int force); struct external_info *, int);
struct in_addr ospf_lsa_unique_id (struct ospf_lsdb *, u_char, struct in_addr ospf_lsa_unique_id (struct ospf *, struct ospf_lsdb *, u_char,
struct prefix_ipv4 *); struct prefix_ipv4 *);
void ospf_schedule_lsa_flood_area (struct ospf_area *, struct ospf_lsa *); void ospf_schedule_lsa_flood_area (struct ospf_area *, struct ospf_lsa *);
void ospf_schedule_lsa_flush_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 *); void ospf_refresher_unregister_lsa (struct ospf *, struct ospf_lsa *);
int ospf_lsa_refresh_walker (struct thread *); 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 *, struct ospf_lsdb *, struct ospf_lsa*);
void ospf_discard_from_db (struct ospf_lsdb *, struct ospf_lsa*);
int ospf_lsa_discard_callback (struct ospf_lsa *, void *, int);
int is_prefix_default (struct prefix_ipv4 *); int is_prefix_default (struct prefix_ipv4 *);
int metric_type (u_char); int metric_type (struct ospf *, u_char);
int metric_value (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 #ifdef HAVE_NSSA
struct in_addr ospf_get_nssa_ip (struct ospf_area *); 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. /* Get neighbor count by status.
Specify status = 0, get all neighbor other than myself. */ Specify status = 0, get all neighbor other than myself. */
int 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 ospf_neighbor *nbr;
struct route_node *rn;
int count = 0; int count = 0;
/* Sanity check. */ for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if (nbrs == NULL) if ((nbr = rn->info))
return 0; if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
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) if (state == 0 || nbr->state == state)
count++; count++;
@ -224,23 +219,18 @@ ospf_nbr_count (struct route_table *nbrs, int state)
#ifdef HAVE_OPAQUE_LSA #ifdef HAVE_OPAQUE_LSA
int 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 ospf_neighbor *nbr;
struct route_node *rn;
int count = 0; int count = 0;
/* Sanity check. */ for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if (nbrs == NULL) if ((nbr = rn->info))
return 0; if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
if (nbr->state == NSM_Full)
for (rn = route_top (nbrs); rn; rn = route_next (rn)) if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
if ((nbr = rn->info) != NULL) count++;
/* 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++;
return count; return count;
} }

View File

@ -222,13 +222,8 @@ ospf_db_summary_isempty (struct ospf_neighbor *nbr)
} }
int 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 #ifdef HAVE_OPAQUE_LSA
switch (lsa->data->type) 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, /* The area link state database consists of the router-LSAs,
network-LSAs and summary-LSAs contained in the area structure, network-LSAs and summary-LSAs contained in the area structure,
along with the AS-external- LSAs contained in the global structure. along with the AS-external-LSAs contained in the global structure.
AS- external-LSAs are omitted from a virtual neighbor's Database AS-external-LSAs are omitted from a virtual neighbor's Database
summary list. AS-external-LSAs are omitted from the Database summary list. AS-external-LSAs are omitted from the Database
summary list if the area has been configured as a stub. */ summary list if the area has been configured as a stub. */
#endif /* HAVE_OPAQUE_LSA */
int int
nsm_negotiation_done (struct ospf_neighbor *nbr) 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 #ifdef HAVE_OPAQUE_LSA
/* Process only if the neighbor is opaque capable. */ /* Process only if the neighbor is opaque capable. */
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O)) if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
{ {
foreach_lsa (OPAQUE_LINK_LSDB (area), nbr, 0, ospf_db_summary_add); LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
foreach_lsa (OPAQUE_AREA_LSDB (area), nbr, 0, ospf_db_summary_add); ospf_db_summary_add (nbr, lsa);
LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
ospf_db_summary_add (nbr, lsa);
} }
#endif /* HAVE_OPAQUE_LSA */ #endif /* HAVE_OPAQUE_LSA */
if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK && if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
area->external_routing == OSPF_AREA_DEFAULT) && area->external_routing == OSPF_AREA_DEFAULT)
foreach_lsa (EXTERNAL_LSDB (ospf_top), nbr, 0, ospf_db_summary_add); LSDB_LOOP (EXTERNAL_LSDB (nbr->oi->ospf), rn, lsa)
ospf_db_summary_add (nbr, lsa);
#ifdef HAVE_OPAQUE_LSA #ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (nbr->options, OSPF_OPTION_O) && if (CHECK_FLAG (nbr->options, OSPF_OPTION_O)
(nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK && && (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
area->external_routing == OSPF_AREA_DEFAULT)) && area->external_routing == OSPF_AREA_DEFAULT))
foreach_lsa (OPAQUE_AS_LSDB (ospf_top), LSDB_LOOP (OPAQUE_AS_LSDB (nbr->oi->ospf), rn, lsa)
nbr, 0, ospf_db_summary_add); ospf_db_summary_add (nbr, lsa);
#endif /* HAVE_OPAQUE_LSA */ #endif /* HAVE_OPAQUE_LSA */
/* OSPF_NSM_TIMER_OFF (nbr->t_db_desc); */
return 0; return 0;
} }
int int
nsm_exchange_done (struct ospf_neighbor *nbr) nsm_exchange_done (struct ospf_neighbor *nbr)
{ {
struct ospf_interface *oi;
oi = nbr->oi;
if (ospf_ls_request_isempty (nbr)) if (ospf_ls_request_isempty (nbr))
return NSM_Full; return NSM_Full;
@ -382,18 +362,18 @@ nsm_adj_ok (struct ospf_neighbor *nbr)
next_state = nbr->state; next_state = nbr->state;
/* These netowork types must be adjacency. */ /* These netowork types must be adjacency. */
if (oi->type == OSPF_IFTYPE_POINTOPOINT || if (oi->type == OSPF_IFTYPE_POINTOPOINT
oi->type == OSPF_IFTYPE_POINTOMULTIPOINT || || oi->type == OSPF_IFTYPE_POINTOMULTIPOINT
oi->type == OSPF_IFTYPE_VIRTUALLINK) || oi->type == OSPF_IFTYPE_VIRTUALLINK)
flag = 1; flag = 1;
/* Router itself is the DRouter or the BDRouter. */ /* Router itself is the DRouter or the BDRouter. */
if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi)) || if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi))
IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi))) || IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi)))
flag = 1; flag = 1;
if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi)) || if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi))
IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi))) || IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
flag = 1; flag = 1;
if (nbr->state == NSM_TwoWay && flag == 1) if (nbr->state == NSM_TwoWay && flag == 1)
@ -683,7 +663,7 @@ static char *ospf_nsm_event_str[] =
void void
nsm_change_state (struct ospf_neighbor *nbr, int state) 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; struct ospf_area *vl_area = NULL;
u_char old_state; u_char old_state;
int x; int x;
@ -705,10 +685,8 @@ nsm_change_state (struct ospf_neighbor *nbr, int state)
/* Statistics. */ /* Statistics. */
nbr->state_change++; nbr->state_change++;
oi = nbr->oi;
if (oi->type == OSPF_IFTYPE_VIRTUALLINK) 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. */ /* One of the neighboring routers changes to/from the FULL state. */
if ((old_state != NSM_Full && state == NSM_Full) || 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->full_nbrs++;
oi->area->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 (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
if (++vl_area->full_vls == 1) if (++vl_area->full_vls == 1)
ospf_schedule_abr_task (); ospf_schedule_abr_task (oi->ospf);
/* kevinm: refresh any redistributions */ /* kevinm: refresh any redistributions */
for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++) { for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++)
if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6) {
continue; if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6)
ospf_external_lsa_refresh_type(x, force); continue;
} ospf_external_lsa_refresh_type (oi->ospf, x, force);
}
} }
else else
{ {
oi->full_nbrs--; oi->full_nbrs--;
oi->area->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 (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
if (vl_area->full_vls > 0) if (vl_area->full_vls > 0)
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 */ /* clear neighbor retransmit list */
if (!ospf_ls_retransmit_isempty (nbr)) 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) if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
{ {
struct ospf_area *vl_area = 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) if (vl_area)
ospf_router_lsa_timer_add (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; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
top = ospf_top; 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); free_opaque_info_per_type ((void *) oipt);
oipt = NULL; oipt = NULL;
@ -653,7 +653,7 @@ lookup_opaque_info_by_type (struct ospf_lsa *lsa)
break; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
top = ospf_top; 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?"); zlog_warn ("Type-11 Opaque-LSA: Reference to OSPF is missing?");
break; /* Unlikely to happen. */ break; /* Unlikely to happen. */
@ -1572,7 +1572,7 @@ ospf_opaque_lsa_install (struct ospf_lsa *lsa, int rt_recalc)
} }
break; break;
case OSPF_OPAQUE_AREA_LSA: 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. */ /* Above conditions must have passed. */
zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?"); zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@ -1581,7 +1581,7 @@ ospf_opaque_lsa_install (struct ospf_lsa *lsa, int rt_recalc)
break; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
top = ospf_top; 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. */ /* Above conditions must have passed. */
zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?"); zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@ -1603,6 +1603,7 @@ out:
void void
ospf_opaque_lsa_refresh (struct ospf_lsa *lsa) ospf_opaque_lsa_refresh (struct ospf_lsa *lsa)
{ {
struct ospf *ospf = ospf_top;
struct ospf_opaque_functab *functab; struct ospf_opaque_functab *functab;
if ((functab = ospf_opaque_functab_lookup (lsa)) == NULL 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)); 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); lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
ospf_lsa_maxage (lsa); ospf_lsa_maxage (ospf, lsa);
} }
else else
(* functab->lsa_refresher)(lsa); (* 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?"); zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: Type-10 Opaque-LSA: Invalid parameter?");
goto out; 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)); zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: AREA(%s) -> TOP?", inet_ntoa (area->area_id));
goto out; 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. */ /* Fake "area" to pass "ospf" to a lookup function later. */
dummy.top = top; dummy.ospf = top;
area = &dummy; area = &dummy;
func = ospf_opaque_type11_lsa_reoriginate_timer; 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) if (! CHECK_FLAG (top->config, OSPF_OPAQUE_CAPABLE)
|| ! ospf_if_is_enable (oi) || ! 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) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Suspend re-origination of Type-9 Opaque-LSAs (opaque-type=%u) for a while...", oipt->opaque_type); 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; 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?"); zlog_warn ("ospf_opaque_type10_lsa_reoriginate_timer: Something wrong?");
goto out; goto out;
@ -1878,7 +1879,7 @@ ospf_opaque_type10_lsa_reoriginate_timer (struct thread *t)
{ {
if ((oi = getdata (node)) == NULL) if ((oi = getdata (node)) == NULL)
continue; continue;
if ((n = ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full)) > 0) if ((n = ospf_nbr_count_opaque_capable (oi)) > 0)
break; break;
} }
@ -1947,6 +1948,7 @@ extern int ospf_lsa_refresh_delay (struct ospf_lsa *); /* ospf_lsa.c */
void void
ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0) ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0)
{ {
struct ospf *ospf = ospf_top;
struct opaque_info_per_type *oipt; struct opaque_info_per_type *oipt;
struct opaque_info_per_id *oipi; struct opaque_info_per_id *oipi;
struct ospf_lsa *lsa; 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_LINK_LSA:
case OSPF_OPAQUE_AREA_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; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
ospf_ls_retransmit_delete_nbr_all (NULL, lsa); ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
break; break;
default: default:
zlog_warn ("ospf_opaque_lsa_refresh_schedule: Unexpected LSA-type(%u)", lsa->data->type); 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 void
ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0) ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0)
{ {
struct ospf *ospf = ospf_top;
struct opaque_info_per_type *oipt; struct opaque_info_per_type *oipt;
struct opaque_info_per_id *oipi; struct opaque_info_per_id *oipi;
struct ospf_lsa *lsa; 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_LINK_LSA:
case OSPF_OPAQUE_AREA_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; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
ospf_ls_retransmit_delete_nbr_all (NULL, lsa); ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
break; break;
default: default:
zlog_warn ("ospf_opaque_lsa_flush_schedule: Unexpected LSA-type(%u)", lsa->data->type); 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))); 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. */ /* This lsa will be flushed and removed eventually. */
ospf_lsa_maxage (lsa); ospf_lsa_maxage (ospf, lsa);
out: out:
return; return;
@ -2241,7 +2244,7 @@ ospf_opaque_self_originated_lsa_received (struct ospf_neighbor *nbr, list lsas)
break; break;
case OSPF_OPAQUE_AS_LSA: case OSPF_OPAQUE_AS_LSA:
SET_FLAG (top->opaque, OPAQUE_BLOCK_TYPE_11_LSA_BIT); 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; break;
default: default:
zlog_warn ("ospf_opaque_self_originated_lsa_received: Unexpected LSA-type(%u)", lsa->data->type); 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; continue;
if (! ospf_if_is_enable (oi) if (! ospf_if_is_enable (oi)
|| ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full) == 0) || ospf_nbr_count_opaque_capable (oi) == 0)
continue; continue;
ospf_opaque_lsa_originate_schedule (oi, &delay); 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) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Self-originated type-9 Opaque-LSAs: OI(%s): Flush completed", IF_NAME (oi)); 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; return;
} }
@ -2384,7 +2387,7 @@ ospf_opaque_type10_lsa_rxmt_nbr_check (struct ospf_area *area)
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Self-originated type-10 Opaque-LSAs: AREA(%s): Flush completed", inet_ntoa (area->area_id)); 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; return;
@ -2481,7 +2484,7 @@ oi_to_top (struct ospf_interface *oi)
struct ospf *top = NULL; struct ospf *top = NULL;
struct ospf_area *area; 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\"?"); zlog_warn ("Broken relationship for \"OI -> AREA -> OSPF\"?");
return top; return top;

View File

@ -482,22 +482,21 @@ ospf_ls_ack_timer (struct thread *thread)
int int
ospf_write (struct thread *thread) ospf_write (struct thread *thread)
{ {
struct ospf *ospf = THREAD_ARG (thread);
struct ospf_interface *oi; struct ospf_interface *oi;
struct ospf_packet *op; struct ospf_packet *op;
struct sockaddr_in sa_dst; struct sockaddr_in sa_dst;
u_char type;
int ret;
int flags = 0;
struct ip iph; struct ip iph;
struct msghdr msg; struct msghdr msg;
struct iovec iov[2]; struct iovec iov[2];
struct ospf *top; u_char type;
int ret;
int flags = 0;
listnode node; listnode node;
top = THREAD_ARG (thread); ospf->t_write = NULL;
top->t_write = NULL;
node = listhead (top->oi_write_q); node = listhead (ospf->oi_write_q);
assert (node); assert (node);
oi = getdata (node); oi = getdata (node);
assert (oi); assert (oi);
@ -507,9 +506,9 @@ ospf_write (struct thread *thread)
assert (op); assert (op);
assert (op->length >= OSPF_HEADER_SIZE); assert (op->length >= OSPF_HEADER_SIZE);
if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS) || if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS)
op->dst.s_addr == htonl (OSPF_ALLDROUTERS)) || op->dst.s_addr == htonl (OSPF_ALLDROUTERS))
ospf_if_ipmulticast (top, oi->address, oi->ifp->ifindex); ospf_if_ipmulticast (ospf, oi->address, oi->ifp->ifindex);
/* Rewrite the md5 signature & update the seq */ /* Rewrite the md5 signature & update the seq */
ospf_make_md5_digest (oi, op); ospf_make_md5_digest (oi, op);
@ -529,7 +528,7 @@ ospf_write (struct thread *thread)
iph.ip_hl = sizeof (struct ip) >> 2; iph.ip_hl = sizeof (struct ip) >> 2;
iph.ip_v = IPVERSION; iph.ip_v = IPVERSION;
iph.ip_tos = 0; iph.ip_tos = IPTOS_PREC_INTERNETCONTROL;
#if defined(__NetBSD__) || defined(__FreeBSD__) #if defined(__NetBSD__) || defined(__FreeBSD__)
iph.ip_len = iph.ip_hl*4 + op->length; iph.ip_len = iph.ip_hl*4 + op->length;
#else #else
@ -556,7 +555,7 @@ ospf_write (struct thread *thread)
iov[1].iov_base = STREAM_DATA (op->s); iov[1].iov_base = STREAM_DATA (op->s);
iov[1].iov_len = op->length; iov[1].iov_len = op->length;
ret = sendmsg (top->fd, &msg, flags); ret = sendmsg (ospf->fd, &msg, flags);
if (ret < 0) if (ret < 0)
zlog_warn ("*** sendmsg in ospf_write failed with %s", strerror (errno)); 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) if (ospf_fifo_head (oi->obuf) == NULL)
{ {
oi->on_write_q = 0; 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 packets still remain in queue, call write thread. */
if (!list_isempty (top->oi_write_q)) if (!list_isempty (ospf->oi_write_q))
ospf_top->t_write = ospf->t_write =
thread_add_write (master, ospf_write, top, top->fd); thread_add_write (master, ospf_write, ospf, ospf->fd);
return 0; return 0;
} }
@ -617,10 +616,8 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,
hello = (struct ospf_hello *) STREAM_PNT (s); hello = (struct ospf_hello *) STREAM_PNT (s);
/* If Hello is myself, silently discard. */ /* If Hello is myself, silently discard. */
if (IPV4_ADDR_SAME (&ospfh->router_id, &ospf_top->router_id)) { if (IPV4_ADDR_SAME (&ospfh->router_id, &oi->ospf->router_id))
zlog_info ("Packet %s [Hello:RECV]: router_id matches our router id");
return; return;
}
/* If incoming interface is passive one, ignore Hello. */ /* If incoming interface is passive one, ignore Hello. */
if (OSPF_IF_PARAM (oi, passive_interface) == OSPF_IF_PASSIVE) { 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 */ #endif /* REJECT_IF_TBIT_ON */
#ifdef HAVE_OPAQUE_LSA #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)) && CHECK_FLAG (hello->options, OSPF_OPTION_O))
{ {
/* /*
@ -823,7 +820,7 @@ ospf_hello (struct ip *iph, struct ospf_header *ospfh,
return; 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)) size - OSPF_HELLO_MIN_SIZE))
{ {
OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived); 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 #ifdef HAVE_OPAQUE_LSA
if (CHECK_FLAG (dd->options, OSPF_OPTION_O) 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. * 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) && if ((IS_SET_DD_ALL (dd->flags) == OSPF_DD_FLAG_ALL) &&
(size == OSPF_DB_DESC_MIN_SIZE)) (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 */ /* We're Slave---obey */
zlog_warn ("Packet[DD]: Negotiation done (Slave)."); 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 */ /* Ack from the Slave */
else if (!IS_SET_DD_MS (dd->flags) && !IS_SET_DD_I (dd->flags) && else if (!IS_SET_DD_MS (dd->flags) && !IS_SET_DD_I (dd->flags) &&
ntohl (dd->dd_seqnum) == nbr->dd_seqnum && 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)."); zlog_warn ("Packet[DD]: Negotiation done (Master).");
nbr->dd_flags &= ~OSPF_DD_FLAG_I; 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; nbr->options = dd->options;
#ifdef HAVE_OPAQUE_LSA #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) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("Neighbor[%s] is %sOpaque-capable.", 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. */ then take the following actions. */
if (IS_LSA_MAXAGE (lsa) && !current && if (IS_LSA_MAXAGE (lsa) && !current &&
(ospf_nbr_count (oi->nbrs, NSM_Exchange) + (ospf_nbr_count (oi, NSM_Exchange) +
ospf_nbr_count (oi->nbrs, NSM_Loading)) == 0) ospf_nbr_count (oi, NSM_Loading)) == 0)
{ {
/* Response Link State Acknowledgment. */ /* Response Link State Acknowledgment. */
ospf_ls_ack_send (nbr, lsa); ospf_ls_ack_send (nbr, lsa);
@ -1623,7 +1620,7 @@ ospf_ls_upd (struct ip *iph, struct ospf_header *ospfh,
#ifdef HAVE_OPAQUE_LSA #ifdef HAVE_OPAQUE_LSA
if (IS_OPAQUE_LSA (lsa->data->type) 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 * 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) (ret = ospf_lsa_more_recent (current, lsa)) < 0)
{ {
/* Actual flooding procedure. */ /* 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); DISCARD_LSA (lsa, 4);
continue; continue;
} }
@ -1973,9 +1970,9 @@ ospf_associate_packet_vl (struct interface *ifp, struct ospf_interface *oi,
struct ip *iph, struct ospf_header *ospfh) struct ip *iph, struct ospf_header *ospfh)
{ {
struct ospf_interface *rcv_oi; struct ospf_interface *rcv_oi;
listnode node;
struct ospf_vl_data *vl_data; struct ospf_vl_data *vl_data;
struct ospf_area *vl_area; struct ospf_area *vl_area;
listnode node;
if (IN_MULTICAST (ntohl (iph->ip_dst.s_addr)) || if (IN_MULTICAST (ntohl (iph->ip_dst.s_addr)) ||
!OSPF_IS_AREA_BACKBONE (ospfh)) !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 = 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; 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) if ((vl_data = getdata (node)) == NULL)
continue; 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) if (!vl_area)
continue; continue;
@ -2195,7 +2193,7 @@ ospf_read (struct thread *thread)
{ {
int ret; int ret;
struct stream *ibuf; struct stream *ibuf;
struct ospf *top; struct ospf *ospf;
struct ospf_interface *oi; struct ospf_interface *oi;
struct ip *iph; struct ip *iph;
struct ospf_header *ospfh; struct ospf_header *ospfh;
@ -2203,25 +2201,25 @@ ospf_read (struct thread *thread)
struct interface *ifp; struct interface *ifp;
/* first of all get interface pointer. */ /* first of all get interface pointer. */
top = THREAD_ARG (thread); ospf = THREAD_ARG (thread);
top->t_read = NULL; ospf->t_read = NULL;
/* read OSPF packet. */ /* read OSPF packet. */
ibuf = ospf_recv_packet (top->fd, &ifp); ibuf = ospf_recv_packet (ospf->fd, &ifp);
if (ibuf == NULL) if (ibuf == NULL)
return -1; return -1;
iph = (struct ip *) STREAM_DATA (ibuf); iph = (struct ip *) STREAM_DATA (ibuf);
/* prepare for next packet. */ /* 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. */ /* IP Header dump. */
if (IS_DEBUG_OSPF_PACKET(0, RECV)) if (IS_DEBUG_OSPF_PACKET(0, RECV))
ospf_ip_header_dump (ibuf); ospf_ip_header_dump (ibuf);
/* Self-originated packet should be discarded silently. */ /* 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); stream_free (ibuf);
return 0; return 0;
@ -2234,7 +2232,7 @@ ospf_read (struct thread *thread)
ospfh = (struct ospf_header *) STREAM_PNT (ibuf); ospfh = (struct ospf_header *) STREAM_PNT (ibuf);
/* associate packet with ospf interface */ /* 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) if (ifp && oi && oi->ifp != ifp)
{ {
zlog_warn ("Packet from [%s] received on wrong link %s", 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->version = (u_char) OSPF_VERSION;
ospfh->type = (u_char) type; ospfh->type = (u_char) type;
ospfh->router_id = ospf_top->router_id; ospfh->router_id = oi->ospf->router_id;
ospfh->checksum = 0; ospfh->checksum = 0;
ospfh->area_id = oi->area->area_id; ospfh->area_id = oi->area->area_id;
@ -2453,25 +2451,21 @@ ospf_make_hello (struct ospf_interface *oi, struct stream *s)
/* Add neighbor seen. */ /* Add neighbor seen. */
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn)) for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL) { if ((nbr = rn->info))
/* ignore 0.0.0.0 node. */ if (nbr->router_id.s_addr != 0) /* 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_Attempt) if (nbr->state != NSM_Down) /* This is myself for DR election. */
/* ignore Down neighbor. */ if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
if (nbr->state != NSM_Down)
/* this is myself for DR election. */
if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
{ {
/* Check neighbor is sane? */ /* Check neighbor is sane? */
if (nbr->d_router.s_addr != 0 && if (nbr->d_router.s_addr != 0
IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4) && && IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4)
IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4)) && IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
flag = 0; flag = 1;
stream_put_ipv4 (s, nbr->router_id.s_addr); stream_put_ipv4 (s, nbr->router_id.s_addr);
length += 4; length += 4;
} }
}
/* Let neighbor generate BackupSeen. */ /* Let neighbor generate BackupSeen. */
if (flag == 1) if (flag == 1)
@ -2503,7 +2497,7 @@ ospf_make_db_desc (struct ospf_interface *oi, struct ospf_neighbor *nbr,
/* Set Options. */ /* Set Options. */
options = OPTIONS (oi); options = OPTIONS (oi);
#ifdef HAVE_OPAQUE_LSA #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) if (IS_SET_DD_I (nbr->dd_flags)
|| CHECK_FLAG (nbr->options, OSPF_OPTION_O)) || 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 /* The administrative status of OSPF. When OSPF is enbled on at least
one interface return 1. */ one interface return 1. */
int int
ospf_admin_stat () ospf_admin_stat (struct ospf *ospf)
{ {
listnode node; listnode node;
struct ospf_interface *oi; struct ospf_interface *oi;
if (! ospf_top) if (ospf == NULL)
return 0; return 0;
for (node = listhead (ospf_top->oiflist); node; nextnode (node)) for (node = listhead (ospf->oiflist); node; nextnode (node))
{ {
oi = getdata (node); oi = getdata (node);
@ -518,6 +518,8 @@ static u_char *
ospfGeneralGroup (struct variable *v, oid *name, size_t *length, ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
int exact, size_t *var_len, WriteMethod **write_method) int exact, size_t *var_len, WriteMethod **write_method)
{ {
struct ospf *ospf = ospf_top;
/* Check whether the instance identifier is valid */ /* Check whether the instance identifier is valid */
if (smux_header_generic (v, name, length, exact, var_len, write_method) if (smux_header_generic (v, name, length, exact, var_len, write_method)
== MATCH_FAILED) == MATCH_FAILED)
@ -528,14 +530,14 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
{ {
case OSPFROUTERID: /* 1 */ case OSPFROUTERID: /* 1 */
/* Router-ID of this OSPF instance. */ /* Router-ID of this OSPF instance. */
if (ospf_top) if (ospf)
return SNMP_IPADDRESS (ospf_top->router_id); return SNMP_IPADDRESS (ospf->router_id);
else else
return SNMP_IPADDRESS (ospf_empty_addr); return SNMP_IPADDRESS (ospf_empty_addr);
break; break;
case OSPFADMINSTAT: /* 2 */ case OSPFADMINSTAT: /* 2 */
/* The administrative status of OSPF in the router. */ /* The administrative status of OSPF in the router. */
if (ospf_admin_stat ()) if (ospf_admin_stat (ospf))
return SNMP_INTEGER (OSPF_STATUS_ENABLED); return SNMP_INTEGER (OSPF_STATUS_ENABLED);
else else
return SNMP_INTEGER (OSPF_STATUS_DISABLED); return SNMP_INTEGER (OSPF_STATUS_DISABLED);
@ -546,22 +548,22 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
break; break;
case OSPFAREABDRRTRSTATUS: /* 4 */ case OSPFAREABDRRTRSTATUS: /* 4 */
/* Area Border router status. */ /* 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); return SNMP_INTEGER (SNMP_TRUE);
else else
return SNMP_INTEGER (SNMP_FALSE); return SNMP_INTEGER (SNMP_FALSE);
break; break;
case OSPFASBDRRTRSTATUS: /* 5 */ case OSPFASBDRRTRSTATUS: /* 5 */
/* AS Border router status. */ /* 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); return SNMP_INTEGER (SNMP_TRUE);
else else
return SNMP_INTEGER (SNMP_FALSE); return SNMP_INTEGER (SNMP_FALSE);
break; break;
case OSPFEXTERNLSACOUNT: /* 6 */ case OSPFEXTERNLSACOUNT: /* 6 */
/* External LSA counts. */ /* External LSA counts. */
if (ospf_top) if (ospf)
return SNMP_INTEGER (ospf_lsdb_count_all (ospf_top->lsdb)); return SNMP_INTEGER (ospf_lsdb_count_all (ospf->lsdb));
else else
return SNMP_INTEGER (0); return SNMP_INTEGER (0);
break; break;
@ -575,16 +577,16 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
break; break;
case OSPFORIGINATENEWLSAS: /* 9 */ case OSPFORIGINATENEWLSAS: /* 9 */
/* The number of new link-state advertisements. */ /* The number of new link-state advertisements. */
if (ospf_top) if (ospf)
return SNMP_INTEGER (ospf_top->lsa_originate_count); return SNMP_INTEGER (ospf->lsa_originate_count);
else else
return SNMP_INTEGER (0); return SNMP_INTEGER (0);
break; break;
case OSPFRXNEWLSAS: /* 10 */ case OSPFRXNEWLSAS: /* 10 */
/* The number of link-state advertisements received determined /* The number of link-state advertisements received determined
to be new instantiations. */ to be new instantiations. */
if (ospf_top) if (ospf)
return SNMP_INTEGER (ospf_top->rx_lsa_count); return SNMP_INTEGER (ospf->rx_lsa_count);
else else
return SNMP_INTEGER (0); return SNMP_INTEGER (0);
break; break;
@ -612,7 +614,7 @@ ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
} }
struct ospf_area * 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; struct ospf_area *area;
listnode node; listnode node;
@ -622,7 +624,7 @@ ospf_area_lookup_next (struct in_addr *area_id, int first)
if (first) if (first)
{ {
node = listhead (ospf_top->areas); node = listhead (ospf->areas);
if (node) if (node)
{ {
area = getdata (node); area = getdata (node);
@ -631,7 +633,7 @@ ospf_area_lookup_next (struct in_addr *area_id, int first)
} }
return NULL; return NULL;
} }
for (node = listhead (ospf_top->areas); node; nextnode (node)) for (node = listhead (ospf->areas); node; nextnode (node))
{ {
area = getdata (node); area = getdata (node);
@ -648,10 +650,11 @@ struct ospf_area *
ospfAreaLookup (struct variable *v, oid name[], size_t *length, ospfAreaLookup (struct variable *v, oid name[], size_t *length,
struct in_addr *addr, int exact) struct in_addr *addr, int exact)
{ {
int len; struct ospf *ospf = ospf_top;
struct ospf_area *area; struct ospf_area *area;
int len;
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
if (exact) 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); 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; return area;
} }
@ -674,7 +677,7 @@ ospfAreaLookup (struct variable *v, oid name[], size_t *length,
oid2in_addr (name + v->namelen, len, addr); 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) if (area == NULL)
return NULL; return NULL;
@ -779,8 +782,9 @@ struct ospf_area *
ospfStubAreaLookup (struct variable *v, oid name[], size_t *length, ospfStubAreaLookup (struct variable *v, oid name[], size_t *length,
struct in_addr *addr, int exact) struct in_addr *addr, int exact)
{ {
int len; struct ospf *ospf = ospf_top;
struct ospf_area *area; struct ospf_area *area;
int len;
if (! ospf_top) if (! ospf_top)
return NULL; 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); 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) if (area->external_routing == OSPF_AREA_STUB)
return area; 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 *area_id, u_char *type,
struct in_addr *ls_id, struct in_addr *router_id, int exact) struct in_addr *ls_id, struct in_addr *router_id, int exact)
{ {
struct ospf *ospf = ospf_top;
struct ospf_area *area; struct ospf_area *area;
struct ospf_lsa *lsa; struct ospf_lsa *lsa;
int len; int len;
@ -929,7 +934,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
/* Lookup area first. */ /* Lookup area first. */
oid2in_addr (offset, IN_ADDR_SIZE, area_id); 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) if (! area)
return NULL; return NULL;
offset += IN_ADDR_SIZE; offset += IN_ADDR_SIZE;
@ -962,9 +967,9 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
/* First we search area. */ /* First we search area. */
if (len == IN_ADDR_SIZE) 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 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) if (area == NULL)
return NULL; return NULL;
@ -1038,7 +1043,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
return lsa; 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; return NULL;
} }
@ -1116,6 +1121,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
oid *offset; oid *offset;
int offsetlen; int offsetlen;
int len; int len;
struct ospf *ospf = ospf_top;
struct ospf_area *area; struct ospf_area *area;
struct ospf_area_range *range; struct ospf_area_range *range;
struct prefix_ipv4 p; struct prefix_ipv4 p;
@ -1134,7 +1140,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
/* Lookup area first. */ /* Lookup area first. */
oid2in_addr (offset, IN_ADDR_SIZE, area_id); 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) if (! area)
return NULL; return NULL;
@ -1160,9 +1166,9 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
/* First we search area. */ /* First we search area. */
if (len == IN_ADDR_SIZE) 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 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) if (area == NULL)
return NULL; return NULL;
@ -1197,7 +1203,7 @@ ospfAreaRangeLookup (struct variable *v, oid *name, size_t *length,
return range; 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; 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 area_id;
struct in_addr range_net; struct in_addr range_net;
struct in_addr mask; struct in_addr mask;
struct ospf *ospf = ospf_top;
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
memset (&area_id, 0, IN_ADDR_SIZE); memset (&area_id, 0, IN_ADDR_SIZE);
@ -1258,8 +1265,9 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
{ {
int len; int len;
struct ospf_nbr_nbma *nbr_nbma; struct ospf_nbr_nbma *nbr_nbma;
struct ospf *ospf = ospf_top;
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
if (exact) if (exact)
@ -1274,7 +1282,7 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
oid2in_addr (name + v->namelen, IN_ADDR_SIZE, addr); 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; return nbr_nbma;
} }
@ -1286,7 +1294,7 @@ ospfHostLookup (struct variable *v, oid *name, size_t *length,
oid2in_addr (name + v->namelen, len, addr); 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) if (nbr_nbma == NULL)
return 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_nbr_nbma *nbr_nbma;
struct ospf_interface *oi; struct ospf_interface *oi;
struct in_addr addr; struct in_addr addr;
struct ospf *ospf = ospf_top;
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
memset (&addr, 0, sizeof (struct in_addr)); 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; unsigned int ifindex;
struct in_addr ifaddr; struct in_addr ifaddr;
struct ospf_interface *oi; struct ospf_interface *oi;
struct ospf *ospf = ospf_top;
ifindex = 0; ifindex = 0;
memset (&ifaddr, 0, sizeof (struct in_addr)); memset (&ifaddr, 0, sizeof (struct in_addr));
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
ifp = ospfIfLookup (v, name, length, &ifaddr, &ifindex, exact); ifp = ospfIfLookup (v, name, length, &ifaddr, &ifindex, exact);
if (ifp == NULL) if (ifp == NULL)
return 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) if (oi == NULL)
return NULL; return NULL;
@ -1771,19 +1781,20 @@ ospfIfMetricEntry (struct variable *v, oid *name, size_t *length, int exact,
unsigned int ifindex; unsigned int ifindex;
struct in_addr ifaddr; struct in_addr ifaddr;
struct ospf_interface *oi; struct ospf_interface *oi;
struct ospf *ospf = ospf_top;
ifindex = 0; ifindex = 0;
memset (&ifaddr, 0, sizeof (struct in_addr)); memset (&ifaddr, 0, sizeof (struct in_addr));
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
ifp = ospfIfMetricLookup (v, name, length, &ifaddr, &ifindex, exact); ifp = ospfIfMetricLookup (v, name, length, &ifaddr, &ifindex, exact);
if (ifp == NULL) if (ifp == NULL)
return 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) if (oi == NULL)
return NULL; return NULL;
@ -2025,14 +2036,15 @@ ospfVirtIfEntry (struct variable *v, oid *name, size_t *length, int exact,
} }
struct ospf_neighbor * 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 listnode *nn;
struct ospf_interface *oi; struct ospf_interface *oi;
struct ospf_neighbor *nbr; struct ospf_neighbor *nbr;
struct route_node *rn; 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)) for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL 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 ospf_neighbor *nbr;
struct route_node *rn; struct route_node *rn;
struct ospf_neighbor *min = NULL; 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)) for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
if ((nbr = rn->info) != NULL if ((nbr = rn->info) != NULL
@ -2100,6 +2113,7 @@ ospfNbrLookup (struct variable *v, oid *name, size_t *length,
int len; int len;
int first; int first;
struct ospf_neighbor *nbr; struct ospf_neighbor *nbr;
struct ospf *ospf = ospf_top;
if (exact) 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); oid2in_addr (name + v->namelen, IN_ADDR_SIZE, nbr_addr);
*ifindex = name[v->namelen + IN_ADDR_SIZE]; *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 else
{ {
@ -2210,12 +2224,13 @@ ospfVirtNbrEntry (struct variable *v, oid *name, size_t *length, int exact,
struct ospf_vl_data *vl_data; struct ospf_vl_data *vl_data;
struct in_addr area_id; struct in_addr area_id;
struct in_addr neighbor; struct in_addr neighbor;
struct ospf *ospf = ospf_top;
memset (&area_id, 0, sizeof (struct in_addr)); memset (&area_id, 0, sizeof (struct in_addr));
memset (&neighbor, 0, sizeof (struct in_addr)); memset (&neighbor, 0, sizeof (struct in_addr));
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
vl_data = ospfVirtIfLookup (v, name, length, &area_id, &neighbor, exact); 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; u_char lsa_type;
int len; int len;
struct ospf_lsa *lsa; struct ospf_lsa *lsa;
struct ospf *ospf = ospf_top;
if (exact) if (exact)
{ {
@ -2288,7 +2304,7 @@ ospfExtLsdbLookup (struct variable *v, oid *name, size_t *length, u_char *type,
/* Router ID. */ /* Router ID. */
oid2in_addr (offset, IN_ADDR_SIZE, 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 else
{ {
@ -2322,7 +2338,7 @@ ospfExtLsdbLookup (struct variable *v, oid *name, size_t *length, u_char *type,
oid2in_addr (offset, len, router_id); 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); *router_id, first);
if (lsa) if (lsa)
@ -2354,13 +2370,14 @@ ospfExtLsdbEntry (struct variable *v, oid *name, size_t *length, int exact,
u_char type; u_char type;
struct in_addr ls_id; struct in_addr ls_id;
struct in_addr router_id; struct in_addr router_id;
struct ospf *ospf = ospf_top;
type = OSPF_AS_EXTERNAL_LSA; type = OSPF_AS_EXTERNAL_LSA;
memset (&ls_id, 0, sizeof (struct in_addr)); memset (&ls_id, 0, sizeof (struct in_addr));
memset (&router_id, 0, sizeof (struct in_addr)); memset (&router_id, 0, sizeof (struct in_addr));
/* Check OSPF instance. */ /* Check OSPF instance. */
if (! ospf_top) if (ospf == NULL)
return NULL; return NULL;
lsa = ospfExtLsdbLookup (v, name, length, &type, &ls_id, &router_id, exact); 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) if (l->m[0].type == LSA_LINK_TYPE_POINTOPOINT)
{ {
/* check for PtMP, signified by PtP link V->W with link_data our PtMP interface */ /* Check for PtMP, signified by PtP link V->W
oi = ospf_if_is_configured(&l->link_data); with link_data our PtMP interface. */
oi = ospf_if_is_configured (area->ospf, &l->link_data);
if (oi && oi->type == OSPF_IFTYPE_POINTOMULTIPOINT) if (oi && oi->type == OSPF_IFTYPE_POINTOMULTIPOINT)
{ {
struct prefix_ipv4 la;
struct prefix_ipv4 * la = prefix_ipv4_new(); la.prefixlen = oi->address->prefixlen;
la->prefixlen = oi->address->prefixlen; /* We link to them on PtMP interface
- find the interface on w */
/* we link to them on PtMP interface - find the interface on w */
while ((l2 = ospf_get_next_link (w, v, l2))) 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 */ /* link_data is on our PtMP network */
break; break;
} }
} }
else else
{ {
while ((l2 = ospf_get_next_link (w, v, l2))) 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) if (oi == NULL)
continue; continue;
if (!IPV4_ADDR_SAME (&oi->address->u.prefix4, &l->link_data)) if (!IPV4_ADDR_SAME (&oi->address->u.prefix4,
&l->link_data))
continue; continue;
break; break;
} }
} }
if (oi && l2) if (oi && l2)
@ -414,7 +416,7 @@ ospf_nexthop_calculation (struct ospf_area *area,
{ {
while ((l = ospf_get_next_link (v, w, l))) 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) if (oi)
{ {
nh = vertex_nexthop_new (v); 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. */ /* Increment SPF Calculation Counter. */
area->spf_calculation++; area->spf_calculation++;
ospf_top->ts_spf = time (NULL); area->ospf->ts_spf = time (NULL);
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_spf_calculate: Stop"); 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. */ /* Timer for SPF calculation. */
int 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 route_table *new_table, *new_rtrs;
struct ospf *ospf;
/* struct ospf_area *area; */
listnode node; listnode node;
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: Timer (SPF calculation expire)"); zlog_info ("SPF: Timer (SPF calculation expire)");
ospf = THREAD_ARG (t);
ospf->t_spf_calc = NULL; ospf->t_spf_calc = NULL;
/* Allocate new table tree. */ /* Allocate new table tree. */
new_table = route_table_init (); new_table = route_table_init ();
new_rtrs = route_table_init (); new_rtrs = route_table_init ();
ospf_vl_unapprove (); ospf_vl_unapprove (ospf);
/* Calculate SPF for each area. */ /* Calculate SPF for each area. */
for (node = listhead (ospf->areas); node; node = nextnode (node)) for (node = listhead (ospf->areas); node; node = nextnode (node))
ospf_spf_calculate (node->data, new_table, new_rtrs); 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_networks (new_table);
ospf_prune_unreachable_routers (new_rtrs); ospf_prune_unreachable_routers (new_rtrs);
@ -1038,26 +1038,26 @@ ospf_spf_calculate_timer (struct thread *t)
/* If new Router Route is installed, /* If new Router Route is installed,
then schedule re-calculate External routes. */ then schedule re-calculate External routes. */
if (1) 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. */ /* Update routing table. */
ospf_route_install (new_table); ospf_route_install (ospf, new_table);
/* Update ABR/ASBR routing 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. */ /* old_rtrs's node holds linked list of ospf_route. --kunihiro. */
/* ospf_route_delete (ospf_top->old_rtrs); */ /* ospf_route_delete (ospf->old_rtrs); */
ospf_rtrs_free (ospf_top->old_rtrs); ospf_rtrs_free (ospf->old_rtrs);
} }
ospf_top->old_rtrs = ospf_top->new_rtrs; ospf->old_rtrs = ospf->new_rtrs;
ospf_top->new_rtrs = new_rtrs; ospf->new_rtrs = new_rtrs;
if (OSPF_IS_ABR) if (OSPF_IS_ABR)
ospf_abr_task (new_table, new_rtrs); ospf_abr_task (ospf);
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation complete"); 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 /* Add schedule for SPF calculation. To avoid frequenst SPF calc, we
set timer for SPF calc. */ set timer for SPF calc. */
void void
ospf_spf_calculate_schedule () ospf_spf_calculate_schedule (struct ospf *ospf)
{ {
time_t ht, delay; time_t ht, delay;
@ -1076,34 +1076,34 @@ ospf_spf_calculate_schedule ()
zlog_info ("SPF: calculation timer scheduled"); zlog_info ("SPF: calculation timer scheduled");
/* OSPF instance does not exist. */ /* OSPF instance does not exist. */
if (!ospf_top) if (ospf == NULL)
return; return;
/* SPF calculation timer is already scheduled. */ /* SPF calculation timer is already scheduled. */
if (ospf_top->t_spf_calc) if (ospf->t_spf_calc)
{ {
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation timer is already scheduled: %p", zlog_info ("SPF: calculation timer is already scheduled: %p",
ospf_top->t_spf_calc); ospf->t_spf_calc);
return; return;
} }
ht = time (NULL) - ospf_top->ts_spf; ht = time (NULL) - ospf->ts_spf;
/* Get SPF calculation delay time. */ /* 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) if (ospf->spf_holdtime - ht < ospf->spf_delay)
delay = ospf_top->spf_delay; delay = ospf->spf_delay;
else else
delay = ospf_top->spf_holdtime - ht; delay = ospf->spf_holdtime - ht;
} }
else else
delay = ospf_top->spf_delay; delay = ospf->spf_delay;
if (IS_DEBUG_OSPF_EVENT) if (IS_DEBUG_OSPF_EVENT)
zlog_info ("SPF: calculation timer delay = %ld", delay); zlog_info ("SPF: calculation timer delay = %ld", delay);
ospf_top->t_spf_calc = ospf->t_spf_calc =
thread_add_timer (master, ospf_spf_calculate_timer, ospf_top, delay); 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) ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
{ {
struct interface *ifp; struct interface *ifp;
struct ospf *ospf = ospf_top;
ifp = zebra_interface_add_read (zclient->ibuf); 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; IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_LOOPBACK;
} }
ospf_if_update (); ospf_if_update (ospf);
#ifdef HAVE_SNMP #ifdef HAVE_SNMP
ospf_snmp_if_update (ifp); ospf_snmp_if_update (ifp);
@ -245,6 +246,7 @@ int
ospf_interface_address_add (int command, struct zclient *zclient, ospf_interface_address_add (int command, struct zclient *zclient,
zebra_size_t length) zebra_size_t length)
{ {
struct ospf *ospf = ospf_top;
struct connected *c; struct connected *c;
c = zebra_interface_address_add_read (zclient->ibuf); c = zebra_interface_address_add_read (zclient->ibuf);
@ -252,19 +254,7 @@ ospf_interface_address_add (int command, struct zclient *zclient,
if (c == NULL) if (c == NULL)
return 0; return 0;
#if 0 ospf_if_update (ospf);
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 ();
#ifdef HAVE_SNMP #ifdef HAVE_SNMP
ospf_snmp_if_update (c->ifp); ospf_snmp_if_update (c->ifp);
@ -277,6 +267,7 @@ int
ospf_interface_address_delete (int command, struct zclient *zclient, ospf_interface_address_delete (int command, struct zclient *zclient,
zebra_size_t length) zebra_size_t length)
{ {
struct ospf *ospf = ospf_top;
struct connected *c; struct connected *c;
struct interface *ifp; struct interface *ifp;
struct ospf_interface *oi; struct ospf_interface *oi;
@ -308,7 +299,7 @@ ospf_interface_address_delete (int command, struct zclient *zclient,
connected_free (c); connected_free (c);
ospf_if_update(); ospf_if_update (ospf);
return 0; return 0;
} }
@ -482,42 +473,43 @@ ospf_is_type_redistributed (int type)
int int
ospf_redistribute_set (int type, int mtype, int mvalue) ospf_redistribute_set (int type, int mtype, int mvalue)
{ {
struct ospf *ospf = ospf_top;
int force = 0; int force = 0;
if (ospf_is_type_redistributed (type)) 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; 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; 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)) if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]", zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, type), LOOKUP (ospf_redistributed_proto, type),
metric_type (type), metric_value (type)); metric_type (ospf, type), metric_value (ospf, type));
return CMD_SUCCESS; return CMD_SUCCESS;
} }
ospf_top->dmetric[type].type = mtype; ospf->dmetric[type].type = mtype;
ospf_top->dmetric[type].value = mvalue; ospf->dmetric[type].value = mvalue;
zclient_redistribute_set (zclient, type); zclient_redistribute_set (zclient, type);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE)) if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Start Type[%d], Metric[%d]", zlog_info ("Redistribute[%s]: Start Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, type), 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; return CMD_SUCCESS;
} }
@ -525,6 +517,8 @@ ospf_redistribute_set (int type, int mtype, int mvalue)
int int
ospf_redistribute_unset (int type) ospf_redistribute_unset (int type)
{ {
struct ospf *ospf = ospf_top;
if (type == zclient->redist_default) if (type == zclient->redist_default)
return CMD_SUCCESS; return CMD_SUCCESS;
@ -537,13 +531,13 @@ ospf_redistribute_unset (int type)
zlog_info ("Redistribute[%s]: Stop", zlog_info ("Redistribute[%s]: Stop",
LOOKUP (ospf_redistributed_proto, type)); LOOKUP (ospf_redistributed_proto, type));
ospf_top->dmetric[type].type = -1; ospf->dmetric[type].type = -1;
ospf_top->dmetric[type].value = -1; ospf->dmetric[type].value = -1;
/* Remove the routes from OSPF table. */ /* Remove the routes from OSPF table. */
ospf_redistribute_withdraw (type); ospf_redistribute_withdraw (type);
ospf_asbr_status_update (--ospf_top->redistribute); ospf_asbr_status_update (ospf, --ospf->redistribute);
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -551,48 +545,50 @@ ospf_redistribute_unset (int type)
int int
ospf_redistribute_default_set (int originate, int mtype, int mvalue) ospf_redistribute_default_set (int originate, int mtype, int mvalue)
{ {
struct ospf *ospf = ospf_top;
int force = 0; int force = 0;
if (ospf_is_type_redistributed (DEFAULT_ROUTE)) 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; force = 1;
} }
if (mvalue != ospf_top->dmetric[DEFAULT_ROUTE].value) if (mvalue != ospf->dmetric[DEFAULT_ROUTE].value)
{ {
force = 1; 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)) if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]", zlog_info ("Redistribute[%s]: Refresh Type[%d], Metric[%d]",
LOOKUP (ospf_redistributed_proto, DEFAULT_ROUTE), LOOKUP (ospf_redistributed_proto, DEFAULT_ROUTE),
metric_type (DEFAULT_ROUTE), metric_type (ospf, DEFAULT_ROUTE),
metric_value (DEFAULT_ROUTE)); metric_value (ospf, DEFAULT_ROUTE));
return CMD_SUCCESS; return CMD_SUCCESS;
} }
ospf_top->default_originate = originate; ospf->default_originate = originate;
ospf_top->dmetric[DEFAULT_ROUTE].type = mtype; ospf->dmetric[DEFAULT_ROUTE].type = mtype;
ospf_top->dmetric[DEFAULT_ROUTE].value = mvalue; ospf->dmetric[DEFAULT_ROUTE].value = mvalue;
zclient_redistribute_default_set (zclient); zclient_redistribute_default_set (zclient);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE)) if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[DEFAULT]: Start Type[%d], Metric[%d]", 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->router_id.s_addr == 0)
if (ospf_top->router_id.s_addr == 0) ospf->external_origin |= (1 << DEFAULT_ROUTE);
ospf_top->external_origin |= (1 << DEFAULT_ROUTE);
else else
thread_add_timer (master, ospf_default_originate_timer, 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; return CMD_SUCCESS;
} }
@ -600,19 +596,21 @@ ospf_redistribute_default_set (int originate, int mtype, int mvalue)
int int
ospf_redistribute_default_unset () ospf_redistribute_default_unset ()
{ {
struct ospf *ospf = ospf_top;
if (!ospf_is_type_redistributed (DEFAULT_ROUTE)) if (!ospf_is_type_redistributed (DEFAULT_ROUTE))
return CMD_SUCCESS; return CMD_SUCCESS;
ospf_top->default_originate = DEFAULT_ORIGINATE_NONE; ospf->default_originate = DEFAULT_ORIGINATE_NONE;
ospf_top->dmetric[DEFAULT_ROUTE].type = -1; ospf->dmetric[DEFAULT_ROUTE].type = -1;
ospf_top->dmetric[DEFAULT_ROUTE].value = -1; ospf->dmetric[DEFAULT_ROUTE].value = -1;
zclient_redistribute_default_unset (zclient); zclient_redistribute_default_unset (zclient);
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE)) if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
zlog_info ("Redistribute[DEFAULT]: Stop"); zlog_info ("Redistribute[DEFAULT]: Stop");
ospf_asbr_status_update (--ospf_top->redistribute); ospf_asbr_status_update (ospf, --ospf->redistribute);
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -620,6 +618,8 @@ ospf_redistribute_default_unset ()
int int
ospf_external_lsa_originate_check (struct external_info *ei) ospf_external_lsa_originate_check (struct external_info *ei)
{ {
struct ospf *ospf = ospf_top;
/* If prefix is multicast, then do not originate LSA. */ /* If prefix is multicast, then do not originate LSA. */
if (IN_MULTICAST (htonl (ei->p.prefix.s_addr))) 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. */ /* Take care of default-originate. */
if (is_prefix_default (&ei->p)) 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 " zlog_info ("LSA[Type5:0.0.0.0]: Not originate AS-exntenal-LSA "
"for default"); "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. */ /* If connected prefix is OSPF enable interface, then do not announce. */
int int
ospf_distribute_check_connected (struct external_info *ei) ospf_distribute_check_connected (struct ospf *ospf,
struct external_info *ei)
{ {
struct route_node *rn; 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 (rn->info != NULL)
if (prefix_match (&rn->p, (struct prefix *)&ei->p)) if (prefix_match (&rn->p, (struct prefix *)&ei->p))
return 0; {
route_unlock_node (rn);
return 0;
}
return 1; return 1;
} }
/* return 1 if external LSA must be originated, 0 otherwise */ /* return 1 if external LSA must be originated, 0 otherwise */
int 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 route_map_set_values save_values;
struct prefix_ipv4 *p = &ei->p; struct prefix_ipv4 *p = &ei->p;
@ -669,7 +674,8 @@ ospf_redistribute_check (struct external_info *ei, int *changed)
return 0; return 0;
/* Take care connected route. */ /* 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; return 0;
if (!DEFAULT_ROUTE_TYPE (type) && DISTRIBUTE_NAME (type)) 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 in_addr nexthop;
struct prefix_ipv4 p; struct prefix_ipv4 p;
struct external_info *ei; struct external_info *ei;
struct ospf *ospf = ospf_top;
s = zclient->ibuf; s = zclient->ibuf;
ifindex = 0; 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); 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 /* Set flags to generate AS-external-LSA originate event
for each redistributed protocols later. */ for each redistributed protocols later. */
ospf_top->external_origin |= (1 << api.type); ospf->external_origin |= (1 << api.type);
else else
{ {
if (ei) if (ei)
{ {
if (is_prefix_default (&p)) if (is_prefix_default (&p))
ospf_external_lsa_refresh_default (); ospf_external_lsa_refresh_default (ospf);
else else
{ {
struct ospf_lsa *current; struct ospf_lsa *current;
current = ospf_external_info_find_lsa (&ei->p); current = ospf_external_info_find_lsa (ospf, &ei->p);
if (!current) if (!current)
ospf_external_lsa_originate (ei); ospf_external_lsa_originate (ospf, ei);
else if (IS_LSA_MAXAGE (current)) 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 else
zlog_warn ("ospf_zebra_read_ipv4() : %s already exists", zlog_warn ("ospf_zebra_read_ipv4() : %s already exists",
inet_ntoa (p.prefix)); inet_ntoa (p.prefix));
@ -812,9 +820,9 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
{ {
ospf_external_info_delete (api.type, p); ospf_external_info_delete (api.type, p);
if ( !is_prefix_default (&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 else
ospf_external_lsa_refresh_default (); ospf_external_lsa_refresh_default (ospf);
} }
return 0; return 0;
@ -822,7 +830,7 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
int 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. */ /* Lookup access-list for distribute-list. */
DISTRIBUTE_LIST (type) = access_list_lookup (AFI_IP, name); 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 access-list have been set, schedule update timer. */
if (DISTRIBUTE_LIST (type)) if (DISTRIBUTE_LIST (type))
ospf_distribute_list_update (type); ospf_distribute_list_update (ospf, type);
return CMD_SUCCESS; return CMD_SUCCESS;
} }
int 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. */ /* Schedule update timer. */
if (DISTRIBUTE_LIST (type)) if (DISTRIBUTE_LIST (type))
ospf_distribute_list_update (type); ospf_distribute_list_update (ospf, type);
/* Unset distribute-list. */ /* Unset distribute-list. */
DISTRIBUTE_LIST (type) = NULL; DISTRIBUTE_LIST (type) = NULL;
@ -869,11 +877,12 @@ ospf_distribute_list_update_timer (struct thread *thread)
struct route_table *rt; struct route_table *rt;
struct ospf_lsa *lsa; struct ospf_lsa *lsa;
u_char type; u_char type;
struct ospf *ospf = ospf_top;
type = (int) THREAD_ARG (thread); type = (int) THREAD_ARG (thread);
rt = EXTERNAL_INFO (type); rt = EXTERNAL_INFO (type);
ospf_top->t_distribute_update = NULL; ospf->t_distribute_update = NULL;
zlog_info ("Zebra[Redistribute]: distribute-list update timer fired!"); 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 ((ei = rn->info) != NULL)
{ {
if (is_prefix_default (&ei->p)) if (is_prefix_default (&ei->p))
ospf_external_lsa_refresh_default (); ospf_external_lsa_refresh_default (ospf);
else if ((lsa = ospf_external_info_find_lsa (&ei->p))) else if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
ospf_external_lsa_refresh (lsa, ei, LSA_REFRESH_IF_CHANGED); ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_IF_CHANGED);
else else
ospf_external_lsa_originate (ei); ospf_external_lsa_originate (ospf, ei);
} }
return 0; return 0;
} }
@ -896,49 +905,45 @@ ospf_distribute_list_update_timer (struct thread *thread)
/* Update distribute-list and set timer to apply access-list. */ /* Update distribute-list and set timer to apply access-list. */
void void
ospf_distribute_list_update (int type) ospf_distribute_list_update (struct ospf *ospf, int type)
{ {
struct route_table *rt; struct route_table *rt;
zlog_info ("ospf_distribute_list_update(): start");
/* External info does not exist. */ /* External info does not exist. */
if (!(rt = EXTERNAL_INFO (type))) if (!(rt = EXTERNAL_INFO (type)))
return; return;
/* If exists previously invoked thread, then cancel it. */ /* If exists previously invoked thread, then cancel it. */
if (ospf_top->t_distribute_update) if (ospf->t_distribute_update)
OSPF_TIMER_OFF (ospf_top->t_distribute_update); OSPF_TIMER_OFF (ospf->t_distribute_update);
/* Set timer. */ /* Set timer. */
ospf_top->t_distribute_update = ospf->t_distribute_update =
thread_add_timer (master, ospf_distribute_list_update_timer, thread_add_timer (master, ospf_distribute_list_update_timer,
(void *) type, OSPF_DISTRIBUTE_UPDATE_DELAY); (void *) type, OSPF_DISTRIBUTE_UPDATE_DELAY);
zlog_info ("ospf_distribute_list_update(): stop");
} }
/* If access-list is updated, apply some check. */ /* If access-list is updated, apply some check. */
void void
ospf_filter_update (struct access_list *access) ospf_filter_update (struct access_list *access)
{ {
struct ospf *ospf = ospf_top;
int type; int type;
int abr_inv = 0; int abr_inv = 0;
struct ospf_area *area; struct ospf_area *area;
listnode node; listnode node;
/* If OSPF instatnce does not exist, return right now. */ /* If OSPF instatnce does not exist, return right now. */
if (!ospf_top) if (ospf == NULL)
return; return;
/* Update distribute-list, and apply filter. */ /* Update distribute-list, and apply filter. */
for (type = 0; type < ZEBRA_ROUTE_MAX; type++) for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
{ {
if (ROUTEMAP (type) != NULL) if (ROUTEMAP (type) != NULL)
{ {
/* if route-map is not NULL it may be using this access list */ /* 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; continue;
} }
@ -959,12 +964,12 @@ ospf_filter_update (struct access_list *access)
/* Schedule distribute-list update timer. */ /* Schedule distribute-list update timer. */
if (DISTRIBUTE_LIST (type) == NULL || if (DISTRIBUTE_LIST (type) == NULL ||
strcmp (DISTRIBUTE_NAME (type), access->name) == 0) strcmp (DISTRIBUTE_NAME (type), access->name) == 0)
ospf_distribute_list_update (type); ospf_distribute_list_update (ospf, type);
} }
} }
/* Update Area access-list. */ /* 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 ((area = getdata (node)) != NULL)
{ {
if (EXPORT_NAME (area)) if (EXPORT_NAME (area))
@ -982,7 +987,7 @@ ospf_filter_update (struct access_list *access)
/* Schedule ABR tasks -- this will be changed -- takada. */ /* Schedule ABR tasks -- this will be changed -- takada. */
if (OSPF_IS_ABR && abr_inv) 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; u_char distance;
struct route_node *rn; struct route_node *rn;
struct ospf_distance *odistance; struct ospf_distance *odistance;
struct ospf *ospf = ospf_top;
ret = str2prefix_ipv4 (ip_str, &p); ret = str2prefix_ipv4 (ip_str, &p);
if (ret == 0) if (ret == 0)
@ -1021,7 +1027,7 @@ ospf_distance_set (struct vty *vty, char *distance_str, char *ip_str,
distance = atoi (distance_str); distance = atoi (distance_str);
/* Get OSPF distance node. */ /* 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) if (rn->info)
{ {
odistance = rn->info; odistance = rn->info;
@ -1057,6 +1063,7 @@ ospf_distance_unset (struct vty *vty, char *distance_str, char *ip_str,
u_char distance; u_char distance;
struct route_node *rn; struct route_node *rn;
struct ospf_distance *odistance; struct ospf_distance *odistance;
struct ospf *ospf = ospf_top;
ret = str2prefix_ipv4 (ip_str, &p); ret = str2prefix_ipv4 (ip_str, &p);
if (ret == 0) if (ret == 0)
@ -1067,7 +1074,7 @@ ospf_distance_unset (struct vty *vty, char *distance_str, char *ip_str,
distance = atoi (distance_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) if (! rn)
{ {
vty_out (vty, "Can't find specified prefix%s", VTY_NEWLINE); 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 void
ospf_distance_reset () ospf_distance_reset (struct ospf *ospf)
{ {
struct route_node *rn; struct route_node *rn;
struct ospf_distance *odistance; 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 = rn->info) != NULL)
{ {
if (odistance->access_list) if (odistance->access_list)
@ -1107,58 +1114,26 @@ ospf_distance_reset ()
u_char u_char
ospf_distance_apply (struct prefix_ipv4 *p, struct ospf_route *or) ospf_distance_apply (struct prefix_ipv4 *p, struct ospf_route *or)
{ {
#if 0 struct ospf *ospf = ospf_top;
struct route_node *rn;
struct ospf_distance *odistance;
struct access_list *alist;
struct prefix_ipv4 q;
memset (&q, 0, sizeof (struct prefix_ipv4)); if (ospf == NULL)
q.family = AF_INET;
/* q.prefix = */
q.prefixlen = IPV4_MAX_BITLEN;
#endif /* 0 */
if (! ospf_top)
return 0; return 0;
#if 0 if (ospf->distance_intra)
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 (or->path_type == OSPF_PATH_INTRA_AREA) 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) 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 if (or->path_type == OSPF_PATH_TYPE1_EXTERNAL
|| or->path_type == OSPF_PATH_TYPE2_EXTERNAL) || or->path_type == OSPF_PATH_TYPE2_EXTERNAL)
return ospf_top->distance_external; return ospf->distance_external;
if (ospf_top->distance_all) if (ospf->distance_all)
return ospf_top->distance_all; return ospf->distance_all;
return 0; return 0;
} }

View File

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

View File

@ -32,6 +32,11 @@
#define IPPROTO_OSPFIGP 89 #define IPPROTO_OSPFIGP 89
#endif /* IPPROTO_OSPFIGP */ #endif /* IPPROTO_OSPFIGP */
/* IP precedence. */
#ifndef IPTOS_PREC_INTERNETCONTROL
#define IPTOS_PREC_INTERNETCONTROL 0xC0
#endif /* IPTOS_PREC_INTERNETCONTROL */
/* VTY port number. */ /* VTY port number. */
#define OSPF_VTY_PORT 2604 #define OSPF_VTY_PORT 2604
#define OSPF_VTYSH_PATH "/tmp/.ospfd" #define OSPF_VTYSH_PATH "/tmp/.ospfd"
@ -288,7 +293,7 @@ struct ospf
struct ospf_area struct ospf_area
{ {
/* OSPF instance. */ /* OSPF instance. */
struct ospf *top; struct ospf *ospf;
/* Zebra interface list belonging to the area. */ /* Zebra interface list belonging to the area. */
list oiflist; list oiflist;
@ -456,7 +461,7 @@ struct ospf_nbr_nbma
#define OSPF_TIMER_ON(T,F,V) \ #define OSPF_TIMER_ON(T,F,V) \
do { \ do { \
if (!(T)) \ if (!(T)) \
(T) = thread_add_timer (master, (F), NULL, (V)); \ (T) = thread_add_timer (master, (F), ospf, (V)); \
} while (0) } while (0)
#define OSPF_AREA_TIMER_ON(T,F,V) \ #define OSPF_AREA_TIMER_ON(T,F,V) \
@ -482,12 +487,6 @@ struct ospf_nbr_nbma
} \ } \
} while (0) } while (0)
#define OSPF_SCHEDULE_MAXAGE(T, F) \
do { \
if (!(T)) \
(T) = thread_add_timer (master, (F), 0, 2); \
} while (0)
/* Messages */ /* Messages */
extern struct message ospf_ism_state_msg[]; extern struct message ospf_ism_state_msg[];
extern struct message ospf_nsm_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_set (struct ospf *, struct in_addr);
int ospf_area_nssa_unset (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_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_set (struct ospf *, struct ospf_area *, char *);
int ospf_area_export_list_unset (struct ospf_area *); int ospf_area_export_list_unset (struct ospf *, struct ospf_area *);
int ospf_area_import_list_set (struct ospf_area *, char *); int ospf_area_import_list_set (struct ospf *, struct ospf_area *, char *);
int ospf_area_import_list_unset (struct ospf_area *); int ospf_area_import_list_unset (struct ospf *, struct ospf_area *);
int ospf_area_shortcut_set (struct ospf_area *, int); int ospf_area_shortcut_set (struct ospf *, struct ospf_area *, int);
int ospf_area_shortcut_unset (struct ospf_area *); 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_set (struct ospf *, u_int32_t, u_int32_t);
int ospf_timers_spf_unset (struct ospf *); int ospf_timers_spf_unset (struct ospf *);
int ospf_timers_refresh_set (struct ospf *, int); 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); int ospf_nbr_nbma_poll_interval_unset (struct ospf *, struct in_addr);
void ospf_prefix_list_update (struct prefix_list *); void ospf_prefix_list_update (struct prefix_list *);
void ospf_init (); void ospf_init ();
void ospf_if_update (); void ospf_if_update (struct ospf *);
void ospf_ls_upd_queue_empty (struct ospf_interface *); void ospf_ls_upd_queue_empty (struct ospf_interface *);
void ospf_terminate (); 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 (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 *); int ospf_oi_count (struct interface *);
struct ospf_area *ospf_area_new (struct in_addr); struct ospf_area *ospf_area_get (struct ospf *, struct in_addr, int);
struct ospf_area *ospf_area_get (struct in_addr, int); void ospf_area_check_free (struct ospf *, struct in_addr);
void ospf_area_check_free (struct in_addr); struct ospf_area *ospf_area_lookup_by_area_id (struct ospf *, struct in_addr);
struct ospf_area *ospf_area_lookup_by_area_id (struct in_addr);
void ospf_area_add_if (struct ospf_area *, struct ospf_interface *); void ospf_area_add_if (struct ospf_area *, struct ospf_interface *);
void ospf_area_del_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 # conditionals
%define with_snmp 1 %define with_snmp 0
%define with_vtysh 1 %define with_vtysh 1
%define with_ospf_te 1 %define with_ospf_te 1
%define with_nssa 1 %define with_nssa 1
@ -8,6 +8,8 @@
%define with_vtysh 1 %define with_vtysh 1
%define with_pam 1 %define with_pam 1
%define with_ipv6 1 %define with_ipv6 1
%define with_ospfclient 0
%define with_ospfapi 0
%define with_multipath 64 %define with_multipath 64
# path defines # path defines
@ -24,7 +26,7 @@
Summary: Routing daemon Summary: Routing daemon
Name: zebra Name: zebra
Version: 0.94 Version: 0.94
Release: 2003031801 Release: 2003032501
License: GPL License: GPL
Group: System Environment/Daemons Group: System Environment/Daemons
Source0: ftp://ftp.zebra.org/pub/zebra/%{name}-%{version}.tar.gz Source0: ftp://ftp.zebra.org/pub/zebra/%{name}-%{version}.tar.gz
@ -105,6 +107,16 @@ developing OSPF-API and zebra applications.
%if %with_vtysh %if %with_vtysh
--enable-vtysh \ --enable-vtysh \
%endif %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 %if %with_pam
--with-libpam --with-libpam
%endif %endif
@ -243,8 +255,10 @@ fi
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%dir %{_libdir}/* %dir %{_libdir}/*
%dir %{_includedir}/ospfd/* %dir %{_includedir}/ospfd/*
%if %with_ospfapi
%dir %{_includedir}/ospfapi/* %dir %{_includedir}/ospfapi/*
%endif
%changelog %changelog
* Mon Mar 18 2003 Paul Jakma <paul@dishone.st> * 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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -112,277 +119,271 @@ ripd_LDADD = ../lib/libzebra.a
sysconf_DATA = ripd.conf.sample sysconf_DATA = ripd.conf.sample
EXTRA_DIST = $(sysconf_DATA) RIPv2-MIB.txt EXTRA_DIST = $(sysconf_DATA) RIPv2-MIB.txt
subdir = ripd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
librip_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
librip_a_OBJECTS = ripd.o rip_zebra.o rip_interface.o rip_debug.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/rip_debug.Po \
rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o @AMDEP_TRUE@ $(DEPDIR)/rip_interface.Po $(DEPDIR)/rip_main.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/rip_offset.Po $(DEPDIR)/rip_peer.Po \
@AMDEP_TRUE@ $(DEPDIR)/rip_routemap.Po $(DEPDIR)/rip_snmp.Po \
ripd_OBJECTS = rip_main.o ripd.o rip_zebra.o rip_interface.o \ @AMDEP_TRUE@ $(DEPDIR)/rip_zebra.Po $(DEPDIR)/ripd.Po
rip_debug.o rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
ripd_DEPENDENCIES = ../lib/libzebra.a $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
ripd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) 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 DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES) SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
OBJECTS = $(librip_a_OBJECTS) $(ripd_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ripd/Makefile 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) AR = ar
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES: clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES)
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)
-rm -f librip.a -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 $(RANLIB) librip.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
ripd: $(ripd_OBJECTS) $(ripd_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f ripd -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) $(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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = ripd
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ uninstall-sysconfDATA
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
install-data-am install-data install-am install uninstall-am uninstall \ clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
all-redirect all-am all installdirs mostlyclean-generic \ distclean-compile distclean-depend distclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \ distclean-tags distdir dvi dvi-am info info-am install \
mostlyclean distclean maintainer-clean 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) install-sysconfDATA: $(sysconf_DATA)
@ -397,7 +398,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -112,277 +119,269 @@ ripngd_LDADD = ../lib/libzebra.a
sysconf_DATA = ripngd.conf.sample sysconf_DATA = ripngd.conf.sample
EXTRA_DIST = $(sysconf_DATA) EXTRA_DIST = $(sysconf_DATA)
subdir = ripngd
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
libripng_a_LIBADD = depcomp = $(SHELL) $(top_srcdir)/depcomp
libripng_a_OBJECTS = ripng_interface.o ripngd.o ripng_zebra.o \ @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ripng_debug.Po \
ripng_route.o ripng_debug.o ripng_routemap.o @AMDEP_TRUE@ $(DEPDIR)/ripng_interface.Po \
PROGRAMS = $(sbin_PROGRAMS) @AMDEP_TRUE@ $(DEPDIR)/ripng_main.Po $(DEPDIR)/ripng_route.Po \
@AMDEP_TRUE@ $(DEPDIR)/ripng_routemap.Po \
ripngd_OBJECTS = ripng_main.o ripng_interface.o ripngd.o ripng_zebra.o \ @AMDEP_TRUE@ $(DEPDIR)/ripng_zebra.Po $(DEPDIR)/ripngd.Po
ripng_route.o ripng_debug.o ripng_routemap.o COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
ripngd_DEPENDENCIES = ../lib/libzebra.a $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
ripngd_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) 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 DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES) SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
OBJECTS = $(libripng_a_OBJECTS) $(ripngd_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign ripngd/Makefile 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) AR = ar
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstLIBRARIES:
clean-noinstLIBRARIES: clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES)
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)
-rm -f libripng.a -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 $(RANLIB) libripng.a
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
ripngd: $(ripngd_OBJECTS) $(ripngd_DEPENDENCIES) clean-sbinPROGRAMS:
@rm -f ripngd -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) $(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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = ripngd
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-sbinPROGRAMS mostlyclean-tags \ @echo "it deletes files that may require special tools to rebuild."
mostlyclean-depend mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
clean-tags clean-depend clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-noinstLIBRARIES distclean-compile \ clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
distclean-sbinPROGRAMS distclean-tags distclean-depend \ mostlyclean-am
distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-sbinPROGRAMS \ distclean-generic distclean-tags
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile mostlyclean-sbinPROGRAMS \
distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \ uninstall-sysconfDATA
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
check-am installcheck-am installcheck install-exec-am install-exec \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
install-data-am install-data install-am install uninstall-am uninstall \ clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
all-redirect all-am all installdirs mostlyclean-generic \ distclean-compile distclean-depend distclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \ distclean-tags distdir dvi dvi-am info info-am install \
mostlyclean distclean maintainer-clean 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) install-sysconfDATA: $(sysconf_DATA)
@ -397,7 +396,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,21 +57,27 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_IPV6 = @LIB_IPV6@ LIB_IPV6 = @LIB_IPV6@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -86,6 +90,9 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@ -101,265 +108,253 @@ vtysh_LDADD = ../lib/libzebra.a
sysconf_DATA = vtysh.conf.sample sysconf_DATA = vtysh.conf.sample
EXTRA_DIST = extract.pl vtysh.conf.sample EXTRA_DIST = extract.pl vtysh.conf.sample
subdir = vtysh
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
PROGRAMS = $(bin_PROGRAMS) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
vtysh_OBJECTS = vtysh_main.o vtysh.o vtysh_cmd.o vtysh_user.o \ depcomp = $(SHELL) $(top_srcdir)/depcomp
vtysh_config.o @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/vtysh.Po $(DEPDIR)/vtysh_cmd.Po \
vtysh_DEPENDENCIES = ../lib/libzebra.a @AMDEP_TRUE@ $(DEPDIR)/vtysh_config.Po $(DEPDIR)/vtysh_main.Po \
vtysh_LDFLAGS = @AMDEP_TRUE@ $(DEPDIR)/vtysh_user.Po
CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) CFLAGS = @CFLAGS@
DIST_SOURCES = $(vtysh_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS) HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(vtysh_SOURCES) SOURCES = $(vtysh_SOURCES)
OBJECTS = $(vtysh_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign vtysh/Makefile cd $(top_srcdir) && \
$(AUTOMAKE) --foreign vtysh/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \ cd $(top_builddir) && \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
distclean-binPROGRAMS:
maintainer-clean-binPROGRAMS:
install-binPROGRAMS: $(bin_PROGRAMS) install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(bindir) $(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \ @list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-binPROGRAMS: uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \ @list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
rm -f $(DESTDIR)$(bindir)/$$f; \
done done
.s.o: clean-binPROGRAMS:
$(COMPILE) -c $< -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
vtysh$(EXEEXT): $(vtysh_OBJECTS) $(vtysh_DEPENDENCIES)
.S.o: @rm -f vtysh$(EXEEXT)
$(COMPILE) -c $< $(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.o core *.core -rm -f *.$(OBJEXT) core *.core
clean-compile:
distclean-compile: distclean-compile:
-rm -f *.tab.c -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) distclean-depend:
@rm -f vtysh -rm -rf $(DEPDIR)
$(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
.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) install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sysconfdir) $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
@list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f"; \
else if test -f $$p; then \ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f; \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \
done done
uninstall-sysconfDATA: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = vtysh
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-binPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-binPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-tags mostlyclean-depend mostlyclean-generic @echo "it deletes files that may require special tools to rebuild."
mostlyclean: mostlyclean-am
clean-am: clean-binPROGRAMS clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
distclean-depend distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-binPROGRAMS \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-tags \ distclean-generic distclean-tags
maintainer-clean-depend maintainer-clean-generic \
distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ maintainer-clean-am: distclean-am maintainer-clean-generic
maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \ mostlyclean: mostlyclean-am
maintainer-clean-compile uninstall-sysconfDATA install-sysconfDATA tags \
mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
distdir mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \ uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
installcheck-am installcheck install-exec-am install-exec \ uninstall-sysconfDATA
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \ .PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
distclean-generic clean-generic maintainer-clean-generic clean \ clean-generic distclean distclean-compile distclean-depend \
mostlyclean distclean maintainer-clean 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: rebuild4:
@ -367,7 +362,6 @@ rebuild4:
rebuild: 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 ./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. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:

View File

@ -61,25 +61,6 @@ foreach (@ARGV) {
@defun = ($line =~ /(?:DEFUN|ALIAS)\s*\((.+?)\);?\s?\s?\n/sg); @defun = ($line =~ /(?:DEFUN|ALIAS)\s*\((.+?)\);?\s?\s?\n/sg);
@install = ($line =~ /install_element \(\s*[0-9A-Z_]+,\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 # DEFUN process
foreach (@defun) { foreach (@defun) {
my (@defun_array); my (@defun_array);
@ -98,6 +79,33 @@ foreach (@ARGV) {
$cmd =~ s/^\s+//g; $cmd =~ s/^\s+//g;
$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 # Append _vtysh to structure then build DEFUN again
$defun_array[1] = $cmd . "_vtysh"; $defun_array[1] = $cmd . "_vtysh";
$defun_body = join (", ", @defun_array); $defun_body = join (", ", @defun_array);

View File

@ -1081,6 +1081,20 @@ ALIAS (vtysh_exit_ripd,
"quit", "quit",
"Exit current mode and down to previous mode\n") "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, DEFUNSH (VTYSH_RMAP,
vtysh_exit_rmap, vtysh_exit_rmap,
vtysh_exit_rmap_cmd, vtysh_exit_rmap_cmd,
@ -1123,7 +1137,21 @@ ALIAS (vtysh_exit_ospfd,
"quit", "quit",
"Exit current mode and down to previous mode\n") "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,
vtysh_interface_cmd, vtysh_interface_cmd,
"interface IFNAME", "interface IFNAME",
@ -1155,7 +1183,7 @@ DEFSH (VTYSH_RMAP,
"Metric value for destination routing protocol\n" "Metric value for destination routing protocol\n"
"Metric value\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,
vtysh_exit_interface_cmd, vtysh_exit_interface_cmd,
"exit", "exit",
@ -1653,7 +1681,7 @@ vtysh_connect_all()
/* To disable readline's filename completion */ /* To disable readline's filename completion */
int int
vtysh_completion_entry_fucntion (int ignore, int invoking_key) vtysh_completion_entry_function (int ignore, int invoking_key)
{ {
return 0; return 0;
} }
@ -1663,7 +1691,7 @@ vtysh_readline_init ()
{ {
/* readline related settings. */ /* readline related settings. */
rl_bind_key ('?', vtysh_rl_describe); 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; rl_attempted_completion_function = (CPPFunction *)new_completion;
/* do not append space after completion. It will be appended /* do not append space after completion. It will be appended
in new_completion() function explicitly */ in new_completion() function explicitly */
@ -1753,8 +1781,12 @@ vtysh_init_vty ()
install_element (ENABLE_NODE, &vtysh_quit_all_cmd); install_element (ENABLE_NODE, &vtysh_quit_all_cmd);
install_element (RIP_NODE, &vtysh_exit_ripd_cmd); install_element (RIP_NODE, &vtysh_exit_ripd_cmd);
install_element (RIP_NODE, &vtysh_quit_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_exit_ospfd_cmd);
install_element (OSPF_NODE, &vtysh_quit_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_exit_bgpd_cmd);
install_element (BGP_NODE, &vtysh_quit_bgpd_cmd); install_element (BGP_NODE, &vtysh_quit_bgpd_cmd);
install_element (BGP_VPNV4_NODE, &vtysh_exit_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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # 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 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. # PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
@ -31,13 +33,9 @@ infodir = @infodir@
mandir = @mandir@ mandir = @mandir@
includedir = @includedir@ includedir = @includedir@
oldincludedir = /usr/include oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .. top_builddir = ..
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
@ -46,11 +44,11 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = @program_transform_name@ transform = @program_transform_name@
NORMAL_INSTALL = : NORMAL_INSTALL = :
PRE_INSTALL = : PRE_INSTALL = :
POST_INSTALL = : POST_INSTALL = :
@ -59,20 +57,26 @@ PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
host_alias = @host_alias@ host_alias = @host_alias@
host_triplet = @host@ host_triplet = @host@
AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AWK = @AWK@
BGPD = @BGPD@ BGPD = @BGPD@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
CURSES = @CURSES@ CURSES = @CURSES@
DEPDIR = @DEPDIR@
EXEEXT = @EXEEXT@
IF_METHOD = @IF_METHOD@ IF_METHOD = @IF_METHOD@
IF_PROC = @IF_PROC@ IF_PROC = @IF_PROC@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
IPFORWARD = @IPFORWARD@ IPFORWARD = @IPFORWARD@
KERNEL_METHOD = @KERNEL_METHOD@ KERNEL_METHOD = @KERNEL_METHOD@
LIBPAM = @LIBPAM@ LIBPAM = @LIBPAM@
LIB_REGEX = @LIB_REGEX@ LIB_REGEX = @LIB_REGEX@
MAKEINFO = @MAKEINFO@
MULTIPATH_NUM = @MULTIPATH_NUM@ MULTIPATH_NUM = @MULTIPATH_NUM@
OBJEXT = @OBJEXT@
OSPF6D = @OSPF6D@ OSPF6D = @OSPF6D@
OSPFAPI = @OSPFAPI@
OSPFCLIENT = @OSPFCLIENT@ OSPFCLIENT = @OSPFCLIENT@
OSPFD = @OSPFD@ OSPFD = @OSPFD@
OTHER_METHOD = @OTHER_METHOD@ OTHER_METHOD = @OTHER_METHOD@
@ -85,12 +89,15 @@ RT_METHOD = @RT_METHOD@
VERSION = @VERSION@ VERSION = @VERSION@
VTYSH = @VTYSH@ VTYSH = @VTYSH@
ZEBRA = @ZEBRA@ ZEBRA = @ZEBRA@
am__include = @am__include@
am__quote = @am__quote@
install_sh = @install_sh@
INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib 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@ LIB_IPV6 = @LIB_IPV6@
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
INSTALL_SDATA = @INSTALL@ -m 600
ipforward = @IPFORWARD@ ipforward = @IPFORWARD@
if_method = @IF_METHOD@ 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 \ rtread_getmsg.c kernel_socket.c kernel_netlink.c mtu_kvm.c \
GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB
subdir = zebra
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
PROGRAMS = $(sbin_PROGRAMS) 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@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ LIBS = @LIBS@
zebra_OBJECTS = zserv.o main.o interface.o connected.o ioctl.o \ depcomp = $(SHELL) $(top_srcdir)/depcomp
zebra_rib.o redistribute.o debug.o rtadv.o zebra_snmp.o zebra_vty.o @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/connected.Po $(DEPDIR)/debug.Po \
zebra_LDFLAGS = @AMDEP_TRUE@ $(DEPDIR)/interface.Po $(DEPDIR)/ioctl.Po \
CFLAGS = @CFLAGS@ @AMDEP_TRUE@ $(DEPDIR)/main.Po $(DEPDIR)/redistribute.Po \
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @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) CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DATA = $(sysconf_DATA) CFLAGS = @CFLAGS@
DIST_SOURCES = $(zebra_SOURCES)
DATA = $(sysconf_DATA)
HEADERS = $(noinst_HEADERS) HEADERS = $(noinst_HEADERS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in DIST_COMMON = $(noinst_HEADERS) 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
SOURCES = $(zebra_SOURCES) SOURCES = $(zebra_SOURCES)
OBJECTS = $(zebra_OBJECTS)
all: all-redirect all: all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .S .c .o .s .SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign zebra/Makefile cd $(top_srcdir) && \
$(AUTOMAKE) --foreign zebra/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \ cd $(top_builddir) && \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
mostlyclean-sbinPROGRAMS:
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
distclean-sbinPROGRAMS:
maintainer-clean-sbinPROGRAMS:
install-sbinPROGRAMS: $(sbin_PROGRAMS) install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ if test -f $$p \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ; 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; \ else :; fi; \
done done
uninstall-sbinPROGRAMS: uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sbin_PROGRAMS)'; for p in $$list; do \ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
rm -f $(DESTDIR)$(sbindir)/$$f; \
done done
.s.o: clean-sbinPROGRAMS:
$(COMPILE) -c $< -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
zebra$(EXEEXT): $(zebra_OBJECTS) $(zebra_DEPENDENCIES)
.S.o: @rm -f zebra$(EXEEXT)
$(COMPILE) -c $< $(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.o core *.core -rm -f *.$(OBJEXT) core *.core
clean-compile:
distclean-compile: distclean-compile:
-rm -f *.tab.c -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) distclean-depend:
@rm -f zebra -rm -rf $(DEPDIR)
$(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
.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: uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
list='$(sysconf_DATA)'; for p in $$list; do \ @list='$(sysconf_DATA)'; for p in $$list; do \
rm -f $(DESTDIR)$(sysconfdir)/$$p; \ f="`echo $$p | sed -e 's|^.*/||'`"; \
echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
rm -f $(DESTDIR)$(sysconfdir)/$$f; \
done done
tags: TAGS tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \ mkid -fID $$unique $(LISP)
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
unique=`for i in $$list; do echo $$i; done | \ unique=`for i in $$list; do \
awk ' { files[$$0] = 1; } \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \ END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ 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: GTAGS:
here=`CDPATH=: && cd $(top_builddir) && pwd` \
clean-tags: && cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags: 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) top_distdir = ..
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
subdir = zebra
distdir: $(DISTFILES) 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 \ @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 \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pR $$d/$$file $(distdir) \
|| exit 1; \
else \ else \
test -f $(distdir)/$$file \ 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; \ fi; \
done 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-am: all-am
check: check-am check: check-am
installcheck-am: all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS install-sysconfDATA
install-exec: install-exec-am
install-data-am: installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA installcheck: installcheck-am
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
all-redirect: all-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
installdirs: `test -z '$(STRIP)' || \
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES) -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic: maintainer-clean-generic:
mostlyclean-am: mostlyclean-sbinPROGRAMS mostlyclean-compile \ @echo "This command is intended for maintainers to use"
mostlyclean-tags mostlyclean-depend mostlyclean-generic @echo "it deletes files that may require special tools to rebuild."
mostlyclean: mostlyclean-am
clean-am: clean-sbinPROGRAMS clean-compile clean-tags clean-depend \
clean-generic mostlyclean-am
clean: clean-am clean: clean-am
distclean-am: distclean-sbinPROGRAMS distclean-compile distclean-tags \ clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean-depend distclean-generic clean-am
distclean: distclean-am distclean: distclean-am
maintainer-clean-am: maintainer-clean-sbinPROGRAMS \ distclean-am: clean-am distclean-compile distclean-depend \
maintainer-clean-compile maintainer-clean-tags \ distclean-generic distclean-tags
maintainer-clean-depend maintainer-clean-generic \
distclean-am dvi: dvi-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild." 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 maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \ maintainer-clean-am: distclean-am maintainer-clean-generic
clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
install-sbinPROGRAMS mostlyclean-compile distclean-compile \ mostlyclean: mostlyclean-am
clean-compile maintainer-clean-compile uninstall-sysconfDATA \
install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \ mostlyclean-am: mostlyclean-compile mostlyclean-generic
maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
clean-depend maintainer-clean-depend info-am info dvi-am dvi check \ uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
check-am installcheck-am installcheck install-exec-am install-exec \ uninstall-sysconfDATA
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \ .PHONY: GTAGS all all-am check check-am clean clean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \ clean-sbinPROGRAMS distclean distclean-compile distclean-depend \
mostlyclean distclean maintainer-clean 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 #client : client_main.o ../lib/libzebra.a
@ -393,7 +403,6 @@ install-sysconfDATA: $(sysconf_DATA)
$(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \ $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
fi; fi; \ fi; fi; \
done done
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT: