From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <mario.alfredo.c.arevalo@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id 1E07B8D3D
 for <dev@dpdk.org>; Tue,  1 Dec 2015 01:53:06 +0100 (CET)
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by fmsmga103.fm.intel.com with ESMTP; 30 Nov 2015 16:53:05 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.20,366,1444719600"; d="scan'208";a="610300632"
Received: from mcarril6-mobl.zpn.intel.com ([10.219.16.33])
 by FMSMGA003.fm.intel.com with ESMTP; 30 Nov 2015 16:53:03 -0800
From: Mario Carrillo <mario.alfredo.c.arevalo@intel.com>
To: dev@dpdk.org
Date: Mon, 30 Nov 2015 18:53:14 -0600
Message-Id: <1448931205-17357-1-git-send-email-mario.alfredo.c.arevalo@intel.com>
X-Mailer: git-send-email 2.6.3
In-Reply-To: <1442608390-12537-1-git-send-email-mario.alfredo.c.arevalo@intel.com>
References: <1442608390-12537-1-git-send-email-mario.alfredo.c.arevalo@intel.com>
Cc: jos.c.venegas.munoz@intel.com
Subject: [dpdk-dev] [PATCH v7 00/11] Add installation rules for dpdk files.
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: Tue, 01 Dec 2015 00:53:07 -0000

DPDK package lacks of a mechanism to install libraries, headers
applications, kernel modules and sdk files to a file system tree.
This patch set allows to install files based on the next
proposal:
http://www.freedesktop.org/software/systemd/man/file-hierarchy.html

v7:
When "make install" is invoked if "T" variable is defined,
the installation process will have the current
behaviour, else "install-fhs" rule will be called.

Using rules support is possible to do the next steps:

make config T=<config template>
make
make <install target>

Modify the makefile target to specify the files
that will be installed using a rule:

* make install-bin (install app files)(dafault path bindir=$(exec_prefix)/bin).

* make install-headers (install headers)(dafault path includedir=$(prefix)/include/dpdk).

* make install-lib (install libraries)(dafault path libdir=$(exec_prefix)/lib).

* make install-doc (install documentation)(dafault path docdir=$(datarootdir)/doc/dpdk).

* make install-mod (install modules)(dafault path if RTE_EXEC_ENV=linuxapp then
                kerneldir=/lib/modules/$(uname -r)/extra/drivers/dpdk else kerneldir=/boot/modules).

* make install-sdk (install headers, makefiles, scripts,examples and
                config files) (default path sdkdir=$(datadir)/share/dpdk).

* make install-fhs (install  libraries, modules, app files,
                nic bind files (tools) and documentation).

* make install (if T is defined current behaviour, else it will call install-fhs rule).

where prefix=/usr/local, exec_prefix=$(prefix), datarootdir=$(prefix)/share, and datadir=$(datarootdir)/dpdk by default.

Also you can use the DESTDIR var.
All directory variables mentioned above can be overridden
(bindir, libdir, includedir, docidr, kerneldir, prefix, exec_prefix and data).

Furthermore this information is added to documentation.


v6:
When "make install" is invoked if "T" variable is defined,
the installation process will have the current
behaviour, else "install-fhs" rule will be called.

Using rules support is possible to do the next steps:

make config T=<config template>
make
make <install target>

Modify the makefile target to specify the files
that will be installed using a rule:

* make install-bin (install app files)(dafault path BIN_DIR=$(RTE_PREFIX)/bin).

* make install-headers (install headers)(dafault path INCLUDE_DIR=$(RTE_PREFIX)/include/dpdk).

* make install-lib (install libraries)(dafault path LIB_DIR=$(RTE_PREFIX)/lib).

* make install-doc (install documentation)(dafault path DOC_DIR=$(RTE_PREFIX)/share/doc/dpdk).

* make install-mod (install modules)(dafault path if RTE_EXEC_ENV=linuxapp then
                KMOD_DIR=/lib/modules/$(uname -r)/extra/drivers/dpdk else KMOD_DIR=/boot/modules).

* make install-sdk (install headers, makefiles, scripts,examples, tools and
                config files) (default path DATA_DIR=$(RTE_PREFIX)/share/dpdk).

* make install-fhs (install  libraries, modules, app files,
                nic bind files and documentation).

* make install (if T is defined current behaviour, else it will call install-fhs rule )

where RTE_PREFIX=/usr/local by default.

Also you can use the DESTDIR var.
All directory variables mentioned above can be overridden
(BIN_DIR, LIB_DIR, INCLUDE_DIR, DOC_DIR, KMOD_DIR, RTE_PREFIX and DATA_DIR).

Furthermore this information is added to documentation.


v5:

When "make install" is invoked if "T" variable is defined,
the installation process will have the current
behaviour, else "install-fhs" rule will be called.

Using rules support is possible to do the next steps:

make config T=<config template>
make
make <install target>

Modify the makefile target to specify the files
that will be installed using a rule:

* make install-bin (install app files)(dafault path BIN_DIR=$(RTE_PREFIX)/bin).

* make install-headers (install headers)(dafault path INCLUDE_DIR=$(RTE_PREFIX)/include/dpdk).

* make install-lib (install libraries)(dafault path LIB_DIR=$(RTE_PREFIX)/lib).

* make install-doc (install documentation)(dafault path DOC_DIR=$(RTE_PREFIX)/share/doc/dpdk).

