[dpdk-dev] [PATCH v3 00/13] standard make install

Thomas Monjalon thomas.monjalon at 6wind.com
Thu Dec 3 14:45:27 CET 2015


Following the recent discussions, this is a proposal to have a standard
installation process while keeping compatibility with most of the old
behaviours.

v2 changes:
- fix default build dir
- RTE_TARGET subdir in $(sdkdir).
- better kerneldir defaults
- fix dpdk_nic_bind symlink
- always install doc if generated
- doc
- pkg/dpdk.spec

v3 changes:
- fix install in a clean dir
- take responsibility in MAINTAINERS

More details below and in the commit messages.

These variables can be overriden:

kerneldir   ?= /lib/modules/$(shell uname -r)/extra/dpdk
prefix      ?=     /usr/local
exec_prefix ?=      $(prefix)
bindir      ?= $(exec_prefix)/bin
sbindir     ?= $(exec_prefix)/sbin
libdir      ?= $(exec_prefix)/lib
includedir  ?=      $(prefix)/include/dpdk
datarootdir ?=      $(prefix)/share
docdir      ?=       $(datarootdir)/doc/dpdk
datadir     ?=       $(datarootdir)/dpdk
sdkdir      ?=                $(datadir)
targetdir   ?=                $(datadir)/$(RTE_TARGET)

All paths are prefixed with $(DESTDIR)

One rule install = install-runtime install-kmod install-sdk install-doc

--------

System-wise install example with
    DESTDIR=
    prefix=/usr
    kerneldir=/lib/modules/kver/extra

# make install-runtime
/usr/bin/testpmd
/usr/lib/libethdev*
/usr/lib/librte_*
/usr/sbin/dpdk_nic_bind -> /usr/share/dpdk/tools/dpdk_nic_bind.py
/usr/share/dpdk/tools/

# make install-kmod
/lib/modules/kver/extra/

# make install-sdk
/usr/include/dpdk/
/usr/share/dpdk/mk/
/usr/share/dpdk/scripts/
/usr/share/dpdk/x86_64-default-linuxapp-gcc/.config
/usr/share/dpdk/x86_64-default-linuxapp-gcc/include -> /usr/include/dpdk/
/usr/share/dpdk/x86_64-default-linuxapp-gcc/lib     -> /usr/lib/

# make install-doc
/usr/share/doc/dpdk/api/
/usr/share/doc/dpdk/guides/
/usr/share/dpdk/examples/

--------

Local install example with old (compatible) command:

# make install T=x86_64-native-linuxapp-gcc DESTDIR=install

would be equivalent to:

# make config T=x86_64-native-linuxapp-gcc 0=x86_64-native-linuxapp-gcc
# make O=x86_64-native-linuxapp-gcc
# make install O=x86_64-native-linuxapp-gcc prefix= DESTDIR=install

install/bin/testpmd
install/include/dpdk/
install/kmod/
install/lib/
install/sbin/dpdk_nic_bind -> ../share/dpdk/tools/dpdk_nic_bind.py
install/share/doc/dpdk/
install/share/dpdk/examples/
install/share/dpdk/mk/
install/share/dpdk/scripts/
install/share/dpdk/tools/
install/share/dpdk/x86_64-native-linuxapp-gcc/.config
install/share/dpdk/x86_64-native-linuxapp-gcc/include -> install/include/dpdk/
install/share/dpdk/x86_64-native-linuxapp-gcc/lib     -> install/lib/

It should be usable to build some applications as before:

# make -C examples/helloworld RTE_SDK=$(readlink -m install) RTE_TARGET=x86_64-native-linuxapp-gcc

The RTE_SDK directory must point to install/share/dpdk with a default install.

--------

Thomas Monjalon (13):
  mk: remove testall
  mk: remove multi-target install
  mk: move installation procedure in install rule
  mk: install a standard cutomizable tree
  mk: introduce new install syntax
  mk: split install rule
  mk: install kernel modules
  mk: install binding tool in sbin directory
  mk: install doc
  mk: install examples
  app/proc_info: rename binary with prefix
  pkg: update RPM with standard install
  maintainers: take responsibility for build system

 MAINTAINERS                                      |   2 +-
 app/proc_info/Makefile                           |   2 +-
 doc/build-sdk-quick.txt                          |  11 +-
 doc/guides/linux_gsg/build_dpdk.rst              |  16 ---
 doc/guides/prog_guide/dev_kit_root_make_help.rst |  28 +----
 doc/guides/sample_app_ug/proc_info.rst           |   8 +-
 mk/internal/rte.extvars.mk                       |   4 +
 mk/rte.sdkbuild.mk                               |  16 ---
 mk/rte.sdkinstall.mk                             | 150 +++++++++++++++++------
 mk/rte.sdkroot.mk                                |  11 +-
 mk/rte.sdktest.mk                                |   4 +-
 mk/rte.sdktestall.mk                             |  57 ---------
 mk/rte.vars.mk                                   |  10 +-
 pkg/dpdk.spec                                    |  59 +++------
 tools/setup.sh                                   |  31 ++---
 15 files changed, 167 insertions(+), 242 deletions(-)
 delete mode 100644 mk/rte.sdktestall.mk

-- 
2.5.2



More information about the dev mailing list