mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
b1eca56b77
setuid and setgid respectively, and die if it can't. (If the User option is set, tor will setgid to the user's gid as well.) This happens after the pidfile is created, so that in cases where tor needs to be root to work with the pidfile, it will at least be able to create it, although it won't be able to delete it. That sucks, but it's somewhat better than not being able to create the pidfile in the first place. svn:r652
189 lines
6.4 KiB
Plaintext
189 lines
6.4 KiB
Plaintext
|
|
AC_INIT
|
|
AM_INIT_AUTOMAKE(tor, 0.0.2pre13)
|
|
AM_CONFIG_HEADER(orconfig.h)
|
|
|
|
CFLAGS="$CFLAGS -Wall -O2 -I/usr/kerberos/include"
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug compiles with debugging info],
|
|
[if test x$enableval = xyes; then
|
|
CFLAGS="$CFLAGS -g"
|
|
fi])
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_RANLIB
|
|
|
|
# The big search for OpenSSL
|
|
# copied from openssh's configure.ac
|
|
AC_ARG_WITH(ssl-dir,
|
|
[ --with-ssl-dir=PATH Specify path to OpenSSL installation ],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
tryssldir=$withval
|
|
fi
|
|
]
|
|
)
|
|
|
|
saved_LIBS="$LIBS"
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
if test "x$prefix" != "xNONE" ; then
|
|
tryssldir="$tryssldir $prefix"
|
|
fi
|
|
AC_CACHE_CHECK([for OpenSSL directory], ac_cv_openssldir, [
|
|
for ssldir in $tryssldir "" /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
LIBS="$saved_LIBS -lcrypto -lssl"
|
|
|
|
# Skip directories if they don't exist
|
|
if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
|
|
continue;
|
|
fi
|
|
if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
|
|
# Try to use $ssldir/lib if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/lib" ; then
|
|
LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$ssldir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $ssldir/include if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/include" ; then
|
|
CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
|
|
# Basic test to check for compatible version and correct linking
|
|
# *does not* test for RSA - that comes later.
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <string.h>
|
|
#include <openssl/rand.h>
|
|
int main(void)
|
|
{
|
|
char a[2048];
|
|
memset(a, 0, sizeof(a));
|
|
RAND_add(a, sizeof(a), sizeof(a));
|
|
return(RAND_status() <= 0);
|
|
}
|
|
],
|
|
[
|
|
found_crypto=1
|
|
break;
|
|
], []
|
|
)
|
|
|
|
if test ! -z "$found_crypto" ; then
|
|
break;
|
|
fi
|
|
done
|
|
|
|
if test -z "$found_crypto" ; then
|
|
AC_MSG_ERROR([Could not find working OpenSSL library, please install or check config.log])
|
|
fi
|
|
if test -z "$ssldir" ; then
|
|
ssldir="(system)"
|
|
fi
|
|
|
|
ac_cv_openssldir=$ssldir
|
|
])
|
|
if (test ! -z "$ac_cv_openssldir" && test "x$ac_cv_openssldir" != "x(system)") ;
|
|
then
|
|
dnl Need to recover ssldir - test above runs in subshell
|
|
ssldir=$ac_cv_openssldir
|
|
if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
|
|
# Try to use $ssldir/lib if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/lib" ; then
|
|
LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$ssldir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $ssldir/include if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/include" ; then
|
|
CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
LIBS="$saved_LIBS -lcrypto -lssl"
|
|
|
|
dnl The warning message here is no longer strictly accurate.
|
|
|
|
AC_CHECK_HEADERS(unistd.h string.h signal.h netdb.h ctype.h poll.h sys/stat.h sys/poll.h sys/types.h sys/fcntl.h sys/ioctl.h sys/socket.h sys/time.h netinet/in.h arpa/inet.h errno.h assert.h time.h pwd.h grp.h, , AC_MSG_WARN(some headers were not found, compilation may fail))
|
|
|
|
dnl These headers are not essential
|
|
|
|
AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/wait.h netinet/in.h arpa/inet.h)
|
|
|
|
AC_CHECK_FUNCS(gettimeofday ftime socketpair uname)
|
|
|
|
dnl In case we aren't given a working stdint.h, we'll need to grow our own.
|
|
dnl Watch out.
|
|
|
|
AC_CHECK_SIZEOF(int8_t)
|
|
AC_CHECK_SIZEOF(int16_t)
|
|
AC_CHECK_SIZEOF(int32_t)
|
|
AC_CHECK_SIZEOF(int64_t)
|
|
AC_CHECK_SIZEOF(uint8_t)
|
|
AC_CHECK_SIZEOF(uint16_t)
|
|
AC_CHECK_SIZEOF(uint32_t)
|
|
AC_CHECK_SIZEOF(uint64_t)
|
|
|
|
dnl AC_CHECK_TYPES([int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t])
|
|
|
|
AC_CHECK_SIZEOF(char)
|
|
AC_CHECK_SIZEOF(short)
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
AC_CHECK_SIZEOF(long long)
|
|
AC_CHECK_SIZEOF(__int64)
|
|
|
|
# $prefix stores the value of the --prefix command line option, or
|
|
# NONE if the option wasn't set. In the case that it wasn't set, make
|
|
# it be the default, so that we can use it to expand directories now.
|
|
if test "x$prefix" = "xNONE"; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
|
|
# and similarly for $exec_prefix
|
|
if test "x$exec_prefix" = "xNONE"; then
|
|
exec_prefix=$prefix
|
|
fi
|
|
|
|
CONFDIR=`eval echo $sysconfdir/tor`
|
|
AC_SUBST(CONFDIR)
|
|
AC_DEFINE_UNQUOTED(CONFDIR,"$CONFDIR")
|
|
AC_DEFINE([CONFDIR], [], [tor's configuration directory])
|
|
|
|
BINDIR=`eval echo $bindir`
|
|
AC_SUBST(BINDIR)
|
|
|
|
LOCALSTATEDIR=`eval echo $localstatedir`
|
|
AC_SUBST(LOCALSTATEDIR)
|
|
|
|
echo "confdir: $CONFDIR"
|
|
|
|
AC_OUTPUT(Makefile tor.sh src/config/torrc src/config/sample-server-torrc src/Makefile doc/Makefile src/config/Makefile src/common/Makefile src/or/Makefile)
|
|
|