mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 09:30:24 +00:00
704f48d7f3
Ports/.port_include.sh, Toolchain/BuildIt.sh, Toolchain/UseIt.sh have been left largely untouched due to use of Bash-exclusive functions and variables such as $BASH_SOURCE, pushd and popd.
109 lines
4 KiB
Bash
Executable file
109 lines
4 KiB
Bash
Executable file
#!/bin/sh
|
|
set -e
|
|
|
|
# Get user and group details for setting qemu disk image ownership
|
|
export build_user=$(id -u)
|
|
export build_group=$(id -g)
|
|
|
|
sudo id
|
|
|
|
if [ -z "$MAKEJOBS" ]; then
|
|
MAKEJOBS=$(nproc)
|
|
fi
|
|
|
|
make_cmd="make -j $MAKEJOBS"
|
|
|
|
build_targets=""
|
|
|
|
# Build the host-side tools first, since they are needed to build some programs.
|
|
build_targets="$build_targets ../DevTools/IPCCompiler"
|
|
build_targets="$build_targets ../DevTools/FormCompiler"
|
|
|
|
# Build LibC, LibCore, LibIPC and LibThread before IPC servers, since they depend on them.
|
|
build_targets="$build_targets ../Libraries/LibC"
|
|
build_targets="$build_targets ../Libraries/LibCore"
|
|
build_targets="$build_targets ../Libraries/LibIPC"
|
|
build_targets="$build_targets ../Libraries/LibThread"
|
|
|
|
# Build IPC servers before their client code to ensure the IPC definitions are available.
|
|
build_targets="$build_targets ../Servers/AudioServer"
|
|
build_targets="$build_targets ../Servers/LookupServer"
|
|
|
|
build_targets="$build_targets ../AK"
|
|
|
|
build_targets="$build_targets ../Libraries/LibAudio"
|
|
build_targets="$build_targets ../Libraries/LibDraw"
|
|
build_targets="$build_targets ../Libraries/LibGUI"
|
|
build_targets="$build_targets ../Libraries/LibHTML"
|
|
build_targets="$build_targets ../Libraries/LibM"
|
|
build_targets="$build_targets ../Libraries/LibPCIDB"
|
|
build_targets="$build_targets ../Libraries/LibVT"
|
|
build_targets="$build_targets ../Libraries/LibMarkdown"
|
|
|
|
build_targets="$build_targets ../Applications/About"
|
|
build_targets="$build_targets ../Applications/Calculator"
|
|
build_targets="$build_targets ../Applications/ChanViewer"
|
|
build_targets="$build_targets ../Applications/DisplayProperties"
|
|
build_targets="$build_targets ../Applications/Downloader"
|
|
build_targets="$build_targets ../Applications/FileManager"
|
|
build_targets="$build_targets ../Applications/FontEditor"
|
|
build_targets="$build_targets ../Applications/IRCClient"
|
|
build_targets="$build_targets ../Applications/Launcher"
|
|
build_targets="$build_targets ../Applications/PaintBrush"
|
|
build_targets="$build_targets ../Applications/Piano"
|
|
build_targets="$build_targets ../Applications/QuickShow"
|
|
build_targets="$build_targets ../Applications/SystemDialog"
|
|
build_targets="$build_targets ../Applications/SystemMonitor"
|
|
build_targets="$build_targets ../Applications/Taskbar"
|
|
build_targets="$build_targets ../Applications/Terminal"
|
|
build_targets="$build_targets ../Applications/TextEditor"
|
|
build_targets="$build_targets ../Applications/HexEditor"
|
|
build_targets="$build_targets ../Applications/SoundPlayer"
|
|
build_targets="$build_targets ../Applications/Welcome"
|
|
build_targets="$build_targets ../Applications/Help"
|
|
build_targets="$build_targets ../Applications/Browser"
|
|
|
|
build_targets="$build_targets ../Demos/Fire"
|
|
build_targets="$build_targets ../Demos/HelloWorld"
|
|
build_targets="$build_targets ../Demos/HelloWorld2"
|
|
build_targets="$build_targets ../Demos/RetroFetch"
|
|
build_targets="$build_targets ../Demos/WidgetGallery"
|
|
|
|
build_targets="$build_targets ../DevTools/HackStudio"
|
|
build_targets="$build_targets ../DevTools/VisualBuilder"
|
|
build_targets="$build_targets ../DevTools/Inspector"
|
|
|
|
build_targets="$build_targets ../Games/Minesweeper"
|
|
build_targets="$build_targets ../Games/Snake"
|
|
|
|
build_targets="$build_targets ../Servers/SystemServer"
|
|
build_targets="$build_targets ../Servers/TTYServer"
|
|
build_targets="$build_targets ../Servers/TelnetServer"
|
|
build_targets="$build_targets ../Servers/WindowServer"
|
|
|
|
build_targets="$build_targets ../Shell"
|
|
|
|
build_targets="$build_targets ../Userland"
|
|
|
|
build_targets="$build_targets ." # the kernel
|
|
|
|
(cd ../AK/Tests && $make_cmd clean)
|
|
(cd ../AK/Tests && $make_cmd clean && $make_cmd)
|
|
(cd ../AK/Tests && $make_cmd clean)
|
|
|
|
for targ in $build_targets; do
|
|
#(cd "$targ" && find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -exec clang-format -i {} \;)
|
|
|
|
if [ -f "$targ/Makefile" ]; then
|
|
echo "Building $targ"
|
|
$make_cmd -C "$targ" clean
|
|
$make_cmd -C "$targ"
|
|
fi
|
|
|
|
if [ -f "$targ/install.sh" ]; then
|
|
echo "Installing $targ"
|
|
(cd "$targ" && ./install.sh)
|
|
fi
|
|
done
|
|
|
|
sudo -E ./build-image-qemu.sh
|