diff options
author | Ed Baunton <ebaunton1@bloomberg.net> | 2018-06-06 14:51:36 +0100 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2018-06-06 17:56:59 +0000 |
commit | 5dc8ab983def6bdc1ab1f447a9fec8b675aa7310 (patch) | |
tree | 7e5cd29ab0334b94eee577bc79306fe628f7dff5 /buildstream | |
parent | 7f9216b3da17418e6b918a872896d98d490ae86a (diff) | |
download | buildstream-5dc8ab983def6bdc1ab1f447a9fec8b675aa7310.tar.gz |
Add a kind for Make
Diffstat (limited to 'buildstream')
-rw-r--r-- | buildstream/plugins/elements/make.py | 42 | ||||
-rw-r--r-- | buildstream/plugins/elements/make.yaml | 42 |
2 files changed, 84 insertions, 0 deletions
diff --git a/buildstream/plugins/elements/make.py b/buildstream/plugins/elements/make.py new file mode 100644 index 000000000..a6ba8576b --- /dev/null +++ b/buildstream/plugins/elements/make.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# +# Copyright Bloomberg Finance LP +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library. If not, see <http://www.gnu.org/licenses/>. +# +# Authors: +# Ed Baunton <ebaunton1@bloomberg.net> + +"""Make build element + +This is a :mod:`BuildElement <buildstream.buildelement>` implementation for +using GNU make based build. + +Here is the default configuration for the ``make`` element in full: + + .. literalinclude:: ../../../buildstream/plugins/elements/make.yaml + :language: yaml +""" + +from buildstream import BuildElement + + +# Element implementation for the 'make' kind. +class MakeElement(BuildElement): + pass + + +# Plugin entry point +def setup(): + return MakeElement diff --git a/buildstream/plugins/elements/make.yaml b/buildstream/plugins/elements/make.yaml new file mode 100644 index 000000000..a8e63b5d5 --- /dev/null +++ b/buildstream/plugins/elements/make.yaml @@ -0,0 +1,42 @@ +# make default configurations + +variables: + make: make + make-install: make -j1 DESTDIR="%{install-root}" install + + # Set this if the sources cannot handle parallelization. + # + # notparallel: True + +config: + + # Commands for building the software + # + build-commands: + - | + %{make} + + # Commands for installing the software into a + # destination folder + # + install-commands: + - | + %{make-install} + + # Commands for stripping debugging information out of + # installed binaries + # + strip-commands: + - | + %{strip-binaries} + +# Use max-jobs CPUs for building and enable verbosity +environment: + MAKEFLAGS: -j%{max-jobs} + V: 1 + +# And dont consider MAKEFLAGS or V as something which may +# effect build output. +environment-nocache: +- MAKEFLAGS +- V |