]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/blob - configure
gred: support TCA_GRED_MAX_P attribute
[lisovros/iproute2_canprio.git] / configure
1 #! /bin/bash
2 # This is not an autconf generated configure
3 #
4 INCLUDE=${1:-"$PWD/include"}
5
6 check_atm()
7 {
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
16 gcc -I$INCLUDE -o /tmp/atmtest /tmp/atmtest.c -latm >/dev/null 2>&1 
17 if [ $? -eq 0 ]
18 then
19     echo "TC_CONFIG_ATM:=y" >>Config
20     echo yes
21 else
22     echo no
23 fi
24 rm -f /tmp/atmtest.c /tmp/atmtest
25 }
26
27 check_xt()
28 {
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 $(pkg-config xtables --cflags --libs) -ldl >/dev/null 2>&1
51 then
52         echo "TC_CONFIG_XT:=y" >>Config
53         echo "using xtables"
54 fi
55 rm -f /tmp/ipttest.c /tmp/ipttest
56 }
57
58 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
64 fi
65
66 #check if we dont need 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
91         echo "TC_CONFIG_XT_OLD:=y" >>Config
92         echo "using old xtables (no need for xt-internal.h)"
93 fi
94 rm -f /tmp/ipttest.c /tmp/ipttest
95 }
96
97 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
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
131         echo "using old xtables with xt-internal.h"
132         echo "TC_CONFIG_XT_OLD_H:=y" >>Config
133 fi
134 rm -f /tmp/ipttest.c /tmp/ipttest
135 }
136
137 check_ipt()
138 {
139         if ! grep TC_CONFIG_XT Config > /dev/null
140         then
141                 echo "using iptables"
142         fi
143 }
144
145 check_ipt_lib_dir()
146 {
147         IPT_LIB_DIR=""
148         for dir in /lib /usr/lib /usr/local/lib
149         do
150                 for file in $dir/{xtables,iptables}/lib*t_*so ; do
151                         if [ -f $file ]; then
152                                 echo ${file%/*}
153                                 echo "IPT_LIB_DIR:=${file%/*}" >> Config
154                                 return
155                         fi
156                 done
157         done
158         echo "not found!"
159 }
160
161 check_setns()
162 {
163 cat >/tmp/setnstest.c <<EOF
164 #include <sched.h>
165 int main(int argc, char **argv) 
166 {
167         (void)setns(0,0);
168         return 0;
169 }
170 EOF
171 gcc -I$INCLUDE -o /tmp/setnstest /tmp/setnstest.c >/dev/null 2>&1
172 if [ $? -eq 0 ]
173 then
174         echo "IP_CONFIG_SETNS:=y" >>Config
175         echo "yes"
176 else
177         echo "no"
178 fi
179 rm -f /tmp/setnstest.c /tmp/setnstest
180 }
181
182 echo "# Generated config based on" $INCLUDE >Config
183
184 echo "TC schedulers"
185
186 echo -n " ATM   "
187 check_atm
188
189 echo -n " IPT   "
190 check_xt
191 check_xt_old
192 check_xt_old_internal_h
193 check_ipt
194
195 echo -n "iptables modules directory: "
196 check_ipt_lib_dir
197
198 echo -n "libc has setns: "
199 check_setns