mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-06 07:51:29 +00:00

The debianpkg/backports system is rather complicated and actually slows down Debian package building quite a lot since the backports/rules file is evaluated a zillion times during a normal build. This just folds up everything into a single Debian package build that works on all OSes. The only real difference that the backports stuff was used for is switching between systemd and init.d, the latter for Ubuntu 12.04 and 14.04. With this, that switch is controlled by the pkg.frr.nosystemd Build-Profile instead. Package builds for Ubuntu 14.04 need to supply the -Ppkg.frr.nosystemd option to dpkg-buildpackage. (12.04 isn't supported anymore anyway.) Note that the update-rc.d step that was previously coded into postinst/postrm is now handled by the dh_installinit magic. Other than this, there were some minor build dependency differences, all of which are now just handled as | in the central deps. Signed-off-by: David Lamparter <equinox@diac24.net>
165 lines
4.2 KiB
Makefile
Executable File
165 lines
4.2 KiB
Makefile
Executable File
#!/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
|
|
|
|
# -Werror - don't enable this unless you're doing a dev package build
|
|
WANT_WERROR ?= 0
|
|
|
|
WANT_OSPFAPI ?= 1
|
|
WANT_BGP_VNC ?= 1
|
|
WANT_CUMULUS_MODE ?= 0
|
|
WANT_MULTIPATH ?= 1
|
|
WANT_SNMP ?= 0
|
|
WANT_RPKI ?= 0
|
|
|
|
# NOTES:
|
|
#
|
|
# If you use WANT_RPKI, then there is a new dependency for librtr0 package
|
|
# and a build dependency of the librtr-dev package.
|
|
# While the librtr0 is added to the depenencies automatically, the build
|
|
# dependency can't be changed dynamically and building will fail if the
|
|
# librtr-dev isn't installed during package build
|
|
# Tested versions of both packages can be found at
|
|
# https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
|
|
#
|
|
# 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
|
|
# add build deps: texlive-latex-base, texlive-generic-recommended
|
|
GENERATE_PDF ?= 0
|
|
|
|
#
|
|
####################################
|
|
|
|
export DH_VERBOSE=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_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
|
|
|
|
ifeq ($(WANT_RPKI), 1)
|
|
USE_RPKI=--enable-rpki
|
|
else
|
|
USE_RPKI=--disable-rpki
|
|
endif
|
|
|
|
ifeq ($(WANT_WERROR), 1)
|
|
USE_WERROR=--enable-werror
|
|
else
|
|
USE_WERROR=--disable-werror
|
|
endif
|
|
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
endif
|
|
|
|
ifdef DEBIAN_JOBS
|
|
MAKEFLAGS += -j$(DEBIAN_JOBS)
|
|
endif
|
|
|
|
ifeq ($(filter pkg.frr.nosystemd,$(DEB_BUILD_PROFILES)),)
|
|
DH_WITH_SYSTEMD=systemd,
|
|
USE_SYSTEMD=--enable-systemd=yes
|
|
else
|
|
DH_WITH_SYSTEMD=
|
|
USE_SYSTEMD=--enable-systemd=no
|
|
endif
|
|
|
|
%:
|
|
dh $@ --with=$(DH_WITH_SYSTEMD)autoreconf --parallel --dbg-package=frr-dbg --list-missing
|
|
|
|
override_dh_auto_configure:
|
|
if ! [ -e config.status ]; then \
|
|
dh_auto_configure -- \
|
|
--enable-exampledir=/usr/share/doc/frr/examples/ \
|
|
--localstatedir=/var/run/frr \
|
|
--sbindir=/usr/lib/frr \
|
|
--sysconfdir=/etc/frr \
|
|
$(USE_SNMP) \
|
|
$(USE_OSPFAPI) \
|
|
$(USE_MULTIPATH) \
|
|
--enable-fpm \
|
|
$(USE_FRR_USER) $(USE_FRR_GROUP) \
|
|
$(USE_FRR_VTY_GROUP) \
|
|
--enable-configfile-mask=0640 \
|
|
--enable-logfile-mask=0640 \
|
|
$(USE_WERROR) \
|
|
--with-libpam \
|
|
$(USE_SYSTEMD) \
|
|
$(USE_CUMULUS) \
|
|
--disable-dependency-tracking \
|
|
$(USE_BGP_VNC) \
|
|
$(USE_RPKI) \
|
|
$(shell dpkg-buildflags --export=configure); \
|
|
fi
|
|
|
|
override_dh_auto_install:
|
|
dh_auto_install
|
|
|
|
# installed in frr-pythontools
|
|
rm debian/tmp/usr/lib/frr/frr-reload.py
|
|
|
|
# let dh_systemd_* and dh_installinit do their thing automatically
|
|
ifeq ($(filter pkg.frr.nosystemd,$(DEB_BUILD_PROFILES)),)
|
|
cp tools/frr.service debian/frr.service
|
|
else
|
|
cp tools/frr debian/frr.init
|
|
endif
|
|
|
|
# install config files
|
|
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*
|
|
|
|
# we don't need .la files
|
|
rm debian/tmp/usr/lib/*.la
|
|
rm debian/tmp/usr/lib/frr/modules/*.la
|
|
rm debian/tmp/usr/lib/frr/libyang_plugins/*.la
|