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