From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <thomas.monjalon@6wind.com>
Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42])
 by dpdk.org (Postfix) with ESMTP id 4FED58D85
 for <dev@dpdk.org>; Wed,  2 Dec 2015 04:59:17 +0100 (CET)
Received: by wmww144 with SMTP id w144so39973222wmw.0
 for <dev@dpdk.org>; Tue, 01 Dec 2015 19:59:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=from:to:cc:subject:date:message-id;
 bh=FDQM2t9svO/QvFrHQOJIiEUbv/BsXFwxgPyY7bF7p2I=;
 b=Vjv5lXZjy8xvykoRvOQYg2BgrHunEscbOS0Ve8MgZAVjhie9BzlPaDsn+QBIyZ7AaO
 f05cd1o/xJZ6iMjUulr2xbFedad8M2aHX8S4nu2wdu0N9uhd3ImXAv39/M+wDGT6Ng3/
 KUIt1/tjrFIlYyBVz0dALfYuFllb19LS3DjkEbOApf0ZF5vNeoVlDVTgYR8g4PGcbShP
 sgdwT3Ve+PW9IAuPVxLoC1x3aFt5sFhBwTyuNJaphWePyhggfyJfuHqcGM2UYtCkh350
 T3q1Vy0ugQbYmIgiBOnG8lPA0F8Cy159W+9XXKNlLJMB4GsauP7XsbmT/leX6vMpr6hi
 PPFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=FDQM2t9svO/QvFrHQOJIiEUbv/BsXFwxgPyY7bF7p2I=;
 b=gsS2+U0joTG1fFCJTRU+ITYOc6gb7dwA+MQWXd+i5/1TbHV3DgGerEr592DX0SXbeb
 nSB4Nn9Pac2h/1bYt97WEFKxF5kxVrpoKqiF7H7y6ojImYCQWkp8owzuzF5G1jgj9hTl
 ET9ztF9yLCUl8FWoZUj5wCY4wzOMzFRjexOAj4pDBsgFg6G0gkLuKFdB50U08qg8zzUb
 UowQC2h3ehpMbuuyQ6Q64QA/aLurvG65foCfA1jJmXVY6taq5f+3Ev766yPJX51fKxul
 0D7M95oG90lHPgAwKl6ruoN4N8e537aSGW1YdAQWJHw15NuYo3hvArV+OCw6xIPPtIIJ
 9Dkw==
X-Gm-Message-State: ALoCoQkPs8X6h8ceiFBP9T4OlLiEpwXi+YSvqK3D3yyuwBLbdzi0rfSVrTJ0GK12JkYnp/DpSCtb
X-Received: by 10.28.1.8 with SMTP id 8mr2551602wmb.40.1449028757125;
 Tue, 01 Dec 2015 19:59:17 -0800 (PST)
Received: from XPS13.ibrowse.com ([93.158.52.3])
 by smtp.gmail.com with ESMTPSA id h5sm783942wjz.21.2015.12.01.19.59.15
 (version=TLSv1/SSLv3 cipher=OTHER);
 Tue, 01 Dec 2015 19:59:16 -0800 (PST)
From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: dev@dpdk.org
Date: Wed,  2 Dec 2015 04:57:46 +0100
Message-Id: <1449028676-19232-1-git-send-email-thomas.monjalon@6wind.com>
X-Mailer: git-send-email 2.5.2
Subject: [dpdk-dev] [PATCH 00/10] standard make install
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Dec 2015 03:59:17 -0000

Following the recent discussions, this is a proposal to have a standard
installation process while keeping compatibility with most of the old
behaviours.
Thank you Mario and Bruce for having submitted other proposals.
I hope there will be a strong consensus for this one.
The doc and pkg/dpdk.spec are not updated yet. There will be a v2.

More details below and in the commit messages.

These variables can be overriden:

prefix ?= /usr/local
exec_prefix ?= $(prefix)
kerneldir ?= $(exec_prefix)/kmod
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)

All paths are prefixed with $(DESTDIR)

One rule install = install-runtime install-kmod install-sdk
In current behaviour, the doc is not installed by default.

--------

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/.config
/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/include -> /usr/include/dpdk/
/usr/share/dpdk/lib     -> /usr/lib/

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

--------

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/dpdk/.config
install/share/dpdk/include -> install/include/dpdk/
install/share/dpdk/lib     -> install/lib/
install/share/dpdk/mk/
install/share/dpdk/scripts/
install/share/dpdk/tools/

It must 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.
RTE_TARGET was used to get the include and lib directories but is useless now.

--------

Thomas Monjalon (10):
  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

 app/proc_info/Makefile     |   2 +-
 doc/build-sdk-quick.txt    |  11 ++--
 mk/internal/rte.extvars.mk |   8 +++
 mk/rte.sdkbuild.mk         |  16 ------
 mk/rte.sdkinstall.mk       | 134 +++++++++++++++++++++++++++++++--------------
 mk/rte.sdkroot.mk          |   6 +-
 mk/rte.vars.mk             |   7 ---
 7 files changed, 113 insertions(+), 71 deletions(-)

-- 
2.5.2