summaryrefslogtreecommitdiffstats
path: root/debian/rules
blob: 74573c9a0e5d81667d611af7f642fdf6a017727b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/make -f

# standard Debian options & profiles

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

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

# package-specific build profiles

ifeq ($(filter pkg.frr.nortrlib,$(DEB_BUILD_PROFILES)),)
  CONF_RPKI=--enable-rpki
else
  CONF_RPKI=--disable-rpki
endif

ifeq ($(filter pkg.frr.lua,$(DEB_BUILD_PROFILES)),)
  CONF_LUA=--disable-scripting
else
  CONF_LUA=--enable-scripting
endif

ifeq ($(filter pkg.frr.nopim6d,$(DEB_BUILD_PROFILES)),)
  CONF_PIM6=--enable-pim6d
else
  CONF_PIM6=--disable-pim6d
endif

ifeq ($(filter pkg.frr.grpc,$(DEB_BUILD_PROFILES)),)
  CONF_GRPC=--disable-grpc
else
  CONF_GRPC=--enable-grpc
endif

export PYTHON=python3

%:
	dh $@ -Bbuild --with=sphinxdoc

override_dh_auto_configure:
	$(shell dpkg-buildflags --export=sh); \
	dh_auto_configure -- \
		--sbindir=/usr/lib/frr \
		--with-vtysh-pager=/usr/bin/pager \
		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH)/frr \
		--with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/frr/modules \
		LIBTOOLFLAGS="-rpath /usr/lib/$(DEB_HOST_MULTIARCH)/frr" \
		--disable-dependency-tracking \
		\
		$(CONF_RPKI) \
		$(CONF_LUA) \
		$(CONF_PIM6) \
		$(CONF_GRPC) \
		--with-libpam \
		--enable-doc \
		--enable-doc-html \
		--enable-snmp \
		--enable-fpm \
		--disable-protobuf \
		--disable-zeromq \
		--enable-ospfapi \
		--enable-bgp-vnc \
		--enable-multipath=256 \
		--enable-pcre2posix \
		\
		--enable-user=frr \
		--enable-group=frr \
		--enable-vty-group=frrvty \
		--enable-configfile-mask=0640 \
		--enable-logfile-mask=0640 \
		# end

override_dh_auto_install:
	dh_auto_install

	sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/frr-reload.py
	sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/generate_support_bundle.py
	sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/frr_babeltrace.py
	sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/ospfclient.py

# let dh_systemd_* and dh_installinit do their thing automatically
	cp build/tools/frr.service debian/frr.service
	cp build/tools/frr@.service debian/frr@.service
	cp build/tools/frrinit.sh debian/frr.init
	-rm -f debian/tmp/usr/lib/frr/frr

# install config files
	mkdir -p debian/tmp/etc
	cp -r tools/etc/* debian/tmp/etc/
	-rm debian/tmp/etc/frr/daemons.conf

# 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
	-rm debian/tmp/usr/lib/frr/ssd

override_dh_auto_build:
	dh_auto_build -- $(MAKE_SILENT)

override_dh_installinit:
	dh_installinit -r

override_dh_installsystemd:
	dh_installsystemd -r

override_dh_makeshlibs:
	dh_makeshlibs -n

override_dh_missing:
	dh_missing --fail-missing

ifneq ($(filter nocheck,$(DEB_BUILD_PROFILES) $(DEB_BUILD_OPTIONS)),)
override_dh_auto_test:
	true
endif

override_dh_auto_clean:
# we generally do NOT want a full distclean since that wipes both
# debian/changelog and config.version
	if test -f Makefile; then make redistclean; fi
	-rm -f debian/frr.init
	-rm -f debian/frr.service
	-rm -f debian/frr@.service