#!/bin/sh # # rdesktop: A Remote Desktop Protocol client # configure script # Copyright (C) Matthew Chapman 1999-2002 # echo "rdesktop build configuration script" echo echo "# Generated by $0 $*" >Makeconf # Process command line options cflags='-DKEYMAP_PATH=\"$(KEYMAP_PATH)\"' ldflags='' rpath= withsound='yes' for arg in $*; do optarg=`echo $arg | sed 's/[-a-z]*=//'` case $arg in --prefix=*) echo "prefix = $optarg" >>Makeconf ;; --exec-prefix=*) echo "exec_prefix = $optarg" >>Makeconf ;; --bindir=*) echo "bindir = $optarg" >>Makeconf ;; --mandir=*) echo "mandir = $optarg" >>Makeconf ;; --sharedir=*) echo "datadir = $optarg" >>Makeconf ;; --with-x*) extraxdir=$optarg ;; --with-openssl*) extrassldir=$optarg ;; --without-openssl*) withoutopenssl=yes ;; --with-egd-socket=*) extraegdpath=$optarg ;; --with-libvncserver) withvncserver=yes ;; --with-libvncserver-config=*) vncserverconfig=$optarg ;; --with-debug) cflags="$cflags -g -DWITH_DEBUG" ;; --with-debug-kbd) cflags="$cflags -g -DWITH_DEBUG_KBD" ;; --with-debug-rdp5) cflags="$cflags -g -DWITH_DEBUG_RDP5" ;; --with-debug-clipboard) cflags="$cflags -g -DWITH_DEBUG_CLIPBOARD" ;; --without-debug*) ;; --with-ipv6) cflags="$cflags -DIPv6" ;; --without-sound*) withsound=no ;; --with-sound) withsound=yes ;; --with-sound=oss) withsound=$optarg ;; --with-sound=sun) withsound=$optarg ;; *) echo "Target directories:" echo " --prefix=PREFIX location for architecture-independent files" echo " --exec-prefix=EPREFIX location for architecture-dependent files" echo " --bindir=BINDIR location for program binaries [EPREFIX/bin]" echo " --mandir=MANDIR location for man pages [PREFIX/man]" echo " --sharedir=SHAREDIR location for architecture-independent shared files [PREFIX/share/rdesktop]" echo echo "Build configuration:" echo " --with-x=DIR look for X Window System at DIR/include, DIR/lib" echo " --with-openssl=DIR look for OpenSSL at DIR/include, DIR/lib" #echo " --without-openssl use in-tree crypto, even if OpenSSL is available" echo " --with-egd-socket=PATH look for Entropy Gathering Daemon socket at PATH" echo " --with-libvncserver make rdp2vnc" echo " --with-libvncserver-config=CMD" echo " use CMD as libvncserver-config" echo " --with-debug enable protocol debugging output" echo " --with-debug-kbd enable debugging of keyboard handling" echo " --with-debug-rdp5 enable debugging of RDP5 code" echo " --with-debug-clipboard enable debugging of clipboard code" echo " --with-ipv6 enable support for IPv6" echo " --without-sound disable support for sound redirection" echo " --with-sound=ARG only detect sound-support for \"oss\" or \"sun\" (and BSD)" echo rm -f Makeconf exit 1 ;; esac done # Find compiler compilers="$CC gcc cc" for compiler in $compilers; do if [ -x "`which $compiler`" ]; then cc=$compiler break fi done if [ -z "$cc" ]; then echo "ERROR: could not find a C compiler (tried: $compilers)" echo "You probably want to install gcc" exit 1 fi echo "CC = $cc" >>Makeconf if $cc -v 2>&1 |grep '^gcc' >/dev/null; then cflags="$cflags -Wall -O2" else cflags="$cflags -O" fi # Find install program if [ -z "$INSTALL" ]; then # Want BSD install if [ -x /usr/ucb/installbsd ]; then INSTALL=/usr/ucb/installbsd elif [ -x /usr/ucb/install ]; then INSTALL=/usr/ucb/install else INSTALL=install fi fi echo "INSTALL = $INSTALL" >>Makeconf # Find X installation xdirs="$extraxdir /usr/X11R6 /usr/X11 /usr/openwin /usr /usr/local/X11R6 /usr/local/X11 /usr/local" for dir in $xdirs; do if [ -f $dir/include/X11/Xlib.h ]; then xdir=$dir break fi done if [ -z "$xdir" ]; then echo "ERROR: could not find X Window System headers" echo "(searched for include/X11/Xlib.h in: $xdirs)" # additional helpful information for Linux users if [ -f /etc/redhat-release ]; then echo You probably need to install the XFree86-devel package elif [ -f /etc/debian_version ]; then echo You probably need to install the xlibs-dev package fi exit 1 fi echo "X Window System:" echo " includes $xdir/include" echo " libraries $xdir/lib" echo if [ $xdir != "/usr" ]; then cflags="$cflags -I$xdir/include" ldflags="$ldflags -L$xdir/lib" rpath="$rpath:$xdir/lib" fi ldflags="$ldflags" targets="$targets rdesktop" #withoutopenssl not currently supported #if [ -z "$withoutopenssl" ]; then # Find OpenSSL installation if available ssldirs="$extrassldir /usr/openssl /usr/ssl /usr /usr/local/openssl /usr/local/ssl /usr/local" for dir in $ssldirs; do if [ -f $dir/include/openssl/rc4.h ]; then ssldir=$dir break fi done if [ -z "$ssldir" ]; then echo "ERROR: could not find OpenSSL headers" echo "(searched for include/openssl/rc4.h in: $ssldirs)" # additional helpful information for Linux users if [ -f /etc/redhat-release ]; then echo You probably need to install the openssl-devel package elif [ -f /etc/debian_version ]; then echo You probably need to install the libssl-dev package fi exit 1 else echo "OpenSSL:" echo " includes $ssldir/include" echo " libraries $ssldir/lib" echo echo "CRYPTOBJ =" >>Makeconf if [ $ssldir != "/usr" ]; then cflags="$cflags -I$ssldir/include" ldflags="$ldflags -L$ssldir/lib" rpath="$rpath:$ssldir/lib" fi cflags="$cflags -DWITH_OPENSSL" ldflags="$ldflags -lcrypto" fi #fi if [ ! -z "$withvncserver" ]; then if [ -z "$vncserverconfig" ]; then vncserverconfig=libvncserver-config fi echo "VNCINC=`$vncserverconfig --cflags`" >> Makeconf echo "LDVNC=`$vncserverconfig --libs`" >> Makeconf echo "CCLD=`$vncserverconfig --link`" >> Makeconf echo >> Makeconf targets="$targets rdp2vnc" echo "Found libvncserver: Building rdp2vnc" fi # Find EGD socket if we don't have /dev/urandom or /dev/random if [ ! -c /dev/random -a ! -c /dev/urandom ]; then egdpaths="$extraegdpath /var/run/egd-pool /dev/egd-pool /etc/egd-pool /etc/entropy" for path in $egdpaths; do # -e isn't portable, so we use -r if [ -r $path ]; then egdpath=$path break fi done if [ -z "$egdpath" ]; then echo "WARNING: could not find /dev/urandom, /dev/random or Entropy Gathering Daemon (EGD) socket" echo "(searched: $egdpaths)" echo "Session keys may be less secure; installing a system randomness source is recommended." echo else echo "Entropy Gathering Daemon (EGD):" echo " socket $egdpath" echo cflags="$cflags -DEGD_SOCKET=\\\"$egdpath\\\"" fi fi # Check for OSS sound support if [ -f /usr/include/sys/soundcard.h -a \( "$withsound" = "yes" -o "$withsound" = "oss" \) ]; then echo Sound support enabled: Open Sound System echo echo "SOUNDOBJ = rdpsnd.o rdpsnd_oss.o" >>Makeconf cflags="$cflags -DWITH_RDPSND" elif [ -f /usr/include/sys/audioio.h -a \( "$withsound" = "yes" -o "$withsound" = "sun" \) ]; then echo Sound support enabled: Sun/BSD echo echo "SOUNDOBJ = rdpsnd.o rdpsnd_sun.o" >>Makeconf cflags="$cflags -DWITH_RDPSND" else echo "WARNING: sound support disabled (no /usr/include/sys/soundcard.h or /usr/include/sys/audioio.h)" echo "Currently supported systems are Open Sound System (oss) and Sun/BSD (sun)" echo fi # Platform-specific options # strip leading colon from rpath rpath=`echo $rpath |sed 's/^://'` case `uname -s` in SunOS) ldflags="$ldflags -lsocket -lnsl -R$rpath" ;; OSF1) ldflags="$ldflags -Wl,-rpath,$rpath" ;; HP-UX) cflags="$cflags -D_XOPEN_SOURCE_EXTENDED" ;; esac echo "CFLAGS = $cflags" >>Makeconf echo "LDFLAGS = $ldflags" >>Makeconf echo "TARGETS = $targets" >>Makeconf echo "configure complete - now run make"