Add option to build without multi-buffer crypto.

JIRA VPP-498

This patch also allows RPMs to be built without multi-
buffer crypto for some RPM based downstream distros that
don't have sufficiently new nasm or don't have an USA
export license for multi-buffer crypto.

The default is to build WITH multi-buffer crypto
for x86-64. This patch allows optional building without
multi-buffer crypto.

To build without multi-buffer crypto, set the AESNI
environment variable to n.
To build rpm packages without multi-buffer crypto,
build the rpms with the option turned off.

make build AESNI=n

or..

make pkg-rpm --without aesni

---How to test this patch on a Centos build.---

Build as above and verify that nasm isn't executed during
the build process.
vpp may be installed and the dpdk plugin may be inspected to
verify that the multi-buffer code isn't present.

Change-Id: I8c5cfd4cdd9eb2b96772a687eaa54560806e001b
Signed-off-by: Thomas F Herbert <therbert@redhat.com>
This commit is contained in:
Thomas F Herbert
2017-08-29 16:07:51 -04:00
committed by Sergio Gonzalez Monroy
parent d9226b25f1
commit 4b0ac82a73
3 changed files with 15 additions and 5 deletions

@ -17,6 +17,7 @@ CCACHE_DIR?=$(BR)/.ccache
GDB?=gdb
PLATFORM?=vpp
SAMPLE_PLUGIN?=no
export AESNI?=y
,:=,
define disable_plugins
@ -94,7 +95,7 @@ endif
RPM_DEPENDS += chrpath libffi-devel rpm-build
ifeq ($(OS_ID),fedora)
RPM_DEPENDS += nasm
else
else ifeq ($(findstring y,$(AESNI)),y)
RPM_DEPENDS += https://kojipkgs.fedoraproject.org//packages/nasm/2.12.02/2.fc26/x86_64/nasm-2.12.02-2.fc26.x86_64.rpm
endif

@ -34,14 +34,13 @@ DPDK_17.08_TARBALL_MD5_CKSUM := 0641f59ea8ea98afefa7cfa2699f6241
DPDK_SOURCE := $(B)/dpdk-$(DPDK_VERSION)
MACHINE=$(shell uname -m)
AESNI ?= n
ISA_L_CRYPTO_LIB := n
IPSEC_MB_VER ?= 0.46
ISA_L_CRYPTO_VER := 2.18.0
ifeq ($(MACHINE),$(filter $(MACHINE),x86_64))
AESNI = y
AESNI ?= y
# DPDK pre 17.08 depends on ISA-L Crypto library for GCM PMD
ifneq ($(firstword $(sort $(DPDK_VERSION), 17.08)), 17.08)
ISA_L_CRYPTO_LIB = y
@ -49,6 +48,8 @@ AESNI = y
$(info Building ISA-L Crypto $(ISA_L_CRYPTO_VER) library)
endif
$(info Building IPSec-MB $(IPSEC_MB_VER) library)
else
AESNI ?= N
endif
AESNIMB_LIB_TARBALL := v$(IPSEC_MB_VER).tar.gz

@ -1,3 +1,4 @@
%bcond_without aesni
%define _vpp_build_dir build-tool-native
%define _unitdir /lib/systemd/system
%define _topdir %(pwd)
@ -41,7 +42,9 @@ BuildRequires: python-devel, python-virtualenv
%endif
BuildRequires: glibc-static, java-1.8.0-openjdk, java-1.8.0-openjdk-devel yum-utils, redhat-lsb
BuildRequires: apr-devel
%if %{with aesni}
BuildRequires: nasm
%endif
BuildRequires: numactl-devel
BuildRequires: autoconf automake libtool byacc bison flex
@ -120,8 +123,13 @@ This package contains the python bindings for the vpp api
groupadd -f -r vpp
%build
make bootstrap
make -C build-root PLATFORM=vpp TAG=%{_vpp_tag} install-packages
%if %{with aesni}
make bootstrap
make -C build-root PLATFORM=vpp TAG=%{_vpp_tag} install-packages
%else
make bootstrap AESNI=n
make -C build-root PLATFORM=vpp AESNI=n TAG=%{_vpp_tag} install-packages
%endif
cd %{_mu_build_dir}/../src/vpp-api/python && %py2_build
%install