summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@gmail.com>2016-09-21 16:10:02 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2016-09-22 10:57:37 +0100
commitc154d808612e977e2dc6fcd198889fbb66865d13 (patch)
treeba22927032ee43b652c09716949b702e971ba803
parent103ddb445e7ffef5f565783f67c67b0390774180 (diff)
Allow DPDK_CONFIG, RTE_MACHINE, RTE_TARGET overrides
Parse DEB_BUILD_OPTIONS and let users override the defaults. If DPDK_CONFIG is overridden, allow users to store it in the debian/ directory, to avoid modifying the upstream tree, and also avoid modifying it during dh_auto_configure. Change-Id: I6b4f449a36ab079fab271b5930b020fbafc24905 Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
-rwxr-xr-xdebian/rules19
1 files changed, 18 insertions, 1 deletions
diff --git a/debian/rules b/debian/rules
index 768203f5..064ffc3b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -33,7 +33,17 @@ export EXTRA_HOST_LDFLAGS=$(LDFLAGS)
export RTE_DEVEL_BUILD=n
# People rebuilding this package can overwrite DPDK_CONFIG, RTE_MACHINE and
-# RTE_TARGET via environment variables if they like
+# RTE_TARGET via DEB_BUILD_OPTIONS if they like
+ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS)))
+ DPDK_CONFIG ?= $(patsubst dpdk_config=%,%,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS)))
+endif
+ifneq (,$(filter rte_machine=%,$(DEB_BUILD_OPTIONS)))
+ RTE_MACHINE ?= $(patsubst rte_machine=%,%,$(filter rte_machine=%,$(DEB_BUILD_OPTIONS)))
+endif
+ifneq (,$(filter rte_target=%,$(DEB_BUILD_OPTIONS)))
+ RTE_TARGET ?= $(patsubst rte_target=%,%,$(filter rte_target=%,$(DEB_BUILD_OPTIONS)))
+endif
+
ifneq (,$(filter $(DEB_HOST_ARCH), arm64))
DPDK_CONFIG ?= "arm64-armv8a-linuxapp-gcc"
RTE_MACHINE ?= "armv8a"
@@ -100,13 +110,19 @@ override_dh_auto_clean:
rm -rf debian/build debian/tmp debian/dpdk-modules-* \
debian/control.modules debian/VERSION
sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control
+ test -L config/defconfig_$(DPDK_CONFIG) && rm -f config/defconfig_$(DPDK_CONFIG) || true
override_dh_auto_configure:
+ # Add support for a custom defconfig file in the debian directory.
+ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS)))
+ test -e config/defconfig_$(DPDK_CONFIG) || ln -fs ../debian/defconfig_$(DPDK_CONFIG) config/defconfig_$(DPDK_CONFIG)
+endif
# report dpkg-buildflags status to build log
dpkg-buildflags --status
echo EXTRA_CFLAGS $$EXTRA_CFLAGS
echo EXTRA_LDFLAGS: $$EXTRA_LDFLAGS
$(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
+ifeq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS)))
sed -ri -e 's,(RTE_MACHINE=).*,\1$(RTE_MACHINE),' \
-e 's,(RTE_NEXT_ABI=).*,\1n,' \
-e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1$(DPDK_CONFIG_BUILD_KMOD),' \
@@ -118,6 +134,7 @@ override_dh_auto_configure:
ifneq (,$(filter $(DEB_HOST_ARCH), ppc64el))
sed -ri -e 's,(LIBRTE_PMD_XENVIRT=).*,\1n,' $(DPDK_STATIC_DIR)/.config
endif
+endif
dh_auto_configure
override_dh_auto_build-indep: