24 Commits

Author SHA1 Message Date
Burt Silverman
e529732607 Run vpp-configure on change to cmake config files.
Modify the dirs assignment in configure_check_timestamp to
add the build-data/platforms/$(PLATFORM).mk file, all the CMakeLists.txt
files in the $(PACKAGE_SOURCE) tree, and the $(PACKAGE_SOURCE)/cmake
directory.
(For example, for package vpp, $(PACKAGE_SOURCE) is <Top of Tree>/src).
Note that in an earlier era there was no build-data/platforms directory and
no CMakeLists.txt files.
Also, we tacitly assume that $(SOURCE_PATH_BUILD_DATA_DIRS) is only one
directory whereas ebuild has been used in environments where there are two
treetops.

Change-Id: I761219adbdb4c7e675bb12b3e7f052db68f0294c
Signed-off-by: Burt Silverman <burtms@gmail.com>
2019-01-26 18:31:17 +00:00
Klement Sekera
8432e6e6f7 allow specifying number of concurrent jobs
If defined, Use MAKE_PARALLEL_JOBS as number of concurrent jobs for
build process instead of the internal calculation based on /proc/cpuinfo.

Change-Id: I18d1f526dc5c156c1cd9c9cf6dbbfd9cb8dbbad7
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-03-24 15:19:07 +00:00
Damjan Marion
92b44ea50a use system provided ccache links
Change-Id: I0860bbd0cf368fc3638b861504ebf642ee9d3807
Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-03-15 02:09:05 +01:00
Dave Barach
5a72e425f9 Clean up vpp build bootstrap step
Net of rewriting vppapigen in python-ply, there's no need to compile
vppinfra.

Install a copy of vppapigen in .../build-root/tools/bin, so
the sample plugin build will work. Rationalize suffix-rules.mk.

Add clang, clang++ links to .../build-root/ccache-bin.

Change-Id: Ib4017848b7767b6054238ea544ee5319667c3659
Signed-off-by: Dave Barach <dave@barachs.net>
2018-03-14 19:06:16 +00:00
Ole Troan
9d42087149 VPPAPIGEN: vppapigen replacement in Python PLY.
This is a version of the VPP API generator in Python PLY. It supports
the existing language, and has a plugin architecture for generators.
Currently C and JSON are supported.

Changes:
 - vl_api_version to option version = "major.minor.patch"
 - enum support
 - Added error checking and reporting
 - import support (removed the C pre-processor)
 - services (tying request/reply together)

Version:
 option version = "1.0.0";

Enum:
 enum colours {
   RED,
   BLUE = 50,
 };
 define foo {
  vl_api_colours_t colours;
 };

Services:
 service {
  rpc foo returns foo_reply;
  rpc foo_dump returns stream foo_details;
  rpc want_stats returns want_stats_reply
      events ip4_counters, ip6_counters;
 };

Future planned features:
 - unions
 - bool, text
 - array support (including length)
 - proto3 output plugin
 - Refactor C/C++ generator as a plugin
 - Refactor Java generator as a plugin

Change-Id: Ifa289966c790e1b1a8e2938a91e69331e3a58bdf
Signed-off-by: Ole Troan <ot@cisco.com>
2018-01-23 13:03:53 +00:00
Neale Ranns
5ee623e789 makefile set CXXFLAGS so they are propageted to sub-builds
Change-Id: I55d9953851062f7106c66701d46bcd9073cf1ee4
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-01-10 07:27:17 -08:00
Ed Kern
62b29a242c Makefile: make_parallel_flags via env variable
/proc/cpuinfo with container builds may lead to jenkins failures
    ability to pass in MAKE_PARALLEL_FLAGS via env directly for
    container builds

Change-Id: Id02acb542d5ffbe3f4dec7712ae2cb07512b236d
Signed-off-by: Ed Kern <ejk@cisco.com>
2017-11-22 20:19:00 +00:00
Damjan Marion
9324284af8 Reduce number of parallel builds
With recent introduction of C++ code required memory for each compiler
instance has significantly increased causing build issues.

Currently build system spins 2 compiler instances per logical CPU core.

As CPU can hardly execute more than one thread at a time, it should be
pretty safe to change that formula so it doesn't multiply number of cpu
cores by 2 and such change will signifucantly reduce amount of memory
needed.

Change-Id: Ic829fff6e45f4caf98a6d9c1c98c53ed003039ef
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-11-13 20:09:23 +01:00
Dave Barach
0c0fe27b9f Clean up a few historical anomalies
Change-Id: I5d36a8a54fa6f73ea2b3761413098867dae1df74
Signed-off-by: Dave Barach <dave@barachs.net>
2017-11-01 09:30:41 +00:00
Marco Varlese
7ba443706b The missing variable (added with this patch) was causing the build on AARCH64
platforms to default to lib (instead of lib64) when not explicitely defining
the --libdir through the configure script.

This patch fixes that.

Change-Id: Ia4c152e0f40acab7f098885d672ff9385f57b0fe
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
2017-09-07 13:41:12 +00:00
Chris Luke
b2861e8fb6 make: Fix parallel building with some container platforms (VPP-880)
With some Linux container platforms /proc/cpuinfo reads as an empty
file. (Aside: stat on /proc/cpuinfo always indicates a length of
zero bytes, regardless of its content).

