ladybird/Ports/build_all.sh
Gunnar Beutner 4115fcc933 Ports: Build ports only once when running build_all.sh
Previously we'd end up building some ports multiple times, e.g.
as a dependency for another port. This changes the build_all.sh
script so that it builds ports only once.
2021-04-21 23:41:48 +02:00

85 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
clean=false
verbose=false
case "$1" in
clean)
clean=true
;;
verbose)
verbose=true
;;
*)
;;
esac
case "$2" in
clean)
clean=true
;;
verbose)
verbose=true
;;
*)
;;
esac
some_failed=false
built_ports=""
for file in *; do
if [ -d $file ]; then
pushd $file > /dev/null
port=$(basename $file)
port_built=0
for built_port in $built_ports; do
if [ "$built_port" = "$port" ]; then
port_built=1
break
fi
done
if [ $port_built -eq 1 ]; then
echo "Already built $port as a dependency."
popd > /dev/null
continue
fi
if ! [ -f package.sh ]; then
echo "ERROR: Skipping $port because its package.sh script is missing."
popd > /dev/null
continue
fi
built_ports="$built_ports $port $(./package.sh showdepends) "
if [ "$clean" == true ]; then
if [ "$verbose" == true ]; then
./package.sh clean_all
else
./package.sh clean_all > /dev/null 2>&1
fi
fi
if [ "$verbose" == true ]; then
if ./package.sh; then
echo "Built ${port}."
else
echo "ERROR: Build of ${port} was not successful!"
some_failed=true
fi
else
if ./package.sh > /dev/null 2>&1; then
echo "Built ${port}."
else
echo "ERROR: Build of ${port} was not successful!"
some_failed=true
fi
fi
popd > /dev/null
fi
done
if [ "$some_failed" == false ]; then
exit 0
else
exit 1
fi