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