mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-24 19:35:25 +00:00
Merge pull request #2913 from opensourcerouting/non-recursive-prep
pre-final non-recursive make
This commit is contained in:
commit
04f04f0fa5
78
Makefile.am
78
Makefile.am
@ -8,6 +8,62 @@ AM_CPPFLAGS += -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_srcdir)/lib \
|
||||
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DCONFDATE=$(CONFDATE)
|
||||
LIBCAP = @LIBCAP@
|
||||
|
||||
# these two targets are provided to easily grab autoconf/Makefile variables
|
||||
# you can use either:
|
||||
# eval `make VARFD=3 shvar-CFLAGS 3>&1 1>&2`
|
||||
# CFLAGS="`make VARFD=3 var-CFLAGS 3>&1 1>&2`"
|
||||
# where the former can be used to set several variables at once. Note the
|
||||
# fd redirections -- this is to prevent garbage from make rebuilding other
|
||||
# targets from causing issues.
|
||||
.PHONY: shvar-% var-%
|
||||
VARFD ?= 1
|
||||
shvar-%:
|
||||
@echo "$*=\"$($*)\"" >&$(VARFD)
|
||||
var-%:
|
||||
@echo "$($*)" >&$(VARFD)
|
||||
|
||||
# overwriting these vars breaks cross-compilation. let's be helpful and warn.
|
||||
#
|
||||
# note: "#AUTODERP# " will be removed from Makefile by configure. These are
|
||||
# GNU make directives & automake will f*ck them up by trying to process them
|
||||
# as automake directives.
|
||||
#
|
||||
#AUTODERP# null=
|
||||
#AUTODERP# SPACE=$(null) $(null)
|
||||
#AUTODERP# mkcheck_CC = $(findstring $(SPACE)CC=, $(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# mkcheck_CFLAGS = $(findstring $(SPACE)CFLAGS=, $(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# mkcheck_CPPFLAGS = $(findstring $(SPACE)CPPFLAGS=,$(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# mkcheck_CCLD = $(findstring $(SPACE)CCLD=, $(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# mkcheck_LD = $(findstring $(SPACE)LD=, $(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# mkcheck_LDFLAGS = $(findstring $(SPACE)LDFLAGS=, $(SPACE)$(MAKEOVERRIDES))
|
||||
#AUTODERP# #
|
||||
#AUTODERP# ifneq ($(mkcheck_CC),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "CC" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# ifneq ($(mkcheck_CFLAGS),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "CFLAGS" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# ifneq ($(mkcheck_CPPFLAGS),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "CPPFLAGS" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# ifneq ($(mkcheck_CCLD),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "CCLD" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# ifneq ($(mkcheck_LD),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "LD" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# ifneq ($(mkcheck_LDFLAGS),)
|
||||
#AUTODERP# $(warning WARNING: you have overwritten the "LDFLAGS" variable on the make command line.)
|
||||
#AUTODERP# endif
|
||||
#AUTODERP# #
|
||||
#AUTODERP# ifneq ($(mkcheck_CC)$(mkcheck_CFLAGS)$(mkcheck_CPPFLAGS)$(mkcheck_CCLD)$(mkcheck_LD)$(mkcheck_LDFLAGS),)
|
||||
#AUTODERP# $(warning ------)
|
||||
#AUTODERP# $(warning While overwriting these variables works most of the time, it is not recommended and can cause confusing build errors.)
|
||||
#AUTODERP# $(warning This is especially problematic when cross-compiling, since tools that run on the build system during the build process will not be compiled correctly.)
|
||||
#AUTODERP# $(warning All of these variables should be supplied to 'configure', and they will be remembered and correctly applied during 'make'.)
|
||||
#AUTODERP# $(warning ------)
|
||||
#AUTODERP# endif
|
||||
|
||||
EXTRA_DIST =
|
||||
BUILT_SOURCES =
|
||||
CLEANFILES =
|
||||
@ -20,11 +76,13 @@ sbin_SCRIPTS =
|
||||
noinst_PROGRAMS =
|
||||
noinst_HEADERS =
|
||||
noinst_LIBRARIES =
|
||||
nodist_noinst_DATA =
|
||||
lib_LTLIBRARIES =
|
||||
module_LTLIBRARIES =
|
||||
pkginclude_HEADERS =
|
||||
nodist_pkginclude_HEADERS =
|
||||
dist_examples_DATA =
|
||||
man_MANS =
|
||||
|
||||
## libtool, the self-made GNU scourge
|
||||
## ... this should fix relinking
|
||||
@ -34,6 +92,10 @@ $(AUTOMAKE_DUMMY)install-moduleLTLIBRARIES: install-libLTLIBRARIES
|
||||
$(AUTOMAKE_DUMMY)install-binPROGRAMS: install-libLTLIBRARIES
|
||||
$(AUTOMAKE_DUMMY)install-sbinPROGRAMS: install-libLTLIBRARIES
|
||||
|
||||
include doc/subdir.am
|
||||
include doc/user/subdir.am
|
||||
include doc/manpages/subdir.am
|
||||
include doc/developer/subdir.am
|
||||
include include/subdir.am
|
||||
include lib/subdir.am
|
||||
include zebra/subdir.am
|
||||
@ -41,6 +103,8 @@ include watchfrr/subdir.am
|
||||
include qpb/subdir.am
|
||||
include fpm/subdir.am
|
||||
include tools/subdir.am
|
||||
include debianpkg/subdir.am
|
||||
include solaris/subdir.am
|
||||
|
||||
include ripd/subdir.am
|
||||
include ripngd/subdir.am
|
||||
@ -60,14 +124,13 @@ include bfdd/subdir.am
|
||||
|
||||
SUBDIRS = . @LIBRFP@ @RFPTEST@ \
|
||||
@BGPD@ \
|
||||
@VTYSH@ @DOC@ \
|
||||
@SOLARIS@ tests
|
||||
@VTYSH@ \
|
||||
tests
|
||||
|
||||
DIST_SUBDIRS = . bgpd \
|
||||
vtysh doc tests \
|
||||
solaris bgpd/rfp-example/librfp \
|
||||
vtysh tests \
|
||||
bgpd/rfp-example/librfp \
|
||||
bgpd/rfp-example/rfptest \
|
||||
debianpkg \
|
||||
# end
|
||||
|
||||
if PKGSRC
|
||||
@ -108,6 +171,11 @@ EXTRA_DIST += \
|
||||
\
|
||||
vtysh/Makefile.am \
|
||||
vtysh/Makefile.in \
|
||||
\
|
||||
doc/Makefile \
|
||||
doc/developer/Makefile \
|
||||
doc/manpages/Makefile \
|
||||
doc/user/Makefile \
|
||||
# end
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
# Automake fragment intended to be shared by Makefile.am files in the
|
||||
# tree. When used, should be included at the very top of the file.
|
||||
#
|
||||
AM_CPPFLAGS = @ASAN_FLAGS@ @TSAN_FLAGS@ @MSAN_FLAGS@ @WERROR@
|
||||
AM_CFLAGS = @ASAN_FLAGS@ @TSAN_FLAGS@ @MSAN_FLAGS@ @WERROR@
|
||||
AM_CPPFLAGS = @ASAN_FLAGS@ @TSAN_FLAGS@ @MSAN_FLAGS@
|
||||
AM_CFLAGS = @ASAN_FLAGS@ @TSAN_FLAGS@ @MSAN_FLAGS@ $(WERROR)
|
||||
|
||||
AM_V_CLIPPY = $(am__v_CLIPPY_$(V))
|
||||
am__v_CLIPPY_ = $(am__v_CLIPPY_$(AM_DEFAULT_VERBOSITY))
|
||||
|
||||
198
configure.ac
198
configure.ac
@ -132,25 +132,29 @@ dnl - specifically, options to control warnings
|
||||
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
AC_DEFUN([AC_C_FLAG], [{
|
||||
m4_pushdef([cachename],[m4_translit([frr_cv_$1],[ =-],[___])])
|
||||
AC_CACHE_CHECK([[whether $CC supports $1]], cachename, [
|
||||
AC_LANG_PUSH(C)
|
||||
ac_c_flag_save="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $1"
|
||||
AC_MSG_CHECKING([[whether $CC supports $1]])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]])],
|
||||
[
|
||||
AC_MSG_RESULT([yes])
|
||||
m4_if([$3], [], [], [
|
||||
CFLAGS="$ac_c_flag_save"
|
||||
$3
|
||||
])
|
||||
cachename=yes
|
||||
], [
|
||||
CFLAGS="$ac_c_flag_save"
|
||||
AC_MSG_RESULT([no])
|
||||
$2
|
||||
cachename=no
|
||||
])
|
||||
CFLAGS="$ac_c_flag_save"
|
||||
AC_LANG_POP(C)
|
||||
}])
|
||||
])
|
||||
if test "${cachename}" = yes; then
|
||||
m4_if([$3], [], [CFLAGS="$CFLAGS $1"], [$3])
|
||||
else
|
||||
:
|
||||
$2
|
||||
fi
|
||||
m4_popdef([cachename])
|
||||
}])
|
||||
|
||||
AC_DEFUN([AC_LINK_IFELSE_FLAGS], [{
|
||||
AC_LANG_PUSH(C)
|
||||
@ -343,6 +347,8 @@ AC_ARG_ENABLE(vtysh,
|
||||
AS_HELP_STRING([--disable-vtysh], [do not build integrated vty shell for FRR]))
|
||||
AC_ARG_ENABLE(doc,
|
||||
AS_HELP_STRING([--disable-doc], [do not build docs]))
|
||||
AC_ARG_ENABLE(doc-html,
|
||||
AS_HELP_STRING([--enable-doc-html], [build HTML docs]))
|
||||
AC_ARG_ENABLE(zebra,
|
||||
AS_HELP_STRING([--disable-zebra], [do not build zebra daemon]))
|
||||
AC_ARG_ENABLE(bgpd,
|
||||
@ -525,6 +531,46 @@ AM_CONDITIONAL([FPM], [test "x$enable_fpm" = "xyes"])
|
||||
#
|
||||
# Python for clippy
|
||||
#
|
||||
|
||||
AC_DEFUN([FRR_PYTHON_CHECK_WORKING], [
|
||||
AC_MSG_CHECKING([whether we found a working Python version])
|
||||
AC_LINK_IFELSE_FLAGS([$PYTHON_CFLAGS], [$PYTHON_LIBS], [AC_LANG_PROGRAM([
|
||||
#include <Python.h>
|
||||
#if PY_VERSION_HEX < 0x02070000
|
||||
#error python too old
|
||||
#endif
|
||||
int main(void);
|
||||
],
|
||||
[
|
||||
{
|
||||
Py_Initialize();
|
||||
return 0;
|
||||
}
|
||||
])], [
|
||||
# some python installs are missing the zlib dependency...
|
||||
PYTHON_LIBS="${PYTHON_LIBS} -lz"
|
||||
AC_LINK_IFELSE_FLAGS([$PYTHON_CFLAGS], [$PYTHON_LIBS], [AC_LANG_PROGRAM([
|
||||
#include <Python.h>
|
||||
#if PY_VERSION_HEX < 0x02070000
|
||||
#error python too old
|
||||
#endif
|
||||
int main(void);
|
||||
],
|
||||
[
|
||||
{
|
||||
Py_Initialize();
|
||||
return 0;
|
||||
}
|
||||
])], [
|
||||
m4_if([$1], [], [
|
||||
PYTHONCONFIG=""
|
||||
unset PYTHON_LIBS
|
||||
unset PYTHON_CFLAGS
|
||||
], [$1])
|
||||
])
|
||||
])
|
||||
])
|
||||
|
||||
AS_IF([test "$host" = "$build"], [
|
||||
PYTHONCONFIG=""
|
||||
|
||||
@ -532,60 +578,40 @@ AS_IF([test "$host" = "$build"], [
|
||||
# 1. try python3, but respect the user's preference on which minor ver
|
||||
# 2. try python, which might be py3 or py2 again on the user's preference
|
||||
# 3. try python2 (can really only be 2.7 but eh)
|
||||
# 4. try 3.5 > 3.4 > 3.3 > 3.2 > 2.7 through pkg-config (no user pref)
|
||||
# 4. try 3.6 > 3.5 > 3.4 > 3.3 > 3.2 > 2.7 through pkg-config (no user pref)
|
||||
#
|
||||
# (AX_PYTHON_DEVEL has no clue about py3 vs py2)
|
||||
# (AX_PYTHON does not do what we need)
|
||||
|
||||
AC_CHECK_TOOLS([PYTHONCONFIG], [python3-config python-config python2-config])
|
||||
AC_CHECK_TOOLS([PYTHONCONFIG], [ \
|
||||
python3-config \
|
||||
python-config \
|
||||
python2-config \
|
||||
python3.6-config \
|
||||
python3.5-config \
|
||||
python3.4-config \
|
||||
python3.3-config \
|
||||
python3.2-config \
|
||||
python2.7-config ])
|
||||
if test -n "$PYTHONCONFIG"; then
|
||||
PYTHON_CFLAGS="`\"${PYTHONCONFIG}\" --includes`"
|
||||
PYTHON_LIBS="`\"${PYTHONCONFIG}\" --libs`"
|
||||
PYTHON_LIBS="`\"${PYTHONCONFIG}\" --ldflags`"
|
||||
|
||||
AC_MSG_CHECKING([whether we found a working Python version])
|
||||
AC_LINK_IFELSE_FLAGS([$PYTHON_CFLAGS], [$PYTHON_LIBS], [AC_LANG_PROGRAM([
|
||||
#include <Python.h>
|
||||
#if PY_VERSION_HEX < 0x02070000
|
||||
#error python too old
|
||||
#endif
|
||||
int main(void);
|
||||
],
|
||||
[
|
||||
{
|
||||
Py_Initialize();
|
||||
return 0;
|
||||
}
|
||||
])], [
|
||||
PYTHONCONFIG=""
|
||||
unset PYTHON_LIBS
|
||||
unset PYTHON_CFLAGS
|
||||
])
|
||||
FRR_PYTHON_CHECK_WORKING([])
|
||||
fi
|
||||
|
||||
if test -z "$PYTHONCONFIG"; then
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.5, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.4, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.3, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.2, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-2.7, [], [
|
||||
AC_MSG_FAILURE([could not find python-config or pkg-config python, please install Python development files from libpython-dev or similar])
|
||||
])])])])])
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.6, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.5, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.4, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.3, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-3.2, [], [
|
||||
PKG_CHECK_MODULES([PYTHON], python-2.7, [], [
|
||||
AC_MSG_FAILURE([could not find python-config or pkg-config python, please install Python development files from libpython-dev or similar])
|
||||
])])])])])])
|
||||
|
||||
|
||||
AC_MSG_CHECKING([whether we found a working Python version])
|
||||
AC_LINK_IFELSE_FLAGS([$PYTHON_CFLAGS], [$PYTHON_LIBS], [AC_LANG_PROGRAM([
|
||||
#include <Python.h>
|
||||
#if PY_VERSION_HEX < 0x02070000
|
||||
#error python too old
|
||||
#endif
|
||||
int main(void);
|
||||
],
|
||||
[
|
||||
{
|
||||
Py_Initialize();
|
||||
return 0;
|
||||
}
|
||||
])], [
|
||||
FRR_PYTHON_CHECK_WORKING([
|
||||
AC_MSG_FAILURE([could not find python-config or pkg-config python, please install Python development files from libpython-dev or similar])
|
||||
])
|
||||
fi
|
||||
@ -1313,12 +1339,9 @@ FRR_INCLUDES
|
||||
])dnl
|
||||
|
||||
dnl disable doc check
|
||||
if test "${enable_doc}" = "no";then
|
||||
DOC=""
|
||||
else
|
||||
AC_CHECK_PROGS([SPHINXBUILD], [sphinx-build sphinx-build3 sphinx-build2], [no])
|
||||
DOC="doc"
|
||||
fi
|
||||
AC_CHECK_PROGS([SPHINXBUILD], [sphinx-build sphinx-build3 sphinx-build2], [no])
|
||||
AM_CONDITIONAL(DOC, test "${enable_doc}" != "no")
|
||||
AM_CONDITIONAL(DOC_HTML, test "${enable_doc_html}" = "yes")
|
||||
|
||||
dnl --------------------
|
||||
dnl Daemon disable check
|
||||
@ -1434,7 +1457,6 @@ fi
|
||||
# set
|
||||
AM_CONDITIONAL([ENABLE_BGP_VNC], [test x${enable_bgp_vnc} != xno])
|
||||
|
||||
AC_SUBST(DOC)
|
||||
AC_SUBST(RFPTEST)
|
||||
AC_SUBST(LIBRFP)
|
||||
AC_SUBST(RFPINC)
|
||||
@ -1518,8 +1540,8 @@ AC_SEARCH_LIBS(dlopen, [dl dld], [], [
|
||||
|
||||
AC_CHECK_HEADERS([link.h])
|
||||
|
||||
AC_MSG_CHECKING([for dlinfo(RTLD_DI_ORIGIN)])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_CACHE_CHECK([for dlinfo(RTLD_DI_ORIGIN)], [frr_cv_rtld_di_origin], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_LINK_H
|
||||
#include <link.h>
|
||||
@ -1529,14 +1551,17 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
char origin[1];
|
||||
dlinfo (NULL, RTLD_DI_ORIGIN, &origin);
|
||||
]])], [
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_DLINFO_ORIGIN, 1, [Have dlinfo RTLD_DI_ORIGIN])
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
frr_cv_rtld_di_origin=yes
|
||||
], [
|
||||
frr_cv_rtld_di_origin=no
|
||||
])
|
||||
])
|
||||
if test "$frr_cv_rtld_di_origin" = yes; then
|
||||
AC_DEFINE(HAVE_DLINFO_ORIGIN, 1, [Have dlinfo RTLD_DI_ORIGIN])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for dlinfo(RTLD_DI_LINKMAP)])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_CACHE_CHECK([for dlinfo(RTLD_DI_LINKMAP)], [frr_cv_rtld_di_linkmap], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdlib.h>
|
||||
#ifdef HAVE_LINK_H
|
||||
#include <link.h>
|
||||
@ -1546,12 +1571,14 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
struct link_map *lm = NULL;
|
||||
dlinfo (NULL, RTLD_DI_LINKMAP, &lm);
|
||||
]])], [
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_DLINFO_LINKMAP, 1, [Have dlinfo RTLD_DI_LINKMAP])
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
frr_cv_rtld_di_linkmap=yes
|
||||
], [
|
||||
frr_cv_rtld_di_linkmap=no
|
||||
])
|
||||
])
|
||||
|
||||
if test "$frr_cv_rtld_di_linkmap" = yes; then
|
||||
AC_DEFINE(HAVE_DLINFO_LINKMAP, 1, [Have dlinfo RTLD_DI_LINKMAP])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(SNMP, test "x$SNMP_METHOD" = "xagentx")
|
||||
|
||||
@ -1808,8 +1835,8 @@ dnl mallinfo, e.g. such as Umem on Solaris.
|
||||
dnl -----------------------------------------
|
||||
AC_CHECK_HEADERS([malloc.h malloc/malloc.h],,, [FRR_INCLUDES])
|
||||
|
||||
AC_MSG_CHECKING(whether mallinfo is available)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [
|
||||
AC_CACHE_CHECK([whether mallinfo is available], [frr_cv_mallinfo], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [
|
||||
#ifdef HAVE_MALLOC_H
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
@ -1819,11 +1846,14 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [
|
||||
]], [[
|
||||
struct mallinfo ac_x; ac_x = mallinfo ();
|
||||
]])], [
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_MALLINFO,,mallinfo)
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
frr_cv_mallinfo=yes
|
||||
], [
|
||||
frr_cv_mallinfo=no
|
||||
])
|
||||
])
|
||||
if test "$frr_cv_mallinfo" = yes; then
|
||||
AC_DEFINE(HAVE_MALLINFO,,mallinfo)
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(whether malloc_usable_size is available)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [
|
||||
@ -1983,18 +2013,16 @@ AC_CACHE_VAL(ac_cv_htonl_works,
|
||||
)
|
||||
AC_MSG_RESULT($ac_cv_htonl_works)
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
AC_CONFIG_FILES([Makefile],[sed -e 's/^#AUTODERP# //' -i Makefile])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
bgpd/Makefile
|
||||
vtysh/Makefile
|
||||
doc/Makefile
|
||||
doc/user/Makefile
|
||||
doc/manpages/Makefile
|
||||
doc/developer/Makefile
|
||||
tests/Makefile
|
||||
bgpd/rfp-example/rfptest/Makefile
|
||||
bgpd/rfp-example/librfp/Makefile
|
||||
redhat/frr.spec
|
||||
debianpkg/Makefile
|
||||
solaris/Makefile
|
||||
debianpkg/changelog
|
||||
alpine/APKBUILD
|
||||
snapcraft/snapcraft.yaml
|
||||
@ -2010,8 +2038,6 @@ if test "${enable_bgp_vnc}" != "no"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CONFIG_FILES([solaris/Makefile])
|
||||
|
||||
AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
|
||||
|
||||
AC_CONFIG_COMMANDS([lib/route_types.h], [
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
|
||||
EXTRA_DIST = README.Debian README.Maintainer \
|
||||
changelog compat control copyright \
|
||||
rules source/format tests/control \
|
||||
tests/daemons watchfrr.rc \
|
||||
backports/README backports/rules \
|
||||
backports/debian8/debian/source/format \
|
||||
backports/debian8/exclude \
|
||||
backports/debian8/versionext \
|
||||
backports/debian9/debian/source/format \
|
||||
backports/debian9/exclude \
|
||||
backports/debian9/versionext \
|
||||
backports/ubuntu12.04/debian/control \
|
||||
backports/ubuntu12.04/debian/frr.install \
|
||||
backports/ubuntu12.04/debian/frr.postinst \
|
||||
backports/ubuntu12.04/debian/frr.postrm \
|
||||
backports/ubuntu12.04/debian/rules \
|
||||
backports/ubuntu12.04/debian/source/format \
|
||||
backports/ubuntu12.04/exclude \
|
||||
backports/ubuntu12.04/versionext \
|
||||
backports/ubuntu14.04/debian/control \
|
||||
backports/ubuntu14.04/debian/frr.install \
|
||||
backports/ubuntu14.04/debian/frr.postinst \
|
||||
backports/ubuntu14.04/debian/frr.postrm \
|
||||
backports/ubuntu14.04/debian/rules \
|
||||
backports/ubuntu14.04/debian/source/format \
|
||||
backports/ubuntu14.04/exclude \
|
||||
backports/ubuntu14.04/versionext \
|
||||
backports/ubuntu16.04/debian/source/format \
|
||||
backports/ubuntu16.04/exclude \
|
||||
backports/ubuntu16.04/versionext \
|
||||
backports/ubuntu17.10/debian/control \
|
||||
backports/ubuntu17.10/debian/source/format \
|
||||
backports/ubuntu17.10/exclude \
|
||||
backports/ubuntu17.10/versionext \
|
||||
backports/ubuntu18.04/debian/control \
|
||||
backports/ubuntu18.04/debian/source/format \
|
||||
backports/ubuntu18.04/exclude \
|
||||
backports/ubuntu18.04/versionext \
|
||||
frr-doc.docs frr-doc.info frr-doc.install \
|
||||
frr-doc.lintian-overrides frr.conf \
|
||||
frr-dbg.lintian-overrides \
|
||||
frr.dirs frr.docs frr.install \
|
||||
frr.lintian-overrides frr.logrotate \
|
||||
frr.manpages frr.pam frr.postinst frr.postrm \
|
||||
frr.preinst frr.prerm \
|
||||
frr-pythontools.install
|
||||
72
debianpkg/subdir.am
Normal file
72
debianpkg/subdir.am
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# debianpkg
|
||||
#
|
||||
|
||||
EXTRA_DIST += \
|
||||
debianpkg/README.Debian \
|
||||
debianpkg/README.Maintainer \
|
||||
debianpkg/changelog \
|
||||
debianpkg/compat \
|
||||
debianpkg/control \
|
||||
debianpkg/copyright \
|
||||
debianpkg/rules \
|
||||
debianpkg/source/format \
|
||||
debianpkg/tests/control \
|
||||
debianpkg/tests/daemons \
|
||||
debianpkg/watchfrr.rc \
|
||||
\
|
||||
debianpkg/backports/README \
|
||||
debianpkg/backports/rules \
|
||||
debianpkg/backports/debian8/debian/source/format \
|
||||
debianpkg/backports/debian8/exclude \
|
||||
debianpkg/backports/debian8/versionext \
|
||||
debianpkg/backports/debian9/debian/source/format \
|
||||
debianpkg/backports/debian9/exclude \
|
||||
debianpkg/backports/debian9/versionext \
|
||||
debianpkg/backports/ubuntu12.04/debian/control \
|
||||
debianpkg/backports/ubuntu12.04/debian/frr.install \
|
||||
debianpkg/backports/ubuntu12.04/debian/frr.postinst \
|
||||
debianpkg/backports/ubuntu12.04/debian/frr.postrm \
|
||||
debianpkg/backports/ubuntu12.04/debian/rules \
|
||||
debianpkg/backports/ubuntu12.04/debian/source/format \
|
||||
debianpkg/backports/ubuntu12.04/exclude \
|
||||
debianpkg/backports/ubuntu12.04/versionext \
|
||||
debianpkg/backports/ubuntu14.04/debian/control \
|
||||
debianpkg/backports/ubuntu14.04/debian/frr.install \
|
||||
debianpkg/backports/ubuntu14.04/debian/frr.postinst \
|
||||
debianpkg/backports/ubuntu14.04/debian/frr.postrm \
|
||||
debianpkg/backports/ubuntu14.04/debian/rules \
|
||||
debianpkg/backports/ubuntu14.04/debian/source/format \
|
||||
debianpkg/backports/ubuntu14.04/exclude \
|
||||
debianpkg/backports/ubuntu14.04/versionext \
|
||||
debianpkg/backports/ubuntu16.04/debian/source/format \
|
||||
debianpkg/backports/ubuntu16.04/exclude \
|
||||
debianpkg/backports/ubuntu16.04/versionext \
|
||||
debianpkg/backports/ubuntu17.10/debian/control \
|
||||
debianpkg/backports/ubuntu17.10/debian/source/format \
|
||||
debianpkg/backports/ubuntu17.10/exclude \
|
||||
debianpkg/backports/ubuntu17.10/versionext \
|
||||
debianpkg/backports/ubuntu18.04/debian/control \
|
||||
debianpkg/backports/ubuntu18.04/debian/source/format \
|
||||
debianpkg/backports/ubuntu18.04/exclude \
|
||||
debianpkg/backports/ubuntu18.04/versionext \
|
||||
\
|
||||
debianpkg/frr-dbg.lintian-overrides \
|
||||
debianpkg/frr-doc.docs \
|
||||
debianpkg/frr-doc.info \
|
||||
debianpkg/frr-doc.install \
|
||||
debianpkg/frr-doc.lintian-overrides \
|
||||
debianpkg/frr-pythontools.install \
|
||||
debianpkg/frr.conf \
|
||||
debianpkg/frr.dirs \
|
||||
debianpkg/frr.docs \
|
||||
debianpkg/frr.install \
|
||||
debianpkg/frr.lintian-overrides \
|
||||
debianpkg/frr.logrotate \
|
||||
debianpkg/frr.manpages \
|
||||
debianpkg/frr.pam \
|
||||
debianpkg/frr.postinst \
|
||||
debianpkg/frr.postrm \
|
||||
debianpkg/frr.preinst \
|
||||
debianpkg/frr.prerm \
|
||||
# end
|
||||
3
doc/.gitignore
vendored
3
doc/.gitignore
vendored
@ -1,5 +1,4 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
!Makefile
|
||||
mdate-sh
|
||||
draft-zebra-00.txt
|
||||
*.pdf
|
||||
|
||||
18
doc/Makefile
Normal file
18
doc/Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
all: ALWAYS
|
||||
@$(MAKE) -s -C .. doc
|
||||
%: ALWAYS
|
||||
@$(MAKE) -s -C .. doc/$@
|
||||
html:
|
||||
@$(MAKE) -s -C .. doc/user/_build/html/.buildinfo
|
||||
info:
|
||||
@$(MAKE) -s -C .. doc/user/_build/texinfo/frr.info
|
||||
pdf:
|
||||
@$(MAKE) -s -C .. doc/user/_build/latexpdf
|
||||
frr.info: info
|
||||
frr.pdf: pdf
|
||||
|
||||
Makefile:
|
||||
#nothing
|
||||
ALWAYS:
|
||||
.PHONY: ALWAYS makefiles html info frr.info pdf frr.pdf
|
||||
.SUFFIXES:
|
||||
293
doc/Makefile.am
293
doc/Makefile.am
@ -1,293 +0,0 @@
|
||||
## Process this file with automake to produce Makefile.in.
|
||||
|
||||
# Pass down make invocation to each subdirectory.
|
||||
#
|
||||
# Each of these directories contains a Sphinx-generated Makefile that has been
|
||||
# modified to implement all the targets required by Automake, as documented in
|
||||
# the 'Third-Party Makefiles' section of the Automake docs.
|
||||
#
|
||||
# Note the absence of the 'developer' directory here; development docs are
|
||||
# never built as part of a regular build. They are only built when explicitly
|
||||
# asked for. See comment further down.
|
||||
|
||||
# Sphinx is not designed to be invoked multiple times against the same toctree.
|
||||
.NOTPARALLEL:
|
||||
|
||||
SUBDIRS = manpages user
|
||||
AM_MAKEFLAGS = DESTDIR=${DESTDIR} infodir=${infodir}
|
||||
|
||||
MANPAGE_BUILDDIR = manpages/_build/man
|
||||
|
||||
# This is a hack, see comment further down.
|
||||
man_MANS = $(MANPAGE_BUILDDIR)/frr.1
|
||||
|
||||
if PIMD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/pimd.8
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/mtracebis.8
|
||||
endif
|
||||
|
||||
if PBRD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/pbrd.8
|
||||
endif
|
||||
|
||||
if BGPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/bgpd.8
|
||||
endif
|
||||
|
||||
if ISISD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/isisd.8
|
||||
endif
|
||||
|
||||
if OSPF6D
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ospf6d.8
|
||||
endif
|
||||
|
||||
if OSPFCLIENT
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ospfclient.8
|
||||
endif
|
||||
|
||||
if OSPFD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ospfd.8
|
||||
endif
|
||||
|
||||
if LDPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ldpd.8
|
||||
endif
|
||||
|
||||
if RIPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ripd.8
|
||||
endif
|
||||
|
||||
if RIPNGD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/ripngd.8
|
||||
endif
|
||||
|
||||
if NHRPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/nhrpd.8
|
||||
endif
|
||||
|
||||
if VTYSH
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/vtysh.1
|
||||
endif
|
||||
|
||||
if WATCHFRR
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/watchfrr.8
|
||||
endif
|
||||
|
||||
if ZEBRA
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/zebra.8
|
||||
endif
|
||||
|
||||
if EIGRPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/eigrpd.8
|
||||
endif
|
||||
|
||||
if SHARPD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/sharpd.8
|
||||
endif
|
||||
|
||||
if STATICD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/staticd.8
|
||||
endif
|
||||
|
||||
if BFDD
|
||||
man_MANS += $(MANPAGE_BUILDDIR)/bfdd.8
|
||||
endif
|
||||
|
||||
# Automake is particular about manpages. It is aware of them and has some
|
||||
# special facilities for handling them, but it assumes that manpages are always
|
||||
# given in groff source and so these facilities are limited to simply
|
||||
# specifying the path to the groff sources in a special variable. There is no
|
||||
# target for building manpages that can be extended, as there are for pdf,
|
||||
# html, dvi, etc. Unfortunately this leaves us with hijacking the
|
||||
# 'install-data' and 'all' targets in the 3rd-party Makefile in manpages/ to
|
||||
# make sure manpages are always built, and then using the special Automake
|
||||
# variable defined above in order to take advantage of automatic installation.
|
||||
#
|
||||
# However, it is conceivable that someone may want to build just the manpages,
|
||||
# so here's an explicit target for that.
|
||||
man:
|
||||
$(MAKE) -C manpages man
|
||||
|
||||
# Automake automatically defines targets for various document formats. All of
|
||||
# the child 3rd-party Makefiles are aware of all Automake targets and implement
|
||||
# the ones we are interested in.
|
||||
#
|
||||
# The SUBDIRS variable at the top of this Makefile.am causes the following
|
||||
# implicit Automake targets to only build user documentation, and not developer
|
||||
# documentation:
|
||||
# - info
|
||||
# - html
|
||||
# - pdf
|
||||
#
|
||||
# If you wish to build developer documentation, use these targets:
|
||||
developer-info:
|
||||
$(MAKE) -C developer info
|
||||
|
||||
developer-pdf:
|
||||
$(MAKE) -C developer latexpdf
|
||||
|
||||
developer-html:
|
||||
$(MAKE) -C developer html
|
||||
|
||||
# If you want to build the developer's docs in other formats, try the
|
||||
# following:
|
||||
#
|
||||
# $ cd developer
|
||||
# $ make help
|
||||
|
||||
# dist tarballs want doc sources
|
||||
EXTRA_DIST = frr-sphinx.mk \
|
||||
manpages/bgpd.rst \
|
||||
manpages/common-options.rst \
|
||||
manpages/conf.py \
|
||||
manpages/defines.rst \
|
||||
manpages/eigrpd.rst \
|
||||
manpages/epilogue.rst \
|
||||
manpages/frr.rst \
|
||||
manpages/index.rst \
|
||||
manpages/isisd.rst \
|
||||
manpages/ldpd.rst \
|
||||
manpages/Makefile.am \
|
||||
manpages/mtracebis.rst \
|
||||
manpages/nhrpd.rst \
|
||||
manpages/ospf6d.rst \
|
||||
manpages/ospfclient.rst \
|
||||
manpages/ospfd.rst \
|
||||
manpages/pimd.rst \
|
||||
manpages/ripd.rst \
|
||||
manpages/pbrd.rst \
|
||||
manpages/ripngd.rst \
|
||||
manpages/sharpd.rst \
|
||||
manpages/staticd.rst \
|
||||
manpages/vtysh.rst \
|
||||
manpages/watchfrr.rst \
|
||||
manpages/zebra.rst \
|
||||
manpages/bfdd.rst \
|
||||
manpages/bfd-options.rst \
|
||||
developer/bgpd.rst \
|
||||
developer/bgp-typecodes.rst \
|
||||
developer/building-frr-for-openwrt.rst \
|
||||
developer/building-frr-on-alpine.rst \
|
||||
developer/building-frr-on-centos6.rst \
|
||||
developer/building-frr-on-centos7.rst \
|
||||
developer/building-frr-on-debian8.rst \
|
||||
developer/building-frr-on-debian9.rst \
|
||||
developer/building-frr-on-fedora24.rst \
|
||||
developer/building-frr-on-freebsd10.rst \
|
||||
developer/building-frr-on-freebsd11.rst \
|
||||
developer/building-frr-on-freebsd9.rst \
|
||||
developer/building-frr-on-netbsd6.rst \
|
||||
developer/building-frr-on-netbsd7.rst \
|
||||
developer/building-frr-on-omnios.rst \
|
||||
developer/building-frr-on-openbsd6.rst \
|
||||
developer/building-frr-on-ubuntu1204.rst \
|
||||
developer/building-frr-on-ubuntu1404.rst \
|
||||
developer/building-frr-on-ubuntu1604.rst \
|
||||
developer/building-frr-on-ubuntu1804.rst \
|
||||
developer/building.rst \
|
||||
developer/cli.rst \
|
||||
developer/conf.py \
|
||||
developer/draft-zebra-00.ms \
|
||||
developer/hooks.rst \
|
||||
developer/index.rst \
|
||||
developer/ldpd-basic-test-setup.md \
|
||||
developer/library.rst \
|
||||
developer/logging.rst \
|
||||
developer/Makefile.in \
|
||||
developer/maintainer-release-build.rst \
|
||||
developer/memtypes.rst \
|
||||
developer/modules.rst \
|
||||
developer/next-hop-tracking.rst \
|
||||
developer/ospf-api.rst \
|
||||
developer/ospf.rst \
|
||||
developer/ospf-sr.rst \
|
||||
developer/workflow.rst \
|
||||
developer/zebra.rst \
|
||||
user/babeld.rst \
|
||||
user/ldpd.rst \
|
||||
user/basic.rst \
|
||||
user/bgp.rst \
|
||||
user/bugs.rst \
|
||||
user/conf.py \
|
||||
user/eigrpd.rst \
|
||||
user/filter.rst \
|
||||
user/glossary.rst \
|
||||
user/index.rst \
|
||||
user/installation.rst \
|
||||
user/ipv6.rst \
|
||||
user/isisd.rst \
|
||||
user/kernel.rst \
|
||||
user/Makefile.am \
|
||||
user/nhrpd.rst \
|
||||
user/ospf6d.rst \
|
||||
user/ospfd.rst \
|
||||
user/ospf_fundamentals.rst \
|
||||
user/overview.rst \
|
||||
user/packet-dumps.rst \
|
||||
user/pim.rst \
|
||||
user/ripd.rst \
|
||||
user/pbr.rst \
|
||||
user/ripngd.rst \
|
||||
user/routemap.rst \
|
||||
user/routeserver.rst \
|
||||
user/rpki.rst \
|
||||
user/setup.rst \
|
||||
user/sharp.rst \
|
||||
user/snmp.rst \
|
||||
user/snmptrap.rst \
|
||||
user/static.rst \
|
||||
user/Useful_Sysctl_Settings.md \
|
||||
user/vnc.rst \
|
||||
user/vtysh.rst \
|
||||
user/zebra.rst \
|
||||
user/bfd.rst \
|
||||
user/flowspec.rst \
|
||||
mpls/ChangeLog.opaque.txt \
|
||||
mpls/ospfd.conf \
|
||||
mpls/cli_summary.txt \
|
||||
mpls/opaque_lsa.txt \
|
||||
figures/cligraph.png \
|
||||
figures/cligraph.svg \
|
||||
figures/fig-normal-processing.dia \
|
||||
figures/fig-normal-processing.png \
|
||||
figures/fig-normal-processing.txt \
|
||||
figures/fig-rs-processing.dia \
|
||||
figures/fig-rs-processing.png \
|
||||
figures/fig-rs-processing.txt \
|
||||
figures/fig_topologies_full.dia \
|
||||
figures/fig_topologies_full.png \
|
||||
figures/fig_topologies_full.txt \
|
||||
figures/fig_topologies_rs.dia \
|
||||
figures/fig_topologies_rs.png \
|
||||
figures/fig_topologies_rs.txt \
|
||||
figures/fig-vnc-commercial-route-reflector.dia \
|
||||
figures/fig-vnc-commercial-route-reflector.png \
|
||||
figures/fig-vnc-commercial-route-reflector.txt \
|
||||
figures/fig-vnc-frr-route-reflector.dia \
|
||||
figures/fig-vnc-frr-route-reflector.png \
|
||||
figures/fig-vnc-frr-route-reflector.txt \
|
||||
figures/fig-vnc-gw.dia \
|
||||
figures/fig-vnc-gw.png \
|
||||
figures/fig-vnc-gw-rr.dia \
|
||||
figures/fig-vnc-gw-rr.png \
|
||||
figures/fig-vnc-gw-rr.txt \
|
||||
figures/fig-vnc-gw.txt \
|
||||
figures/fig-vnc-mesh.dia \
|
||||
figures/fig-vnc-mesh.png \
|
||||
figures/fig-vnc-mesh.txt \
|
||||
figures/fig-vnc-redundant-route-reflectors.dia \
|
||||
figures/fig-vnc-redundant-route-reflectors.png \
|
||||
figures/fig-vnc-redundant-route-reflectors.txt \
|
||||
figures/frr-icon.svg \
|
||||
figures/frr-logo-icon.png \
|
||||
figures/frr-logo-medium.png \
|
||||
figures/frr-logo.png \
|
||||
figures/frr-logo-small.png \
|
||||
figures/git_branches.png \
|
||||
figures/git_branches.svg \
|
||||
figures/ospf_api_architecture.png \
|
||||
figures/ospf_api_msghdr.png \
|
||||
figures/ospf_api_msgs1.png \
|
||||
figures/ospf_api_msgs2.png \
|
||||
extra/frrlexer.py
|
||||
16
doc/developer/Makefile
Normal file
16
doc/developer/Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
all: ALWAYS
|
||||
@$(MAKE) -s -C ../.. developer-html
|
||||
help: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/help
|
||||
pdf: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/developer/_build/latexpdf
|
||||
info: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/developer/_build/texinfo/frr.info
|
||||
%: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/developer/_build/$@
|
||||
|
||||
Makefile:
|
||||
#nothing
|
||||
ALWAYS:
|
||||
.PHONY: ALWAYS makefiles
|
||||
.SUFFIXES:
|
||||
@ -1,8 +0,0 @@
|
||||
# This is necessary to support VPATH builds.
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
# This variable is used as the documentation source location in frr-sphinx.mk
|
||||
SOURCESDIR = @srcdir@
|
||||
|
||||
include @srcdir@/../frr-sphinx.mk
|
||||
72
doc/developer/subdir.am
Normal file
72
doc/developer/subdir.am
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# doc/developer
|
||||
#
|
||||
|
||||
dev_RSTFILES = \
|
||||
doc/developer/bgp-typecodes.rst \
|
||||
doc/developer/bgpd.rst \
|
||||
doc/developer/building-frr-for-openwrt.rst \
|
||||
doc/developer/building-frr-on-alpine.rst \
|
||||
doc/developer/building-frr-on-centos6.rst \
|
||||
doc/developer/building-frr-on-centos7.rst \
|
||||
doc/developer/building-frr-on-debian8.rst \
|
||||
doc/developer/building-frr-on-debian9.rst \
|
||||
doc/developer/building-frr-on-fedora24.rst \
|
||||
doc/developer/building-frr-on-freebsd10.rst \
|
||||
doc/developer/building-frr-on-freebsd11.rst \
|
||||
doc/developer/building-frr-on-freebsd9.rst \
|
||||
doc/developer/building-frr-on-netbsd6.rst \
|
||||
doc/developer/building-frr-on-netbsd7.rst \
|
||||
doc/developer/building-frr-on-omnios.rst \
|
||||
doc/developer/building-frr-on-openbsd6.rst \
|
||||
doc/developer/building-frr-on-ubuntu1204.rst \
|
||||
doc/developer/building-frr-on-ubuntu1404.rst \
|
||||
doc/developer/building-frr-on-ubuntu1604.rst \
|
||||
doc/developer/building-frr-on-ubuntu1804.rst \
|
||||
doc/developer/building.rst \
|
||||
doc/developer/cli.rst \
|
||||
doc/developer/conf.py \
|
||||
doc/developer/hooks.rst \
|
||||
doc/developer/index.rst \
|
||||
doc/developer/library.rst \
|
||||
doc/developer/logging.rst \
|
||||
doc/developer/maintainer-release-build.rst \
|
||||
doc/developer/memtypes.rst \
|
||||
doc/developer/modules.rst \
|
||||
doc/developer/next-hop-tracking.rst \
|
||||
doc/developer/ospf-api.rst \
|
||||
doc/developer/ospf-sr.rst \
|
||||
doc/developer/ospf.rst \
|
||||
doc/developer/workflow.rst \
|
||||
doc/developer/zebra.rst \
|
||||
# end
|
||||
|
||||
EXTRA_DIST += \
|
||||
$(dev_RSTFILES) \
|
||||
doc/developer/draft-zebra-00.ms \
|
||||
doc/developer/ldpd-basic-test-setup.md \
|
||||
# end
|
||||
|
||||
DEVBUILD = doc/developer/_build
|
||||
$(DEVBUILD)/.doctrees/environment.pickle: $(dev_RSTFILES)
|
||||
|
||||
#
|
||||
# nothing built automatically for "all" target.
|
||||
#
|
||||
|
||||
#
|
||||
# standard targets
|
||||
#
|
||||
|
||||
developer-info: $(DEVBUILD)/texinfo/frr.info
|
||||
developer-html: $(DEVBUILD)/html/.buildinfo
|
||||
developer-pdf: $(DEVBUILD)/latexpdf
|
||||
|
||||
#
|
||||
# hook-in for clean
|
||||
#
|
||||
|
||||
.PHONY: clean-devdocs
|
||||
clean-local: clean-devdocs
|
||||
clean-devdocs:
|
||||
-rm -rf "$(DEVBUILD)"
|
||||
@ -1,229 +0,0 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# Sphinx is not designed to be invoked multiple times against the same toctree.
|
||||
.NOTPARALLEL:
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS ?=
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
PAPER ?=
|
||||
BUILDDIR = _build
|
||||
|
||||
# This is a custom FRR variable just for this docs subdirectory used to support
|
||||
# VPATH builds. Makefiles which include this file should override it to point
|
||||
# to the correct sources path.
|
||||
SOURCESDIR ?= .
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifneq ($(MAKECMDGOALS), clean)
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
SPHINXBUILD = sphinx-1.0-build
|
||||
endif
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD make variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/")
|
||||
endif
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCESDIR)
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCESDIR)
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
.PHONY: html
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
.PHONY: dirhtml
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
.PHONY: singlehtml
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
.PHONY: pickle
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
.PHONY: json
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
.PHONY: htmlhelp
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
.PHONY: qthelp
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/FRR.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/FRR.qhc"
|
||||
|
||||
.PHONY: applehelp
|
||||
applehelp:
|
||||
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||
@echo
|
||||
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||
"~/Library/Documentation/Help or install it in your application" \
|
||||
"bundle."
|
||||
|
||||
.PHONY: devhelp
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/FRR"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/FRR"
|
||||
@echo "# devhelp"
|
||||
|
||||
.PHONY: epub
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
.PHONY: latex
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
.PHONY: latexpdf
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
.PHONY: latexpdfja
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
.PHONY: text
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
.PHONY: man
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
.PHONY: texinfo
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
.PHONY: info
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
$(MAKE) -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
.PHONY: gettext
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
.PHONY: changes
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
.PHONY: linkcheck
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
.PHONY: doctest
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
.PHONY: coverage
|
||||
coverage:
|
||||
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||
@echo "Testing of coverage in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/coverage/python.txt."
|
||||
|
||||
.PHONY: xml
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
.PHONY: pseudoxml
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||
12
doc/manpages/Makefile
Normal file
12
doc/manpages/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
all: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/manpages/man.stamp
|
||||
help: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/help
|
||||
%: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/manpages/_build/$@
|
||||
|
||||
Makefile:
|
||||
#nothing
|
||||
ALWAYS:
|
||||
.PHONY: ALWAYS makefiles
|
||||
.SUFFIXES:
|
||||
@ -1,48 +0,0 @@
|
||||
# This is necessary to support VPATH builds.
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
# This variable is used as the documentation source location in frr-sphinx.mk
|
||||
SOURCESDIR = @srcdir@
|
||||
|
||||
include @srcdir@/../frr-sphinx.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Automake requires that 3rd-party Makefiles recognize these targets.
|
||||
# -----------------------------------------------------------------------------
|
||||
# install
|
||||
# install-data
|
||||
# install-exec
|
||||
# uninstall
|
||||
# install-dvi
|
||||
# install-html
|
||||
# install-info
|
||||
# install-ps
|
||||
# install-pdf
|
||||
# installdirs
|
||||
# check
|
||||
# installcheck
|
||||
# mostlyclean
|
||||
# clean
|
||||
# distclean
|
||||
# maintainer-clean
|
||||
# dvi
|
||||
# pdf
|
||||
# ps
|
||||
# info
|
||||
# html
|
||||
# tags
|
||||
# ctags
|
||||
|
||||
# These targets are automatically generated by Sphinx but conflict with
|
||||
# implicitly defined Automake rules, so we manually override them to nothing.
|
||||
# The other option is deleting the Sphinx-generated rules, which suppresses the
|
||||
# warning but kinda screws up the symmetry between Makefiles.
|
||||
info: ;
|
||||
html: ;
|
||||
|
||||
all: man
|
||||
|
||||
install-data: man
|
||||
|
||||
install: install-data
|
||||
139
doc/manpages/subdir.am
Normal file
139
doc/manpages/subdir.am
Normal file
@ -0,0 +1,139 @@
|
||||
#
|
||||
# doc/manpages
|
||||
#
|
||||
|
||||
man_RSTFILES = \
|
||||
doc/manpages/bgpd.rst \
|
||||
doc/manpages/common-options.rst \
|
||||
doc/manpages/conf.py \
|
||||
doc/manpages/defines.rst \
|
||||
doc/manpages/eigrpd.rst \
|
||||
doc/manpages/epilogue.rst \
|
||||
doc/manpages/frr.rst \
|
||||
doc/manpages/index.rst \
|
||||
doc/manpages/isisd.rst \
|
||||
doc/manpages/ldpd.rst \
|
||||
doc/manpages/mtracebis.rst \
|
||||
doc/manpages/nhrpd.rst \
|
||||
doc/manpages/ospf6d.rst \
|
||||
doc/manpages/ospfclient.rst \
|
||||
doc/manpages/ospfd.rst \
|
||||
doc/manpages/pimd.rst \
|
||||
doc/manpages/ripd.rst \
|
||||
doc/manpages/pbrd.rst \
|
||||
doc/manpages/ripngd.rst \
|
||||
doc/manpages/sharpd.rst \
|
||||
doc/manpages/staticd.rst \
|
||||
doc/manpages/vtysh.rst \
|
||||
doc/manpages/watchfrr.rst \
|
||||
doc/manpages/zebra.rst \
|
||||
doc/manpages/bfdd.rst \
|
||||
doc/manpages/bfd-options.rst \
|
||||
# end
|
||||
|
||||
EXTRA_DIST += $(man_RSTFILES)
|
||||
|
||||
MANBUILD = doc/manpages/_build/man
|
||||
doc/manpages/_build/.doctrees/environment.pickle: $(man_RSTFILES)
|
||||
|
||||
#
|
||||
# automake integration
|
||||
#
|
||||
|
||||
rstman1dir = $(mandir)/man1
|
||||
rstman8dir = $(mandir)/man8
|
||||
|
||||
rstman1_DATA =
|
||||
rstman8_DATA =
|
||||
|
||||
rstman1_DATA += $(MANBUILD)/frr.1
|
||||
|
||||
if PIMD
|
||||
rstman8_DATA += $(MANBUILD)/pimd.8
|
||||
rstman8_DATA += $(MANBUILD)/mtracebis.8
|
||||
endif
|
||||
|
||||
if PBRD
|
||||
rstman8_DATA += $(MANBUILD)/pbrd.8
|
||||
endif
|
||||
|
||||
if BGPD
|
||||
rstman8_DATA += $(MANBUILD)/bgpd.8
|
||||
endif
|
||||
|
||||
if ISISD
|
||||
rstman8_DATA += $(MANBUILD)/isisd.8
|
||||
endif
|
||||
|
||||
if OSPF6D
|
||||
rstman8_DATA += $(MANBUILD)/ospf6d.8
|
||||
endif
|
||||
|
||||
if OSPFCLIENT
|
||||
rstman8_DATA += $(MANBUILD)/ospfclient.8
|
||||
endif
|
||||
|
||||
if OSPFD
|
||||
rstman8_DATA += $(MANBUILD)/ospfd.8
|
||||
endif
|
||||
|
||||
if LDPD
|
||||
rstman8_DATA += $(MANBUILD)/ldpd.8
|
||||
endif
|
||||
|
||||
if RIPD
|
||||
rstman8_DATA += $(MANBUILD)/ripd.8
|
||||
endif
|
||||
|
||||
if RIPNGD
|
||||
rstman8_DATA += $(MANBUILD)/ripngd.8
|
||||
endif
|
||||
|
||||
if NHRPD
|
||||
rstman8_DATA += $(MANBUILD)/nhrpd.8
|
||||
endif
|
||||
|
||||
if VTYSH
|
||||
rstman1_DATA += $(MANBUILD)/vtysh.1
|
||||
endif
|
||||
|
||||
if WATCHFRR
|
||||
rstman8_DATA += $(MANBUILD)/watchfrr.8
|
||||
endif
|
||||
|
||||
if ZEBRA
|
||||
rstman8_DATA += $(MANBUILD)/zebra.8
|
||||
endif
|
||||
|
||||
if EIGRPD
|
||||
rstman8_DATA += $(MANBUILD)/eigrpd.8
|
||||
endif
|
||||
|
||||
if SHARPD
|
||||
rstman8_DATA += $(MANBUILD)/sharpd.8
|
||||
endif
|
||||
|
||||
if STATICD
|
||||
rstman8_DATA += $(MANBUILD)/staticd.8
|
||||
endif
|
||||
|
||||
if BFDD
|
||||
rstman8_DATA += $(MANBUILD)/bfdd.8
|
||||
endif
|
||||
|
||||
# dependency
|
||||
$(rstman8_DATA) $(rstman1_DATA): $(MANBUILD)/man.stamp
|
||||
|
||||
#
|
||||
# hook-ins for clean / doc
|
||||
# (install is handled by automake _DATA)
|
||||
#
|
||||
|
||||
clean-local: clean-manpages
|
||||
.PHONY: clean-manpages
|
||||
clean-manpages:
|
||||
-rm -rf $(MANBUILD)
|
||||
|
||||
doc: doc-man
|
||||
.PHONY: doc-man
|
||||
doc-man: $(rstman8_DATA) $(rstman1_DATA)
|
||||
176
doc/subdir.am
Normal file
176
doc/subdir.am
Normal file
@ -0,0 +1,176 @@
|
||||
#
|
||||
# doc
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS ?=
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
PAPER ?=
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
|
||||
|
||||
###
|
||||
|
||||
AM_V_SPHINX = $(am__v_SPHINX_$(V))
|
||||
am__v_SPHINX_ = $(am__v_SPHINX_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_SPHINX_0 = @echo " SPHINX " $@;
|
||||
am__v_SPHINX_1 =
|
||||
AM_V_MAKEINFO = $(am__v_MAKEINFO_$(V))
|
||||
am__v_MAKEINFO_ = $(am__v_MAKEINFO_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_MAKEINFO_0 = @echo " MAKEINFO" $@;
|
||||
am__v_MAKEINFO_1 =
|
||||
|
||||
#
|
||||
# real-file sphinx targets that work for dependencies
|
||||
#
|
||||
|
||||
doc/%/_build/.doctrees/environment.pickle:
|
||||
$(AM_V_SPHINX) ( \
|
||||
subdoc="$@"; subdoc="$${subdoc#doc/}"; subdoc="doc/$${subdoc%%/*}"; \
|
||||
$(SPHINXBUILD) -a -q -b text -d "$${subdoc}/_build/.doctrees" \
|
||||
$(ALLSPHINXOPTS) "$(top_srcdir)/$${subdoc}" "$${subdoc}/_build/text" \
|
||||
)
|
||||
doc/%/_build/html/.buildinfo: doc/%/_build/.doctrees/environment.pickle
|
||||
$(AM_V_SPHINX) ( \
|
||||
subdoc="$@"; subdoc="$${subdoc#doc/}"; subdoc="doc/$${subdoc%%/*}"; \
|
||||
$(SPHINXBUILD) -q -b html -d "$${subdoc}/_build/.doctrees" \
|
||||
$(ALLSPHINXOPTS) "$(top_srcdir)/$${subdoc}" "$${subdoc}/_build/html" \
|
||||
)
|
||||
.PRECIOUS: doc/%/_build/texinfo/frr.texi
|
||||
doc/%/_build/texinfo/frr.texi: doc/%/_build/.doctrees/environment.pickle
|
||||
$(AM_V_SPHINX) ( \
|
||||
subdoc="$@"; subdoc="$${subdoc#doc/}"; subdoc="doc/$${subdoc%%/*}"; \
|
||||
$(SPHINXBUILD) -q -b texinfo -d "$${subdoc}/_build/.doctrees" \
|
||||
$(ALLSPHINXOPTS) "$(top_srcdir)/$${subdoc}" "$${subdoc}/_build/texinfo" \
|
||||
)
|
||||
doc/%/_build/texinfo/frr.info: doc/%/_build/texinfo/frr.texi
|
||||
$(AM_V_MAKEINFO)$(MAKEINFO) --no-split -o '$@' '$<'
|
||||
doc/%/_build/man/man.stamp: doc/%/_build/.doctrees/environment.pickle
|
||||
$(AM_V_SPHINX) ( \
|
||||
subdoc="$@"; subdoc="$${subdoc#doc/}"; subdoc="doc/$${subdoc%%/*}"; \
|
||||
$(MKDIR_P) "$${subdoc}/_build/man"; touch $@.tmp; \
|
||||
$(SPHINXBUILD) -a -q -b man -d "$${subdoc}/_build/.doctrees" \
|
||||
$(ALLSPHINXOPTS) "$(top_srcdir)/$${subdoc}" "$${subdoc}/_build/man" && \
|
||||
mv $@.tmp $@ \
|
||||
)
|
||||
|
||||
#
|
||||
# auxiliary sphinx targets (output name = directory,
|
||||
# deps will not work very well)
|
||||
#
|
||||
|
||||
SPHINXTARGETS = \
|
||||
html dirhtml singlehtml pickle json \
|
||||
htmlhelp qthelp applehelp devhelp \
|
||||
epub latex text man texinfo gettext \
|
||||
changes linkcheck doctest coverage \
|
||||
xml pseudoxml \
|
||||
# end
|
||||
|
||||
M_SPHINXTARGETS = $(addprefix doc/%/_build/,$(SPHINXTARGETS))
|
||||
.PRECIOUS: $(M_SPHINXTARGETS)
|
||||
$(M_SPHINXTARGETS): doc/%/_build/.doctrees/environment.pickle
|
||||
$(AM_V_SPHINX) ( \
|
||||
target="$@"; \
|
||||
builder="$${target##*/}"; \
|
||||
subdoc="$${target#doc/}"; subdoc="doc/$${subdoc%%/*}"; \
|
||||
rm -rf "$@"; \
|
||||
$(SPHINXBUILD) -q -b $${builder} -d $${subdoc}/_build/.doctrees \
|
||||
$(ALLSPHINXOPTS) $(top_srcdir)/$${subdoc} $@ \
|
||||
)
|
||||
|
||||
.PHONY: doc/%/_build/latexpdf
|
||||
doc/%/_build/latexpdf: doc/%/_build/latex
|
||||
@make -C $< all-pdf
|
||||
|
||||
# If you want to build the developer's docs in other formats, try the
|
||||
# following:
|
||||
#
|
||||
# $ cd developer
|
||||
# $ make help
|
||||
|
||||
# dist tarballs want doc sources
|
||||
EXTRA_DIST += \
|
||||
doc/mpls/ChangeLog.opaque.txt \
|
||||
doc/mpls/ospfd.conf \
|
||||
doc/mpls/cli_summary.txt \
|
||||
doc/mpls/opaque_lsa.txt \
|
||||
doc/figures/cligraph.png \
|
||||
doc/figures/cligraph.svg \
|
||||
doc/figures/fig-normal-processing.dia \
|
||||
doc/figures/fig-normal-processing.png \
|
||||
doc/figures/fig-normal-processing.txt \
|
||||
doc/figures/fig-rs-processing.dia \
|
||||
doc/figures/fig-rs-processing.png \
|
||||
doc/figures/fig-rs-processing.txt \
|
||||
doc/figures/fig_topologies_full.dia \
|
||||
doc/figures/fig_topologies_full.png \
|
||||
doc/figures/fig_topologies_full.txt \
|
||||
doc/figures/fig_topologies_rs.dia \
|
||||
doc/figures/fig_topologies_rs.png \
|
||||
doc/figures/fig_topologies_rs.txt \
|
||||
doc/figures/fig-vnc-commercial-route-reflector.dia \
|
||||
doc/figures/fig-vnc-commercial-route-reflector.png \
|
||||
doc/figures/fig-vnc-commercial-route-reflector.txt \
|
||||
doc/figures/fig-vnc-frr-route-reflector.dia \
|
||||
doc/figures/fig-vnc-frr-route-reflector.png \
|
||||
doc/figures/fig-vnc-frr-route-reflector.txt \
|
||||
doc/figures/fig-vnc-gw.dia \
|
||||
doc/figures/fig-vnc-gw.png \
|
||||
doc/figures/fig-vnc-gw-rr.dia \
|
||||
doc/figures/fig-vnc-gw-rr.png \
|
||||
doc/figures/fig-vnc-gw-rr.txt \
|
||||
doc/figures/fig-vnc-gw.txt \
|
||||
doc/figures/fig-vnc-mesh.dia \
|
||||
doc/figures/fig-vnc-mesh.png \
|
||||
doc/figures/fig-vnc-mesh.txt \
|
||||
doc/figures/fig-vnc-redundant-route-reflectors.dia \
|
||||
doc/figures/fig-vnc-redundant-route-reflectors.png \
|
||||
doc/figures/fig-vnc-redundant-route-reflectors.txt \
|
||||
doc/figures/frr-icon.svg \
|
||||
doc/figures/frr-logo-icon.png \
|
||||
doc/figures/frr-logo-medium.png \
|
||||
doc/figures/frr-logo.png \
|
||||
doc/figures/frr-logo-small.png \
|
||||
doc/figures/git_branches.png \
|
||||
doc/figures/git_branches.svg \
|
||||
doc/figures/ospf_api_architecture.png \
|
||||
doc/figures/ospf_api_msghdr.png \
|
||||
doc/figures/ospf_api_msgs1.png \
|
||||
doc/figures/ospf_api_msgs2.png \
|
||||
doc/extra/frrlexer.py \
|
||||
# end
|
||||
|
||||
|
||||
.PHONY: doc/help
|
||||
doc/help:
|
||||
@echo "Please use \`make doc/{user,manpages,developer}/<target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " xml to make Docutils-native XML files"
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
16
doc/user/Makefile
Normal file
16
doc/user/Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
all: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc-user
|
||||
help: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/help
|
||||
pdf: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/user/_build/latexpdf
|
||||
info: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/user/_build/texinfo/frr.info
|
||||
%: ALWAYS
|
||||
@$(MAKE) -s -C ../.. doc/user/_build/$@
|
||||
|
||||
Makefile:
|
||||
#nothing
|
||||
ALWAYS:
|
||||
.PHONY: ALWAYS makefiles
|
||||
.SUFFIXES:
|
||||
@ -1,55 +0,0 @@
|
||||
# This is necessary to support VPATH builds.
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
# This variable is used as the documentation source location in frr-sphinx.mk
|
||||
SOURCESDIR = @srcdir@
|
||||
|
||||
include @srcdir@/../frr-sphinx.mk
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Automake requires that 3rd-party Makefiles recognize these targets.
|
||||
# -----------------------------------------------------------------------------
|
||||
# install
|
||||
# install-data
|
||||
# install-exec
|
||||
# uninstall
|
||||
# install-dvi
|
||||
# install-html
|
||||
# install-info
|
||||
# install-ps
|
||||
# install-pdf
|
||||
# installdirs
|
||||
# check
|
||||
# installcheck
|
||||
# mostlyclean
|
||||
# clean
|
||||
# distclean
|
||||
# maintainer-clean
|
||||
# dvi
|
||||
# pdf
|
||||
# ps
|
||||
# info
|
||||
# html
|
||||
# tags
|
||||
# ctags
|
||||
|
||||
# When building 'all', the logic is that we want to make docs that are easily
|
||||
# readable by the person that just built them. Technically the reST source is
|
||||
# readable in its own right, but we'll also build info and html because those
|
||||
# offer sequentially better reading experiences. PDF is not built by default
|
||||
# because it takes quite a while.
|
||||
all: info
|
||||
|
||||
# info and html already have built-in sphinx rules; pdf goes to latexpdf
|
||||
pdf: latexpdf
|
||||
|
||||
# install user manual as info file
|
||||
install-info: info
|
||||
install -d ${DESTDIR}${infodir}
|
||||
gzip < _build/texinfo/frr.info > ${DESTDIR}${infodir}/frr.info.gz
|
||||
install-info _build/texinfo/frr.info ${DESTDIR}${infodir}/dir
|
||||
|
||||
install-data: install-info
|
||||
|
||||
install: install-data
|
||||
@ -19,11 +19,6 @@ table.mark th {
|
||||
table.mark td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
table.mark td[colspan="7"] {
|
||||
text-align: center;
|
||||
padding-top: 8pt;
|
||||
padding-bottom: 2pt;
|
||||
}
|
||||
table.mark cite {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -32,6 +27,13 @@ table.mark cite {
|
||||
td.mark {
|
||||
width: 4.5em;
|
||||
}
|
||||
table.mark strong {
|
||||
display:block;
|
||||
text-align: center;
|
||||
margin:auto;
|
||||
padding-top: 8pt;
|
||||
padding-bottom: 2pt;
|
||||
}
|
||||
td.mark span {
|
||||
display: block;
|
||||
padding: 3px 1px;
|
||||
@ -39,6 +41,12 @@ td.mark span {
|
||||
width: 36pt;
|
||||
margin:auto;
|
||||
}
|
||||
table.mark tr td:first-child {
|
||||
padding-left:1.5em;
|
||||
}
|
||||
table.mark tr td:first-child cite {
|
||||
margin-left:-1.5em;
|
||||
}
|
||||
span.mark-y { background-color: #77ffaa; }
|
||||
span.mark-geq { background-color: #aaff77; }
|
||||
span.mark-cp { background-color: #ffbb55; }
|
||||
|
||||
@ -166,69 +166,69 @@ features with system dependencies are included here.
|
||||
will look somewhat shoddy on other sphinx targets like PDF or info (but
|
||||
should still be readable.)
|
||||
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Daemon / Feature | Linux | OpenBSD | FreeBSD | NetBSD | Solaris |
|
||||
+==+================================+================+==============+============+============+============+
|
||||
| FRR Core |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+===================================+================+==============+============+============+============+
|
||||
| **FRR Core** | | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `zebra` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | VRF | :mark:`≥4.8` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | MPLS | :mark:`≥4.5` | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| VRF | :mark:`≥4.8` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| MPLS | :mark:`≥4.5` | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `pbrd` (Policy Routing) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| WAN / Carrier protocols |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| **WAN / Carrier protocols** | | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `bgpd` (BGP) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | VRF / L3VPN | :mark:`≥4.8` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
| | | :mark:`†4.3` | | | | |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | EVPN | :mark:`≥4.18` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
| | | :mark:`†4.9` | | | | |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | VNC (Virtual Network Control) | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | Flowspec | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| VRF / L3VPN | :mark:`≥4.8` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
| | :mark:`†4.3` | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| EVPN | :mark:`≥4.18` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
| | :mark:`†4.9` | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| VNC (Virtual Network Control) | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Flowspec | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `ldpd` (LDP) | :mark:`≥4.5` | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | VPWS / PW | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | VPLS | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| VPWS / PW | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| VPLS | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `nhrpd` (NHRP) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Link-State Routing |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| **Link-State Routing** | | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `ospfd` (OSPFv2) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | Segment Routing | :mark:`≥4.12` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Segment Routing | :mark:`≥4.12` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `ospf6d` (OSPFv3) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `isisd` (IS-IS) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Distance-Vector Routing |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| **Distance-Vector Routing** | | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `ripd` (RIPv2) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `ripngd` (RIPng) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `babeld` (BABEL) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `eigrpd` (EIGRP) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| Multicast Routing |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| **Multicast Routing** | | | | | |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| `pimd` (PIM) | :mark:`≥4.18` | :mark:`N` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | SSM (Source Specific) | :mark:`Y` | :mark:`N` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| | ASM (Any Source) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+--+--------------------------------+----------------+--------------+------------+------------+------------+
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| SSM (Source Specific) | :mark:`Y` | :mark:`N` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
| ASM (Any Source) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
|
||||
+-----------------------------------+----------------+--------------+------------+------------+------------+
|
||||
|
||||
The indicators have the following semantics:
|
||||
|
||||
|
||||
110
doc/user/subdir.am
Normal file
110
doc/user/subdir.am
Normal file
@ -0,0 +1,110 @@
|
||||
#
|
||||
# doc/user
|
||||
#
|
||||
|
||||
user_RSTFILES = \
|
||||
doc/user/babeld.rst \
|
||||
doc/user/ldpd.rst \
|
||||
doc/user/basic.rst \
|
||||
doc/user/bgp.rst \
|
||||
doc/user/bugs.rst \
|
||||
doc/user/conf.py \
|
||||
doc/user/eigrpd.rst \
|
||||
doc/user/filter.rst \
|
||||
doc/user/glossary.rst \
|
||||
doc/user/index.rst \
|
||||
doc/user/installation.rst \
|
||||
doc/user/ipv6.rst \
|
||||
doc/user/isisd.rst \
|
||||
doc/user/kernel.rst \
|
||||
doc/user/nhrpd.rst \
|
||||
doc/user/ospf6d.rst \
|
||||
doc/user/ospfd.rst \
|
||||
doc/user/ospf_fundamentals.rst \
|
||||
doc/user/overview.rst \
|
||||
doc/user/packet-dumps.rst \
|
||||
doc/user/pim.rst \
|
||||
doc/user/ripd.rst \
|
||||
doc/user/pbr.rst \
|
||||
doc/user/ripngd.rst \
|
||||
doc/user/routemap.rst \
|
||||
doc/user/routeserver.rst \
|
||||
doc/user/rpki.rst \
|
||||
doc/user/setup.rst \
|
||||
doc/user/sharp.rst \
|
||||
doc/user/snmp.rst \
|
||||
doc/user/snmptrap.rst \
|
||||
doc/user/static.rst \
|
||||
doc/user/vnc.rst \
|
||||
doc/user/vtysh.rst \
|
||||
doc/user/zebra.rst \
|
||||
doc/user/bfd.rst \
|
||||
doc/user/flowspec.rst \
|
||||
# end
|
||||
|
||||
EXTRA_DIST += \
|
||||
$(user_RSTFILES) \
|
||||
doc/user/Useful_Sysctl_Settings.md \
|
||||
# end
|
||||
|
||||
USERBUILD = doc/user/_build
|
||||
$(USERBUILD)/.doctrees/environment.pickle: $(user_RSTFILES)
|
||||
|
||||
#
|
||||
# automake integration (things that should be built in "all")
|
||||
#
|
||||
|
||||
if DOC
|
||||
nodist_noinst_DATA += $(USERBUILD)/texinfo/frr.info
|
||||
endif
|
||||
if DOC_HTML
|
||||
nodist_noinst_DATA += $(USERBUILD)/html/.buildinfo
|
||||
endif
|
||||
|
||||
#
|
||||
# standard targets
|
||||
#
|
||||
|
||||
.PHONY: info html pdf
|
||||
info: $(USERBUILD)/texinfo/frr.info
|
||||
html: $(USERBUILD)/html/.buildinfo
|
||||
pdf: $(USERBUILD)/latexpdf
|
||||
|
||||
#
|
||||
# hook-ins for clean / install / doc
|
||||
#
|
||||
|
||||
.PHONY: clean-userdocs
|
||||
clean-local: clean-userdocs
|
||||
clean-userdocs:
|
||||
-rm -rf "$(USERBUILD)"
|
||||
|
||||
# INSTALL_INFO=install-info
|
||||
.PHONY: install-info uninstall-info install-html uninstall-html
|
||||
|
||||
install-info: $(USERBUILD)/texinfo/frr.info
|
||||
$(MKDIR_P) "$(DESTDIR)$(infodir)"
|
||||
$(INSTALL_DATA) "$<" "$(DESTDIR)$(infodir)"
|
||||
[ -z "${DESTDIR}" ] && $(INSTALL_INFO) --info-dir="$(DESTDIR)$(infodir)" "$<" || true
|
||||
uninstall-info: $(USERBUILD)/texinfo/frr.info
|
||||
-rm -f "$(DESTDIR)$(infodir)/$<"
|
||||
[ -z "${DESTDIR}" ] && $(INSTALL_INFO) --delete --info-dir="$(DESTDIR)$(infodir)" "$<" || true
|
||||
|
||||
install-html: $(USERBUILD)/html/.buildinfo
|
||||
$(MKDIR_P) "$(DESTDIR)$(htmldir)"
|
||||
cp -r "$(USERBUILD)/html" "$(DESTDIR)$(htmldir)"
|
||||
uninstall-html:
|
||||
-rm -rf "$(DESTDIR)$(htmldir)/html"
|
||||
|
||||
.PHONY: install-data-local uninstall-local
|
||||
if DOC
|
||||
DOC_INFO=info
|
||||
install-data-local: install-info
|
||||
uninstall-local: uninstall-info
|
||||
endif
|
||||
if DOC_HTML
|
||||
DOC_HTML=html
|
||||
install-data-local: install-html
|
||||
uninstall-local: uninstall-html
|
||||
endif
|
||||
doc: $(DOC_INFO) $(DOC_HTML)
|
||||
@ -293,7 +293,7 @@ if GIT_VERSION
|
||||
# (even if gitversion.h's file timestamp doesn't change, make will think it
|
||||
# did, because of .PHONY...)
|
||||
|
||||
.PHONY: lib/gitversion.h.tmp
|
||||
PHONY_GITVERSION=lib/gitversion.h.tmp
|
||||
.SILENT: lib/gitversion.h lib/gitversion.h.tmp
|
||||
GITH=lib/gitversion.h
|
||||
lib/gitversion.h.tmp: $(top_srcdir)/.git
|
||||
@ -302,7 +302,8 @@ lib/gitversion.h: lib/gitversion.h.tmp
|
||||
{ test -f ${GITH} && diff -s -q ${GITH}.tmp ${GITH}; } || cp ${GITH}.tmp ${GITH}
|
||||
|
||||
else
|
||||
.PHONY: lib/gitversion.h
|
||||
PHONY_GITVERSION=lib/gitversion.h
|
||||
lib/gitversion.h:
|
||||
true
|
||||
endif
|
||||
.PHONY: $(PHONY_GITVERSION)
|
||||
|
||||
@ -277,4 +277,4 @@ if __name__ == '__main__':
|
||||
process_file(args.cfile, ofd, dumpfd, args.all_defun)
|
||||
|
||||
if args.o is not None:
|
||||
clippy.wrdiff(args.o, ofd, [args.cfile, os.path.realpath(__file__)])
|
||||
clippy.wrdiff(args.o, ofd, [args.cfile, os.path.realpath(__file__), sys.executable])
|
||||
|
||||
4
solaris/.gitignore
vendored
4
solaris/.gitignore
vendored
@ -1,5 +1,5 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
!Makefile.in
|
||||
?.manifest
|
||||
*.xml
|
||||
pkginfo.*.full
|
||||
@ -19,4 +19,4 @@ frr.init
|
||||
*.pkg.gz
|
||||
*~
|
||||
*.loT
|
||||
*.a
|
||||
*.a
|
||||
|
||||
@ -2,13 +2,56 @@
|
||||
|
||||
# XXX This file uses GNU make extensions.
|
||||
|
||||
.PHONY: packages
|
||||
.PHONY: packages all all-files
|
||||
|
||||
all: all-files
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datarootdir = @datarootdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
frr_statedir = @frr_statedir@
|
||||
|
||||
builddir = @builddir@
|
||||
srcdir = @srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
|
||||
enable_user = @enable_user@
|
||||
enable_group = @enable_group@
|
||||
enable_vty_group = @enable_vty_group@
|
||||
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
CONFDATE = @CONFDATE@
|
||||
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
|
||||
SED = @SED@
|
||||
MAKE = @MAKE@
|
||||
|
||||
# the names of the various subpackages, and some convenient
|
||||
# derived variables.
|
||||
pkg_names = daemons dev doc libs smf
|
||||
pkg_frr_daemons = zebra bgpd ospfd ospf6d ripd ripngd
|
||||
pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@target_os@-@target_cpu@
|
||||
pkg_name_rev = $(PACKAGE_VERSION)-$(CONFDATE)-$(host_os)-$(host_cpu)
|
||||
pkg_depends = $(pkg_names:%=depend.%)
|
||||
pkg_packages = $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg)
|
||||
pkg_pkginfos = $(pkg_names:%=pkginfo.%.full)
|
||||
@ -36,29 +79,28 @@ edit = $(SED) \
|
||||
-e 's,@enable_group\@,$(enable_group),g' \
|
||||
-e 's,@enable_vty_group\@,$(enable_vty_group),g' \
|
||||
-e 's,@frr_statedir\@,$(frr_statedir),g' \
|
||||
-e 's,[@]PACKAGE_NAME[@],@PACKAGE_NAME@,g' \
|
||||
-e 's,[@]PACKAGE_TARNAME[@],@PACKAGE_TARNAME@,g' \
|
||||
-e 's,[@]PACKAGE_VERSION[@],@PACKAGE_VERSION@,g' \
|
||||
-e 's,[@]PACKAGE_BUGREPORT[@],@PACKAGE_BUGREPORT@,g' \
|
||||
-e 's,[@]CONFDATE[@],@CONFDATE@,g' \
|
||||
-e 's,[@]target_cpu[@],$(target_cpu),g' \
|
||||
-e 's,[@]target_host[@],$(target_host),g' \
|
||||
-e 's,[@]target_os[@],$(target_os),g'
|
||||
-e 's,[@]PACKAGE_NAME[@],$(PACKAGE_NAME),g' \
|
||||
-e 's,[@]PACKAGE_TARNAME[@],$(PACKAGE_TARNAME),g' \
|
||||
-e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
|
||||
-e 's,[@]PACKAGE_BUGREPORT[@],$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,[@]CONFDATE[@],$(CONFDATE),g' \
|
||||
-e 's,[@]host_cpu[@],$(host_cpu),g' \
|
||||
-e 's,[@]host_os[@],$(host_os),g'
|
||||
|
||||
# common options for pkgmk
|
||||
pkg_make_vars = exec_prefix=@exec_prefix@ prefix=@prefix@ \
|
||||
builddir=@builddir@ srcdir=@srcdir@ \
|
||||
top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ \
|
||||
abs_builddir=@abs_builddir@ abs_srcdir=@abs_srcdir@ \
|
||||
abs_top_builddir=@abs_top_builddir@ abs_top_srcdir=@abs_top_srcdir@
|
||||
pkg_make_vars = exec_prefix=$(exec_prefix) prefix=$(prefix) \
|
||||
builddir=$(builddir) srcdir=$(srcdir) \
|
||||
top_builddir=$(top_builddir) top_srcdir=$(top_srcdir) \
|
||||
abs_builddir=$(abs_builddir) abs_srcdir=$(abs_srcdir) \
|
||||
abs_top_builddir=$(abs_top_builddir) abs_top_srcdir=$(abs_top_srcdir)
|
||||
|
||||
# pkgmk: write the package to spool in build dir, to avoid root dependencies
|
||||
pkg_make = pkgmk -o -d @abs_builddir@ \
|
||||
pkg_make = pkgmk -o -d $(abs_builddir) \
|
||||
-f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars)
|
||||
|
||||
# pkgtrans: write a pkg file stream, shame we cant pipe directly to it from
|
||||
# pkgmk..
|
||||
pkg_trans = pkgtrans -s @abs_builddir@ "@abs_builddir@/$@"
|
||||
pkg_trans = pkgtrans -s $(abs_builddir) "$(abs_builddir)/$@"
|
||||
|
||||
# pkgmk can only cope with a single pkginfo, cant 'stack' various
|
||||
# pkginfo template files and a package specific pkginfo file in the prototype
|
||||
@ -95,7 +137,7 @@ frr.init: $(srcdir)/frr.init.in Makefile
|
||||
$(edit) $< > $@
|
||||
|
||||
# construct the pkg
|
||||
@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg: prototype.% \
|
||||
$(PACKAGE_TARNAME)-%-$(pkg_name_rev).pkg: prototype.% \
|
||||
depend.% frr.init pkginfo.%.full
|
||||
($(pkg_make) && \
|
||||
$(pkg_trans) "FRR$*")
|
||||
@ -103,22 +145,11 @@ frr.init: $(srcdir)/frr.init.in Makefile
|
||||
%.pkg.gz : %.pkg
|
||||
(gzip -c $< > $@)
|
||||
|
||||
# pkginfo.package and prototype.package are all built sources
|
||||
#BUILT_SOURCES = pkginfo.daemons pkginfo.dev pkginfo.doc pkginfo.libs \
|
||||
# prototype.daemons prototype.dev prototype.doc prototype.libs
|
||||
BUILT_SOURCES = $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \
|
||||
$(pkg_manifests) $(pkg_depends) frr.init
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES) $(pkg_packages)
|
||||
|
||||
EXTRA_DIST = $(pkg_manifests:%=%.in) $(pkg_prototypes:%=%.in) \
|
||||
$(pkg_names:%=pkginfo.%.tmpl.in) $(srcdir)/pkginfo.tmpl.in \
|
||||
$(pkg_depends:%=%.in) frr.init.in README.txt
|
||||
|
||||
pkg-root-install:
|
||||
(cd $(top_builddir) && \
|
||||
$(MAKE) DESTDIR=$(abs_builddir)/frr-root install)
|
||||
|
||||
packages: $(pkg_packages)
|
||||
|
||||
#nodist_pkgdata_DATA = $(pkg_packages)
|
||||
all-files: $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \
|
||||
$(pkg_manifests) $(pkg_depends) frr.init
|
||||
@ -1,4 +1,4 @@
|
||||
ARCH="@target_cpu@"
|
||||
ARCH="@host_cpu@"
|
||||
CATEGORY="system"
|
||||
VERSION="@PACKAGE_VERSION@,REV=@CONFDATE@"
|
||||
VENDOR="http://www.frrouting.org/"
|
||||
|
||||
53
solaris/subdir.am
Normal file
53
solaris/subdir.am
Normal file
@ -0,0 +1,53 @@
|
||||
#
|
||||
# solaris
|
||||
#
|
||||
|
||||
.PHONY: solaris/all
|
||||
if SOLARIS
|
||||
all: solaris/all
|
||||
solaris/all:
|
||||
@make -s -C solaris all
|
||||
endif
|
||||
|
||||
CLEANFILES += \
|
||||
solaris/frr.xml \
|
||||
solaris/frr.init \
|
||||
solaris/pkginfo.tmpl \
|
||||
solaris/prototype.daemons \
|
||||
solaris/prototype.dev \
|
||||
solaris/prototype.doc \
|
||||
solaris/prototype.libs \
|
||||
solaris/prototype.smf \
|
||||
solaris/pkginfo.daemons.tmpl \
|
||||
solaris/pkginfo.dev.tmpl \
|
||||
solaris/pkginfo.doc.tmpl \
|
||||
solaris/pkginfo.libs.tmpl \
|
||||
solaris/pkginfo.smf.tmpl \
|
||||
solaris/depend.daemons \
|
||||
solaris/depend.dev \
|
||||
solaris/depend.doc \
|
||||
solaris/depend.libs \
|
||||
solaris/depend.smf \
|
||||
# end
|
||||
|
||||
EXTRA_DIST += \
|
||||
solaris/frr.xml.in \
|
||||
solaris/frr.init.in \
|
||||
solaris/pkginfo.tmpl.in \
|
||||
solaris/prototype.daemons.in \
|
||||
solaris/prototype.dev.in \
|
||||
solaris/prototype.doc.in \
|
||||
solaris/prototype.libs.in \
|
||||
solaris/prototype.smf.in \
|
||||
solaris/pkginfo.daemons.tmpl.in \
|
||||
solaris/pkginfo.dev.tmpl.in \
|
||||
solaris/pkginfo.doc.tmpl.in \
|
||||
solaris/pkginfo.libs.tmpl.in \
|
||||
solaris/pkginfo.smf.tmpl.in \
|
||||
solaris/depend.daemons.in \
|
||||
solaris/depend.dev.in \
|
||||
solaris/depend.doc.in \
|
||||
solaris/depend.libs.in \
|
||||
solaris/depend.smf.in \
|
||||
solaris/README.txt \
|
||||
# end
|
||||
Loading…
Reference in New Issue
Block a user