diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2016-12-23 14:20:24 +0100 |
---|---|---|
committer | Leah Rowe <info@minifree.org> | 2017-01-15 14:24:45 +0000 |
commit | 112003a55671ffa5285145280988dc1248b26b08 (patch) | |
tree | e103e0f21ac52c28056db6211758217a41b0b3fd /projects/libpayload | |
parent | 3d08effb91acf985bae9c4eb4386937ce7ed92a9 (diff) | |
download | librebootfr-112003a55671ffa5285145280988dc1248b26b08.tar.gz librebootfr-112003a55671ffa5285145280988dc1248b26b08.zip |
Paper build system initial import into Libreboot
This is the initial import of the Paper build system into Libreboot.
It was written as a flexible and painless replacement for the Libreboot
build system, allowing to support many different configurations.
It currently only supports the following CrOS devices:
* Chromebook 13 CB5-311 (nyan big)
* Chromebook 14 (nyan blaze)
* Chromebook 11 (HiSense) (veyron jerry)
* Chromebit CS10 (veyron mickey)
* Chromebook Flip C100PA (veyron minnie)
* Chromebook C201PA (veyron speedy)
The build system also supports building various tools and provides
various scripts to ease the installation on CrOS devices.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'projects/libpayload')
-rw-r--r-- | projects/libpayload/configs/depthcharge/nyan/arch | 1 | ||||
-rw-r--r-- | projects/libpayload/configs/depthcharge/nyan/config | 1 | ||||
-rw-r--r-- | projects/libpayload/configs/depthcharge/targets | 2 | ||||
-rw-r--r-- | projects/libpayload/configs/depthcharge/veyron/arch | 1 | ||||
-rw-r--r-- | projects/libpayload/configs/depthcharge/veyron/config | 1 | ||||
-rw-r--r-- | projects/libpayload/configs/install | 1 | ||||
-rw-r--r-- | projects/libpayload/configs/targets | 1 | ||||
-rwxr-xr-x | projects/libpayload/libpayload | 69 | ||||
-rwxr-xr-x | projects/libpayload/libpayload-helper | 27 |
9 files changed, 104 insertions, 0 deletions
diff --git a/projects/libpayload/configs/depthcharge/nyan/arch b/projects/libpayload/configs/depthcharge/nyan/arch new file mode 100644 index 00000000..fb05f39d --- /dev/null +++ b/projects/libpayload/configs/depthcharge/nyan/arch @@ -0,0 +1 @@ +arm diff --git a/projects/libpayload/configs/depthcharge/nyan/config b/projects/libpayload/configs/depthcharge/nyan/config new file mode 100644 index 00000000..ddbb4f8d --- /dev/null +++ b/projects/libpayload/configs/depthcharge/nyan/config @@ -0,0 +1 @@ +config.nyan diff --git a/projects/libpayload/configs/depthcharge/targets b/projects/libpayload/configs/depthcharge/targets new file mode 100644 index 00000000..792768c4 --- /dev/null +++ b/projects/libpayload/configs/depthcharge/targets @@ -0,0 +1,2 @@ +nyan +veyron diff --git a/projects/libpayload/configs/depthcharge/veyron/arch b/projects/libpayload/configs/depthcharge/veyron/arch new file mode 100644 index 00000000..fb05f39d --- /dev/null +++ b/projects/libpayload/configs/depthcharge/veyron/arch @@ -0,0 +1 @@ +arm diff --git a/projects/libpayload/configs/depthcharge/veyron/config b/projects/libpayload/configs/depthcharge/veyron/config new file mode 100644 index 00000000..2ddc22fb --- /dev/null +++ b/projects/libpayload/configs/depthcharge/veyron/config @@ -0,0 +1 @@ +config.veyron diff --git a/projects/libpayload/configs/install b/projects/libpayload/configs/install new file mode 100644 index 00000000..1a513840 --- /dev/null +++ b/projects/libpayload/configs/install @@ -0,0 +1 @@ +install/libpayload/*:. diff --git a/projects/libpayload/configs/targets b/projects/libpayload/configs/targets new file mode 100644 index 00000000..d7e90413 --- /dev/null +++ b/projects/libpayload/configs/targets @@ -0,0 +1 @@ +depthcharge diff --git a/projects/libpayload/libpayload b/projects/libpayload/libpayload new file mode 100755 index 00000000..60cc43c9 --- /dev/null +++ b/projects/libpayload/libpayload @@ -0,0 +1,69 @@ +#!/bin/bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +build() { + local repository="coreboot" + + project_sources_directory_missing_empty_error "$project" "$repository" "$@" + + if git_project_check $repository + then + git_project_checkout "$repository" "$repository" "$@" + fi + + local coreboot_sources_path=$( project_sources_path "$repository" "$repository" "$@" ) + local sources_path="$coreboot_sources_path/payloads/libpayload/" + local build_path=$( project_build_path "$project" "$@" ) + local build_install_path="$build_path/install" + + local config=$( libpayload_config "$@" ) + local config_path="configs/$config" + + local arch=$( libpayload_arch "$@" ) + + local crossgcc_build_path=$( project_build_path "crossgcc" "$arch" ) + local crossgcc_bin_path="$crossgcc_build_path/bin/" + + project_action "build" "crossgcc" "$arch" + + rm -f "$sources_path/.xcompile" + + mkdir -p "$build_path" + + make -C "$sources_path" obj="$build_path" DOTCONFIG="$build_path/.config" XGCCPATH="$crossgcc_bin_path" KBUILD_DEFCONFIG="$config_path" "defconfig" + make -C "$sources_path" obj="$build_path" DOTCONFIG="$build_path/.config" XGCCPATH="$crossgcc_bin_path" -j$TASKS + make -C "$sources_path" obj="$build_path" DOTCONFIG="$build_path/.config" XGCCPATH="$crossgcc_bin_path" DESTDIR="$build_install_path" "install" + + rm -f "$sources_path/.xcompile" +} + +build_check() { + project_build_check "$project" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/libpayload/libpayload-helper b/projects/libpayload/libpayload-helper new file mode 100755 index 00000000..05970932 --- /dev/null +++ b/projects/libpayload/libpayload-helper @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +CONFIG="config" +ARCH="arch" + +libpayload_arch() { + project_file_contents "$project" "$CONFIGS" "$ARCH" "$@" +} + +libpayload_config() { + project_file_contents "$project" "$CONFIGS" "$CONFIG" "$@" +} |