#!/bin/sh

#/********************************************************************
#*	THE USE BY YOU OF THIS SOFTWARE IS GOVERNED IN ALL
#*	RESPECTS BY THE MADGE NETWORKS LTD OPEN SOURCE LICENSE.		
#*	WE ADVISE YOU TO READ THE TERMS OF THE OPEN SOURCE LICENSE
#*	WHICH CAN BE FOUND WITHIN THE LICENSE.TXT FILE WHICH IS PART OF
#*	THE SOFTWARE OR BY VISITING THE URL
#*	http://www.madge.com/Connect/Downloads/Software/.		
#*	MADGE NETWORKS LTD RESERVES THE RIGHT TO SEEK REDRESS FOR
#*	ANY VIOLATION OF THE LICENSE'S TERMS					
#*********************************************************************/

#
# Helper functions for the configure script
#

write_bool() {
    value=`eval echo '$'$1`
    if [ "$value" = "y" ] ; then
    echo "$1=y" >> $TMPCONFIG
    echo "$1=y" >> $CONFIG_MK
    echo "#define $1 1" >> $CONFIG_H
    else
    echo "# $1 is not defined" >> $TMPCONFIG
    echo "# $1 is not defined" >> $CONFIG_MK
    echo "#undef  $1" >> $CONFIG_H
    fi
}

ask_bool() {
	while [ true ] ; do
		default=`eval echo '$'$2`
		answer=""
		/bin/echo -n "$1 [$default]: "
		read answer
		if [ -z "$answer" ] ; then answer="$default" ; fi
   	 	if [ $(expr $answer : [YyNn]) -ne 1 ] ; then
			echo Please enter y or n
		else
			break
		fi
	done
	eval "$2"=\"$answer\"
 	write_bool $2
}

# Function:		ask_str
# Parameters:	1 = Question
#				2 = Variable Name
#
ask_str () {
    default=`eval echo '$'$2`
    answer=""
    /bin/echo -n "$1 [$default]: "
    read answer
    if [ -z "$answer" ] ; then answer="$default" ; fi
    eval "$2"=\"$answer\"
    if [ -z "$3" ] ; then write_str $2 ; fi
}

write_num () {
    value=`eval echo '$'$1`
    if [ "$value" ] ; then
	echo "$1=$value" >> $TMPCONFIG
	echo "$1=$value" >> $CONFIG_MK
	echo "#define $1 $value" >> $CONFIG_H
    else
	echo "# $1 is not defined" >> $TMPCONFIG
	echo "# $1 is not defined" >> $CONFIG_MK
	echo "#undef  $1" >> $CONFIG_H
    fi
}

ask_num () {
	while [ true ] ; do
	    default=`eval echo '$'$2`
		answer=""
    	/bin/echo -n  "$1 [$default]: "
    	read answer
    	if [ -z "$answer" ] ; then answer="$default" ; fi
		if [ $(expr $answer : [0-9]) -ne 1 ] ; then
			echo Please enter a number from 0 - 9
		else
			break
		fi
	done
    eval "$2"=\"$answer\"
    write_num $2
}


# Function:		write_str
# Parameters:	1 = Variable
write_str () {
    value=`eval echo '$'$1`
    echo "$1"=\"$value\" >> $TMPCONFIG
    echo "$1=$value" >> $CONFIG_MK
    echo "#define $1 \"$value\"" >> $CONFIG_H
}

#=====================================================================

version () {
    expr $1 \* 65536 + $2 \* 256 + $3
}


# Function:	symcheck
# Execute KSYMS command and grep for a kernel symbol
# If the symbol is found then set the variable name
# to y
#
symcheck () {
	if grep -q "$1" < ksyms.tmp ; then
        eval "$2=y"
    else
        eval "$2=n"
    fi
}

printflag() {
    value=`eval echo '$'$2`
    /bin/echo -n "    $1 is "
    if [ "$value" = "y" ] ; then
    echo "enabled."
    else
    echo "disabled."
    fi
    write_bool $2
}

configcheck () {
    if grep -q "^$1=y" $AUTOCONF ; then
	eval "$1=y"
    elif grep -q "^$1=m" $AUTOCONF ; then
	eval "$1=y"
	INSTALL_DEPMOD=y
    else
	eval "$1=n"
    fi
}


printconfig () {
    echo "Kernel configuration options:"
    printflag "Symmetric multiprocessing support" CONFIG_SMP

	if [ $CONFIG_SMP = "y" ] ; then
		CONFIG_X86_LOCAL_APIC=y
		write_bool CONFIG_X86_LOCAL_APIC
	fi

    printflag "PCI BIOS support" CONFIG_PCI

	if [ $CONFIG_PCI = "y" ] ; then
	    CONFIG_PCI_QUIRKS=y
   		write_bool CONFIG_PCI_QUIRKS
	fi

    printflag "Networking support" CONFIG_INET
    printflag "Token Ring device support" CONFIG_TR
	printflag "Module Support" CONFIG_MODULES
    printflag "Module version checking" CONFIG_MODVERSIONS
    printflag "/proc filesystem support" CONFIG_PROC_FS
	printflag "Maximum Memory 1 GB" CONFIG_1GB
	printflag "Maximum Memory 2 GB" CONFIG_2GB
	printflag "Maximum Memory 3 GB" CONFIG_3GB
}

