File: Makefile

package info (click to toggle)
l2tpns 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,980 kB
  • sloc: ansic: 24,875; sh: 162; makefile: 156; perl: 139
file content (152 lines) | stat: -rw-r--r-- 4,873 bytes parent folder | download | duplicates (3)
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
145
146
147
148
149
150
151
152
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

GIT_VERSION=$(shell git describe --abbrev=0)

all: programs plugins doc
programs: $(PROGRAMS)
plugins: $(PLUGINS)
doc:
	$(MAKE) -C docs

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

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

dist:
	git archive -o ../l2tpns-$(GIT_VERSION).tgz --prefix l2tpns-$(GIT_VERSION)/ HEAD

.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