build: Implement build pipeline
Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
#
|
||||
# Copyright (c) 2026, Chloe M.
|
||||
# Provided under the BSD-3 clause
|
||||
#
|
||||
# Description: Top-level build driver
|
||||
# Author: Chloe M.
|
||||
#
|
||||
|
||||
# Globals
|
||||
MAKE=make
|
||||
|
||||
#
|
||||
# Check if a list of programs are installed on the system
|
||||
#
|
||||
# <@>: List of programs to check
|
||||
#
|
||||
check_deps() {
|
||||
for dep in $@; do
|
||||
printf "\033[33;40mChecking if $dep is installed... "
|
||||
which $dep &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\033[31;40mno"
|
||||
echo -e "fatal: Please install '$dep'!\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\033[32;40myes\033[0m"
|
||||
done
|
||||
}
|
||||
|
||||
#
|
||||
# Verify that the build environment is sane before we actually
|
||||
# start.
|
||||
#
|
||||
build_verify() {
|
||||
check_deps \
|
||||
clang \
|
||||
rsync \
|
||||
xorriso
|
||||
|
||||
# We need build envs !!
|
||||
if [ -z "${ST_BUILD_SOURCED}" ]
|
||||
then
|
||||
echo -e "\033[31;40mfatal\033[0m: Please run '. paw/devel/build.env' first!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# <$1>: Build target
|
||||
# <$2>: Build message
|
||||
#
|
||||
make_build() {
|
||||
echo -e "\033[37m[\033[35m*\033[37m] \033[32;40m$2\033[0m"
|
||||
pushd $1; \
|
||||
$MAKE
|
||||
popd
|
||||
}
|
||||
|
||||
#
|
||||
# Kick off the actual build process
|
||||
#
|
||||
build() {
|
||||
mkdir -p artifacts/
|
||||
|
||||
make_build \
|
||||
paw/stos \
|
||||
"Building system kernel..."
|
||||
|
||||
make_build \
|
||||
paw/boot \
|
||||
"Building bootloader..."
|
||||
}
|
||||
|
||||
build_verify
|
||||
build
|
||||
Reference in New Issue
Block a user