#!/bin/bash
set -e

if [ $# -ne 2 -o $0 != "./install_openc_175_s60" ]; then
    echo "Usage: ./install_openc_175_s60 <path-to-openc-plugin-zip> <s60-sdk-dir>"
    echo " e.g.: ./install_openc_175_s60 s60_open_c_cpp_plug_in_v1_7_en.zip ~/symbian-sdks/s60_50"
    exit 1
fi

openc_tarball=$1
S60_SDK_DIR=$2

export PATH=unshield:$PATH

# create temporary directory
TEMP=openc_temp
trap "echo Removing temporary files...; rm -rf $TEMP" EXIT

# Install OpenC

unzip -d $TEMP $openc_tarball

# Install C libraries and headers
# (header files are the same for all SDK versions)
unshield -d $TEMP -g opencepoc32_3.1 x $TEMP/s60_open_c_cpp_plug_in_v1_7_en/data1.cab
./lowercase $TEMP/opencepoc32_3.1/EPOC32
./fixinclude $TEMP/opencepoc32_3.1/epoc32/include
./mergedir $TEMP/opencepoc32_3.1/epoc32 $S60_SDK_DIR/epoc32

# Install C++ libraries and headers
unshield -d $TEMP -g opencppepoc32 x $TEMP/s60_open_c_cpp_plug_in_v1_7_en/data1.cab
./lowercase $TEMP/opencppepoc32/EPOC32
./fixinclude $TEMP/opencppepoc32/epoc32/include
./mergedir $TEMP/opencppepoc32/epoc32 $S60_SDK_DIR/epoc32

# Patch headers
cat gnupoc-openc_175-include-patch | (cd $S60_SDK_DIR/epoc32/include; patch -p1)

# Install C plugin (incl. SIS files)
unshield -d $TEMP -g opencnokiaplugin x $TEMP/s60_open_c_cpp_plug_in_v1_7_en/data1.cab
./lowercase $TEMP/opencnokiaplugin/nokia_plugin/openc/s60opencsis
./lowercase $TEMP/opencnokiaplugin/nokia_plugin/openc/s60opencex
./fixinclude $TEMP/opencnokiaplugin/nokia_plugin/openc/s60opencex
./fixexamples $TEMP/opencnokiaplugin/nokia_plugin/openc/s60opencex
./mergedir $TEMP/opencnokiaplugin/nokia_plugin $S60_SDK_DIR/nokia_plugin

# Install C++ plugin (incl. SIS files)
unshield -d $TEMP -g opencppnokiaplugin x $TEMP/s60_open_c_cpp_plug_in_v1_7_en/data1.cab
./lowercase $TEMP/opencppnokiaplugin/nokia_plugin/opencpp/s60opencppsis
for d in s60boostex s60opencppex; do
    ./lowercase $TEMP/opencppnokiaplugin/nokia_plugin/opencpp/$d
    ./fixinclude $TEMP/opencppnokiaplugin/nokia_plugin/opencpp/$d
    ./fixexamples $TEMP/opencppnokiaplugin/nokia_plugin/opencpp/$d
done
./mergedir $TEMP/opencppnokiaplugin/nokia_plugin $S60_SDK_DIR/nokia_plugin
