#!/usr/bin/make -f
+# FRRouting Configuration options
+######################################
+#
+# WANT_xxxx --> Set to 1 for enable, 0 for disable
+# The following are the defaults. They can be overridden by setting a
+# env variable to a different value
+
+WANT_LDP ?= 1
+WANT_PIM ?= 1
+WANT_OSPFAPI ?= 1
+WANT_BGP_VNC ?= 1
+WANT_CUMULUS_MODE ?= 0
+WANT_MULTIPATH ?= 1
+WANT_SNMP ?= 0
+
+# NOTES:
+#
+# If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here
+# Please be aware that 0 is NOT disabled, but treated as unlimited
+
+MULTIPATH ?= 256
+
+# Set the following to the value required (or leave alone for the default below)
+# WANT_FRR_USER is used for the username and groupname of the FRR user account
+
+WANT_FRR_USER ?= frr
+WANT_FRR_VTY_GROUP ?= frrvty
+
+# Don't build PDF docs by default
+GENERATE_PDF ?= 0
+
+#
+####################################
+
export DH_VERBOSE=1
-export DEB_BUILD_HARDENING=1
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DH_OPTIONS=-v
ifeq ($(WANT_SNMP), 1)
USE_SNMP=--enable-snmp
$(warning "DEBIAN: SNMP enabled, sorry for your inconvenience")
else
+ USE_SNMP=--disable-snmp
$(warning "DEBIAN: SNMP disabled, see README.Debian")
endif
+ifeq ($(WANT_LDP), 1)
+ USE_LDP=--enable-ldpd
+else
+ USE_LDP=--disable-ldpd
+endif
+
+ifeq ($(WANT_PIM), 1)
+ USE_PIM=--enable-pimd
+else
+ USE_PIM=--disable-pimd
+endif
+
+ifeq ($(WANT_OSPFAPI), 1)
+ USE_OSPFAPI=--enable-ospfapi=yes
+else
+ USE_OSPFAPI=--enable-ospfapi=no
+endif
+
+ifeq ($(WANT_BGP_VNC), 1)
+ USE_BGP_VNC=--enable-bgp-vnc=yes
+else
+ USE_BGP_VNC=--enable-bgp-vnc=no
+endif
+
+USE_FRR_USER=--enable-user=$(WANT_FRR_USER)
+USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER)
+USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP)
+
+ifeq ($(WANT_MULTIPATH), 1)
+ USE_MULTIPATH=--enable-multipath=$(MULTIPATH)
+else
+ USE_MULTIPATH=--disable-multipath
+endif
+
+ifeq ($(WANT_CUMULUS_MODE), 1)
+ USE_CUMULUS=--enable-cumulus=yes
+else
+ USE_CUMULUS=--enable-cumulus=no
+endif
+
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
$(USE_SNMP) \
- --enable-ospfapi=yes \
- --enable-vtysh=yes \
- --enable-isisd=yes \
- --enable-multipath=256 \
- --enable-user=frr \
- --enable-group=frr \
- --enable-vty-group=frrvty \
+ $(USE_OSPFAPI) \
+ $(USE_MULTIPATH) \
+ $(USE_LDP) \
+ --enable-fpm \
+ $(USE_FRR_USER) $(USE_FRR_GROUP) \
+ $(USE_FRR_VTY_GROUP) \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
- --enable-werror \
- --enable-gcc-rdynamic \
--with-libpam \
--enable-systemd=no \
--enable-poll=yes \
- --enable-cumulus=yes \
- --enable-pimd=no \
+ $(USE_CUMULUS) \
+ $(USE_PIM) \
+ --disable-bfdd \
--enable-dependency-tracking \
- --disable-rr-semantics; \
+ $(USE_BGP_VNC) \
+ $(shell dpkg-buildflags --export=configure); \
fi
override_dh_auto_build:
- #dh_auto_build
- $(MAKE)
- dh_auto_build -- -C doc draft-zebra-00.txt
-
-
- # doc/ is a bit crazy
ifeq ($(GENERATE_PDF), 1)
- dh_auto_build -- -C doc frr.pdf || true # pdfetex fails with exit code 1 but still produces a good looking .pdf
+ dh_auto_build -- -C doc pdf
endif
- rm -vf doc/frr.info
- dh_auto_build -- -C doc frr.info
- rm -vf doc/frr.info.html*
+ rm -vf doc/user/_build/texinfo/frr.info
+ dh_auto_build -- -C doc info
override_dh_auto_test:
override_dh_auto_install:
dh_auto_install
+ # installed in frr-pythontools
+ rm debian/tmp/usr/lib/frr/frr-reload.py
+
# cleaning up the info dir
rm -f debian/tmp/usr/share/info/dir*
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*
- # installing the Frr specific SNMP MIB
- install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB
+ # leftover from previously shipping SMUX client OID MIB
+ mkdir -p debian/tmp/usr/share/snmp/mibs
# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
-
+ sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la