2018-11-09 03:25:31 +03:00
|
|
|
#!/bin/bash
|
2019-05-15 21:30:00 +03:00
|
|
|
set -e
|
2018-11-09 03:25:31 +03:00
|
|
|
|
2019-07-03 17:57:37 +03:00
|
|
|
# Get user and group details for setting qemu disk image ownership
|
|
|
|
export build_user=$(id -u)
|
|
|
|
export build_group=$(id -g)
|
|
|
|
|
2018-11-09 03:25:31 +03:00
|
|
|
sudo id
|
|
|
|
|
2019-05-15 21:26:31 +03:00
|
|
|
if [ -z "$MAKEJOBS" ]; then
|
|
|
|
MAKEJOBS=$(nproc)
|
|
|
|
fi
|
|
|
|
|
|
|
|
make_cmd="make -j $MAKEJOBS"
|
2019-02-12 18:33:24 +03:00
|
|
|
|
2019-05-15 21:30:00 +03:00
|
|
|
build_targets=""
|
2019-08-17 03:08:20 +03:00
|
|
|
|
2019-08-17 11:05:16 +03:00
|
|
|
# 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"
|
2019-08-17 03:08:20 +03:00
|
|
|
|
2019-08-17 11:05:16 +03:00
|
|
|
# Build LibC, LibCore and LibIPC before IPC servers, since they depend on it.
|
2019-07-04 17:16:50 +03:00
|
|
|
build_targets="$build_targets ../Libraries/LibC"
|
|
|
|
build_targets="$build_targets ../Libraries/LibCore"
|
2019-08-17 11:05:16 +03:00
|
|
|
build_targets="$build_targets ../Libraries/LibIPC"
|
|
|
|
|
|
|
|
# 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"
|
2019-07-18 11:15:00 +03:00
|
|
|
build_targets="$build_targets ../Libraries/LibDraw"
|
2019-07-04 17:16:50 +03:00
|
|
|
build_targets="$build_targets ../Libraries/LibGUI"
|
|
|
|
build_targets="$build_targets ../Libraries/LibHTML"
|
2019-08-17 03:08:20 +03:00
|
|
|
build_targets="$build_targets ../Libraries/LibM"
|
|
|
|
build_targets="$build_targets ../Libraries/LibPCIDB"
|
|
|
|
build_targets="$build_targets ../Libraries/LibVT"
|
|
|
|
|
2019-05-15 21:30:00 +03:00
|
|
|
build_targets="$build_targets ../Applications/About"
|
2019-08-17 03:08:20 +03:00
|
|
|
build_targets="$build_targets ../Applications/Calculator"
|
|
|
|
build_targets="$build_targets ../Applications/ChanViewer"
|
2019-05-15 21:30:00 +03:00
|
|
|
build_targets="$build_targets ../Applications/Downloader"
|
2019-08-17 03:08:20 +03:00
|
|
|
build_targets="$build_targets ../Applications/FileManager"
|
|
|
|
build_targets="$build_targets ../Applications/FontEditor"
|
|
|
|
build_targets="$build_targets ../Applications/IRCClient"
|
|
|
|
build_targets="$build_targets ../Applications/Launcher"
|
2019-06-10 21:26:54 +03:00
|
|
|
build_targets="$build_targets ../Applications/PaintBrush"
|
2019-07-13 18:05:16 +03:00
|
|
|
build_targets="$build_targets ../Applications/Piano"
|
2019-08-17 03:08:20 +03:00
|
|
|
build_targets="$build_targets ../Applications/QuickShow"
|
2019-07-16 22:25:50 +03:00
|
|
|
build_targets="$build_targets ../Applications/SystemDialog"
|
2019-08-17 03:08:20 +03:00
|
|
|
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 ../Demos/Fire"
|
2019-05-15 21:30:00 +03:00
|
|
|
build_targets="$build_targets ../Demos/HelloWorld"
|
2019-07-10 22:13:29 +03:00
|
|
|
build_targets="$build_targets ../Demos/HelloWorld2"
|
2019-05-15 21:30:00 +03:00
|
|
|
build_targets="$build_targets ../Demos/RetroFetch"
|
2019-05-24 23:47:01 +03:00
|
|
|
build_targets="$build_targets ../Demos/WidgetGallery"
|
2019-08-17 03:08:20 +03:00
|
|
|
|
|
|
|
build_targets="$build_targets ../DevTools/VisualBuilder"
|
|
|
|
|
|
|
|
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/WindowServer"
|
|
|
|
|
|
|
|
build_targets="$build_targets ../Shell"
|
|
|
|
|
|
|
|
build_targets="$build_targets ../Userland"
|
|
|
|
|
2019-05-17 21:40:38 +03:00
|
|
|
build_targets="$build_targets ." # the kernel
|
2019-05-15 21:30:00 +03:00
|
|
|
|
2019-08-17 03:08:20 +03:00
|
|
|
(cd ../AK/Tests && $make_cmd clean)
|
|
|
|
(cd ../AK/Tests && $make_cmd clean && $make_cmd)
|
|
|
|
(cd ../AK/Tests && $make_cmd clean)
|
|
|
|
|
2019-05-15 21:30:00 +03:00
|
|
|
for targ in $build_targets; do
|
2019-05-28 12:53:16 +03:00
|
|
|
#(cd "$targ" && find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -exec clang-format -i {} \;)
|
2019-08-17 03:08:20 +03:00
|
|
|
|
|
|
|
if [ -f "$targ/Makefile" ]; then
|
|
|
|
echo "Building $targ"
|
|
|
|
$make_cmd -C "$targ" clean
|
|
|
|
$make_cmd -C "$targ"
|
|
|
|
fi
|
2019-05-15 21:30:00 +03:00
|
|
|
|
|
|
|
if [ -f "$targ/install.sh" ]; then
|
|
|
|
echo "Installing $targ"
|
|
|
|
(cd "$targ" && ./install.sh)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2019-07-03 19:03:39 +03:00
|
|
|
sudo -E ./build-image-qemu.sh
|