a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# This script will download and install the dependencies needed for compiling
|
|
# mono on cygwin
|
|
#
|
|
|
|
# Check for required packages
|
|
|
|
commands="wget unzip automake autoconf libtool make bison"
|
|
|
|
failed=0
|
|
for i in $commands; do
|
|
if ! which $i > /dev/null 2>&1; then
|
|
echo "You must have the '$i' package installed."
|
|
failed=1
|
|
fi
|
|
done
|
|
|
|
if [ $failed = 1 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
dir=cygwin-deps
|
|
mkdir -p $dir
|
|
|
|
echo -n "Downloading deps... "
|
|
if [ ! -f $dir/gettext-runtime-0.17-1.zip ]; then
|
|
wget -P $dir http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-0.17-1.zip
|
|
fi
|
|
if [ ! -f $dir/libiconv-1.13-mingw32-dev.tar.gz ]; then
|
|
wget -P $dir http://sourceforge.net/projects/mingw/files/MinGW/libiconv/libiconv-1.13/libiconv-1.13-mingw32-dev.tar.gz/download
|
|
fi
|
|
echo "done."
|
|
|
|
echo -n "Extracting to cygwin-deps/ ..."
|
|
(cd $dir && for i in *.zip; do unzip -oq $i || exit 1; done) || exit 1
|
|
# This is needed because windows can't use dll's without an x flag.
|
|
chmod a+x $dir/bin/*.dll
|
|
echo "done."
|
|
|
|
echo -n "Patching PC files... "
|
|
prefix=$PWD/$dir
|
|
find $dir -name "*.pc" > $dir/pc-files
|
|
for i in `cat $dir/pc-files`; do
|
|
(sed -e "s,^prefix=.*,prefix=$prefix,g" < $i > $i.tmp && mv $i.tmp $i) || exit 1
|
|
done
|
|
rm -f $dir/pc-files
|
|
echo "done."
|
|
|
|
# Create an environment shell file
|
|
rm -f $dir/env.sh
|
|
echo "export PKG_CONFIG_PATH=\"$PWD/$dir/lib/pkgconfig:\$PKG_CONFIG\"" >> $dir/env.sh
|
|
echo "export PATH=\"$PWD/$dir/bin:\$PATH\"" >> $dir/env.sh
|
|
|
|
echo "Source $dir/env.sh into your environment using:"
|
|
echo ". $dir/env.sh"
|
|
echo "Then run mono's configure."
|