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