#! /bin/bash
# This is not an autconf generated configure
#
INCLUDE=${1:-"/usr/include"}

echo "# Generated config based on" $INCLUDE >Config

echo "TC"
PKT_SCHED=$INCLUDE/linux/pkt_sched.h
if [ ! -r $PKT_SCHED ];
then
    echo " can't find file" $PKT_SCHED
    exit 1
fi

echo -n " netem scheduler... "
if grep -q 'tc_netem_qopt' $PKT_SCHED
then
    echo "TC_CONFIG_NETEM:=y" >>Config
    echo y
else
    echo n
fi

echo -n " ATM...              "
cat >/tmp/atmtest.c <<EOF
#include <atm.h>
int main(int argc, char **argv) {
	struct atm_qos qos;
	(void) text2qos("aal5,ubr:sdu=9180,rx:none",&qos,0);
	return 0;
}
EOF
gcc -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 
if [ $? -eq 0 ]
then
    echo "TC_CONFIG_ATM:=y" >>Config
    echo y
else
    echo n
fi

# See if we know about TCP Vegas
echo "SS"
echo -n " TCP Vegas...        "
if grep -q TCPDIAG_VEGASINFO $INCLUDE/linux/tcp_diag.h
then
    echo "SS_CONFIG_VEGAS:=y" >>Config
    echo y
else
    echo n
fi

echo -n " TCP DRS...          "
if grep -q tcpi_rcv_space $INCLUDE/linux/tcp.h
then
    echo "SS_CONFIG_DRS:=y" >>Config
    echo y
else
    echo n
fi


