]>
Commit | Line | Data |
---|---|---|
6d3692a9 | 1 | TCOBJ= tc.o tc_qdisc.o tc_class.o tc_filter.o tc_util.o \ |
5bec3484 JHS |
2 | tc_monitor.o m_police.o m_estimator.o m_action.o \ |
3 | m_ematch.o emp_ematch.yacc.o emp_ematch.lex.o | |
aba5acdf | 4 | |
adff36d7 | 5 | include ../Config |
f2e27cfb | 6 | SHARED_LIBS ?= y |
adff36d7 | 7 | |
aba5acdf SH |
8 | TCMODULES := |
9 | TCMODULES += q_fifo.o | |
10 | TCMODULES += q_sfq.o | |
11 | TCMODULES += q_red.o | |
12 | TCMODULES += q_prio.o | |
13 | TCMODULES += q_tbf.o | |
14 | TCMODULES += q_cbq.o | |
45305c24 | 15 | TCMODULES += q_rr.o |
fe1a34fa | 16 | TCMODULES += q_multiq.o |
954df8c6 | 17 | TCMODULES += q_netem.o |
a4eca97c | 18 | TCMODULES += q_choke.o |
aba5acdf SH |
19 | TCMODULES += f_rsvp.o |
20 | TCMODULES += f_u32.o | |
21 | TCMODULES += f_route.o | |
22 | TCMODULES += f_fw.o | |
9ddbb02e | 23 | TCMODULES += f_basic.o |
9932abb4 | 24 | TCMODULES += f_flow.o |
ff213c4b | 25 | TCMODULES += f_cgroup.o |
cda17fcd SH |
26 | TCMODULES += q_dsmark.o |
27 | TCMODULES += q_gred.o | |
28 | TCMODULES += f_tcindex.o | |
29 | TCMODULES += q_ingress.o | |
4b1bbd9c SH |
30 | TCMODULES += q_hfsc.o |
31 | TCMODULES += q_htb.o | |
c86f3494 | 32 | TCMODULES += q_drr.o |
9bf19a85 | 33 | TCMODULES += m_gact.o |
00fa8480 | 34 | TCMODULES += m_mirred.o |
fc2d0206 | 35 | TCMODULES += m_nat.o |
7e7c7372 | 36 | TCMODULES += m_pedit.o |
f72a7aab | 37 | TCMODULES += m_skbedit.o |
3822cc98 | 38 | TCMODULES += m_csum.o |
7e7c7372 | 39 | TCMODULES += p_ip.o |
40 | TCMODULES += p_icmp.o | |
41 | TCMODULES += p_tcp.o | |
42 | TCMODULES += p_udp.o | |
9ddbb02e SH |
43 | TCMODULES += em_nbyte.o |
44 | TCMODULES += em_cmp.o | |
45 | TCMODULES += em_u32.o | |
46 | TCMODULES += em_meta.o | |
7e7c7372 | 47 | |
ab814d63 AH |
48 | TCSO := |
49 | ifeq ($(TC_CONFIG_ATM),y) | |
50 | TCSO += q_atm.so | |
51 | endif | |
63c7d26f JHS |
52 | |
53 | ifeq ($(TC_CONFIG_XT),y) | |
ab814d63 | 54 | TCSO += m_xt.so |
63c7d26f | 55 | else |
80d689d0 | 56 | ifeq ($(TC_CONFIG_XT_OLD),y) |
ab814d63 | 57 | TCSO += m_xt_old.so |
80d689d0 AH |
58 | else |
59 | ifeq ($(TC_CONFIG_XT_OLD_H),y) | |
63c7d26f | 60 | CFLAGS += -DTC_CONFIG_XT_H |
ab814d63 | 61 | TCSO += m_xt_old.so |
80d689d0 AH |
62 | else |
63 | TCMODULES += m_ipt.o | |
64 | endif | |
63c7d26f JHS |
65 | endif |
66 | endif | |
67 | ||
aba5acdf | 68 | TCOBJ += $(TCMODULES) |
f2e27cfb MF |
69 | LDLIBS += -L. -ltc -lm |
70 | ||
71 | ifeq ($(SHARED_LIBS),y) | |
72 | LDLIBS += -ldl | |
73 | LDFLAGS += -Wl,-export-dynamic | |
74 | endif | |
aba5acdf SH |
75 | |
76 | TCLIB := tc_core.o | |
77 | TCLIB += tc_red.o | |
78 | TCLIB += tc_cbq.o | |
79 | TCLIB += tc_estimator.o | |
839c8456 | 80 | TCLIB += tc_stab.o |
aba5acdf | 81 | |
9bf19a85 | 82 | CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PROB |
12ddfff7 AH |
83 | ifneq ($(IPT_LIB_DIR),) |
84 | CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\" | |
85 | endif | |
9bf19a85 | 86 | |
c0fc3ab4 SH |
87 | YACC := bison |
88 | LEX := flex | |
89 | ||
ab814d63 AH |
90 | MODDESTDIR := $(DESTDIR)$(patsubst /usr%,%,$(LIBDIR))/tc |
91 | ||
d3ea2e81 | 92 | %.so: %.c |
73152614 | 93 | $(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic $< -o $@ |
d3ea2e81 | 94 | |
aba5acdf | 95 | |
6cc2f073 | 96 | all: libtc.a tc $(TCSO) |
d5b48556 | 97 | |
98 | tc: $(TCOBJ) $(LIBNETLINK) $(LIBUTIL) $(TCLIB) | |
8e64f6fe | 99 | |
aba5acdf SH |
100 | libtc.a: $(TCLIB) |
101 | $(AR) rcs $@ $(TCLIB) | |
102 | ||
103 | install: all | |
bf512683 MF |
104 | mkdir -p $(MODDESTDIR) |
105 | install -m 0755 tc $(DESTDIR)$(SBINDIR) | |
69286fe8 | 106 | for i in $(TCSO); \ |
bf512683 | 107 | do install -m 755 $$i $(MODDESTDIR); \ |
a2218e8e | 108 | done |
ab814d63 AH |
109 | if [ ! -f $(MODDESTDIR)/m_ipt.so ]; then \ |
110 | if [ -f $(MODDESTDIR)/m_xt.so ]; \ | |
111 | then ln -s m_xt.so $(MODDESTDIR)/m_ipt.so ; \ | |
112 | elif [ -f $(MODDESTDIR)/m_xt_old.so ]; \ | |
113 | then ln -s m_xt_old.so $(MODDESTDIR)/m_ipt.so ; \ | |
114 | fi; \ | |
115 | fi | |
aba5acdf SH |
116 | |
117 | clean: | |
87773db5 SH |
118 | rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.yacc.h; \ |
119 | rm -f emp_ematch.yacc.output | |
aba5acdf | 120 | |
d3ea2e81 | 121 | q_atm.so: q_atm.c |
729cbe84 | 122 | $(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm |
d3ea2e81 | 123 | |
ab814d63 AH |
124 | m_xt.so: m_xt.c |
125 | $(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o m_xt.so m_xt.c -lxtables | |
126 | ||
127 | m_xt_old.so: m_xt_old.c | |
128 | $(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o m_xt_old.so m_xt_old.c -lxtables | |
129 | ||
9ddbb02e SH |
130 | %.yacc.c: %.y |
131 | $(YACC) $(YACCFLAGS) -o $@ $< | |
132 | ||
133 | %.lex.c: %.l | |
52d5ac3f | 134 | $(LEX) $(LEXFLAGS) -o$@ $< |
f2e27cfb MF |
135 | |
136 | ifneq ($(SHARED_LIBS),y) | |
137 | ||
138 | tc: static-syms.o | |
139 | static-syms.o: static-syms.h | |
140 | static-syms.h: $(wildcard *.c) | |
141 | files="$^" ; \ | |
142 | for s in `grep -B 3 '\<dlsym' $$files | sed -n '/snprintf/{s:.*"\([^"]*\)".*:\1:;s:%s::;p}'` ; do \ | |
143 | sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \ | |
144 | done > $@ | |
145 | ||
146 | endif |