All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: dev@dpdk.org
Subject: [PATCH v3 00/13] standard make install
Date: Thu,  3 Dec 2015 14:45:27 +0100	[thread overview]
Message-ID: <1449150340-21984-1-git-send-email-thomas.monjalon@6wind.com> (raw)
In-Reply-To: <1449118929-19962-1-git-send-email-thomas.monjalon@6wind.com>

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

  parent reply	other threads:[~2015-12-03 13:46 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02  3:57 [PATCH 00/10] standard make install Thomas Monjalon
2015-12-02  3:57 ` [PATCH 01/10] mk: remove multi-target install Thomas Monjalon
2015-12-02  3:57 ` [PATCH 02/10] mk: move installation procedure in install rule Thomas Monjalon
2015-12-02  3:57 ` [PATCH 03/10] mk: install a standard cutomizable tree Thomas Monjalon
2015-12-02 10:27   ` Panu Matilainen
2015-12-02 11:25     ` Thomas Monjalon
2015-12-02 12:54       ` Panu Matilainen
2015-12-02 13:05         ` Thomas Monjalon
2015-12-02 13:29           ` Panu Matilainen
2015-12-02  3:57 ` [PATCH 04/10] mk: introduce new install syntax Thomas Monjalon
2015-12-02  3:57 ` [PATCH 05/10] mk: split install rule Thomas Monjalon
2015-12-02  3:57 ` [PATCH 06/10] mk: install kernel modules Thomas Monjalon
2015-12-02  9:53   ` Panu Matilainen
2015-12-02 10:09     ` Thomas Monjalon
2015-12-02  3:57 ` [PATCH 07/10] mk: install binding tool in sbin directory Thomas Monjalon
2015-12-02  9:58   ` Panu Matilainen
2015-12-02  3:57 ` [PATCH 08/10] mk: install doc Thomas Monjalon
2015-12-02  3:57 ` [PATCH 09/10] mk: install examples Thomas Monjalon
2015-12-02  3:57 ` [PATCH 10/10] app/proc_info: rename binary with prefix Thomas Monjalon
2015-12-02  7:44 ` [PATCH 00/10] standard make install Panu Matilainen
2015-12-02  9:25   ` Thomas Monjalon
2015-12-02  9:47     ` Panu Matilainen
2015-12-02 10:07       ` Thomas Monjalon
2015-12-03  5:01 ` [PATCH v2 00/12] " Thomas Monjalon
2015-12-03  5:01   ` [PATCH v2 01/12] mk: remove testall Thomas Monjalon
2015-12-03  5:01   ` [PATCH v2 02/12] mk: remove multi-target install Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 03/12] mk: move installation procedure in install rule Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 04/12] mk: install a standard cutomizable tree Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 05/12] mk: introduce new install syntax Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 06/12] mk: split install rule Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 07/12] mk: install kernel modules Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 08/12] mk: install binding tool in sbin directory Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 09/12] mk: install doc Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 10/12] mk: install examples Thomas Monjalon
2015-12-03 13:19     ` Panu Matilainen
2015-12-03 13:32       ` Thomas Monjalon
2015-12-03 13:35         ` Panu Matilainen
2015-12-03  5:02   ` [PATCH v2 11/12] app/proc_info: rename binary with prefix Thomas Monjalon
2015-12-03  5:02   ` [PATCH v2 12/12] pkg: update RPM with standard install Thomas Monjalon
2015-12-03 10:57   ` [PATCH v2 00/12] standard make install Bruce Richardson
2015-12-03 11:02     ` Thomas Monjalon
2015-12-03 11:06       ` Thomas Monjalon
2015-12-03 11:10         ` Bruce Richardson
2015-12-03 11:07       ` Bruce Richardson
2015-12-03 13:26   ` Panu Matilainen
2015-12-03 13:34     ` Thomas Monjalon
2015-12-03 15:52       ` Arevalo, Mario Alfredo C
2015-12-03 13:45   ` Thomas Monjalon [this message]
2015-12-03 13:45     ` [PATCH v3 01/13] mk: remove testall Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 02/13] mk: remove multi-target install Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 03/13] mk: move installation procedure in install rule Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 04/13] mk: install a standard cutomizable tree Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 05/13] mk: introduce new install syntax Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 06/13] mk: split install rule Thomas Monjalon
2015-12-07 23:22       ` Arevalo, Mario Alfredo C
2015-12-07 23:51         ` Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 07/13] mk: install kernel modules Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 08/13] mk: install binding tool in sbin directory Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 09/13] mk: install doc Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 10/13] mk: install examples Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 11/13] app/proc_info: rename binary with prefix Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 12/13] pkg: update RPM with standard install Thomas Monjalon
2015-12-03 13:45     ` [PATCH v3 13/13] maintainers: take responsibility for build system Thomas Monjalon
2015-12-04  9:40       ` Olivier MATZ
2015-12-03 15:31     ` [PATCH v3 00/13] standard make install Bruce Richardson
2015-12-03 17:05       ` Thomas Monjalon
2015-12-06 15:00     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1449150340-21984-1-git-send-email-thomas.monjalon@6wind.com \
    --to=thomas.monjalon@6wind.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.