blob: 600fa96cefc56a40ddf6122852469586e5ac49bb [file] [log] [blame]
San Mehatdcfb7a72010-04-07 09:35:03 -07001#! /bin/bash
2# This is not an autconf generated configure
3#
4INCLUDE=${1:-"$PWD/include"}
5
Dmitry Shmidt1a441f42011-01-06 15:37:12 -08006TABLES=
7
8check_atm()
San Mehatdcfb7a72010-04-07 09:35:03 -07009{
10cat >/tmp/atmtest.c <<EOF
11#include <atm.h>
12int main(int argc, char **argv) {
13 struct atm_qos qos;
14 (void) text2qos("aal5,ubr:sdu=9180,rx:none",&qos,0);
15 return 0;
16}
17EOF
18gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1
19if [ $? -eq 0 ]
20then
21 echo "TC_CONFIG_ATM:=y" >>Config
22 echo yes
23else
24 echo no
25fi
26rm -f /tmp/atmtest.c /tmp/atmtest
27}
28
Dmitry Shmidt1a441f42011-01-06 15:37:12 -080029check_xt()
San Mehatdcfb7a72010-04-07 09:35:03 -070030{
31#check if we have xtables from iptables >= 1.4.5.
32cat >/tmp/ipttest.c <<EOF
33#include <xtables.h>
34#include <linux/netfilter.h>
35static struct xtables_globals test_globals = {
36 .option_offset = 0,
37 .program_name = "tc-ipt",
38 .program_version = XTABLES_VERSION,
39 .orig_opts = NULL,
40 .opts = NULL,
41 .exit_err = NULL,
42};
43
44int main(int argc, char **argv)
45{
46 xtables_init_all(&test_globals, NFPROTO_IPV4);
47 return 0;
48}
49
50EOF
51
52if gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl -lxtables >/dev/null 2>&1
53then
54 echo "TC_CONFIG_XT:=y" >>Config
55 echo "using xtables"
56fi
57rm -f /tmp/ipttest.c /tmp/ipttest
58}
59
Dmitry Shmidt1a441f42011-01-06 15:37:12 -080060check_xt_old()
San Mehatdcfb7a72010-04-07 09:35:03 -070061{
62# bail if previous XT checks has already succeded.
63if grep TC_CONFIG_XT Config > /dev/null
64then
65 return
66fi
67
68#check if we need dont our internal header ..
69cat >/tmp/ipttest.c <<EOF
70#include <xtables.h>
71char *lib_dir;
72unsigned int global_option_offset = 0;
73const char *program_version = XTABLES_VERSION;
74const char *program_name = "tc-ipt";
75struct afinfo afinfo = {
76 .libprefix = "libxt_",
77};
78
79void exit_error(enum exittype status, const char *msg, ...)
80{
81}
82
83int main(int argc, char **argv) {
84
85 return 0;
86}
87
88EOF
89gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1
90
91if [ $? -eq 0 ]
92then
93 echo "TC_CONFIG_XT_OLD:=y" >>Config
94 echo "using old xtables (no need for xt-internal.h)"
95fi
96rm -f /tmp/ipttest.c /tmp/ipttest
97}
98
Dmitry Shmidt1a441f42011-01-06 15:37:12 -080099check_xt_old_internal_h()
San Mehatdcfb7a72010-04-07 09:35:03 -0700100{
101# bail if previous XT checks has already succeded.
102if grep TC_CONFIG_XT Config > /dev/null
103then
104 return
105fi
106
107#check if we need our own internal.h
108cat >/tmp/ipttest.c <<EOF
109#include <xtables.h>
110#include "xt-internal.h"
111char *lib_dir;
112unsigned int global_option_offset = 0;
113const char *program_version = XTABLES_VERSION;
114const char *program_name = "tc-ipt";
115struct afinfo afinfo = {
116 .libprefix = "libxt_",
117};
118
119void exit_error(enum exittype status, const char *msg, ...)
120{
121}
122
123int main(int argc, char **argv) {
124
125 return 0;
126}
127
128EOF
129gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1
130
131if [ $? -eq 0 ]
132then
133 echo "using old xtables with xt-internal.h"
134 echo "TC_CONFIG_XT_OLD_H:=y" >>Config
135fi
136rm -f /tmp/ipttest.c /tmp/ipttest
137}
138
Dmitry Shmidt1a441f42011-01-06 15:37:12 -0800139check_ipt()
San Mehatdcfb7a72010-04-07 09:35:03 -0700140{
141 if ! grep TC_CONFIG_XT Config > /dev/null
142 then
143 echo "using iptables"
Dmitry Shmidt1a441f42011-01-06 15:37:12 -0800144 TABLES="iptables"
145 else
146 TABLES="xtables"
San Mehatdcfb7a72010-04-07 09:35:03 -0700147 fi
148}
149
Dmitry Shmidt1a441f42011-01-06 15:37:12 -0800150check_ipt_lib_dir()
151{
152 IPT_LIB_DIR=""
153 for dir in /lib /usr/lib /usr/local/lib
154 do
155 for file in $dir/$TABLES/lib*t_*so ; do
156 if [ -f $file ]; then
157 echo $dir/$TABLES
158 echo "IPT_LIB_DIR:=$dir/$TABLES" >> Config
159 return
160 fi
161 done
162 done
163 echo "not found!"
164}
165
San Mehatdcfb7a72010-04-07 09:35:03 -0700166echo "# Generated config based on" $INCLUDE >Config
167
168echo "TC schedulers"
169
170echo -n " ATM "
171check_atm
172
173echo -n " IPT "
174check_xt
175check_xt_old
176check_xt_old_internal_h
177check_ipt
178
Dmitry Shmidt1a441f42011-01-06 15:37:12 -0800179echo -n "iptables modules directory: "
180check_ipt_lib_dir