#!/bin/bash

############################
#                          #
#                          #
#    OScam Build Script    #
#                          #
#    Version 2015-02-12    #
#                          #
#                          #
############################

#CONF_DISABLE='all'
CONF_ENABLE='WEBIF WEBIF_LIVELOG WEBIF_JQUERY WITH_LB WITH_DEBUG TOUCH HAVE_DVBAPI CS_CACHEEX CW_CYCLE_CHECK CS_ANTICASC MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_CCCSHARE MODULE_SCAM MODULE_GBOX MODULE_RADEGAST MODULE_SERIAL MODULE_CONSTCW MODULE_PANDORA MODULE_GHTTP READER_NAGRA READER_IRDETO READER_CRYPTOWORKS READER_CONAX READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG READER_BULCRYPT READER_GRIFFIN READER_DGCRYPT CLOCKFIX WITH_EMU WITH_SOFTCAM'
###Zonder-Klokfix-CONF_ENABLE='WEBIF WEBIF_LIVELOG WEBIF_JQUERY WITH_LB WITH_DEBUG CS_CACHEEX CW_CYCLE_CHECK MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_CCCSHARE MODULE_SCAM MODULE_GBOX MODULE_RADEGAST MODULE_SERIAL MODULE_CONSTCW MODULE_PANDORA MODULE_GHTTP READER_NAGRA READER_IRDETO READER_CRYPTOWORKS READER_CONAX READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG READER_BULCRYPT READER_GRIFFIN READER_DGCRYPT WITH_EMU'
###CONF_ENABLE='IPV6SUPPORT'
####CONF_DISABLE='TOUCH HAVE_DVBAPI CARDREADER_INTERNAL CARDREADER_SC8IN1 CARDREADER_DB2COM CARDREADER_STAPI CLOCKFIX'
CONF_DISABLE='CARDREADER_INTERNAL CARDREADER_SC8IN1 CARDREADER_DB2COM CARDREADER_STAPI'
MAKEOPT='USE_LIBUSB=1 USE_PCSC=1 USE_LIBCRYPTO=1'

TRUNK=http://streamboard.tv/svn/oscam/trunk
###EMUGIT=https://github.com/oscam-emu/oscam-emu.git
###EMUGIT=https://github.com/oscam-emu/oscam-patched.git
####EMUFILE1=/usr/src/oscam-emu.patch
####EMUFILE2=/usr/src/perfectoscam.patch
####EMUFILE3=/usr/src/my.patch
####EMUFILE4=/usr/src/my2.patch
BINDIR=/usr/local/bin
CONFDIR=/usr/local/etc

TMPDIR=$(mktemp -d -t oscam-XXXXXXXXXX) || { echo ''; echo ' error creating workdir'; echo ' Stop !'; echo ''; exit 1; }


if [ -z ${1} ]; then
    svn co ${TRUNK} ${TMPDIR}
else
    svn co ${TRUNK} ${TMPDIR} -r ${1}
fi


cd ${TMPDIR}


#####git clone ${EMUGIT}

###patch -p0 < ${EMUFILE1}
###patch -p1 < ${EMUFILE2}
###patch -p0 < ${EMUFILE3}
###patch -p0 < ${EMUFILE4}

touch SoftCam.Key

./config.sh --restore
if [ 'x${CONF_DISABLE}' != 'x' ]; then
    ./config.sh --disable ${CONF_DISABLE}
fi
if [ 'x${CONF_ENABLE}' != 'x' ]; then
    ./config.sh --enable ${CONF_ENABLE}
fi


VERSION=`./config.sh --oscam-version`
REVISION=`./config.sh --oscam-revision`
OSCAM='oscam_'${VERSION}'-r'${REVISION}
OSCAMFILE=${BINDIR}'/'${OSCAM}


if [ -f ${OSCAMFILE} ]; then
    rm ${OSCAMFILE}
fi


if [ -f ${OSCAMFILE}'.debug' ]; then
    rm ${OSCAMFILE}'.debug'
fi


make ${MAKEOPT} OSCAM_BIN=${OSCAMFILE} CONF_DIR=${CONFDIR}


if [ -f ${OSCAMFILE}'.debug' ]; then
        rm ${OSCAMFILE}'.debug'
fi


rm -rf ${TMPDIR}


if [ -f ${OSCAMFILE} ]; then
    ln -sf ${OSCAM} ${BINDIR}'/oscam'
else
    echo ''
    echo ' error creating '${OSCAM}
    echo ' stop !'
    echo ''
    exit 1
fi


echo ''
echo ' active file '${OSCAM}
echo ''


exit 0