mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
c1ed16c8e8
When we used "make install" in the past, the "install" target would pull in the library targets as dependencies, and everything got built that way. Now that we use "install.sh" instead, we have to build things manually.
105 lines
3 KiB
Bash
Executable file
105 lines
3 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
echo $DIR
|
|
|
|
TARGET=i686-pc-serenity
|
|
PREFIX="$DIR/Local"
|
|
SYSROOT="$DIR/../Root"
|
|
|
|
echo PREFIX is $PREFIX
|
|
echo SYSROOT is $SYSROOT
|
|
|
|
mkdir -p "$DIR/Tarballs"
|
|
|
|
source "$DIR/UseIt.sh"
|
|
|
|
pushd "$DIR/Tarballs"
|
|
md5="$(md5sum binutils-2.32.tar.gz | cut -f1 -d' ')"
|
|
echo "bu md5='$md5'"
|
|
if [ ! -e "binutils-2.32.tar.gz" ] || [ "$md5" != "d1119c93fc0ed3007be4a84dd186af55" ] ; then
|
|
rm -f binutils-2.32.tar.gz
|
|
wget "http://ftp.gnu.org/gnu/binutils/binutils-2.32.tar.gz"
|
|
else
|
|
echo "Skipped downloading binutils"
|
|
fi
|
|
|
|
md5="$(md5sum gcc-8.3.0.tar.gz | cut -f1 -d' ')"
|
|
echo "gc md5='$md5'"
|
|
if [ ! -e "gcc-8.3.0.tar.gz" ] || [ "$md5" != "9972f8c24c02ebcb5a342c1b30de69ff" ] ; then
|
|
rm -f gcc-8.3.0.tar.gz
|
|
wget "http://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz"
|
|
else
|
|
echo "Skipped downloading gcc"
|
|
fi
|
|
|
|
if [ ! -d "binutils-2.32" ]; then
|
|
echo "Extracting binutils..."
|
|
tar -xf "binutils-2.32.tar.gz"
|
|
|
|
pushd "binutils-2.32"
|
|
patch -p1 < $DIR/Patches/binutils.patch > /dev/null
|
|
popd
|
|
else
|
|
echo "Skipped extracting binutils"
|
|
fi
|
|
|
|
if [ ! -d "gcc-8.3.0" ]; then
|
|
echo "Extracting gcc..."
|
|
tar -xf "gcc-8.3.0.tar.gz"
|
|
|
|
pushd "gcc-8.3.0"
|
|
patch -p1 < $DIR/Patches/gcc.patch > /dev/null
|
|
popd
|
|
else
|
|
echo "Skipped extracting gcc"
|
|
fi
|
|
popd
|
|
|
|
mkdir -p $PREFIX
|
|
|
|
mkdir -p "$DIR/Build/binutils"
|
|
mkdir -p "$DIR/Build/gcc"
|
|
|
|
if [ -z "$MAKEJOBS" ]; then
|
|
MAKEJOBS=$(nproc)
|
|
fi
|
|
|
|
pushd "$DIR/Build/"
|
|
unset PKG_CONFIG_LIBDIR # Just in case
|
|
|
|
pushd binutils
|
|
$DIR/Tarballs/binutils-2.32/configure --prefix=$PREFIX \
|
|
--target=$TARGET \
|
|
--with-sysroot=$SYSROOT \
|
|
--disable-nls || exit 1
|
|
make -j $MAKEJOBS || exit 1
|
|
make install || exit 1
|
|
popd
|
|
|
|
pushd gcc
|
|
$DIR/Tarballs/gcc-8.3.0/configure --prefix=$PREFIX \
|
|
--target=$TARGET \
|
|
--with-sysroot=$SYSROOT \
|
|
--disable-nls \
|
|
--with-newlib \
|
|
--enable-languages=c,c++ || exit 1
|
|
|
|
echo "XXX build gcc and libgcc"
|
|
make -j $MAKEJOBS all-gcc all-target-libgcc || exit 1
|
|
echo "XXX install gcc and libgcc"
|
|
make install-gcc install-target-libgcc || exit 1
|
|
|
|
echo "XXX serenity libc and libm"
|
|
( cd "$DIR/../Libraries/LibC/" && make clean && make && ./install.sh )
|
|
( cd "$DIR/../Libraries/LibM/" && make clean && make && ./install.sh )
|
|
|
|
echo "XXX build libstdc++"
|
|
make all-target-libstdc++-v3 || exit 1
|
|
echo "XXX install libstdc++"
|
|
make install-target-libstdc++-v3 || exit 1
|
|
popd
|
|
popd
|
|
|