mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-10-18 01:45:34 +00:00

Many thanks to Yevgeny Kosarzhevsky <yevg@pisem.net> for reporting and a lot of testing Thanks to Jan Engelhardt <jengelh@medozas.de> for a lot of advice Thanks to Denys Fedoryschenko <denys@visp.net.lb> for some sample code that he tried and thanks to Andreas Henriksson <andreas@fatal.se> (who maintains iproute2 on debian) for the persistent followup. Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
95 lines
1.8 KiB
Bash
Executable File
95 lines
1.8 KiB
Bash
Executable File
#! /bin/bash
|
|
# This is not an autconf generated configure
|
|
#
|
|
INCLUDE=${1:-"$PWD/include"}
|
|
|
|
echo "# Generated config based on" $INCLUDE >Config
|
|
|
|
echo "TC schedulers"
|
|
|
|
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 -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "TC_CONFIG_ATM:=y" >>Config
|
|
echo yes
|
|
else
|
|
echo no
|
|
fi
|
|
rm -f /tmp/atmtest.c /tmp/atmtest
|
|
|
|
echo -n " IPT "
|
|
|
|
#check if we need dont our internal header ..
|
|
cat >/tmp/ipttest.c <<EOF
|
|
#include <xtables.h>
|
|
char *lib_dir;
|
|
unsigned int global_option_offset = 0;
|
|
const char *program_version = XTABLES_VERSION;
|
|
const char *program_name = "tc-ipt";
|
|
struct afinfo afinfo = {
|
|
.libprefix = "libxt_",
|
|
};
|
|
|
|
void exit_error(enum exittype status, const char *msg, ...)
|
|
{
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
|
|
return 0;
|
|
}
|
|
|
|
EOF
|
|
gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1
|
|
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "TC_CONFIG_XT:=y" >>Config
|
|
echo "using xtables seems no need for internal.h"
|
|
else
|
|
echo "failed test 2"
|
|
fi
|
|
|
|
#check if we need our own internal.h
|
|
cat >/tmp/ipttest.c <<EOF
|
|
#include <xtables.h>
|
|
#include "xt-internal.h"
|
|
char *lib_dir;
|
|
unsigned int global_option_offset = 0;
|
|
const char *program_version = XTABLES_VERSION;
|
|
const char *program_name = "tc-ipt";
|
|
struct afinfo afinfo = {
|
|
.libprefix = "libxt_",
|
|
};
|
|
|
|
void exit_error(enum exittype status, const char *msg, ...)
|
|
{
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
|
|
return 0;
|
|
}
|
|
|
|
EOF
|
|
gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1
|
|
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "using xtables instead of iptables (need for internal.h)"
|
|
echo "TC_CONFIG_XT_H:=y" >>Config
|
|
|
|
else
|
|
echo "failed test 3 using iptables"
|
|
fi
|
|
rm -f /tmp/ipttest.c /tmp/ipttest
|