File: Makefile

package info (click to toggle)
l2tpns 2.0.14-1sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 688 kB
  • ctags: 1,349
  • sloc: ansic: 13,468; makefile: 160; sh: 142
file content (141 lines) | stat: -rw-r--r-- 4,160 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
DESTDIR =
bindir = /usr/sbin
etcdir = /etc/l2tpns
libdir = /usr/lib/l2tpns
man5dir = /usr/share/man/man5
man8dir = /usr/share/man/man8
statedir = /var/lib/l2tpns

DEFINES =
DEFINES += -DLIBDIR='"$(libdir)"'
DEFINES += -DETCDIR='"$(etcdir)"'
DEFINES += -DSTATEDIR='"$(statedir)"'

OPTIM =
OPTIM += -g
OPTIM += -O3
OPTIM += -funroll-loops
OPTIM += -fomit-frame-pointer
OPTIM += -finline-functions
#OPTIM += -fstrength-reduce

CC = gcc
LD = gcc
INCLUDES = -I.
CPPFLAGS = $(INCLUDES) $(DEFINES)
CFLAGS = -Wall $(OPTIM)
LDFLAGS =
LDLIBS =
INSTALL = install -c -D -o root -g root

l2tpns.LIBS = -lm -lcli -ldl

OBJS = arp.o cli.o cluster.o constants.o control.o icmp.o l2tpns.o \
    ll.o md5.o ppp.o radius.o tbf.o util.o

PROGRAMS = l2tpns nsctl
PLUGINS = garden.so throttlectl.so autothrottle.so snoopctl.so \
    autosnoop.so stripdomain.so setrxspeed.so

TESTS = generateload bounce 

DEFINES += -DSTATISTICS
DEFINES += -DSTAT_CALLS
DEFINES += -DRINGBUFFER

DEFINES += -DBGP
OBJS += bgp.o

all: programs plugins tests
programs: $(PROGRAMS)
plugins: $(PLUGINS)
tests: $(TESTS)

clean:
	rm -f *.o test/*.o $(PROGRAMS) $(PLUGINS) $(TESTS) Makefile.tmp Makefile.bak

depend:
	(sed -n 'p; /^## Dependencies: (autogenerated) ##/q' Makefile && \
	    gcc -MM $(CPPFLAGS) $(OBJS:.o=.c) && \
	    gcc -MM $(CPPFLAGS) $(PLUGINS:.so=.c) | sed 's/\.o/.so/') >Makefile.tmp
	mv Makefile Makefile.bak
	mv Makefile.tmp Makefile

l2tpns:	$(OBJS)
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $($@.LIBS)

nsctl:	nsctl.o control.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $($@.LIBS)

generateload:	test/generateload.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $($@.LIBS)

bounce:	test/bounce.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $($@.LIBS)

%.o: %.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

%.so: %.c
	$(CC) -fPIC -shared $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $<

# install config files only if a startup-config does not exist yet
# this does not interfere when building rpms or debs and makes
# fast upgrading via make install possible

install: all
	$(INSTALL) -m 0755 l2tpns $(DESTDIR)$(bindir)/l2tpns
	$(INSTALL) -m 0755 nsctl $(DESTDIR)$(bindir)/nsctl

	$(INSTALL) -m 0644 Docs/startup-config.5 $(DESTDIR)$(man5dir)/startup-config.5
	$(INSTALL) -m 0644 Docs/l2tpns.8 $(DESTDIR)$(man8dir)/l2tpns.8
	$(INSTALL) -m 0644 Docs/nsctl.8 $(DESTDIR)$(man8dir)/nsctl.8

	gzip --best $(DESTDIR)$(man5dir)/*.5 $(DESTDIR)$(man8dir)/*.8

	@if [ -f $(DESTDIR)$(etcdir)/startup-config ]; then \
		echo '***' Installing default config files in $(DESTDIR)$(etcdir) as .defaults; \
		suffix=.default; \
	else \
		echo '***' Installing default config files in $(DESTDIR)$(etcdir) - remember to adjust them; \
		suffix=; \
	fi; \

	$(INSTALL) -m 0600 etc/startup-config.default $(DESTDIR)$(etcdir)/startup-config$$suffix; \
	$(INSTALL) -m 0644 etc/ip_pool.default $(DESTDIR)$(etcdir)/ip_pool$$suffix; \
	$(INSTALL) -m 0600 etc/users.default $(DESTDIR)$(etcdir)/users$$suffix

	for plugin in $(PLUGINS); do \
		$(INSTALL) -m 0755 $$plugin $(DESTDIR)$(libdir)/$$plugin; \
	done

	if [ -z $(DESTDIR) ] && [ ! -e /dev/net/tun ]; then \
		mkdir /dev/net; \
		mknod /dev/net/tun c 10 200; \
	fi

.PHONY: all clean depend install

## Dependencies: (autogenerated) ##
arp.o: arp.c l2tpns.h
cli.o: cli.c l2tpns.h util.h cluster.h tbf.h ll.h bgp.h
cluster.o: cluster.c l2tpns.h cluster.h util.h tbf.h bgp.h
constants.o: constants.c constants.h
control.o: control.c l2tpns.h control.h
icmp.o: icmp.c l2tpns.h
l2tpns.o: l2tpns.c md5.h l2tpns.h cluster.h plugin.h ll.h constants.h \
  control.h util.h tbf.h bgp.h
ll.o: ll.c ll.h
md5.o: md5.c md5.h
ppp.o: ppp.c l2tpns.h constants.h plugin.h util.h tbf.h cluster.h
radius.o: radius.c md5.h constants.h l2tpns.h plugin.h util.h
tbf.o: tbf.c l2tpns.h util.h tbf.h
util.o: util.c l2tpns.h bgp.h
bgp.o: bgp.c l2tpns.h bgp.h util.h
garden.so: garden.c l2tpns.h plugin.h control.h
throttlectl.so: throttlectl.c l2tpns.h plugin.h control.h
autothrottle.so: autothrottle.c l2tpns.h plugin.h
snoopctl.so: snoopctl.c l2tpns.h plugin.h control.h
autosnoop.so: autosnoop.c l2tpns.h plugin.h
stripdomain.so: stripdomain.c l2tpns.h plugin.h
setrxspeed.so: setrxspeed.c l2tpns.h plugin.h