75736f4853
This allows the `xrdp` part of the path `/etc/xrdp` where config files are placed to be customizable. This change is useful when trying the stable version and the devel version alternately.
728 lines
25 KiB
Plaintext
728 lines
25 KiB
Plaintext
# Process this file with autoconf to produce a configure script
|
||
|
||
AC_PREREQ([2.69])
|
||
AC_INIT([xrdp], [0.10.80], [xrdp-devel@googlegroups.com])
|
||
AC_DEFINE([VERSION_YEAR], 2024, [Copyright year])
|
||
AC_CONFIG_HEADERS(config_ac.h:config_ac-h.in)
|
||
AM_INIT_AUTOMAKE([1.7.2 foreign])
|
||
AC_CONFIG_MACRO_DIR([m4])
|
||
AC_USE_SYSTEM_EXTENSIONS
|
||
AC_PROG_CC
|
||
AC_PROG_CXX
|
||
LT_INIT
|
||
|
||
PKG_PROG_PKG_CONFIG
|
||
if test "x$PKG_CONFIG" = "x"; then
|
||
AC_MSG_ERROR([please install pkg-config])
|
||
fi
|
||
|
||
AC_CONFIG_SUBDIRS([libpainter librfxcodec])
|
||
|
||
# Use silent rules by default if supported by Automake
|
||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||
|
||
case $host_os in
|
||
*linux*)
|
||
linux=yes
|
||
;;
|
||
*kfreebsd*)
|
||
linux=yes # only used in instfiles/ so that’s ok for us for now
|
||
;;
|
||
*freebsd*)
|
||
freebsd=yes
|
||
;;
|
||
*netbsd*)
|
||
netbsd=yes
|
||
;;
|
||
*openbsd*)
|
||
openbsd=yes
|
||
;;
|
||
*darwin*)
|
||
macos=yes
|
||
;;
|
||
esac
|
||
|
||
AM_CONDITIONAL(LINUX, [test "x$linux" = xyes])
|
||
AM_CONDITIONAL(FREEBSD, [test "x$freebsd" = xyes])
|
||
AM_CONDITIONAL(OPENBSD, [test "x$openbsd" = xyes])
|
||
AM_CONDITIONAL(NETBSD, [test "x$netbsd" = xyes])
|
||
AM_CONDITIONAL(MACOS, [test "x$macos" = xyes])
|
||
|
||
AC_CHECK_SIZEOF([int])
|
||
AC_CHECK_SIZEOF([long])
|
||
AC_CHECK_SIZEOF([void *])
|
||
|
||
# runstatedir not available for autoconf <= 2.69
|
||
if test "x$runstatedir" = "x" ; then
|
||
runstatedir='${localstatedir}/run'
|
||
fi
|
||
|
||
AC_ARG_WITH([socketdir],
|
||
[AS_HELP_STRING([--with-socketdir=DIR],
|
||
[Use directory for UNIX sockets for XRDP sessions (default: RUNSTATEDIR/xrdp)])],
|
||
[], [with_socketdir="$runstatedir/xrdp"])
|
||
AC_SUBST([socketdir], [$with_socketdir])
|
||
|
||
AC_ARG_WITH([systemdsystemunitdir],
|
||
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files, no to disable]),
|
||
[], [
|
||
if test "x$linux" = xyes; then
|
||
with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
||
fi
|
||
])
|
||
|
||
if test "x$with_systemdsystemunitdir" != xno; then
|
||
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
|
||
fi
|
||
AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
|
||
|
||
AC_ARG_ENABLE(tests,
|
||
AS_HELP_STRING([--enable-tests],
|
||
[Ensure dependencies for the tests are installed]),
|
||
[ensure_tests_deps=yes], [])
|
||
AC_ARG_ENABLE(pam, AS_HELP_STRING([--enable-pam],
|
||
[Build PAM support (default: yes)]),
|
||
[], [enable_pam=yes])
|
||
AM_CONDITIONAL(SESMAN_NOPAM, [test x$enable_pam != xyes])
|
||
AC_ARG_ENABLE(vsock, AS_HELP_STRING([--enable-vsock],
|
||
[Build AF_VSOCK support (default: no)]),
|
||
[], [enable_vsock=no])
|
||
AC_ARG_ENABLE(ipv6, AS_HELP_STRING([--enable-ipv6],
|
||
[Build IPv6 support (default: no, experimental)]),
|
||
[], [enable_ipv6=no])
|
||
AC_ARG_ENABLE(ipv6only, AS_HELP_STRING([--enable-ipv6only],
|
||
[Build IPv6-only (default: no)]),
|
||
[], [enable_ipv6only=no])
|
||
AC_ARG_ENABLE(kerberos, AS_HELP_STRING([--enable-kerberos],
|
||
[Build kerberos support (prefer --enable-pam if available) (default: no)]),
|
||
[], [enable_kerberos=no])
|
||
AC_ARG_ENABLE(bsd, AS_HELP_STRING([--enable-bsd],
|
||
[Build BSD auth support (default: no)]),
|
||
[bsd=true], [bsd=false])
|
||
AM_CONDITIONAL(SESMAN_BSD, [test x$bsd = xtrue])
|
||
AM_CONDITIONAL(SESMAN_KERBEROS, [test x$enable_kerberos = xyes])
|
||
AC_ARG_ENABLE(pamuserpass, AS_HELP_STRING([--enable-pamuserpass],
|
||
[Build PAM userpass support (default: no)]),
|
||
[], [enable_pamuserpass=no])
|
||
AM_CONDITIONAL(SESMAN_PAMUSERPASS, [test x$enable_pamuserpass = xyes])
|
||
AC_ARG_ENABLE(pam-config, AS_HELP_STRING([--enable-pam-config=CONF],
|
||
[Select PAM config to install: arch, debian, redhat, suse, freebsd, macos, unix
|
||
(default: autodetect)]))
|
||
|
||
# Development options. devel_all is first as this provides a default for
|
||
# the others
|
||
AC_ARG_ENABLE(devel_all, AS_HELP_STRING([--enable-devel-all],
|
||
[Enable all development options (default: no)]),
|
||
[devel_all=$enableval], [devel_all=no])
|
||
AC_ARG_ENABLE(devel_debug, AS_HELP_STRING([--enable-devel-debug],
|
||
[Build exes with no optimisation and debugging symbols (default: no)]),
|
||
[devel_debug=$enableval], [devel_debug=$devel_all])
|
||
AM_CONDITIONAL(DEVEL_DEBUG, [test x$devel_debug = xyes ])
|
||
AC_ARG_ENABLE(devel_logging, AS_HELP_STRING([--enable-devel-logging],
|
||
[Enable development logging (default: no)]),
|
||
[devel_logging=$enableval], [devel_logging=$devel_all])
|
||
AC_ARG_ENABLE(devel_streamcheck, AS_HELP_STRING([--enable-devel-streamcheck],
|
||
[Add range-check/abort to stream primitives (default: no)]),
|
||
[devel_streamcheck=$enableval], [devel_streamcheck=$devel_all])
|
||
|
||
AC_ARG_ENABLE(neutrinordp, AS_HELP_STRING([--enable-neutrinordp],
|
||
[Build neutrinordp module (default: no)]),
|
||
[], [enable_neutrinordp=no])
|
||
AM_CONDITIONAL(XRDP_NEUTRINORDP, [test x$enable_neutrinordp = xyes])
|
||
|
||
AC_ARG_ENABLE(ulalaca, AS_HELP_STRING([--enable-ulalaca],
|
||
[Build ulalaca module (experimental) (default: no)]),
|
||
[], [enable_ulalaca=no])
|
||
AM_CONDITIONAL(XRDP_ULALACA, [test x$enable_ulalaca = xyes])
|
||
|
||
AC_ARG_ENABLE(jpeg, AS_HELP_STRING([--enable-jpeg],
|
||
[Build jpeg module (default: no)]),
|
||
[], [enable_jpeg=no])
|
||
AM_CONDITIONAL(XRDP_JPEG, [test x$enable_jpeg = xyes])
|
||
AC_ARG_ENABLE(tjpeg, AS_HELP_STRING([--enable-tjpeg],
|
||
[Build turbo jpeg module (default: no)]),
|
||
[], [enable_tjpeg=no])
|
||
AM_CONDITIONAL(XRDP_TJPEG, [test x$enable_tjpeg = xyes])
|
||
AC_ARG_ENABLE(fuse, AS_HELP_STRING([--enable-fuse],
|
||
[Build fuse(clipboard file / drive redir) (default: no)]),
|
||
[], [enable_fuse=no])
|
||
AM_CONDITIONAL(XRDP_FUSE, [test x$enable_fuse = xyes])
|
||
AC_ARG_ENABLE(xrdpvr, AS_HELP_STRING([--enable-xrdpvr],
|
||
[Build xrdpvr module (default: no)]),
|
||
[], [enable_xrdpvr=no])
|
||
AM_CONDITIONAL(XRDP_XRDPVR, [test x$enable_xrdpvr = xyes])
|
||
AC_ARG_ENABLE(fdkaac, AS_HELP_STRING([--enable-fdkaac],
|
||
[Build aac(audio codec) (default: no)]),
|
||
[], [enable_fdkaac=no])
|
||
AM_CONDITIONAL(XRDP_FDK_AAC, [test x$enable_fdkaac = xyes])
|
||
AC_ARG_ENABLE(opus, AS_HELP_STRING([--enable-opus],
|
||
[Build opus(audio codec) (default: no)]),
|
||
[], [enable_opus=no])
|
||
AM_CONDITIONAL(XRDP_OPUS, [test x$enable_opus = xyes])
|
||
AC_ARG_ENABLE(mp3lame, AS_HELP_STRING([--enable-mp3lame],
|
||
[Build lame mp3(audio codec) (default: no)]),
|
||
[], [enable_mp3lame=no])
|
||
AM_CONDITIONAL(XRDP_MP3LAME, [test x$enable_mp3lame = xyes])
|
||
AC_ARG_ENABLE(ibus, AS_HELP_STRING([--enable-ibus],
|
||
[Allow unicode input via IBus) (default: no)]),
|
||
[], [enable_ibus=no])
|
||
AM_CONDITIONAL(XRDP_IBUS, [test x$enable_ibus = xyes])
|
||
AC_ARG_ENABLE(pixman, AS_HELP_STRING([--enable-pixman],
|
||
[Use pixman library (default: no)]),
|
||
[], [enable_pixman=no])
|
||
AM_CONDITIONAL(XRDP_PIXMAN, [test x$enable_pixman = xyes])
|
||
AC_ARG_ENABLE(x264, AS_HELP_STRING([--enable-x264],
|
||
[Use x264 library (default: no)]),
|
||
[], [enable_x264=no])
|
||
AM_CONDITIONAL(XRDP_X264, [test x$enable_x264 = xyes])
|
||
AC_ARG_ENABLE(openh264, AS_HELP_STRING([--enable-openh264],
|
||
[Use Cisco OpenH264 library (default: no)]),
|
||
[], [enable_openh264=no])
|
||
AM_CONDITIONAL(XRDP_OPENH264, [test x$enable_openh264 = xyes])
|
||
AC_ARG_ENABLE(painter, AS_HELP_STRING([--disable-painter],
|
||
[Do not use included painter library (default: no)]),
|
||
[], [enable_painter=yes])
|
||
AM_CONDITIONAL(XRDP_PAINTER, [test x$enable_painter = xyes])
|
||
|
||
AC_ARG_ENABLE(rfxcodec, AS_HELP_STRING([--disable-rfxcodec],
|
||
[Do not use included librfxcodec library (default: no)]),
|
||
[], [enable_rfxcodec=yes])
|
||
AM_CONDITIONAL(XRDP_RFXCODEC, [test x$enable_rfxcodec = xyes])
|
||
|
||
AC_ARG_ENABLE(rdpsndaudin, AS_HELP_STRING([--enable-rdpsndaudin],
|
||
[Use rdpsnd audio in (default: no)]),
|
||
[], [enable_rdpsndaudin=no])
|
||
AM_CONDITIONAL(XRDP_RDPSNDAUDIN, [test x$enable_rdpsndaudin = xyes])
|
||
|
||
AC_ARG_ENABLE(utmp, AS_HELP_STRING([--enable-utmp],
|
||
[Update utmp (default: no)]),
|
||
[], [enable_utmp=no])
|
||
AM_CONDITIONAL(XRDP_UTMP, [test x$enable_utmp = xyes])
|
||
|
||
AC_ARG_WITH(imlib2, AS_HELP_STRING([--with-imlib2=ARG], [imlib2 library to use for non-BMP backgrounds (ARG=yes/no/<abs-path>)]),,)
|
||
|
||
AC_ARG_WITH(freetype2, AS_HELP_STRING([--with-freetype2=ARG], [freetype2 library to use for rendering fonts (ARG=yes/no/<abs-path>)]),,)
|
||
|
||
# Obsolete options
|
||
AC_ARG_ENABLE(xrdpdebug, AS_HELP_STRING([--enable-xrdpdebug],
|
||
[This option is no longer supported - use --enable-devel-all]))
|
||
|
||
if test "x$enable_xrdpdebug" != x; then
|
||
AC_MSG_ERROR([--enable-xrdpdebug must be replaced with one or more --enable-devel-* options])
|
||
fi
|
||
|
||
# configure compiler options and CFLAGS
|
||
AX_GCC_FUNC_ATTRIBUTE([format])
|
||
AX_TYPE_SOCKLEN_T
|
||
AX_CFLAGS_WARN_ALL
|
||
AX_APPEND_COMPILE_FLAGS([-Wwrite-strings])
|
||
AX_APPEND_COMPILE_FLAGS([-Wmissing-prototypes], ,[-Werror])
|
||
|
||
AM_COND_IF([LINUX],
|
||
[AX_APPEND_COMPILE_FLAGS([-Werror])]) # bsd has warnings that have not been fixed yet
|
||
|
||
AM_COND_IF([DEVEL_DEBUG],
|
||
[AX_APPEND_COMPILE_FLAGS([-g -O0])],
|
||
[AX_APPEND_COMPILE_FLAGS([-O2])])
|
||
|
||
# Function setusercontext() is in BSD -lutil but N/A on Solaris or GNU systems
|
||
AC_SEARCH_LIBS([setusercontext], [util])
|
||
|
||
# Define HAVE_XXXXX macros for some system functions
|
||
AC_CHECK_FUNCS([setusercontext getgrouplist clearenv])
|
||
|
||
# The type used by getgrouplist() is the same type used by getgroups()
|
||
AC_TYPE_GETGROUPS
|
||
|
||
# Don't fail without working nasm if rfxcodec is not enabled
|
||
if test "x$enable_rfxcodec" != xyes; then
|
||
with_simd=no
|
||
export with_simd
|
||
fi
|
||
|
||
# Check if -ldl is needed to use dlopen()
|
||
DLOPEN_LIBS=
|
||
AC_CHECK_FUNC(dlopen, [],
|
||
[AC_CHECK_LIB(dl, dlopen, [DLOPEN_LIBS=-ldl])])
|
||
AC_SUBST(DLOPEN_LIBS)
|
||
|
||
# checking for openssl
|
||
PKG_CHECK_MODULES([OPENSSL], [openssl >= 0.9.8], [],
|
||
[AC_MSG_ERROR([please install libssl-dev or openssl-devel])])
|
||
|
||
# look for openssl binary
|
||
OPENSSL_BIN=`$PKG_CONFIG --variable=exec_prefix openssl`/bin
|
||
AC_PATH_PROGS([OPENSSL], [openssl], [:], [$OPENSSL_BIN:$PATH])
|
||
|
||
# checking for PAM variation
|
||
# Linux-PAM is used in Linux systems
|
||
# OpenPAM is used by FreeBSD, NetBSD, DragonFly BSD and OS X
|
||
# OpenBSD uses BSD Authentication rather than both PAMs
|
||
AC_CHECK_HEADER([security/_pam_types.h],
|
||
[AC_DEFINE([HAVE__PAM_TYPES_H], 1, [Using Linux-PAM], [])])
|
||
AC_CHECK_HEADER([security/pam_constants.h],
|
||
[AC_DEFINE([HAVE_PAM_CONSTANTS_H], 1, [Using OpenPAM], [])])
|
||
|
||
# Find imlib2
|
||
case "$with_imlib2" in
|
||
'' | no) AC_MSG_NOTICE([imlib2 will not be supported])
|
||
use_imlib2=no
|
||
;;
|
||
yes)
|
||
PKG_CHECK_MODULES([IMLIB2], [imlib2 >= 1.4.5],
|
||
[use_imlib2=yes],
|
||
[AC_MSG_ERROR([please install libimlib2-dev or imlib2-devel])])
|
||
;;
|
||
/*) AC_MSG_CHECKING([for imlib2 in $with_imlib2])
|
||
if test -d $with_imlib2/lib; then
|
||
IMLIB2_LIBS="-L$with_imlib2/lib -lImlib2"
|
||
elif test -d $with_imlib2/lib64; then
|
||
IMLIB2_LIBS="-L$with_imlib2/lib64 -lImlib2"
|
||
else
|
||
AC_MSG_RESULT([no])
|
||
AC_MSG_ERROR([Can't find libImlib2 in $with_imlib2])
|
||
fi
|
||
|
||
if test -f $with_imlib2/include/Imlib2.h; then
|
||
IMLIB2_CFLAGS="-I $with_imlib2/include"
|
||
else
|
||
AC_MSG_RESULT([no])
|
||
AC_MSG_ERROR([Can't find $with_imlib2/include/Imlib2.h])
|
||
fi
|
||
AC_MSG_RESULT([yes])
|
||
AC_SUBST([IMLIB2_LIBS])
|
||
AC_SUBST([IMLIB2_CFLAGS])
|
||
use_imlib2=yes
|
||
;;
|
||
*) AC_MSG_ERROR([--with-imlib2 needs yes/no or absolute path])
|
||
esac
|
||
|
||
if test x$use_imlib2 = xyes; then
|
||
AC_DEFINE([USE_IMLIB2],1, [Compile with imlib2 support])
|
||
fi
|
||
|
||
# Find freetype2
|
||
#
|
||
# The modversion used by pkgcheck does not correspond to the
|
||
# freetype2 release. See docs/VERSIONS.TXT in the freetype2
|
||
# source for a table of correspondences. If you change one
|
||
# of the below defines, change both.
|
||
m4_define([FT2_REQUIRED_VERSION], [2_8_0])
|
||
m4_define([FT2_REQUIRED_MODVERSION], [20.0.14])
|
||
case "$with_freetype2" in
|
||
'' | no) AC_MSG_NOTICE([freetype2 will not be supported])
|
||
use_freetype2=no
|
||
;;
|
||
yes)
|
||
PKG_CHECK_MODULES([FREETYPE2], [freetype2 >= FT2_REQUIRED_MODVERSION],
|
||
[use_freetype2=yes],
|
||
[AC_MSG_ERROR([please install version FT2_REQUIRED_VERSION or later of libfreetype6-dev or freetype-devel])])
|
||
;;
|
||
/*) AC_MSG_CHECKING([for freetype2 in $with_freetype2])
|
||
if test -d $with_freetype2/lib; then
|
||
FREETYPE2_LIBS="-L$with_freetype2/lib -llibfreetype"
|
||
elif test -d $with_freetype2/lib64; then
|
||
FREETYPE2_LIBS="-L$with_freetype2/lib64 -llibfreetype"
|
||
else
|
||
AC_MSG_RESULT([no])
|
||
AC_MSG_ERROR([Can't find libfreetype in $with_freetype2])
|
||
fi
|
||
|
||
if test -f $with_freetype2/include/freetype2/ft2build.h; then
|
||
FREETYPE2_CFLAGS="-I $with_freetype2/include/freetype2"
|
||
else
|
||
AC_MSG_RESULT([no])
|
||
AC_MSG_ERROR([Can't find $with_freetype2/include/freetype2/ft2build.h])
|
||
fi
|
||
AC_MSG_RESULT([yes])
|
||
AC_SUBST([FREETYPE2_LIBS])
|
||
AC_SUBST([FREETYPE2_CFLAGS])
|
||
use_freetype2=yes
|
||
;;
|
||
*) AC_MSG_ERROR([--with-freetype2 needs yes/no or absolute path])
|
||
esac
|
||
AM_CONDITIONAL([USE_FREETYPE2], [test "x$use_freetype2" = xyes])
|
||
|
||
# Check only one auth mechanism is specified, and give it a name
|
||
auth_cnt=0
|
||
auth_mech="Builtin"
|
||
AUTHMOD_OBJ=verify_user.lo
|
||
AUTHMOD_LIB=-lcrypt
|
||
if test x$enable_pam = xyes
|
||
then
|
||
auth_cnt=`expr $auth_cnt + 1`
|
||
auth_mech="PAM"
|
||
AUTHMOD_OBJ=verify_user_pam.lo
|
||
AUTHMOD_LIB=-lpam
|
||
fi
|
||
if test x$bsd = xtrue
|
||
then
|
||
auth_cnt=`expr $auth_cnt + 1`
|
||
auth_mech="BSD"
|
||
AUTHMOD_OBJ=verify_user_bsd.lo
|
||
AUTHMOD_LIB=
|
||
fi
|
||
if test x$enable_kerberos = xyes
|
||
then
|
||
auth_cnt=`expr $auth_cnt + 1`
|
||
auth_mech="Kerberos"
|
||
AUTHMOD_OBJ=verify_user_kerberos.lo
|
||
AUTHMOD_LIB=-lkrb5
|
||
fi
|
||
if test x$enable_pamuserpass = xyes
|
||
then
|
||
auth_cnt=`expr $auth_cnt + 1`
|
||
auth_mech="PAM userpass"
|
||
AUTHMOD_OBJ=verify_user_pam_userpass.lo
|
||
AUTHMOD_LIB="-lpam -lpam_userpass"
|
||
fi
|
||
|
||
if test $auth_cnt -gt 1
|
||
then
|
||
AC_MSG_ERROR([--enable-pam, --enable-bsd, --enable-pamuserpass and --enable-kerberos are mutually exclusive])
|
||
fi
|
||
|
||
AC_SUBST([AUTHMOD_OBJ])
|
||
AC_SUBST([AUTHMOD_LIB])
|
||
|
||
# checking if pam should be autodetected.
|
||
if test "x$enable_pam" = "xyes"
|
||
then
|
||
if test -z "$enable_bsd"
|
||
then
|
||
AC_CHECK_HEADER([security/pam_appl.h], [],
|
||
[AC_MSG_ERROR([please install libpam0g-dev or pam-devel])])
|
||
fi
|
||
if test "x$enable_pam_config" = "x"; then
|
||
PAM_RULES="auto"
|
||
else
|
||
pam_config_file="$srcdir/instfiles/pam.d/xrdp-sesman.$enable_pam_config"
|
||
if test -f "$pam_config_file"; then
|
||
PAM_RULES="$enable_pam_config"
|
||
else
|
||
AC_MSG_ERROR([PAM file "$pam_config_file" is not available])
|
||
fi
|
||
fi
|
||
fi
|
||
|
||
AC_SUBST(PAM_RULES)
|
||
|
||
# Add define for development options to config_ac.h
|
||
AC_DEFINE([CONFIG_AC_H],1, [Allow sources to check config_ac.h is included])
|
||
if test x$devel_logging = xyes
|
||
then
|
||
AC_DEFINE([USE_DEVEL_LOGGING],1,[Enable development logging])
|
||
fi
|
||
|
||
if test x$devel_streamcheck = xyes
|
||
then
|
||
AC_DEFINE([USE_DEVEL_STREAMCHECK],1,[Enable development stream checking])
|
||
fi
|
||
|
||
if test "x$enable_vsock" = "xyes"
|
||
then
|
||
enable_vsock=yes
|
||
if test "x$freebsd" = "xyes"
|
||
then
|
||
# Determine if we have AF_HYPERV defined (FreeBSD 13+)
|
||
AC_CHECK_DECL([AF_HYPERV], [AC_DEFINE([XRDP_ENABLE_VSOCK], 1, [Enable AF_HYPERV])], [], [#include <sys/socket.h>])
|
||
else
|
||
AC_CHECK_HEADERS([linux/socket.h linux/vm_sockets.h],
|
||
[AC_DEFINE([XRDP_ENABLE_VSOCK], 1, [Enable AF_VSOCK])],
|
||
[],
|
||
[#include <sys/socket.h>])
|
||
fi
|
||
fi
|
||
|
||
if test "x$enable_ipv6only" = "xyes"
|
||
then
|
||
enable_ipv6=yes
|
||
AC_DEFINE([XRDP_ENABLE_IPV6ONLY],1,[Enable IPv6 only])
|
||
fi
|
||
|
||
if test "x$enable_ipv6" = "xyes"
|
||
then
|
||
AC_DEFINE([XRDP_ENABLE_IPV6],1,[Enable IPv6])
|
||
fi
|
||
|
||
AS_IF( [test "x$enable_neutrinordp" = "xyes"] , [PKG_CHECK_MODULES(FREERDP, freerdp >= 1.0.0)] )
|
||
|
||
# checking for libjpeg
|
||
if test "x$enable_jpeg" = "xyes"
|
||
then
|
||
AC_CHECK_HEADER([jpeglib.h], [],
|
||
[AC_MSG_ERROR([please install libjpeg-dev or libjpeg-devel])])
|
||
fi
|
||
|
||
# checking for fuse
|
||
if test "x$enable_fuse" = "xyes"
|
||
then
|
||
PKG_CHECK_MODULES([FUSE], [fuse3 >= 3.1.0], [],
|
||
[AC_MSG_ERROR([please install libfuse3-dev or fuse3-devel])])
|
||
fi
|
||
|
||
# checking for fdk aac
|
||
if test "x$enable_fdkaac" = "xyes"
|
||
then
|
||
PKG_CHECK_MODULES([FDKAAC], [fdk-aac >= 0.1.0], [],
|
||
[AC_MSG_ERROR([please install libfdk-aac-dev or fdk-aac-devel])])
|
||
fi
|
||
|
||
# checking for opus
|
||
if test "x$enable_opus" = "xyes"
|
||
then
|
||
AC_CHECK_HEADER([opus/opus.h], [],
|
||
[AC_MSG_ERROR([please install libopus-dev or opus-devel])])
|
||
fi
|
||
|
||
# checking for lame mp3
|
||
if test "x$enable_mp3lame" = "xyes"
|
||
then
|
||
AC_CHECK_HEADER([lame/lame.h], [],
|
||
[AC_MSG_ERROR([please install libmp3lame-dev or lamemp3-devel])])
|
||
fi
|
||
|
||
# checking for ibus includes
|
||
if test "x$enable_ibus" = "xyes"
|
||
then
|
||
PKG_CHECK_MODULES([IBUS], [ibus-1.0 >= 1.5], [],
|
||
[AC_MSG_ERROR([please install libibus-1.0-dev or ibus-devel])])
|
||
|
||
# ibus uses dbus which depends on glib
|
||
PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.56], [],
|
||
[AC_MSG_ERROR([please install libglib2.0-dev or glib2.0-devel])])
|
||
fi
|
||
|
||
AS_IF( [test "x$enable_pixman" = "xyes"] , [PKG_CHECK_MODULES(PIXMAN, pixman-1 >= 0.1.0)] )
|
||
|
||
AS_IF( [test "x$enable_x264" = "xyes"] , [PKG_CHECK_MODULES(XRDP_X264, x264 >= 0.3.0)] )
|
||
|
||
AS_IF( [test "x$enable_openh264" = "xyes"] , [PKG_CHECK_MODULES(XRDP_OPENH264, openh264 >= 2.0.0)] )
|
||
|
||
# checking for TurboJPEG
|
||
if test "x$enable_tjpeg" = "xyes"
|
||
then
|
||
if test ! -z "$TURBOJPEG_PATH"
|
||
then
|
||
# env var TURBOJPEG_PATH has been defined, use that
|
||
AC_CHECK_HEADER([$TURBOJPEG_PATH/include/turbojpeg.h], [],
|
||
[AC_MSG_ERROR([could not find TurboJPEG in dir specified by env variable TURBOJPEG_PATH ($TURBOJPEG_PATH)])])
|
||
|
||
AC_SUBST(TurboJpegIncDir, ["-I$TURBOJPEG_PATH/include"])
|
||
AC_SUBST(TurboJpegLibDir, ["-L$TURBOJPEG_PATH/lib -Wl,-rpath -Wl,$TURBOJPEG_PATH/lib"])
|
||
elif test -e /opt/libjpeg-turbo/lib64
|
||
then
|
||
# TurboJPEG has been installed to /opt on a 64 bit m/c
|
||
AC_SUBST(TurboJpegIncDir, ["-I/opt/libjpeg-turbo/include"])
|
||
AC_SUBST(TurboJpegLibDir, ["-L/opt/libjpeg-turbo/lib64 -Wl,-rpath -Wl,/opt/libjpeg-turbo/lib64"])
|
||
elif test -e /opt/libjpeg-turbo/lib32
|
||
then
|
||
# TurboJPEG has been installed to /opt on a 32 bit m/c
|
||
AC_SUBST(TurboJpegIncDir, ["-I/opt/libjpeg-turbo/include"])
|
||
AC_SUBST(TurboJpegLibDir, ["-L/opt/libjpeg-turbo/lib32 -Wl,-rpath -Wl,/opt/libjpeg-turbo/lib32"])
|
||
else
|
||
# check in default location
|
||
AC_CHECK_HEADER([/usr/include/turbojpeg.h], [],
|
||
[AC_MSG_ERROR([please install TurboJPEG ])])
|
||
AC_SUBST(TurboJpegIncDir, [""])
|
||
AC_SUBST(TurboJpegLibDir, [""])
|
||
fi
|
||
fi
|
||
|
||
AC_PATH_XTRA
|
||
if test "x$no_x" == "xyes"; then
|
||
AC_MSG_ERROR([please install libx11-dev or libX11-devel])
|
||
fi
|
||
|
||
save_CFLAGS="$CFLAGS"
|
||
CFLAGS="$CFLAGS $X_CFLAGS"
|
||
|
||
# checking for Xfixes
|
||
AC_CHECK_HEADER([X11/extensions/Xfixes.h], [],
|
||
[AC_MSG_ERROR([please install libxfixes-dev or libXfixes-devel])],
|
||
[#include <X11/Xlib.h>])
|
||
|
||
# checking for Xrandr
|
||
AC_CHECK_HEADER([X11/extensions/Xrandr.h], [],
|
||
[AC_MSG_ERROR([please install libxrandr-dev or libXrandr-devel])],
|
||
[#include <X11/Xlib.h>])
|
||
|
||
# checking for XKB
|
||
AC_CHECK_HEADER([X11/extensions/XKBrules.h], [],
|
||
[AC_MSG_ERROR([please install libxkbfile-dev or libxkbfile-devel])],
|
||
[#include <X11/Xlib.h>
|
||
#include <X11/XKBlib.h>
|
||
#include <stdio.h>])
|
||
|
||
if test "x$enable_utmp" = "xyes"
|
||
then
|
||
AC_CHECK_HEADERS(utmp.h utmpx.h)
|
||
|
||
# Test for non-standard extensions in struct utmpx
|
||
AXRDP_CHECK_UTMPX_MEMBER_EXISTS([ut_host], [HAVE_UTMPX_UT_HOST])
|
||
AXRDP_CHECK_UTMPX_MEMBER_EXISTS([ut_exit], [HAVE_UTMPX_UT_EXIT])
|
||
fi
|
||
|
||
CFLAGS="$save_CFLAGS"
|
||
|
||
# perform unit tests if libcheck and libmocka found
|
||
perform_unit_tests=yes; # Assume packages will be found
|
||
if test "x$ensure_tests_deps" == "xyes"; then
|
||
PKG_CHECK_MODULES([CHECK], [check >= 0.10.0],
|
||
[],
|
||
[AC_MSG_ERROR([please install check, the unit test framework])])
|
||
# Check if cmocka is available - needed for unit testing
|
||
PKG_CHECK_MODULES([CMOCKA], [cmocka],
|
||
[],
|
||
[AC_MSG_ERROR([please install cmocka, the mocking framework])])
|
||
else
|
||
PKG_CHECK_MODULES([CHECK], [check >= 0.10.0],
|
||
[],
|
||
[perform_unit_tests=no])
|
||
PKG_CHECK_MODULES([CMOCKA], [cmocka],
|
||
[],
|
||
[perform_unit_tests=no])
|
||
fi
|
||
|
||
if test "x$perform_unit_tests" == "xyes"; then
|
||
AC_MSG_NOTICE([libcheck found, unit tests will be performed])
|
||
else
|
||
AC_MSG_NOTICE([libcheck not found, unit tests will be skipped])
|
||
fi
|
||
# -- end perform unit tests
|
||
|
||
AC_SUBST([moduledir], '${libdir}/xrdp')
|
||
|
||
AC_ARG_ENABLE([strict-locations],
|
||
[AS_HELP_STRING([--enable-strict-locations],
|
||
[Use standard Autoconf install directories unless overridden
|
||
(default: use /etc and /var)])],
|
||
[], [enable_strict_locations=no])
|
||
|
||
if test "x$enable_strict_locations" != "xyes"; then
|
||
sysconfdir="/etc";
|
||
localstatedir="/var";
|
||
fi
|
||
|
||
AC_ARG_WITH([pamconfdir],
|
||
[AS_HELP_STRING([--with-pamconfdir=DIR],
|
||
[Use directory for pam.d config (default: /etc/pam.d)])],
|
||
[], [with_pamconfdir="$sysconfdir/pam.d"])
|
||
AC_SUBST([pamconfdir], [$with_pamconfdir])
|
||
|
||
AC_ARG_WITH([sysconfsubdir],
|
||
[AS_HELP_STRING([--with-sysconfsubdir=DIR],
|
||
[Use subdirectory for config files (default: xrdp)]))],
|
||
[], [with_sysconfsubdir="xrdp"])
|
||
AC_SUBST([sysconfsubdir], [$with_sysconfsubdir])
|
||
|
||
PKG_INSTALLDIR
|
||
|
||
AC_CHECK_HEADERS([sys/prctl.h uchar.h])
|
||
|
||
AC_CONFIG_FILES([
|
||
common/Makefile
|
||
docs/Makefile
|
||
docs/man/Makefile
|
||
fontutils/Makefile
|
||
genkeymap/Makefile
|
||
instfiles/default/Makefile
|
||
instfiles/init.d/Makefile
|
||
instfiles/Makefile
|
||
instfiles/pam.d/Makefile
|
||
instfiles/pulse/Makefile
|
||
instfiles/rc.d/Makefile
|
||
keygen/Makefile
|
||
waitforx/Makefile
|
||
libipm/Makefile
|
||
libxrdp/Makefile
|
||
Makefile
|
||
mc/Makefile
|
||
neutrinordp/Makefile
|
||
ulalaca/Makefile
|
||
pkgconfig/Makefile
|
||
pkgconfig/xrdp.pc
|
||
pkgconfig/xrdp-uninstalled.pc
|
||
sesman/libsesman/Makefile
|
||
sesman/chansrv/Makefile
|
||
sesman/Makefile
|
||
sesman/sesexec/Makefile
|
||
sesman/tools/Makefile
|
||
tests/Makefile
|
||
tests/common/Makefile
|
||
tests/libipm/Makefile
|
||
tests/libxrdp/Makefile
|
||
tests/memtest/Makefile
|
||
tests/xrdp/Makefile
|
||
tools/Makefile
|
||
tools/devel/Makefile
|
||
tools/devel/tcp_proxy/Makefile
|
||
tools/chkpriv/Makefile
|
||
vnc/Makefile
|
||
xrdpapi/Makefile
|
||
xrdp/Makefile
|
||
xrdpvr/Makefile
|
||
xup/Makefile
|
||
third_party/Makefile
|
||
third_party/tomlc99/Makefile
|
||
])
|
||
|
||
AC_REQUIRE_AUX_FILE([tap-driver.sh])
|
||
AC_OUTPUT
|
||
|
||
echo ""
|
||
echo "xrdp will be compiled with:"
|
||
echo ""
|
||
echo " mp3lame $enable_mp3lame"
|
||
echo " opus $enable_opus"
|
||
echo " fdkaac $enable_fdkaac"
|
||
echo " jpeg $enable_jpeg"
|
||
echo " turbo jpeg $enable_tjpeg"
|
||
echo " rfxcodec $enable_rfxcodec"
|
||
echo " x264 $enable_x264"
|
||
echo " openh264 $enable_openh264"
|
||
echo " painter $enable_painter"
|
||
echo " pixman $enable_pixman"
|
||
echo " fuse $enable_fuse"
|
||
echo " ipv6 $enable_ipv6"
|
||
echo " ipv6only $enable_ipv6only"
|
||
echo " vsock $enable_vsock"
|
||
echo " ibus $enable_ibus"
|
||
echo " auth mechanism $auth_mech"
|
||
echo " rdpsndaudin $enable_rdpsndaudin"
|
||
echo " utmp support $enable_utmp"
|
||
if test x$enable_utmp = xyes; then
|
||
echo " utmpx.ut_host $ac_cv_utmpx_has_ut_host"
|
||
echo " utmpx.ut_exit $ac_cv_utmpx_has_ut_exit"
|
||
fi
|
||
|
||
echo
|
||
echo " with imlib2 $use_imlib2"
|
||
echo " with freetype2 $use_freetype2"
|
||
|
||
echo
|
||
echo " development logging $devel_logging"
|
||
echo " development streamcheck $devel_streamcheck"
|
||
echo ""
|
||
echo " strict_locations $enable_strict_locations"
|
||
echo " prefix $prefix"
|
||
echo " exec_prefix $exec_prefix"
|
||
echo " libdir $libdir"
|
||
echo " bindir $bindir"
|
||
echo " sysconfdir $sysconfdir"
|
||
echo " sysconfdir+subdir $sysconfdir/$sysconfsubdir"
|
||
echo " pamconfdir $pamconfdir"
|
||
echo " localstatedir $localstatedir"
|
||
echo " runstatedir $runstatedir"
|
||
echo " socketdir $socketdir"
|
||
echo ""
|
||
echo " unit tests performable $perform_unit_tests"
|
||
echo ""
|
||
echo " CFLAGS = $CFLAGS"
|
||
echo " LDFLAGS = $LDFLAGS"
|
||
|
||
# xrdp_configure_options.h will be written to the build directory, not the source directory
|
||
echo '#define XRDP_CONFIGURE_OPTIONS \' > ./xrdp_configure_options.h
|
||
./config.status --config | xargs -n 1 | sed -e 's/^/" /' -e 's/$/\\n" \\/' >> ./xrdp_configure_options.h
|
||
echo '""' >> ./xrdp_configure_options.h
|