]>
Commit | Line | Data |
---|---|---|
449bf1f3 SH |
1 | #! /bin/bash |
2 | # This is not an autconf generated configure | |
3 | # | |
4b1bbd9c | 4 | INCLUDE=${1:-"$PWD/include"} |
449bf1f3 | 5 | |
f1a0125b AH |
6 | function check_atm |
7 | { | |
c830d77b SH |
8 | cat >/tmp/atmtest.c <<EOF |
9 | #include <atm.h> | |
10 | int main(int argc, char **argv) { | |
11 | struct atm_qos qos; | |
12 | (void) text2qos("aal5,ubr:sdu=9180,rx:none",&qos,0); | |
13 | return 0; | |
14 | } | |
15 | EOF | |
2979d52f | 16 | gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 |
c830d77b | 17 | if [ $? -eq 0 ] |
449bf1f3 | 18 | then |
c830d77b | 19 | echo "TC_CONFIG_ATM:=y" >>Config |
b9cb1c9a | 20 | echo yes |
449bf1f3 | 21 | else |
b9cb1c9a | 22 | echo no |
449bf1f3 | 23 | fi |
2979d52f | 24 | rm -f /tmp/atmtest.c /tmp/atmtest |
f1a0125b | 25 | } |
63c7d26f | 26 | |
f1a0125b AH |
27 | function check_xt |
28 | { | |
a36ceb85 AH |
29 | #check if we have xtables from iptables >= 1.4.5. |
30 | cat >/tmp/ipttest.c <<EOF | |
31 | #include <xtables.h> | |
32 | #include <linux/netfilter.h> | |
33 | static struct xtables_globals test_globals = { | |
34 | .option_offset = 0, | |
35 | .program_name = "tc-ipt", | |
36 | .program_version = XTABLES_VERSION, | |
37 | .orig_opts = NULL, | |
38 | .opts = NULL, | |
39 | .exit_err = NULL, | |
40 | }; | |
41 | ||
42 | int main(int argc, char **argv) | |
43 | { | |
44 | xtables_init_all(&test_globals, NFPROTO_IPV4); | |
45 | return 0; | |
46 | } | |
47 | ||
48 | EOF | |
49 | ||
50 | if gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl -lxtables >/dev/null 2>&1 | |
51 | then | |
52 | echo "TC_CONFIG_XT:=y" >>Config | |
f1a0125b AH |
53 | echo "using xtables" |
54 | fi | |
55 | rm -f /tmp/ipttest.c /tmp/ipttest | |
56 | } | |
57 | ||
58 | function check_xt_old | |
59 | { | |
60 | # bail if previous XT checks has already succeded. | |
61 | if grep TC_CONFIG_XT Config > /dev/null | |
62 | then | |
63 | return | |
a36ceb85 AH |
64 | fi |
65 | ||
63c7d26f JHS |
66 | #check if we need dont our internal header .. |
67 | cat >/tmp/ipttest.c <<EOF | |
68 | #include <xtables.h> | |
69 | char *lib_dir; | |
70 | unsigned int global_option_offset = 0; | |
71 | const char *program_version = XTABLES_VERSION; | |
72 | const char *program_name = "tc-ipt"; | |
73 | struct afinfo afinfo = { | |
74 | .libprefix = "libxt_", | |
75 | }; | |
76 | ||
77 | void exit_error(enum exittype status, const char *msg, ...) | |
78 | { | |
79 | } | |
80 | ||
81 | int main(int argc, char **argv) { | |
82 | ||
83 | return 0; | |
84 | } | |
85 | ||
86 | EOF | |
87 | gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 | |
88 | ||
89 | if [ $? -eq 0 ] | |
90 | then | |
80d689d0 | 91 | echo "TC_CONFIG_XT_OLD:=y" >>Config |
f1a0125b AH |
92 | echo "using old xtables (no need for xt-internal.h)" |
93 | fi | |
94 | rm -f /tmp/ipttest.c /tmp/ipttest | |
95 | } | |
96 | ||
97 | function check_xt_old_internal_h | |
98 | { | |
99 | # bail if previous XT checks has already succeded. | |
100 | if grep TC_CONFIG_XT Config > /dev/null | |
101 | then | |
102 | return | |
63c7d26f JHS |
103 | fi |
104 | ||
105 | #check if we need our own internal.h | |
106 | cat >/tmp/ipttest.c <<EOF | |
107 | #include <xtables.h> | |
108 | #include "xt-internal.h" | |
109 | char *lib_dir; | |
110 | unsigned int global_option_offset = 0; | |
111 | const char *program_version = XTABLES_VERSION; | |
112 | const char *program_name = "tc-ipt"; | |
113 | struct afinfo afinfo = { | |
114 | .libprefix = "libxt_", | |
115 | }; | |
116 | ||
117 | void exit_error(enum exittype status, const char *msg, ...) | |
118 | { | |
119 | } | |
120 | ||
121 | int main(int argc, char **argv) { | |
122 | ||
123 | return 0; | |
124 | } | |
125 | ||
126 | EOF | |
127 | gcc -I$INCLUDE $IPTC -o /tmp/ipttest /tmp/ipttest.c $IPTL -ldl >/dev/null 2>&1 | |
128 | ||
129 | if [ $? -eq 0 ] | |
130 | then | |
f1a0125b | 131 | echo "using old xtables with xt-internal.h" |
80d689d0 | 132 | echo "TC_CONFIG_XT_OLD_H:=y" >>Config |
63c7d26f JHS |
133 | fi |
134 | rm -f /tmp/ipttest.c /tmp/ipttest | |
f1a0125b AH |
135 | } |
136 | ||
137 | function check_ipt | |
138 | { | |
139 | if ! grep TC_CONFIG_XT Config > /dev/null | |
140 | then | |
141 | echo "using iptables" | |
142 | fi | |
143 | } | |
144 | ||
145 | echo "# Generated config based on" $INCLUDE >Config | |
146 | ||
147 | echo "TC schedulers" | |
148 | ||
149 | echo -n " ATM " | |
150 | check_atm | |
151 | ||
152 | echo -n " IPT " | |
153 | check_xt | |
154 | check_xt_old | |
155 | check_xt_old_internal_h | |
156 | check_ipt | |
157 |