#!/bin/sh
# Script to install build-time dependencies for Wine.
# If your distro isn't supported here, please add it.
# Home page (until accepted into wine tree): http://winezeug.googlecode.com
# Copyright 2006-2009 Dan Kegel
# LGPL

if test ! -w /
then
    echo "Usage: sudo sh $0"
    exit 1
fi

#----------------------------------------------------------------------------
# Ubuntu data
ubuntu_common_pkgs="\
bison ccache cvs flex fontforge gcc git-core libasound2-dev libaudio-dev libc6-dev \
libcapi20-3 libcapi20-dev libcupsys2-dev libdbus-1-dev libesd0-dev libexif-dev \
libexpat1-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libgl1-mesa-dev \
libglib1.2-dev libglib2.0-dev libglu1-mesa-dev libgnutls-dev libgpg-error-dev \
libgphoto2-2-dev libhal-dev libice-dev libieee1284-3-dev libjpeg62-dev liblcms1-dev \
libldap2-dev liblzo-dev libmad0 libmad0-dev libmng-dev libncurses5-dev libodbcinstq1c2 \
libogg-dev libpng12-dev libpopt-dev libqt3-headers libqt3-mt libqt3-mt-dev libsane-dev \
libsm-dev libssl-dev libtasn1-3-dev libtiff4-dev libtiffxx0c2 libusb-dev libvorbis-dev \
libvorbisfile3 libx11-dev libxau-dev libxcomposite-dev libxcursor-dev libxdmcp-dev \
libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-dev libxmu-dev \
libxmu-headers libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxv-dev \
libxxf86vm-dev linux-libc-dev m4 make mesa-common-dev odbcinst1debian1 qt3-dev-tools \
unixodbc unixodbc-dev x11proto-composite-dev x11proto-core-dev x11proto-fixes-dev  \
x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-video-dev x11proto-xext-dev \
x11proto-xf86vidmode-dev x11proto-xinerama-dev x-dev xtrans-dev zlib1g-dev \
libelfg0 libfreebob0 libgif-dev libhal-storage-dev libjack-dev"

ubuntu_gutsy_pkgs="\
cogito \
libltdl3 \
libltdl3-dev \
libopencdk8-dev \
render-dev \
x11proto-render-dev \
"

ubuntu_hardy_pkgs="\
libltdl3 \
libltdl3-dev \
libopencdk10-dev \
"

ubuntu_ibex_pkgs="\
libltdl7 \
libltdl7-dev \
"

ubuntu_64_ibex_usr_lib32_sos="\
libcapi20.so.3 libcrypto.so.0.9.8 libcups.so.2 libfontconfig.so.1 libfreetype.so.6 \
libGL.so.1 libGLU.so.1 libgnutls.so.26 libgphoto2_port.so.0 libgphoto2.so.2 \
libhal.so.1 libjack.so.0 libjpeg.so.62 liblcms.so.1 \
libodbc.so.1 libpng12.so.0 libsane.so.1 \
libssl.so.0.9.8 libX11.so.6 libXcomposite.so.1 libXcursor.so.1 libXext.so.6 \
libXinerama.so.1 libXi.so.6 libxml2.so.2 libXrandr.so.2 libXrender.so.1 \
libxslt.so.1 libXxf86vm.so.1 libz.so.1"

ubuntu_64_ibex_lib32_sos="libdbus-1.so.3"

#----------------------------------------------------------------------------
# rpm-based distros

# Packages where fedora and suse are the same
rpm_pkgs="audiofile bison cups-devel flex freeglut-devel gcc \
gnutls-devel hal-devel libgphoto2 libjpeg-devel libpng-devel \
libxml2-devel libxslt-devel \
make ncurses-devel openldap2-devel openssl-devel pkgconfig xorg-x11-devel"

# Packages where fedora and suse differ
fedora_pkgs="\
alsa-devel fontconfig-devel freetype-devel isdn4k-utils-devel \
lcms-devel libX11-devel libXcomposite-devel libXcursor-devel libXext-devel \
libXi-devel libXinerama-devel libXrandr-devel libXrender-devel libXt-devel \
libXxf86vm-devel xorg-x11-utils"

suse_pkgs="\
alsa-devel capi4linux desktop-file-utils fontconfig-devel freetype2-devel
giflib-devel glibc-devel jack-devel libgphoto2-devel
liblcms-devel Mesa-devel unixODBC-devel update-desktop-files
zlib-devel

