diff options
author | Andrew Robbins <contact@andrewrobbins.info> | 2017-08-04 04:16:19 -0400 |
---|---|---|
committer | Andrew Robbins <contact@andrewrobbins.info> | 2017-08-09 22:22:27 -0400 |
commit | cfd5f663d02ec61c79cfd35582e64f9f57bc4b82 (patch) | |
tree | bc6ac85dcd982b752a301f080eaf518440a4bb73 /projects | |
parent | 7304fb4b76d79167de50c1081b18b82af7b0e04b (diff) | |
download | librebootfr-cfd5f663d02ec61c79cfd35582e64f9f57bc4b82.tar.gz librebootfr-cfd5f663d02ec61c79cfd35582e64f9f57bc4b82.zip |
Add SeaBIOS project action script
Diffstat (limited to 'projects')
-rwxr-xr-x | projects/seabios/seabios | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/projects/seabios/seabios b/projects/seabios/seabios new file mode 100755 index 00000000..818ffcfd --- /dev/null +++ b/projects/seabios/seabios @@ -0,0 +1,126 @@ +#!/usr/bin/env 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}" "$@" +} + +download() { + local repository="${project}" + + # Can't clone using TLS until Coreboot's cert lists the domain as a SAN + project_download_git "${project}" "${repository}" 'git://git.seabios.org/seabios.git' "$@" +} + +download_check() { + local repository="${project}" + + project_download_check_git "${project}" "${repository}" "$@" +} + +extract() { + project_extract "${project}" "$@" +} + +extract_check() { + project_extract_check "${project}" "$@" +} + +update() { + local repository="${project}" + + project_update_git "${project}" "${repository}" "$@" +} + +update_check() { + local repository="${project}" + + project_update_check_git "${project}" "${repository}" "$@" +} + +build() { + local repository="${project}" + + project_sources_directory_missing_empty_error "${project}" "${repository}" "$@" + + if git_project_check "${repository}"; then + git_project_checkout "${project}" "${repository}" "$@" + fi + + local project_path="$(project_path "${project}")" + local seabios_config_path="$(project_file_path "${project}" "${CONFIGS}" 'config' "$@")" + local sources_path="$(project_sources_path "${project}" "${repository}" "$@")" + local build_path="$(project_build_path "${project}" "$@")" + + mkdir -p "${build_path}" + + ( + cd "${sources_path}" + + # Copy the config file for target into working directory + cp "${seabios_config_path}" .config + + # Compile SeaBIOS first + make -j"${TASKS}" + + # Copy the ELF to its build directory + if [[ "$1" == 'txtmode' ]]; then + cp out/bios.bin.elf "${build_path}" + elif [[ "$1" == 'vga' ]]; then + cp out/vgabios.bin "${build_path}" + fi + + # Tidy up + make distclean + rm -f .config + ) +} + +build_check() { + project_build_check "${project}" "$@" +} + +install() { + project_install "${project}" "$@" +} + +install_check() { + project_install_check "${project}" "$@" +} + +release() { + local repository="${project}" + + project_release_install_archive "${project}" "${IMAGES}" "$@" + project_release_sources_git "${project}" "${repository}" "$@" +} + +release_check() { + local repository="${project}" + + project_release_install_archive_check "${project}" "${IMAGES}" "$@" + project_release_check_sources_git "${project}" "${repository}" "$@" +} + +clean() { + project_clean "${project}" "$@" +} |