#!/bin/sh

##########

VER=1.0
MODULE=general

TYPE=gw
PROJECT=6104IPC

ROOT_PATH=$PWD
AP_PATH=$ROOT_PATH/AP
LINUX_PATH=$ROOT_PATH/linux-2.4.18-adm
IMAGE_PATH=$ROOT_PATH/image

VERSION_FILE=$ROOT_PATH/define/6104ipc-version
MODULE_FILE=$ROOT_PATH/define/6104ipc-module

COMPILER_DATE_FILE=$ROOT_PATH/define/compiler-date

TARGET_FILE=$ROOT_PATH/define/target.def.6104ipc

SET_WEB_SCRIPT=set-gw
#SET_CONFIG_SCRIPT=set

APP_SCRIPT=DoAPP.sh
LINUX_SCRIPT=DoLinux.sh
MODULE_SCRIPT=DoModules.sh
IMAGE_SCRIPT=6104ipc_Image.sh

##########

export TYPE=$TYPE
export PROJECT=$PROJECT
export ROOT_PATH=$ROOT_PATH
export AP_PATH=$AP_PATH
export VERSION_FILE=$VERSION_FILE
export MODULE_FILE=$MODULE_FILE
export COMPILER_DATE_FILE=$COMPILER_DATE_FILE

##########

if [ -f target.def ]; then
	CHK=`diff target.def $TARGET_FILE`
	if [ "$CHK" = "" ]; then
		echo "dosn't need copy"
	else
		cp $TARGET_FILE target.def
		echo "include $PWD/target.def" > make.def
		cat define/compile.def >> make.def
		echo "MODE= -D_$mode_arg""_" > $ROOT_PATH/mode.def
	fi
else
    cp $TARGET_FILE target.def
	echo "include $PWD/target.def" > make.def
	cat define/compile.def >> make.def
	echo "MODE= -D_$mode_arg""_" > $ROOT_PATH/mode.def
fi

. ./target.def

TMP=`cat $ROOT_PATH/build.tmp`
	
if [ "$PLATFORM" != "$TMP" ]; then
    echo "****************************************************************"
    echo "****** Platform not match, contiune anyway (Y/n)? **************"
    echo "****************************************************************"
    read sel
    if [ "$sel" = "Y" ]; then
        cp $TARGET_FILE target.def
		echo "include $PWD/target.def" > make.def
		cat define/compile.def >> make.def
		echo "MODE= -D_$mode_arg""_" > $ROOT_PATH/mode.def
		cd $AP_PATH
		./$APP_SCRIPT clean
		./$APP_SCRIPT config
		cd $ROOT_PATH
		echo "$PLATFORM" > $ROOT_PATH/build.tmp
		echo "run $0 again"
	fi
	exit 0
fi

#if [ "$MODEL" != "-D_6104WB_" ]; then
#    cd $AP_PATH/goahead-2.1.1/LINUX
#	make clean
#	make -f Makefile-tools clean
#	cd $ROOT_PATH
#	cp $TARGET_FILE target.def
#fi

echo "include $PWD/target.def" > make.def
cat define/compile.def >> make.def

# define model specfic directory
rm -f linux-2.4.18
ln -s $LINUX_PATH linux-2.4.18

if [ -f $VERSION_FILE ]; then
	VER=`cat $VERSION_FILE`
	echo "old VER= $VER"
fi

if [ -f $MODULE_FILE ]; then
    MODULE=`cat $MODULE_FILE`
    echo "old MODULE= $MODULE"
fi

if [ $# -ge 1 ]; then
	cd $AP_PATH/goahead-2.1.1
	./$SET_WEB_SCRIPT $1
	if [ $? = 0 ]; then
	    echo "version setting ERROR!!"
		echo "use $0 m.n [module] to set version to m.n and module"
		cd $ROOT_PATH
	    exit 1
	fi
fi

if [ $# = 1 ]; then
    if [ "$1" = "no" ]; then
        echo "VER= $VER"
    else
        VER=$1
        echo "set VER= $VER"
    fi
fi

if [ $# = 2 ]; then
    if [ "$1" = "no" ]; then
        echo "VER= $VER"
    else
        VER=$1
        echo "set VER= $VER"
    fi
	
    MODULE=$2
    echo "set MODULE= $MODULE"
fi

echo -n "Input firmware version ($VER): "
read sel
if [ "$sel" != "" ]; then
    VER=$sel
fi

echo -n "Input firmware model ($MODULE): "
read sel
if [ "$sel" != "" ]; then
    MODULE=$sel
fi

echo "new VER= $VER"
echo "new MODULE= $MODULE"
        
echo -n "Is setting correct? (y): "
read sel
if [ "$sel" != "" ]; then
    if [ "$sel" != "y" ] && [ "$sel" != "Y" ]; then
        exit 0 
    fi 
fi      
    
echo "$VER" > $VERSION_FILE
echo "$MODULE" > $MODULE_FILE

#-----------------------------------------------------------
echo "Setting webpages...[$MODULE]"
cd $AP_PATH/goahead-2.1.1
./$SET_WEB_SCRIPT $MODULE
if [ $? = 1 ]; then
    echo "Set webpages FAIL!!"
	cd $ROOT_PATH
	exit 1
fi
#cd LINUX
#./$SET_CONFIG_SCRIPT $MODULE
#if [ $? = 1 ]; then
#    echo "Set config FAIL!!"
#	cd $ROOT_PATH
#	exit 1
#fi
#--------------------------------------------------------------

echo `date` > $COMPILER_DATE_FILE

if [ "$TYPE" = "gw" ]; then
	echo "************************************************************************"
	echo "                       Build Modules                                    "
	echo "************************************************************************"
	cd $LINUX_PATH
	./$MODULE_SCRIPT make
	if [ $? != 0 ]; then
		exit 1
	fi
fi

echo "************************************************************************"
echo "                       Build Application                                "
echo "************************************************************************"
cd $AP_PATH
./$APP_SCRIPT make
if [ $? != 0 ]; then
	exit 1
fi

echo "************************************************************************"
echo "                       Build linux kernel                               "
echo "************************************************************************"
cd $LINUX_PATH
./$LINUX_SCRIPT make
if [ $? != 0 ]; then
	exit 1
fi

echo "************************************************************************"
echo "                       Build Image                                      "
echo "************************************************************************"
cd $IMAGE_PATH
./$IMAGE_SCRIPT $VER $MODULE
if [ $? != 0 ];then
	exit 1
fi

ls -l $PROJECT/$MODULE-*.bin | grep $VER

VER=`cat $VERSION_FILE`
echo ""
echo "Firmware= Ver $VER Module $MODULE" 
echo "use $0 m.n [module] to set version to m.n and module"
echo ""