suse_64bit_pkgs="\
capi4linux-32bit cups-libs-32bit fontconfig-devel-32bit freeglut-devel-32bit \
freetype2-devel-32bit gcc-32bit giflib-devel-32bit glibc-devel-32bit \
hal-32bit libasound2-32bit libcom_err-devel-32bit libgphoto2-32bit \
libjpeg-devel-32bit liblcms-devel-32bit libopenssl0_9_8-32bit \
libpng-devel-32bit libxml2-devel-32bit libxslt-devel-32bit Mesa-devel-32bit \
ncurses-devel-32bit openldap2-devel-32bit openssl-devel-32bit sane-32bit \
unixODBC-devel-32bit xorg-x11-devel-32bit xorg-x11-libICE-32bit \
xorg-x11-libICE-devel-32bit xorg-x11-libSM-devel-32bit \
xorg-x11-libX11-devel-32bit xorg-x11-libXext-32bit \
xorg-x11-libXext-devel-32bit xorg-x11-libXp-32bit \
xorg-x11-libXrender-devel-32bit \
xorg-x11-libXt-32bit zlib-devel-32bit"

#----------------------------------------------------------------------------
# Code

lsb_release_path=`which lsb_release`
if test "$lsb_release_path" != ""
then
  distro=`lsb_release -i -r -s`
else
  if test -f /etc/SuSe-release
  then
    distro=`head -n 1 /etc/SuSe-release`
  fi
fi

case $distro in
Ubuntu*7.10) apt-get install $ubuntu_common_pkgs $ubuntu_gutsy_pkgs;;
Ubuntu*8.04) apt-get install $ubuntu_common_pkgs $ubuntu_hardy_pkgs;;
Ubuntu*8.10) apt-get install $ubuntu_common_pkgs $ubuntu_ibex_pkgs;;
*SUSE*i586) yum install $rpm_pkgs $suse_pkgs ;;
*SUSE*X86_64) yum install $rpm_pkgs $suse_pkgs $suse_64bit_pkgs;;
Fedora*i586) yum install $rpm_pkgs $fedora_pkgs ;;
*) echo "distro $distro not supported"; exit 1;;
esac

if test `uname -m` = x86_64
then

# Provide plain old .so names for given libraries
# Usage: linksos dir foo.so.x bar.so.y ...
linksos()
{
    dir=$1
    shift
    for lib
    do
        barename=`echo $lib | sed 's/\.so\..*$/.so/' `
        if test -f $dir/$lib && test ! -f $dir/$barename 
        then
            ln -s $dir/$lib $dir/$barename
        fi
    done
}

    case $distro in
    Ubuntu*8.10) 
        apt-get install ia32-libs lib32asound2-dev lib32z1-dev 
	linksos /usr/lib32 $ubuntu_64_ibex_usr_lib32_sos
	linksos /lib32 $ubuntu_64_ibex_lib32_sos
	# Special cases
	test -f /usr/lib32/libpng.so || ln -s /usr/lib32/libpng12.so /usr/lib32/libpng.so
	test -f /usr/lib32/libldap.so || ln -s /usr/lib32/libldap-2.4.so /usr/lib32/libldap.so
	test -f /usr/lib32/liblber.so || ln -s /usr/lib32/liblber-2.4.so.2 /usr/lib32/liblber.so
	test -f /usr/lib32/libldap_r.so || ln -s /usr/lib32/libldap_r-2.4.so.2 /usr/lib32/libldap_r.so
	# For some reason not installed by default
	apt-get install lib32ncurses5-dev
	;;
    openSUSE*X86_64) 
	cd /usr/lib
	ln -s libasound.so.2.0.0 libasound.so
	ln -s libfreetype.so.6 libfreetype.so
	ln -s libgphoto2.so.2.3.0 libgphoto2.so
	ln -s libcups.so.2 libcups.so
	ln -s libssl.so.0.9.8 libssl.so
	ln -s libcrypto.so.0.9.8 libcrypto.so
	ln -s libhal.so.1.0.0 libhal.so
	ln -s libgphoto2_port.so.0.8.0 libgphoto2_port.so
	cd /lib
	ln -s libdbus-1.so.3.4.0 libdbus-1.so
	ln -s libkeyutils.so.1 /usr/lib/libkeyutils.so
	;;
    *) 
        echo "I do not know how to install 32 bit libraries for distro $distro yet"
        ;;
    esac
fi

