mirror_frr/debianpkg/rules
David Lamparter 8f196a8b3c debianpkg: always install /etc/init.d/frr
There is no point in making this conditional, systemd correctly prefers
the service file over the init script when it is present.  Also, people
can install an init system that doesn't match their distribution and
even change init systems on an installation.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-02-19 21:30:51 +01:00

184 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
# 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
# add build deps: texlive-latex-base, texlive-generic-recommended
GENERATE_PDF ?= 0
#
####################################
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
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_WERROR), 1)
USE_WERROR=--enable-werror
else
USE_WERROR=--disable-werror
endif
#
# generic debian options
#
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
ifdef DEBIAN_JOBS
MAKEFLAGS += -j$(DEBIAN_JOBS)
endif
ifneq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
MAKE_SILENT="V=0"
export DH_VERBOSE=0
else
MAKE_SILENT="V=1"
export DH_VERBOSE=1
export DH_OPTIONS=-v
endif
#
# build profiles
#
ifeq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
USE_DOC=--enable-doc
else
USE_DOC=--disable-doc
endif
ifeq ($(filter pkg.frr.rtrlib,$(DEB_BUILD_PROFILES)),)
USE_RPKI=--disable-rpki
else
USE_RPKI=--enable-rpki
endif
ifeq ($(filter pkg.frr.snmp,$(DEB_BUILD_PROFILES)),)
USE_SNMP=--disable-snmp
else
USE_SNMP=--enable-snmp
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
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 \
--with-vtysh-pager=/usr/bin/pager \
$(USE_DOC) \
$(USE_SNMP) \
$(USE_OSPFAPI) \
$(USE_MULTIPATH) \
--disable-fpm \
--disable-zeromq \
$(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
endif
cp tools/frr debian/frr.init
# 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*
# drop dev-only files
find debian/tmp -name '*.la' -o -name '*.a' -o -name 'lib*.so' | xargs rm -f
rm -rf debian/tmp/usr/include
override_dh_auto_build:
dh_auto_build -- $(MAKE_SILENT)
override_dh_missing:
dh_missing --fail-missing
override_dh_auto_clean:
# we generally do NOT want a full distclean since that wipes both
# debianpkg/changelog and config.version
if test -f Makefile; then make redistclean; fi