* make install-mod (install modules)(dafault path if RTE_EXEC_ENV=linuxapp then
                KMOD_DIR=/lib/modules/$(uname -r)/extra/drivers/dpdk else KMOD_DIR=/boot/modules).

* make install-sdk (install headers, makefiles, scripts,examples, tools and
                config files) (default path DATA_DIR=$(RTE_PREFIX)/share/dpdk).

* make install-fhs (install  libraries, modules, app files,
                nic bind files and documentation).

* make install (if T is defined current behaviour, else it will call install-fhs rule )

where RTE_PREFIX=/usr/local by default.

Also you can use the DESTDIR var.
All directory variables mentioned above can be overridden
(BIN_DIR, LIB_DIR, INCLUDE_DIR, DOC_DIR, KMOD_DIR, RTE_PREFIX and DATA_DIR).

Furthermore this information is added to documentation (build-sdk-quick.txt file)

v4:

Add instalation rules for dpdk files.

DPDK package lacks of a mechanism to install libraries, headers
applications, kernel modules and sdk files to a file system tree.

This patch set allows to install files according to the next
proposal:
http://www.freedesktop.org/software/systemd/man/file-hierarchy.html
And this patch set does not affect the current dpdk behavior.

Using rules support is possible to do the next steps:
make config T=TARGET
make
make INSTALL-TARGET



Modify the makefile target to specify the files 
that will be installed using a rule:

* make install-bin (install app files)(dafault path BIN_DIR=/usr/bin).

* make install-headers (install headers)(dafault path INCLUDE_DIR=/usr/include/dpdk).

* make install-lib (install libraries)(dafault path if the architecture is 64 bits
		is LIB_DIR=/usr/lib64 else LIB_DIR=/usr/lib).

* make install-doc (install documentation)(dafault path DOC_DIR=/usr/share/doc/dpdk).

* make install-mod (install modules)(dafault path if RTE_EXEC_ENV=linuxapp then 
		KERNEL_DIR=/lib/modules/$(uname -r)/extra/drivers/dpdk else KERNEL_DIR=/boot/modules).

* make install-sdk (install headers, makefiles, scripts,examples, tools and 
		config files) (default path DATA_DIR=/usr/share/dpdk). 

* make install-fhs (install  libraries, modules, app files, 
		nic bind files and documentation).

Also you can use the DESTDIR variable.
All directory variables mentioned above can be overridden
(BIN_DIR, LIB_DIR, INCLUDE_DIR, DOC_DIR, KERNEL_DIR and DATA_DIR).

v3:

Modify the makefile target to specify the files 
that will be installed using a rule:

make install-bin (install app files)(dafault path BIN_DIR=/usr/bin).
make install-headers (install headers)(dafault path INCLUDE_DIR=/usr/include/dpdk).
make install-lib (install libraries)(dafault path if the architecture is 64 bits
		is LIB_DIR=/usr/lib64 else LIB_DIR=/usr/lib).
make install-sbin (install nic bind files)(dafault path SBIN_DIR=/usr/sbin).
make install-doc (install documentation)(dafault path DOC_DIR=/usr/share/doc/dpdk).
make install-mod (install modules)(dafault path if RTE_EXEC_ENV=linuxapp then 
		KERNEL_DIR=/lib/modules/$(uname -r)/build else KERNEL_DIR=/boot/modules).
make install-sdk (install headers, makefiles, scripts,examples, tools and 
		config files) (default path DATA_DIR=/usr/share/dpdk). 
make install-fhs (install  libraries, modules, app files, 
		nic bind files and documentation).

Also you can use the DESTDIR variable.
All directory variables mentioned above can be overridden
(BIN_DIR, LIB_DIR, INCLUDE_DIR, SBIN_DIR, DOC_DIR, KERNEL_DIR and DATA_DIR).


v2:

Modify the makefile target to specify the files 
that will be installed using a rule:

make install-bin (install app files).
make install-headers (install headers).
make install-lib (install libraries).
make install-sbin (install nic bind files).
make install-doc (install documentation).
make install-mod (install modules).
make install-sdk (install headers, makefiles, scripts,
		examples, tools and config files). 
make install-fhs (install  libraries, modules, app files, 
		nic bind files and documentation).

Also you can use the DESTDIR variable.


v1:

By adding a parameter H=1 (hierarchy-file) to makefile system, it is
possible to do the next steps

make config T=TARGET
make
make install H=1

and files will be installed on the proper directory. Also you can use
the DESTDIR variable.

Mario Carrillo (11):
  mk: Add rule for installing headers
  mk: Add rule for installing app files
  mk: Add rule for installing libraries
  mk: Add rule for installing modules
  mk: Add rule for installing documentation
  mk: Add rule for installing sdk files
  mk: Add rule for installing runtime files
  app: Change name to test binary
  mk: Rename install rule as mbuild rule
  mk: Add new install rule
  doc: Add information about new installation rules

 app/test/Makefile                     |   2 +-
 doc/build-sdk-quick.txt               |  25 +++++-
 doc/guides/freebsd_gsg/build_dpdk.rst |  40 ++++++++++
 doc/guides/linux_gsg/build_dpdk.rst   |  38 +++++++++
 mk/rte.sdkinstall.mk                  | 146 ++++++++++++++++++++++++++++++++--
 mk/rte.sdkroot.mk                     |   6 +-
 6 files changed, 247 insertions(+), 10 deletions(-)

-- 
2.6.3