35a8e54bbe
setrlimit() functions.
187 lines
5.7 KiB
Plaintext
187 lines
5.7 KiB
Plaintext
dnl $Id: configure.in,v 1.7 2001-05-27 02:40:23 rjkaes Exp $
|
|
|
|
AC_INIT()
|
|
AM_INIT_AUTOMAKE(tinyproxy,1.4.0pre3)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
AC_CANONICAL_HOST
|
|
AC_CANONICAL_TARGET
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AM_PROG_LEX
|
|
AC_PROG_YACC
|
|
AM_C_PROTOTYPES
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(sys/types.h sys/socket.h sys/time.h time.h netinet/in.h arpa/inet.h error.h fcntl.h netdb.h signal.h stdio.h stdint.h stdlib.h string.h sys/stat.h sys/uio.h unistd.h sys/wait.h sys/un.h sys/select.h strings.h sys/ioctl.h pthread.h sys/sysctl.h syslog.h stdint.h sys/resource.h)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_HEADER_TIME
|
|
AC_UNP_CHECK_TYPE(uint8_t, unsigned char)
|
|
AC_UNP_CHECK_TYPE(int16_t, short)
|
|
AC_UNP_CHECK_TYPE(uint16_t, unsigned short)
|
|
AC_UNP_CHECK_TYPE(int32_t, int)
|
|
AC_UNP_CHECK_TYPE(uint32_t, unsigned int)
|
|
AC_UNP_CHECK_TYPE(size_t, unsigned int)
|
|
AC_UNP_CHECK_TYPE(ssize_t, int)
|
|
AC_UNP_CHECK_TYPE(socklen_t, unsigned int)
|
|
AC_UNP_CHECK_TYPE(in_addr_t, uint32_t)
|
|
|
|
dnl Checks for libraries
|
|
AC_CHECK_LIB(pthread, pthread_create)
|
|
if test $ac_cv_lib_pthread_pthread_create = yes ; then
|
|
CFLAGS="$CFLAGS -D_REENTRANT"
|
|
else
|
|
AC_CHECK_LIB(pthreads, pthread_create)
|
|
if test $ac_cv_lib_pthreads_pthread_create = yes ; then
|
|
CFLAGS="$CFLAGS -D_REENTRANT"
|
|
else
|
|
AC_MSG_ERROR(You must have a POSIX compliant threading library installed)
|
|
fi
|
|
fi
|
|
|
|
AC_CHECK_LIB(nsl, t_open)
|
|
AC_CHECK_LIB(socket, socket)
|
|
|
|
dnl Checks for library functions.
|
|
AC_TYPE_SIGNAL
|
|
AC_FUNC_STRFTIME
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS(ftruncate select setrlimit socket strdup strerror vsnprintf vsyslog)
|
|
AC_CHECK_FUNCS(strlcpy strlcat)
|
|
|
|
dnl chris - allow user to choose log file location, port and username
|
|
AC_ARG_WITH(log-file, [ --with-log-file=FILE Default logfile name],
|
|
AC_DEFINE_UNQUOTED(DEFAULT_LOG, "$withval"))
|
|
|
|
AC_ARG_WITH(port, [ --with-port=PORT Default server port],
|
|
AC_DEFINE_UNQUOTED(DEFAULT_PORT, "$withval"))
|
|
|
|
AC_ARG_WITH(user, [ --with-user=USER Default user],
|
|
AC_DEFINE_UNQUOTED(DEFAULT_USER, "$withval"))
|
|
|
|
AC_ARG_WITH(stathost, [ --with-stathost=HOST Default status host],
|
|
AC_DEFINE_UNQUOTED(DEFAULT_STATHOST, "$withval"))
|
|
|
|
dnl Check for the regex library
|
|
AC_ARG_WITH(regex, [ --with-regex Use the GNU regex libary],
|
|
tinyproxy_cv_regex=yes,
|
|
AC_CHECK_FUNCS(regcomp, tinyproxy_cv_regex=no, tinyproxy_cv_regex=yes))
|
|
|
|
if test $tinyproxy_cv_regex = no ; then
|
|
AC_MSG_CHECKING(whether your system's regexp library is completely broken)
|
|
AC_CACHE_VAL(tinyproxy_cv_regex_broken,
|
|
AC_TRY_RUN([
|
|
# include <unistd.h>
|
|
# include <regex.h>
|
|
int main(void)
|
|
{
|
|
regex_t blah;
|
|
return regcomp(&blah, "foo.*bar", REG_NOSUB) || regexec(&blah, "foobar", 0, NULL, 0);
|
|
}
|
|
],
|
|
tinyproxy_cv_regex_broken=no,
|
|
tinyproxy_cv_regex_broken=yes,
|
|
tinyproxy_cv_regex_broken=yes))
|
|
|
|
AC_MSG_RESULT($tinyproxy_cv_regex_broken)
|
|
if test $tinyproxy_cv_regex_broken = yes ; then
|
|
echo "Using the included GNU regex instead." >&AC_FD_MSG
|
|
tinyproxy_cv_regex=yes
|
|
fi
|
|
fi
|
|
|
|
if test $tinyproxy_cv_regex = yes ; then
|
|
AC_DEFINE(USE_GNU_REGEX)
|
|
LIBOBJS="$LIBOBJS gnuregex.o"
|
|
fi
|
|
|
|
dnl Add compiler-specific optimization flags
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug Disable aggressive optimizations [default=no]],
|
|
debug_enabled=yes)
|
|
|
|
CFLAGS="$CFLAGS -Wall"
|
|
if test x$enable_debug = xyes ; then
|
|
dnl Add the warnings if we have the GCC compiler
|
|
if test x$ac_cv_prog_gcc = xyes ; then
|
|
CFLAGS="$CFLAGS -Wshadow"
|
|
CFLAGS="$CFLAGS -Wcast-qual"
|
|
CFLAGS="$CFLAGS -Wcast-align"
|
|
CFLAGS="$CFLAGS -Wstrict-prototypes"
|
|
CFLAGS="$CFLAGS -Wmissing-prototypes"
|
|
CFLAGS="$CFLAGS -Wmissing-declarations"
|
|
CFLAGS="$CFLAGS -Wpointer-arith"
|
|
CFLAGS="$CFLAGS -Waggregate-return"
|
|
CFLAGS="$CFLAGS -Wnested-externs"
|
|
fi
|
|
CFLAGS="$CFLAGS -DYYDEBUG"
|
|
YFLAGS="-v -d"
|
|
else
|
|
dnl No debugging information, include the optimizations
|
|
YFLAGS="-d"
|
|
fi
|
|
|
|
dnl Check for SOCKS support
|
|
AC_ARG_ENABLE(socks,
|
|
[ --enable-socks Enable SOCKS support [default=no]],
|
|
socks_enabled=yes)
|
|
|
|
if test x$socks_enabled = xyes; then
|
|
AC_CHECK_HEADER(socks.h, socks_header=yes, socks_header=no)
|
|
AC_CHECK_LIB(socks, main, socks_library=yes, socks_library=no)
|
|
if test "$socks_header" = yes && test "$socks_library" = yes; then
|
|
CFLAGS="$CFLAGS -I/usr/include/sock.h -DSOCKS"
|
|
LIBS="$LIBS -lsocks"
|
|
else
|
|
AC_MSG_ERROR(could not find the SOCKS library or header)
|
|
fi
|
|
fi
|
|
|
|
dnl Check to see if the XTinyproxy header is to be included
|
|
AC_ARG_ENABLE(xtinyproxy,
|
|
[ --enable-xtinyproxy Include X-Tinyproxy header [default=yes]],
|
|
xtinyproxy_enabled=yes)
|
|
|
|
if test x$xtinyproxy_enabled != xno ; then
|
|
AC_DEFINE(XTINYPROXY_ENABLE)
|
|
fi
|
|
|
|
dnl Include filtering for domain/URLs
|
|
AC_ARG_ENABLE(filter,
|
|
[ --enable-filter Enable filtering of domains/URLs [default=yes]],
|
|
filter_enabled=yes)
|
|
|
|
if test x$filter_enabled != xno ; then
|
|
LIBOBJS="$LIBOBJS filter.o"
|
|
AC_DEFINE(FILTER_ENABLE)
|
|
fi
|
|
|
|
dnl Include support for upstream proxies? (TCP tunneling)
|
|
AC_ARG_ENABLE(tunnel,
|
|
[ --enable-tunnel Enable support for TCP tunneling [default=yes]],
|
|
tunnel_enabled=yes)
|
|
|
|
if test x$tunnel_enabled != xno ; then
|
|
AC_DEFINE(TUNNEL_SUPPORT)
|
|
fi
|
|
|
|
dnl Substitute the variables into the various Makefiles
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(YFLAGS)
|
|
AC_SUBST(CPPFLAGS)
|
|
AC_SUBST(LIBS)
|
|
AC_SUBST(LIBOBJS)
|
|
|
|
AC_OUTPUT([
|
|
Makefile
|
|
src/Makefile
|
|
doc/Makefile
|
|
])
|