File: Makefile

package info (click to toggle)
l2tpns 2.1.21-1.1
  • links: PTS
  • area: main
  • in suites: lenny, squeeze, wheezy
  • size: 820 kB
  • ctags: 1,621
  • sloc: ansic: 16,737; makefile: 160; sh: 142; perl: 139
file content (133 lines) | stat: -rw-r--r-- 3,924 bytes parent folder | download | duplicates (4)
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
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)"'

OPTIM =
OPTIM += -g
OPTIM += -O3

CC = gcc
LD = gcc
INCLUDES = -I.
CPPFLAGS = $(INCLUDES) $(DEFINES)
CFLAGS = -Wall -Wformat-security -Wno-format-zero-length $(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 = autosnoop.so autothrottle.so garden.so sessionctl.so \
    setrxspeed.so snoopctl.so stripdomain.so throttlectl.so

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

ifneq (2.4, $(shell uname -r | perl -pe 's/^(\d+\.\d+).*/$$1/'))
 DEFINES += -DHAVE_EPOLL
endif

DEFINES += -DBGP
OBJS += bgp.o

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

clean:
	rm -f *.o test/*.o $(PROGRAMS) $(PLUGINS) 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)

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

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

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 --force $(DESTDIR)$(man5dir)/*.5 $(DESTDIR)$(man8dir)/*.8

	@for config in startup-config users ip_pool; \
	do \
	    suffix=; \
	    mode=0600; [ $$config = ip_pool ] && mode=0644; \
	    if [ -f $(DESTDIR)$(etcdir)/$$config ]; \
	    then \
	    	cmp -s etc/$$config.default $(DESTDIR)$(etcdir)/$$config && continue; \
		suffix=.default; \
	    fi; \
	    echo $(INSTALL) -m $$mode etc/$$config.default $(DESTDIR)$(etcdir)/$$config$$suffix; \
	    $(INSTALL) -m $$mode etc/$$config.default $(DESTDIR)$(etcdir)/$$config$$suffix; \
	done

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

	@if [ -z $(DESTDIR) ] && [ ! -e /dev/net/tun ]; \
	then \
		mkdir /dev/net; \
		echo mknod /dev/net/tun c 10 200; \
		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 constants.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 cluster.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
autosnoop.so: autosnoop.c l2tpns.h plugin.h
autothrottle.so: autothrottle.c l2tpns.h plugin.h
garden.so: garden.c l2tpns.h plugin.h control.h
sessionctl.so: sessionctl.c l2tpns.h plugin.h control.h
setrxspeed.so: setrxspeed.c l2tpns.h plugin.h
snoopctl.so: snoopctl.c l2tpns.h plugin.h control.h
stripdomain.so: stripdomain.c l2tpns.h plugin.h
throttlectl.so: throttlectl.c l2tpns.h plugin.h control.h