forked from Mirror/pmbootstrap
Changes: * `helpers/envkernel.sh`: * installs everything needed for kernel compilation in the native chroot * mounts the kernel source to `/mnt/linux` inside the chroot * creates `/mnt/linux/.output` and chowns it to the `pmos` user, that folder will be used for the kernel build output * sets up aliases for `make`, `pmbootstrap`, `pmbroot`, `kernelroot` * new action `pmbootstrap work_migrate`: does the interactive work folder migration if necessary, otherwise it doesn't output anything * when calling this first, we can safely use all other commands non-interactively without showing the output Benefits: * Fast setup (especially for people who are new to kernel compilation * No need to figure out distribution specific package names (cross compilers!) * No need to do a test build just to verify that the right packages are installed * Less error prone * The right dependencies are always installed * `ARCH` and `CROSS_COMPILE` variables always get set automatically and based on `deviceinfo_arch` * If the build environment is broken for some reason, just zap and start over * Easy to reproduce problems Notes: * `make menuconfig` works as well * Sourcing was tested with `zsh`, `bash` and `fish`, it should be easy to extend for other shells
17 lines
411 B
Fish
17 lines
411 B
Fish
#!/usr/bin/env fish
|
|
# Copyright 2018 Oliver Smith
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# Fish compatibility code from envkernel.sh
|
|
set script_dir (dirname (status filename))
|
|
sh "$script_dir/envkernel.sh" --fish 1>| read -z fishcode
|
|
|
|
# Verbose output
|
|
if [ "$argv" = "-v" ]
|
|
echo "(eval code start)"
|
|
printf "$fishcode"
|
|
echo "(eval code end)"
|
|
end
|
|
|
|
# Execute generated code
|
|
echo -e "$fishcode" | source -
|