File: Makefile

package info (click to toggle)
l2tpns 2.4.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,892 kB
  • sloc: ansic: 22,125; sh: 177; perl: 139; makefile: 132
file content (144 lines) | stat: -rw-r--r-- 4,689 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
142
143
144
DESTDIR =
bindir = /usr/sbin
etcdir = /etc/l2tpns
needrestartdir = /etc/needrestart/conf.d
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)"'

DEB_CFLAGS_MAINT_APPEND=-Wall -O3 -Wno-format-zero-length

CC = gcc
LD = $(CC)
INCLUDES = -I.
CPPFLAGS = `dpkg-buildflags --get CPPFLAGS` $(INCLUDES) $(DEFINES)
CFLAGS = `dpkg-buildflags --get CFLAGS`
LDFLAGS = `dpkg-buildflags --get LDFLAGS`
LDLIBS =
INSTALL = install -c -D -o root -g root

l2tpns.LIBS = -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 pppoe.o l2tplac.o dhcp6.o ipv6_u.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 && \
	    $(CC) -MM $(CPPFLAGS) $(OBJS:.o=.c) && \
	    $(CC) -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) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -fno-pie -fPIC -shared -o $@ $<

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

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

	$(INSTALL) -d $(DESTDIR)$(needrestartdir)
	$(INSTALL) -m 0644 needrestart.conf $(DESTDIR)$(needrestartdir)/l2tpns.conf

	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 dhcp6.h l2tpns.h
cli.o: cli.c dhcp6.h l2tpns.h constants.h util.h cluster.h tbf.h ll.h \
 bgp.h l2tplac.h
cluster.o: cluster.c dhcp6.h l2tpns.h cluster.h util.h tbf.h pppoe.h \
 bgp.h
constants.o: constants.c constants.h
control.o: control.c dhcp6.h l2tpns.h control.h
icmp.o: icmp.c dhcp6.h l2tpns.h ipv6_u.h
l2tpns.o: l2tpns.c md5.h dhcp6.h l2tpns.h cluster.h plugin.h ll.h \
 constants.h control.h util.h tbf.h bgp.h l2tplac.h pppoe.h
ll.o: ll.c ll.h
md5.o: md5.c md5.h
ppp.o: ppp.c dhcp6.h l2tpns.h constants.h plugin.h util.h tbf.h cluster.h \
 l2tplac.h pppoe.h
radius.o: radius.c md5.h constants.h dhcp6.h l2tpns.h plugin.h util.h \
 cluster.h l2tplac.h pppoe.h
tbf.o: tbf.c dhcp6.h l2tpns.h util.h tbf.h
util.o: util.c dhcp6.h l2tpns.h bgp.h
pppoe.o: pppoe.c dhcp6.h l2tpns.h cluster.h constants.h md5.h util.h
l2tplac.o: l2tplac.c md5.h dhcp6.h l2tpns.h util.h cluster.h l2tplac.h \
 pppoe.h
dhcp6.o: dhcp6.c dhcp6.h l2tpns.h ipv6_u.h
ipv6_u.o: ipv6_u.c ipv6_u.h
bgp.o: bgp.c dhcp6.h l2tpns.h bgp.h util.h
autosnoop.so: autosnoop.c dhcp6.h l2tpns.h plugin.h
autothrottle.so: autothrottle.c dhcp6.h l2tpns.h plugin.h
garden.so: garden.c dhcp6.h l2tpns.h plugin.h control.h
sessionctl.so: sessionctl.c dhcp6.h l2tpns.h plugin.h control.h
setrxspeed.so: setrxspeed.c dhcp6.h l2tpns.h plugin.h
snoopctl.so: snoopctl.c dhcp6.h l2tpns.h plugin.h control.h
stripdomain.so: stripdomain.c dhcp6.h l2tpns.h plugin.h
throttlectl.so: throttlectl.c dhcp6.h l2tpns.h plugin.h control.h