1#
2# pppd makefile for Linux
3# $Id: Makefile.linux,v 1.1.1.1 2008/10/15 03:30:45 james26_jang Exp $
4#
5
6# Default installation locations
7BINDIR = $(DESTDIR)/usr/sbin
8MANDIR = $(DESTDIR)/usr/man
9INCDIR = $(DESTDIR)/usr/include
10
11TARGETS = pppd
12
13PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap-new.c md5.c ccp.c \
14	   ecp.c ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c \
15	   demand.c utils.c tty.c eap.c chap-md5.c
16
17HEADERS = ccp.h chap-new.h ecp.h fsm.h ipcp.h \
18	ipxcp.h lcp.h magic.h md5.h patchlevel.h pathnames.h pppd.h \
19	upap.h eap.h
20
21MANPAGES = pppd.8
22PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o \
23	   ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o \
24	   eap.o chap-md5.o
25
26#
27# include dependencies if present
28ifeq (.depend,$(wildcard .depend))
29include .depend
30endif
31
32# CC = gcc
33#
34COPTS = -O2 -pipe -Wall -g
35LIBS =
36
37# Uncomment the next 2 lines to include support for Microsoft's
38# MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux.
39CHAPMS=y
40USE_CRYPT=y
41# Don't use MSLANMAN unless you really know what you're doing.
42#MSLANMAN=y
43# Uncomment the next line to include support for MPPE.  CHAPMS (above) must
44# also be enabled.  Also, edit plugins/radius/Makefile.linux.
45MPPE=y
46
47# Uncomment the next line to include support for PPP packet filtering.
48# This requires that the libpcap library and headers be installed
49# and that the kernel driver support PPP packet filtering.
50#FILTER=y
51
52# Uncomment the next line to enable multilink PPP (enabled by default)
53# Linux distributions: Please leave multilink ENABLED in your builds
54# of pppd!
55#HAVE_MULTILINK=y
56
57# Uncomment the next line to enable the TDB database (enabled by default.)
58# If you enable multilink, then TDB is automatically enabled also.
59# Linux distributions: Please leave TDB ENABLED in your builds.
60#USE_TDB=y
61
62#HAS_SHADOW=y
63#USE_PAM=y
64#HAVE_INET6=y
65
66# Enable plugins
67PLUGIN=y
68
69# Enable Microsoft proprietary Callback Control Protocol
70#CBCP=y
71
72# Enable EAP SRP-SHA1 authentication (requires libsrp)
73#USE_SRP=y
74
75#MAXOCTETS=y
76
77INCLUDE_DIRS= -I../include
78
79COMPILE_FLAGS= #-DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP
80
81CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
82
83ifdef CHAPMS
84CFLAGS   += -DCHAPMS=1
85NEEDDES=y
86PPPDOBJS += md4.o chap_ms.o
87HEADERS	+= md4.h chap_ms.h
88ifdef MSLANMAN
89CFLAGS   += -DMSLANMAN=1
90endif
91ifdef MPPE
92CFLAGS   += -DMPPE=1
93endif
94endif
95
96# EAP SRP-SHA1
97ifdef USE_SRP
98CFLAGS	+= -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
99LIBS	+= -lsrp -L/usr/local/ssl/lib -lcrypto
100TARGETS	+= srp-entry
101EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry
102MANPAGES += srp-entry.8
103EXTRACLEAN += srp-entry.o
104NEEDDES=y
105else
106# OpenSSL has an integrated version of SHA-1, and its implementation
107# is incompatible with this local SHA-1 implementation.  We must use
108# one or the other, not both.
109PPPDSRCS += sha1.c
110HEADERS += sha1.h
111PPPDOBJS += sha1.o
112endif
113
114ifdef HAS_SHADOW
115CFLAGS   += -DHAS_SHADOW
116#LIBS     += -lshadow $(LIBS)
117endif
118
119ifneq ($(wildcard /usr/include/crypt.h),)
120CFLAGS   += -DHAVE_CRYPT_H=1
121endif
122ifneq ($(wildcard /usr/lib/libcrypt.*),)
123LIBS	+= -lcrypt
124endif
125
126ifdef NEEDDES
127ifndef USE_CRYPT
128LIBS     += -ldes $(LIBS)
129else
130CFLAGS   += -DUSE_CRYPT=1
131endif
132PPPDOBJS += pppcrypt.o
133HEADERS += pppcrypt.h
134endif
135
136# For "Pluggable Authentication Modules", see ftp.redhat.com:/pub/pam/.
137ifdef USE_PAM
138CFLAGS   += -DUSE_PAM
139LIBS     += -lpam -ldl
140endif
141
142# Multi-linnk
143ifdef HAVE_MULTILINK
144	# Multilink implies the use of TDB
145	USE_TDB=y
146
147	CFLAGS += -DHAVE_MULTILINK
148	PPPDSRCS += multilink.c
149	PPPDOBJS += multilink.o
150endif
151
152# TDB
153ifdef USE_TDB
154	CFLAGS += -DUSE_TDB=1
155	PPPDSRCS += tdb.c
156	PPPDOBJS += tdb.o
157	HEADERS += tdb.h
158endif
159
160# Lock library binary for Linux is included in 'linux' subdirectory.
161ifdef LOCKLIB
162LIBS     += -llock
163CFLAGS   += -DLOCKLIB=1
164endif
165
166ifdef PLUGIN
167CFLAGS	+= -DPLUGIN
168LDFLAGS	+= -Wl,-E
169LIBS	+= -ldl
170endif
171
172ifdef FILTER
173LIBS    += -lpcap
174CFLAGS  += -DPPP_FILTER -I/usr/include/pcap
175endif
176
177ifdef HAVE_INET6
178     PPPDSRCS += ipv6cp.c eui64.c
179     HEADERS  += ipv6cp.h eui64.h
180     PPPDOBJS += ipv6cp.o eui64.o
181     CFLAGS   += -DINET6=1
182endif
183
184ifdef CBCP
185     PPPDSRCS += cbcp.c
186     PPPDOBJS += cbcp.o
187     CFLAGS += -DCBCP_SUPPORT
188     HEADERS += cbcp.h
189endif
190
191ifdef MAXOCTETS
192     CFLAGS += -DMAXOCTETS
193endif
194
195INSTALL= install -o root
196
197all: $(TARGETS)
198
199install: pppd
200	mkdir -p $(BINDIR) $(MANDIR)
201	$(EXTRAINSTALL)
202	$(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
203	if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
204	  chmod o-rx,u+s $(BINDIR)/pppd; fi
205	$(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
206
207pppd: $(PPPDOBJS)
208	$(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
209
210srp-entry:	srp-entry.c
211	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ srp-entry.c $(LIBS)
212
213install-devel:
214	mkdir -p $(INCDIR)/pppd
215	$(INSTALL) -c -m 644 $(HEADERS) $(INCDIR)/pppd
216
217clean:
218	rm -f $(PPPDOBJS) $(EXTRACLEAN) $(TARGETS) *~ #* core
219
220depend:
221	$(CPP) -M $(CFLAGS) $(PPPDSRCS) >.depend
222