This has the effect that the make '-j' parameter being passed the
unhelpful value of '0' both in build-root/Makefile and dpdk/Makefile.
Make complains with the error:

  make: the '-j' option requires a positive integer argument

This patch checks for '0' and replaces it with '2' as a reasonable
number of jobs to run in parallel when the CPU count isn't known
(and assumed to be one). It also makes the value determination
consistent between VPP and DPDK (2*ncpu).

Change-Id: I78b89420114a825fab4d339e4f9291d486b7b9c8
Signed-off-by: Chris Luke <chrisy@flirble.org>
2017-06-24 14:02:37 +00:00
Damjan Marion
686c1c8454 Extend ebuild to specify "configure" subdir, enable verify for sample-plugin
Change-Id: I2056e5d19bc3713e7a13e015dabf3b2431800973
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-04-20 11:30:28 +00:00
Damjan Marion
2ce7f9834a Add dpdk development packaging
Change-Id: I6aa2a6709241d99ce734c29e47487eb456907351
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-20 15:02:12 +00:00
Damjan Marion
6bbf83a01b Revert "vppctl: bash completion for vppctl commands"
This patch is causing build failures

This reverts commit d995c757f05f78aa759b0a65c0a7e38088e690a9.

Change-Id: I0c8d5a4208135d77aaa3a6a470d26140f7b74733
Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-10 09:40:45 +00:00
Padraig Connolly
d995c757f0 vppctl: bash completion for vppctl commands
Added bash completion that will include all commands from build time
*Script takes list of commands generated by doxygen-siphon-list
*Configured doxygen-siphon makefile to generate just cli commands
*List of cli commands put in /usr/share/vpp
*Stopped siphon using doxygen bootstrap, uses main bootstrap instead
*Added rpm/deb check for installation of packages, separate from bootstrap
*NOTE: Once you have installed the vpp .deb/.rpm package you will have to
 restart bash

Change-Id: Ie503e80d5177481f6e7dbe59378f2e0d76f29152
Signed-off-by: Padraig Connolly <padraig.connolly@intel.com>
2017-01-09 15:20:49 +00:00
Klement Sekera
f62ae1288a refactor test framework
Change-Id: I31da3b1857b6399f9899276a2d99cdd19436296c
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Signed-off-by: Matej Klotton <mklotton@cisco.com>
Signed-off-by: Jan Gelety <jgelety@cisco.com>
Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2016-10-26 17:42:19 +02:00
Damjan Marion
1c80e831b7 Add support for multiple microarchitectures in single binary
* compiler -march= parameter is changed from native to corei7
   so code is always genereted with instructions which are available
   on the Nehalem microarchitecture (up to SSE4.2)

 * compiler -mtune= parameter is added so code is optimized for
   corei7-avx which equals to Sandy Bridge microarchitecture

 * set of macros is added which allows run-time detection of available
   cpu instructions (e.g. clib_cpu_supports_avx())

 * set of macros is added which allows us to clone graph node funcitons
   where cloned function is optmized for different microarchitecture
   Those macros are using following attributes:
     __attribute__((flatten))
     __attribute__((target("arch=core-avx2)))

   I.e. If applied to foo_node_fn() macro will generate cloned
   functions foo_node_fn_avx2() and foo_node_fn_avx512() (future)
   It will also generate function void * foo_node_fn_multiarch_select()
   which detects available instruction set and returns pointer to the
   best matching function clone.

Change-Id: I2dce0ac92a5ede95fcb56f47f3d1f3c4c040bac0
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-05-19 18:14:38 +02:00
Dave Barach
459a11a07a Remove historical tags, fix the debug tag
Change-Id: I013784aeef5ae6b5ba4a30c7759e9daff3c2c576
Signed-off-by: Dave Barach <dave@barachs.net>
2016-03-30 10:24:56 -04:00
Ed Warnicke
46040a513b Fix distclean to correctly handle Centos
Change-Id: I3f930306e9f384011687d2ce88052639df0d966b
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2016-03-25 20:37:40 +00:00
Damjan Marion
2e89a894a4 Reduce number of parallel gcc invocations from 4 to 2 per cpu
Some build hosts can run out of memory during compilation.
This should reduce memory demand without affecting build time.

Change-Id: I11bd2884a1f8885a8a332bbbf0a63324a3079c3b
Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-03-24 17:20:14 +01:00
Dave Barach
c42508d158 Allow CCACHE_DIR to be overridden, e.g. from .../build-root/build-config.mk
Change-Id: I9f2afa31c061b658e45ebbc16d01a6c118993116
Signed-off-by: Dave Barach <dave@barachs.net>
2016-01-27 18:35:14 +00:00
Dave Barach
61efa140b1 aarch64 CPU arch / ThunderX platform initial support
Change-Id: Ia2edd3cee2c25c26c7c47a9023744b97226434c7
Signed-off-by: Dave Barach <dave@barachs.net>
2016-01-22 08:23:27 -05:00
Dave Barach
7210e9470e Remove autotools generated products
Change-Id: I7f23b8b8e5136cb56768bac3a7473e6df5ee4993
Signed-off-by: Dave Barach <dave@barachs.net>
2015-12-15 19:06:39 -05:00
Ed Warnicke
cb9cadad57 Initial commit of vpp code.
Change-Id: Ib246f1fbfce93274020ee93ce461e3d8bd8b9f17
Signed-off-by: Ed Warnicke <eaw@cisco.com>
2015-12-08 15:47:27 -07:00