#! /bin/bash
# Compiler setup script. Links up the cramfs dev image so that it is suitable for
# compiling QT stuff.
#
# Bruce Kroeze <
[email protected]>
# ver 1.0
HOME_DIR=/home/zaurus
MOUNT_DIR="$HOME_DIR/develop"
DO_PROMPT="true"
function mklink ()
{
if [ ! -e "$1" ]
then
if [ ! -f $2 ]
then
echo "Warning link source $1 not found, linking anyway"
else
echo "Warning link source $1 not found, leaving existing target alone"
fi
fi
# if [ -f $2 ]
# then
# mv $2 $2.bak
# fi
ln -sf $1 $2
}
function fixprofile ()
{
cat >>/etc/profile <<EOF
# added by compiler_setup.sh
export QTDIR=/opt/qtopia
EOF
}
# -- script entry point --
while [ -n "$1" ]
do
case "$1" in
-h)
echo "USAGE: compiler_setup [-h] [-r /mnt/path]"
echo " -h display this help"
echo " -r path to the root of your /lib, /bin/ and /include dirs"
exit 1
;;
-r)
shift
MOUNT_DIR=$1
;;
esac
shift
done
if [ ! -d $MOUNT_DIR ]
then
echo "Could not find root dir: $MOUNT_DIR"
exit 1
fi
for F in bin lib include
do
if [ ! -d ${MOUNT_DIR}/$F ]
then
echo "Could not find $F dir at ${MOUNT_DIR}/$F"
exit 1
fi
done
if [ -z "$QTDIR" ]
then
if [ -d /opt/Qtopia ]
then
export QTDIR=/opt/Qtopia
if [ -f /etc/profile ]
then
if grep -qv "QTDIR" /etc/profile
then
echo "No QTDIR set in environment, probably 'cause it is not in your /etc/profile."
echo "Hit CTRL-C to abort adding it to the profile, or ENTER to continue"
read
fixprofile
fi
fi
export QTDIR=/opt/Qtopia
else
echo "No QTDIR set in environment and it isn't in it's normal location. Please set one before running this script."
exit 1
fi
fi
if [ ! -d $QTDIR ]
then
echo "I can't find the QTDIR directory [${QTDIR}]"
exit 1
fi
echo Linking...
echo "Setting up /usr/bin..."
FILES=`ls $MOUNT_DIR/usr/bin`
for FILE in $FILES
do
ln -sf $MOUNT_DIR/usr/bin/$FILE /usr/bin/$FILE
done
echo "Setting up /usr/local/bin..."
FILES=`ls $MOUNT_DIR/usr/local/bin`
for FILE in $FILES
do
ln -sf $MOUNT_DIR/usr/local/bin/$FILE /usr/local/bin/$FILE
done
#mklink $MOUNT_DIR/usr/bin/gcc /usr/bin/gcc
#mklink $MOUNT_DIR/usr/bin/g++ /usr/bin/g++
mklink $MOUNT_DIR/include /usr/local/include
mklink $MOUNT_DIR/lib/libstdc++-3-libc6.1-2-2.10.0.so /usr/lib/libstdc++-libc6.1-2.so.3
mklink $MOUNT_DIR/lib/libopcodes-2.9.5.0.14.so /usr/lib/libopcodes-2.9.5.0.14.so
mklink $MOUNT_DIR/lib/libbfd-2.9.5.0.14.so /usr/lib/libbfd-2.9.5.0.14.so
mklink $MOUNT_DIR/lib/gcc-lib /usr/lib/gcc-lib
mklink $MOUNT_DIR/lib/gcc-lib/armv4l-redhat-linux/2.95.1/crtn.o /usr/lib/crtn.o
mklink $MOUNT_DIR/lib/gcc-lib/armv4l-redhat-linux/2.95.1/crti.o /usr/lib/crti.o
mklink $MOUNT_DIR/lib/gcc-lib/armv4l-redhat-linux/2.95.1/crt1.o /usr/lib/crt1.o
mklink $MOUNT_DIR/lib/Mcrt1.o /usr/lib/Mcrt1.o
# flex setup
echo "Setting up flex..."
if [ ! -d /usr/local/lib ]
then
mkdir /usr/local/lib
fi
#mklink $MOUNT_DIR/usr/local/bin/flex /usr/local/bin/flex
#mklink $MOUNT_DIR/usr/local/bin/flex++ /usr/local/bin/flex++
#mklink $MOUNT_DIR/usr/local/lib/libfl.a /usr/local/lib/libfl.a
echo "Setting up /usr/local/lib..."
FILES=`ls $MOUNT_DIR/usr/local/lib`
for FILE in $FILES
do
ln -sf $MOUNT_DIR/usr/local/lib/$FILE /usr/local/lib/$FILE
done
# bison setup
echo "Setting up flex..."
if [ ! -d /usr/local/share ]
then
mkdir /usr/local/share
fi
#mklink $MOUNT_DIR/usr/local/bin/bison /usr/local/bin/bison
mklink $MOUNT_DIR/usr/local/share/bison /usr/local/share/bison
mklink $MOUNT_DIR/usr/local/share/awk /usr/local/share/awk
mklink $MOUNT_DIR/usr/local/share/autoconf /usr/local/share/autoconf
mklink $MOUNT_DIR/usr/local/share/automake-1.8 /usr/local/share/automake-1.8
mklink $MOUNT_DIR/usr/local/share/aclocal-1.8 /usr/local/share/aclocal-1.8
#mklink $MOUNT_DIR/usr/local/share/aclocal /usr/local/share/aclocal
mklink $MOUNT_DIR/usr/local/share/libtool /usr/local/share/libtool
mklink $MOUNT_DIR/usr/local/share/vim /usr/local/share/vim
mkdir $HOME_DIR/automake
ln -sf /usr/local/bin $HOME_DIR/automake/bin
ln -sf /usr/local/share $HOME_DIR/automake/share
mkdir $HOME_DIR/autoconf
ln -sf /usr/local/bin $HOME_DIR/autoconf/bin
ln -sf /usr/local/share $HOME_DIR/autoconf/share
mkdir $HOME_DIR/libtool
ln -sf /usr/local/bin $HOME_DIR/libtool/bin
ln -sf /usr/local/share $HOME_DIR/libtool/share
# perl setup
echo "Setting up perl..."
ln -sf $MOUNT_DIR/usr/lib/perl /usr/lib/perl
ln -sf $MOUNT_DIR/usr/lib/perl5 /usr/lib/perl5
mkdir /mnt/pkgs
mkdir /mnt/pkgs/perl
mkdir /mnt/pkgs/perl/perl5.8.0
ln -sf /usr/bin /mnt/pkgs/perl/perl5.8.0/bin
ln -sf /usr/lib/perl /mnt/pkgs/perl/perl5.8.0/lib
echo "Setting up tmake..."
ln -sf $MOUNT_DIR/usr/local/tmake /usr/local/tmake
echo "Setting up libraries..."
mklink /usr/lib/libstdc++-libc6.1-2.so.3 /usr/lib/libstdc++.so
mklink /lib/libm.so.6 /usr/lib/libm.so
mklink /lib/libc.so.6 /usr/lib/libc.so
mklink $MOUNT_DIR/lib/libc_nonshared.a /usr/lib/libc_nonshared.a
mklink $MOUNT_DIR/include/qt $QTDIR/include
mklink $MOUNT_DIR/bin/moc $QTDIR/bin/moc
mklink $MOUNT_DIR/lib/libstdc++-3-libc6.1-2-2.10.0.so $QTDIR/lib/libstdc++-libc6.2-2.so.3
mklink $MOUNT_DIR/lib/libmng.a $QTDIR/lib/libmng.a
mklink $MOUNT_DIR/lib/libpng.a $QTDIR/lib/libpng.a
mklink $MOUNT_DIR/lib/libqte.a $QTDIR/lib/libqte.a
mklink $MOUNT_DIR/lib/libz.a $QTDIR/lib/libz.a
mklink $QTDIR/lib/libqpe.so.1.5.0 $QTDIR/lib/libqpe.a
BIN=$MOUNT_DIR/bin
echo $PATH | grep -qv "${BIN}" && export PATH=$BIN:$PATH
echo "You are now set up for dev using $MOUNT_DIR"