#!/bin/sh

if test $# != 2 -o $0 != "./install_gnupoc_symbian3"; then
  echo "Usage: ./install_gnupoc_symbian3 <path-to-sdk-zip> <target-dir>"
  echo " e.g.: ./install_gnupoc_symbian3 Symbian_3_SDK_v1_0_en.zip ~/symbian-sdks/symbian3"
  exit 1
fi

SRC=$1
DEST=`echo $2 | sed s:/\$::`

mkdir -p $DEST

export PATH=unshield:$PATH

while read a
do
  echo "$a"
  sh -c "$a"
  if test $? != 0; then
    echo "Unexpected error: aborting."
    exit 1
  fi
done << __END

### Unzip & Copy selected files
mkdir -p _e
unzip -qn $SRC -d _e

unshield -g CPP_API x _e/data2.cab
./mergedir CPP_API/epoc32 $DEST/epoc32
rmdir CPP_API

unshield -g CPP_Toolchain x _e/data2.cab
./mergedir CPP_Toolchain/epoc32 $DEST/epoc32
rmdir CPP_Toolchain

unshield -g Common_toolchain x _e/data2.cab
./mergedir Common_toolchain/epoc32 $DEST/epoc32
rmdir Common_toolchain

unshield -g Emulator x _e/data2.cab
./mergedir Emulator/epoc32 $DEST/epoc32
rmdir Emulator

unshield -g Doc_required x _e/data2.cab
mv Doc_required/* $DEST
rmdir Doc_required

unshield -g symbian_examples x _e/data2.cab
mkdir -p $DEST/examples
if [ -d symbian_examples ] ; then mv symbian_examples $DEST/examples/symbian; fi

unshield -g Symbian_tools x _e/data2.cab
mv Symbian_tools $DEST/symbiantools

### Fixing
./lowercase $DEST/epoc32/tools
./lowercase -map_paths headers $DEST/epoc32/include
./lowercase -symlink $DEST/epoc32/include
./lowercase -map_files libraries $DEST/epoc32/release
./lowercase -symlink $DEST/epoc32/release
./lowercase $DEST/epoc32/data
./fixinclude $DEST/epoc32/include
./fixinclude $DEST/examples
./fixexamples $DEST/examples
./lowercase -symlink $DEST/examples
for i in \`find $DEST/epoc32/tools -name \\\*.pl -or -name \\\*.pm\`; do ./dos2unix \$i; done
cp -pR $DEST/epoc32/tools $DEST/epoc32/tools_orig
cat gnupoc-symbian3-include-patch | (cd $DEST/epoc32/include; patch -p1)
cat gnupoc-symbian3-patch | (cd $DEST/epoc32/tools; patch -p1 )
find $DEST/epoc32/tools -name \\\*.orig -exec rm {} \\\\;
cd $DEST/epoc32/tools; chmod a+x \*.pl bldmake abld makmake bmconv rcomp makesis epoc eshell petran pfsdump elf2e32 mifconv makekeys signsis extmake def2dll elftran genstubs getexports tranasm checklib

rm -rf _e

__END

exit 0
