mirror of
https://github.com/paulusmack/ppp.git
synced 2024-11-27 05:23:38 +08:00
c2881a6b71
The 5.15 Linux kernel has removed ipx support, along with the userspace visible header. This support wasn't very well maintained in the kernel for several years so drop the support from ppp as well since this won't be usable in future. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
416 lines
13 KiB
Plaintext
416 lines
13 KiB
Plaintext
AC_PREREQ([2.69])
|
|
AC_INIT([ppp],
|
|
[2.4.10-dev],
|
|
[https://github.com/ppp-project/ppp])
|
|
|
|
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
AM_INIT_AUTOMAKE
|
|
AM_MAINTAINER_MODE([enable])
|
|
|
|
AC_LANG(C)
|
|
AC_CONFIG_SRCDIR([pppd/main.c])
|
|
AC_CONFIG_HEADERS([pppd/config.h pppd/pppdconf.h])
|
|
|
|
# Checks for programs.
|
|
AC_PROG_CC
|
|
AM_PROG_CC_C_O
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LIBTOOL
|
|
AC_PROG_LN_S
|
|
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
AC_CANONICAL_HOST
|
|
build_linux=no
|
|
build_sunos=no
|
|
|
|
case "${host_os}" in
|
|
linux*)
|
|
build_linux=yes
|
|
;;
|
|
solaris2*)
|
|
build_sunos=yes
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR(["OS ${host_os} not supported"])
|
|
;;
|
|
esac
|
|
|
|
AM_CONDITIONAL([LINUX], [test "${build_linux}" = "yes" ])
|
|
AM_CONDITIONAL([SUNOS], [test "${build_sunos}" = "yes" ])
|
|
AM_COND_IF([SUNOS],
|
|
CFLAGS="$CFLAGS -DSOL2 -DSRV4")
|
|
|
|
#
|
|
# Checks for header files, these will set the HAVE_[FILE]_H macros in config.h
|
|
AC_HEADER_STDBOOL
|
|
AC_CHECK_HEADERS([ \
|
|
asm/types.h \
|
|
crypt.h \
|
|
paths.h \
|
|
shadow.h \
|
|
sys/dlpi.h \
|
|
sys/ioctl.h \
|
|
sys/socket.h \
|
|
sys/time.h \
|
|
sys/uio.h \
|
|
time.h \
|
|
unistd.h \
|
|
utmp.h])
|
|
|
|
#
|
|
# Check for linux specific headers, required by pppoe, or pppol2tp
|
|
AM_COND_IF([LINUX], [
|
|
AC_CHECK_HEADERS([ \
|
|
net/bpf.h \
|
|
net/if.h \
|
|
net/if_types.h \
|
|
net/if_arp.h \
|
|
linux/if.h \
|
|
linux/if_ether.h \
|
|
linux/if_packet.h \
|
|
netinet/if_ether.h \
|
|
netpacket/packet.h])])
|
|
|
|
AC_CHECK_SIZEOF(unsigned int)
|
|
AC_CHECK_SIZEOF(unsigned long)
|
|
AC_CHECK_SIZEOF(unsigned short)
|
|
|
|
# Checks for library functions.
|
|
AC_CHECK_FUNCS([ \
|
|
mmap \
|
|
logwtmp \
|
|
strerror])
|
|
|
|
#
|
|
# If libc doesn't provide logwtmp, check if libutil provides logwtmp(), and if so link to it.
|
|
AS_IF([test "x${ac_cv_func_logwtmp}" != "xyes"], [
|
|
AC_CHECK_LIB([util], [logwtmp], [
|
|
AC_DEFINE(HAVE_LOGWTMP, 1, ["System provides the logwtmp() function"])
|
|
AC_SUBST([UTIL_LIBS], ["-lutil"])
|
|
])
|
|
])
|
|
|
|
#
|
|
# Check if libcrypt have crypt() function
|
|
AC_CHECK_LIB([crypt], [crypt],
|
|
AC_SUBST([CRYPT_LIBS], ["-lcrypt"]))
|
|
|
|
#
|
|
# Should pppd link with -lsystemd (Linux only)
|
|
AC_ARG_ENABLE([systemd],
|
|
AS_HELP_STRING([--enable-systemd], [Enable support for systemd notification]))
|
|
AM_CONDITIONAL(WITH_SYSTEMD, test "x${enable_systemd}" = "xyes")
|
|
AM_COND_IF([WITH_SYSTEMD],
|
|
AC_DEFINE([SYSTEMD], 1, [Enable support for systemd notifications]))
|
|
|
|
#
|
|
# Enable Callback Protocol Support, disabled by default
|
|
AC_ARG_ENABLE([cbcp],
|
|
AS_HELP_STRING([--enable-cbcp], [Enable Callback Protocol]))
|
|
AM_CONDITIONAL(WITH_CBCP, test "x${enable_cbcp}" = "xyes")
|
|
AM_COND_IF([WITH_CBCP],
|
|
AC_DEFINE([CBCP_SUPPORT], 1, [Have Callback Protocol support]))
|
|
|
|
#
|
|
# Disable support for limiting session duration by maximum octets
|
|
AC_ARG_ENABLE([maxoctets],
|
|
AS_HELP_STRING([--disable-maxoctets], [Disable support for limiting session by maximum octets]))
|
|
AS_IF([test "x$enable_maxoctets" != "xno"],
|
|
AC_DEFINE([MAXOCTETS], 1, ["Limit sessions by maximum number of octets"]))
|
|
|
|
#
|
|
# Disable Microsoft extensions will remove CHAP and MPPE support
|
|
AC_ARG_ENABLE([microsoft-extensions],
|
|
AS_HELP_STRING([--disable-microsoft-extensions], [Disable Microsoft CHAP / MPPE extensions]))
|
|
|
|
AM_CONDITIONAL(WITH_CHAPMS, test "x${enable_microsoft_extensions}" != "xno")
|
|
AM_COND_IF([WITH_CHAPMS],
|
|
AC_DEFINE([CHAPMS], 1, ["Have Microsoft CHAP support"]))
|
|
|
|
AM_CONDITIONAL(WITH_MPPE, test "x${enable_microsoft_extensions}" != "xno")
|
|
AM_COND_IF([WITH_MPPE],
|
|
AC_DEFINE([MPPE], 1, ["Have Microsoft MPPE support"]))
|
|
|
|
#
|
|
# Enable Microsoft LAN Manager support, depends on Microsoft Extensions
|
|
AC_ARG_ENABLE([mslanman],
|
|
AS_HELP_STRING([--enable-mslanman], [Enable Microsoft LAN Manager support]))
|
|
AS_IF([test "x${enable_mslanman}" = "xyes" && test "x${enable_microsoft_extensions}" != "xno"],
|
|
AC_DEFINE([MSLANMAN], 1, ["Have Microsoft LAN Manager support"]))
|
|
|
|
#
|
|
# Disable IPv6 support
|
|
AC_ARG_ENABLE([ipv6-support],
|
|
AS_HELP_STRING([--disable-ipv6-support], [Disable IPv6 support]))
|
|
AM_CONDITIONAL(WITH_INET6, test "x${enable_ipv6_support}" != "xno")
|
|
AM_COND_IF([WITH_INET6],
|
|
AC_DEFINE(INET6, 1, ["Have IPv6 support"]))
|
|
|
|
#
|
|
# Disable Multilink support
|
|
AC_ARG_ENABLE([multilink],
|
|
AS_HELP_STRING([--enable-multilink], [Enable multilink support]))
|
|
AM_CONDITIONAL(WITH_MULTILINK, test "x${enable_multilink}" = "xyes")
|
|
AM_COND_IF([WITH_MULTILINK],
|
|
AC_DEFINE([HAVE_MULTILINK], 1, ["Have multilink support"]))
|
|
AS_IF([test "x${build_sunos}" = "xyes" && test "x${enable_multilink}" = "xyes"],
|
|
[AC_MSG_ERROR([Multilink is not supported on SunOS])])
|
|
|
|
#
|
|
# Multilink require Trivial Database Support
|
|
AM_CONDITIONAL(WITH_TDB, test "x${enable_multilink}" = "xyes")
|
|
AM_COND_IF([WITH_TDB],
|
|
AC_DEFINE([USE_TDB], 1, ["Include TDB support"]))
|
|
|
|
#
|
|
# Enable support for loadable plugins
|
|
AC_ARG_ENABLE([plugins],
|
|
AS_HELP_STRING([--disable-plugins], [Disable support for loadable plugins]))
|
|
AS_IF([test "x$enable_plugins" != "xno"],
|
|
AC_DEFINE([PLUGIN], 1, ["Have support for loadable plugins"]))
|
|
AM_CONDITIONAL(WITH_PLUGINS, test "${enable_plugins}" != "no")
|
|
|
|
#
|
|
# Disable EAP-TLS support
|
|
AC_ARG_ENABLE([eaptls],
|
|
AS_HELP_STRING([--disable-eaptls], [Disable EAP-TLS authentication support]))
|
|
AS_IF([test "x$enable_eaptls" != "xno"],
|
|
AC_DEFINE([USE_EAPTLS], 1, ["Have EAP-TLS authentication support"]))
|
|
AM_CONDITIONAL(WITH_EAPTLS, test "x${enable_eaptls}" != "xno")
|
|
|
|
#
|
|
# Disable PEAP support
|
|
AC_ARG_ENABLE([peap],
|
|
AS_HELP_STRING([--disable-peap], [Disable PEAP authentication support]))
|
|
AS_IF([test "x${enable_peap}" != "xno"],
|
|
AC_DEFINE([USE_PEAP], 1, ["Have PEAP authentication support"]))
|
|
AM_CONDITIONAL([WITH_PEAP], test "x${enable_peap}" != "xno")
|
|
|
|
#
|
|
# Disable OpenSSL engine support
|
|
AC_ARG_ENABLE([openssl-engine],
|
|
AS_HELP_STRING([--disable-openssl-engine], [Disable OpenSSL engine support]))
|
|
AS_IF([test "x$enable_openssl_engine" != "xno"], [],
|
|
AC_DEFINE([OPENSSL_NO_ENGINE], 1, ["OpenSSL engine support"]))
|
|
|
|
#
|
|
# Specify runtime directory
|
|
AC_ARG_WITH([plugin-dir],
|
|
AC_HELP_STRING([--with-plugin-dir=DIR], [Specify the plugin directory for pppd]))
|
|
AS_IF([test -n "$with_plugin_dir"],
|
|
[PPPD_PLUGIN_DIR="$with_plugin_dir"],
|
|
[PPPD_PLUGIN_DIR="${libdir}/pppd/$VERSION"])
|
|
AC_SUBST(PPPD_PLUGIN_DIR, "$PPPD_PLUGIN_DIR", [The pppd plugin directory])
|
|
|
|
#
|
|
# Specify runtime directory
|
|
AC_ARG_WITH([runtime-dir],
|
|
AC_HELP_STRING([--with-runtime-dir=DIR], [Specify the runtime directory for pppd]))
|
|
AS_IF([test -n "$with_runtime_dir"],
|
|
[PPPD_RUNTIME_DIR="$with_runtime_dir"],
|
|
[PPPD_RUNTIME_DIR="${localstatedir}/run/pppd"])
|
|
AC_SUBST(PPPD_RUNTIME_DIR)
|
|
|
|
#
|
|
# Specify runtime directory
|
|
AC_ARG_WITH([logfile-dir],
|
|
AC_HELP_STRING([--with-logfile-dir=DIR], [Specify the log directory for pppd]))
|
|
AS_IF([test -n "$with_logfile_dir"],
|
|
[PPPD_LOGFILE_DIR="$with_logfile_dir"],
|
|
[PPPD_LOGFILE_DIR="${localstatedir}/log/pppd"])
|
|
AC_SUBST(PPPD_LOGFILE_DIR)
|
|
|
|
#
|
|
# Check for OpenSSL
|
|
AX_CHECK_OPENSSL
|
|
AM_CONDITIONAL(WITH_OPENSSL, test "${with_openssl}" != "no")
|
|
|
|
#
|
|
# Check if OpenSSL has compiled in support for various ciphers
|
|
AS_IF([test "x${with_openssl}" != "xno" ], [
|
|
AX_CHECK_OPENSSL_DEFINE([OPENSSL_NO_MD4], [md4])
|
|
AX_CHECK_OPENSSL_DEFINE([OPENSSL_NO_MD5], [md5])
|
|
AX_CHECK_OPENSSL_DEFINE([OPENSSL_NO_DES], [des])
|
|
AX_CHECK_OPENSSL_DEFINE([OPENSSL_NO_SHA], [sha])
|
|
], [
|
|
AS_IF([test "x${enable_eaptls}" != "xno" || test "x${enable_peap}" != "xno"],
|
|
[AC_MSG_ERROR([OpenSSL not found, and if this is your intention then run configure --disable-eaptls and --disable-peap])])
|
|
])
|
|
|
|
AM_CONDITIONAL([OPENSSL_HAVE_MD4], test "x${ac_cv_openssl_md4}" = "xyes")
|
|
AM_COND_IF([OPENSSL_HAVE_MD4],,
|
|
AC_DEFINE([USE_MD4], 1, [Use included md4 included with pppd]))
|
|
|
|
AM_CONDITIONAL([OPENSSL_HAVE_MD5], test "x${ac_cv_openssl_md5}" = "xyes")
|
|
AM_COND_IF([OPENSSL_HAVE_MD5],,
|
|
AC_DEFINE([USE_MD5], 1, [Use included md5 included with pppd]))
|
|
|
|
AM_CONDITIONAL([OPENSSL_HAVE_SHA], test "x${ac_cv_openssl_sha}" = "xyes")
|
|
AM_COND_IF([OPENSSL_HAVE_SHA],,
|
|
AC_DEFINE([USE_SHA], 1, [Use included sha included with pppd]))
|
|
|
|
AM_CONDITIONAL([OPENSSL_HAVE_DES], test "x${ac_cv_openssl_des}" = "xyes")
|
|
AM_COND_IF([OPENSSL_HAVE_DES],,
|
|
AC_DEFINE([USE_CRYPT], 1, [Use included des included with pppd]))
|
|
|
|
#
|
|
# If OpenSSL doesn't support DES, then use the one from libcrypt (glibc dropped support for this in 2.27).
|
|
AS_IF([test "${ac_cv_openssl_des}" = "no" ], [
|
|
AC_CHECK_LIB([crypt], [encrypt],
|
|
[LIBS="$LIBS -lcrypt"],
|
|
[AC_MSG_ERROR([OpenSSL not found or does not support DES, and libcrypt also doesn't support encrypt])]
|
|
)
|
|
])
|
|
|
|
#
|
|
# With libsrp support
|
|
AX_CHECK_SRP
|
|
|
|
#
|
|
# With libatm support
|
|
AX_CHECK_ATM
|
|
|
|
#
|
|
# With libpam support
|
|
AX_CHECK_PAM(AC_DEFINE([USE_PAM], 1, ["Support for Pluggable Authentication Modules"]))
|
|
AM_CONDITIONAL(WITH_PAM, test "x${with_pam}" = "xyes")
|
|
|
|
#
|
|
# With libpcap support, activate pppd on network activity
|
|
AX_CHECK_PCAP
|
|
|
|
#
|
|
# SunOS provides a version of libpcap that would work, but SunOS has no support for activity filter
|
|
AM_CONDITIONAL([WITH_FILTER], [ test "x${with_pcap}" = "xyes" && test "x${build_sunos}" != "xyes" ])
|
|
AM_COND_IF([WITH_FILTER], [
|
|
AC_DEFINE([PPP_FILTER], 1, ["Have packet activity filter support"])], [
|
|
AS_IF([test "x${build_sunos}" = "xyes"], [
|
|
AC_MSG_WARN([Packet activity filter not supported on SunOS])
|
|
with_pcap="no"
|
|
])
|
|
])
|
|
|
|
#
|
|
# Some contributions require GTK/GLIB
|
|
AC_ARG_WITH([gtk], AS_HELP_STRING([--with-gtk], [Build contributions with the GTK+ interface]))
|
|
if test "x${with_gtk}" = "xyes"; then
|
|
PKG_CHECK_MODULES([GTK], [gtk+-2.0])
|
|
PKG_CHECK_MODULES([GLIB], [glib-2.0])
|
|
fi
|
|
AM_CONDITIONAL([WITH_GTK], test "x${with_gtk}" = "xyes")
|
|
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
chat/Makefile
|
|
contrib/Makefile
|
|
contrib/pppgetpass/Makefile
|
|
common/Makefile
|
|
include/Makefile
|
|
modules/Makefile
|
|
pppd/Makefile
|
|
pppd/pppd.pc
|
|
pppd/plugins/Makefile
|
|
pppd/plugins/pppoe/Makefile
|
|
pppd/plugins/pppoatm/Makefile
|
|
pppd/plugins/pppol2tp/Makefile
|
|
pppd/plugins/radius/Makefile
|
|
pppdump/Makefile
|
|
pppstats/Makefile
|
|
scripts/Makefile
|
|
])
|
|
AC_OUTPUT
|
|
|
|
|
|
AS_IF([test "x${build_sunos}" = "xyes" ], [[
|
|
echo "
|
|
Setting up SunOS kernel module(s)"
|
|
mkmkf() {
|
|
rm -f $2
|
|
if [ -f $1 ]; then
|
|
echo " $2 <= $1"
|
|
sed -e "s,@DESTDIR@,$prefix,g" \
|
|
-e "s,@SYSCONF@,$sysconfdir,g" \
|
|
-e "s,@CC@,$CC,g" \
|
|
-e "s|@CFLAGS@|$CFLAGS|g" $1 > $2
|
|
fi
|
|
}
|
|
|
|
release=`uname -r`
|
|
karch=`/usr/bin/isainfo -k`
|
|
makext="sol2"
|
|
archvariant=
|
|
|
|
case "$karch" in
|
|
amd64)
|
|
archvariant='-64x'
|
|
;;
|
|
sparcv9)
|
|
archvariant='-64'
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
usegcc=$CC
|
|
if [ -x /opt/SUNWspro/bin/cc -a "$usegcc" != gcc ] &&
|
|
/opt/SUNWspro/bin/cc -flags >/dev/null 2>&1; then
|
|
if [ "$archvariant" = "-64x" ]; then
|
|
( cd /tmp; echo "int x;" > ppp$$.c
|
|
/opt/SUNWspro/bin/cc -c -errwarn -xchip=opteron -m64 ppp$$.c >/dev/null 2>&1 || (
|
|
echo "WorkShop C is unable to make 64 bit modules, and your $karch system needs"
|
|
echo "them. Consider upgrading cc on this machine."
|
|
rm -f ppp$$.c
|
|
exit 1
|
|
) || exit 1
|
|
rm -f ppp$$.c ppp$$.o
|
|
) || exit 1
|
|
fi
|
|
elif gcc --version >/dev/null 2>&1; then
|
|
archvariant=gcc$archvariant
|
|
compiletype=.gcc
|
|
if [ "$archvariant" = "gcc-64" -o"$archvariant" = "gcc-64x" ]; then
|
|
( cd /tmp; touch ppp$$.c
|
|
gcc -c -m64 ppp$$.c >/dev/null 2>&1 || (
|
|
echo "gcc is unable to make 64 bit modules, and your $karch system needs them."
|
|
echo "Consider upgrading gcc on this machine, or switching to Sun WorkShop."
|
|
rm -f ppp$$.c
|
|
exit 1
|
|
) || exit 1
|
|
rm -f ppp$$.c ppp$$.o
|
|
) || exit 1
|
|
fi
|
|
else
|
|
echo "C compiler not found; hoping for the best."
|
|
fi
|
|
|
|
mkmkf solaris/Makedefs$compiletype Makedefs.com
|
|
mkmkf solaris/Makefile.sol2$archvariant solaris/Makefile
|
|
]])
|
|
|
|
echo "
|
|
$PACKAGE_NAME version $PACKAGE_VERSION
|
|
Prefix...............: $prefix
|
|
Runtime Dir..........: $PPPD_RUNTIME_DIR
|
|
Logfile Dir..........: $PPPD_LOGFILE_DIR
|
|
Plugin Dir...........: $PPPD_PLUGIN_DIR
|
|
With OpenSSL.........: ${with_openssl:-yes}
|
|
With libatm..........: ${with_atm:-no}
|
|
With libpam..........: ${with_pam:-no}
|
|
With libpcap.........: ${with_pcap:-no}
|
|
With libsrp..........: ${with_srp:-no}
|
|
C Compiler...........: $CC $CFLAGS
|
|
Linker...............: $LD $LDFLAGS $LIBS
|
|
|
|
Features enabled
|
|
Microsoft Extensions.: ${enable_microsoft_extensions:-yes}
|
|
Multilink............: ${enable_multilink:-no}
|
|
Plugins..............: ${enable_plugins:-yes}
|
|
CBCP.................: ${enable_cbcp:-no}
|
|
EAP-TLS..............: ${enable_eaptls:-yes}
|
|
PEAP.................: ${enable_peap:-yes}
|
|
"
|