summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--configure.in272
1 files changed, 159 insertions, 113 deletions
diff --git a/configure.in b/configure.in
index 95cfff3..cf7236a 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,18 @@
-dnl $Id: configure.in,v 1.13 2001-06-05 16:08:45 rjkaes Exp $
+dnl $Id: configure.in,v 1.14 2001-06-06 19:32:09 rjkaes Exp $
+
+dnl Devlopers, please strive to achieve this order:
+dnl
+dnl 0. Initialization and options processing
+dnl 1. Programs
+dnl 2. Libraries
+dnl 3. Header files
+dnl 4. Types
+dnl 5. Structures
+dnl 6. Compiler characteristics
+dnl 7. Functions, global variables
+dnl 8. System services
+dnl
+dnl Read the Autoconf manual for details.
AC_INIT()
AM_INIT_AUTOMAKE(tinyproxy,1.4.0pre7)
@@ -7,13 +21,66 @@ AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
-dnl Checks for programs.
+dnl
+dnl Command line options
+dnl
+
+dnl Set the URL name for find the statistics of tinyproxy
+AC_ARG_WITH(stathost, [ --with-stathost=HOST Default status host],
+ AC_DEFINE_UNQUOTED(DEFAULT_STATHOST, "$withval"))
+
+dnl Set the default configuration file location
+AC_ARG_WITH(config,
+[ --with-config=FILE Set the default location of the config file],
+ AC_DEFINE_UNQUOTED(DEFAULT_CONF_FILE, "$withval"))
+
+dnl Add compiler-specific optimization flags
+AC_ARG_ENABLE(debug,
+[ --enable-debug Disable aggressive optimizations [default=no]],
+ debug_enabled=yes, debug_enabled=no)
+
+dnl Include SOCKS support
+AC_ARG_ENABLE(socks,
+[ --enable-socks Enable SOCKS support [default=no]],
+ socks_enabled=yes, socks_enabled=no)
+
+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, xtinyproxy_enabled=yes)
+if test "$xtinyproxy_enabled" = "yes"; 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, filter_enabled=yes)
+if test "$filter_enabled" = "yes"; 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, tunnel_enabled=yes)
+if test "$tunnel_enabled" = "yes" ; then
+ AC_DEFINE(TUNNEL_SUPPORT)
+fi
+
+dnl
+dnl Checks for programs
+dnl
AC_PROG_AWK
AC_PROG_MAKE_SET
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
+AM_PROG_LEX
AC_PROG_YACC
+
+dnl Make sure YACC is actually bison
if test "$YACC" != "bison -y"; then
AC_MSG_WARN(You will need bison if you want to regenerate the parser.)
else
@@ -27,10 +94,41 @@ else
AC_MSG_RESULT($1.$2 (ok))
fi
-AM_PROG_LEX
-AM_C_PROTOTYPES
+dnl
+dnl Checks for libraries
+dnl
+AC_CHECK_LIB(pthread, pthread_create)
+if test "$ac_cv_lib_pthread_pthread_create" = "yes"; then
+ CFLAGS="-D_REENTRANT $CFLAGS"
+else
+ AC_CHECK_LIB(pthreads, pthread_create)
+ if test "$ac_cv_lib_pthreads_pthread_create" = "yes"; then
+ CFLAGS="-D_REENTRANT $CFLAGS"
+ else
+ AC_MSG_ERROR(You must have a POSIX compliant threading library installed)
+ fi
+fi
+
+AC_CHECK_LIB(socket, socket, , AC_CHECK_LIB(socket, htonl))
-dnl Checks for header files.
+dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try to
+dnl avoid -lnsl checks, if we already have the functions which are
+dnl usually in libnsl
+
+unset ac_cv_func_yp_get_default_domain
+AC_CHECK_FUNC(yp_get_default_domain, [ tinyproxy_no_nsl_checks=yes ], [ ])
+unset ac_cv_func_yp_get_default_domain
+
+if test "$tinyproxy_no_nsl_checks" != "yes"; then
+ AC_CHECK_LIB(nsl, gethostname, , AC_CHECK_LIB(nsl, gethostbyaddr))
+fi
+
+AC_CHECK_LIB(resolv, inet_aton)
+AC_CHECK_LIB(socks, main, socks_library=yes, socks_library=no)
+
+dnl
+dnl Checks for headers
+dnl
AC_HEADER_STDC
AC_CHECK_HEADERS(\
sys/types.h \
@@ -55,6 +153,7 @@ grp.h \
io.h \
libintl.h \
malloc.h \
+memory.h \
netdb.h \
pthread.h \
pwd.h \
@@ -74,11 +173,15 @@ unistd.h \
wchar.h \
wctype.h \
)
+AC_HEADER_TIME
+AC_CHECK_HEADER(socks.h, socks_header=yes, socks_header=no)
-dnl Checks for typedefs, structures, and compiler characteristics.
+dnl
+dnl Checks for types
+dnl
+AM_C_PROTOTYPES
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)
@@ -88,44 +191,39 @@ 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)
+AC_TYPE_PID_T
+AC_TYPE_SIGNAL
-dnl Checks for libraries
-AC_CHECK_LIB(pthread, pthread_create)
-if test "$ac_cv_lib_pthread_pthread_create" = "yes"; then
- CFLAGS="-D_REENTRANT $CFLAGS"
-else
- AC_CHECK_LIB(pthreads, pthread_create)
- if test "$ac_cv_lib_pthreads_pthread_create" = "yes"; then
- CFLAGS="-D_REENTRANT $CFLAGS"
- else
- AC_MSG_ERROR(You must have a POSIX compliant threading library installed)
- fi
-fi
-
-AC_CHECK_LIB(socket, socket, LIBS="-lsocket $LIBS", AC_CHECK_LIB(socket, htonl))
-
-dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try to
-dnl avoid -lnsl checks, if we already have the functions which are
-dnl usually in libnsl
-
-unset ac_cv_func_yp_get_default_domain
-AC_CHECK_FUNC(yp_get_default_domain, [ tinyproxy_no_nsl_checks=yes ], [ ])
-unset ac_cv_func_yp_get_default_domain
+dnl
+dnl Compiler characteristics
+dnl
-if test "$tinyproxy_no_nsl_checks" != "yes"; then
- AC_CHECK_LIB(nsl, gethostname, LIBS="-lnsl $LIBS", AC_CHECK_LIB(nsl, gethostbyaddr))
+dnl Enable the debugging flags (by checking for the GCC compiler)
+CFLAGS="-Wall $CFLAGS"
+if test "$enable_debug" = "yes" ; then
+ dnl Add the warnings if we have the GCC compiler
+ if test x$ac_cv_prog_gcc = xyes ; then
+ CFLAGS="-Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes $CFLAGS"
+ CFLAGS="-Wmissing-prototypes -Wmissing-declarations $CFLAGS"
+ CFLAGS="-Wpointer-arith -Waggregate-return -Wnested-externs $CFLAGS"
+ fi
+ CFLAGS="-DYYDEBUG $CFLAGS"
+ YFLAGS="-v -d"
+else
+ dnl No debugging information, include the optimizations
+ YFLAGS="-d"
fi
-AC_CHECK_LIB(resolv, inet_aton)
-
-dnl Checks for library functions.
+dnl
+dnl Checks for functions
+dnl
AC_FUNC_ALLOCA
dnl AC_FUNC_MEMCMP
-AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(\
ftruncate \
+regexec \
select \
setrlimit \
socket \
@@ -137,21 +235,30 @@ vsyslog \
)
AC_CHECK_FUNCS(strlcpy strlcat)
-AC_ARG_WITH(stathost, [ --with-stathost=HOST Default status host],
- AC_DEFINE_UNQUOTED(DEFAULT_STATHOST, "$withval"))
+if test "$ac_cv_func_vprintf" != "yes"; then
+ AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT))
+fi
-dnl Set the default configuration file location
-AC_ARG_WITH(config,
-[ --with-config=FILE Set the default location of the config file],
- AC_DEFINE_UNQUOTED(DEFAULT_CONF_FILE, "$withval"))
+dnl
+dnl Make sure we can actually handle the "--with-*" and "--enable-*" stuff.
+dnl
-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))
+dnl Handle the SOCKS support
+if test "$socks_enabled" = "yes"; then
+ if test "$socks_header" = "yes" -a "$socks_library" = "yes"; then
+ CFLAGS="-I/usr/include/sock.h -DSOCKS $CFLAGS"
+ LIBS="-lsocks $LIBS"
+ else
+ AC_MSG_ERROR([Could not include the SOCKS library or header])
+ fi
+fi
-if test "$tinyproxy_cv_regex" != "yes" ; then
- AC_MSG_CHECKING(whether your system's regexp library is completely broken)
+dnl Handle the REGEX library
+if test "$ac_cv_func_regex" != "yes"; then
+ dnl We don't have a functioning REGEX so include our copy
+ tinyproxy_use_our_regex=yes
+else
+ AC_MSG_CHECKING([whether the system's regex library is broken])
AC_CACHE_VAL(tinyproxy_cv_regex_broken,
AC_TRY_RUN([
# include <unistd.h>
@@ -167,82 +274,21 @@ int main(void)
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
+ tinyproxy_use_our_regex=yes
fi
fi
-if test "$tinyproxy_cv_regex" = "yes" ; then
+if test "$tinyproxy_use_our_regex" = "yes" ; then
AC_DEFINE(USE_GNU_REGEX)
LIBOBJS="gnuregex.o $LIBOBJS"
fi
-dnl Add compiler-specific optimization flags
-AC_ARG_ENABLE(debug,
-[ --enable-debug Disable aggressive optimizations [default=no]],
- debug_enabled=yes)
-
-CFLAGS="-Wall $CFLAGS"
-if test "$enable_debug" = "yes" ; then
- dnl Add the warnings if we have the GCC compiler
- if test x$ac_cv_prog_gcc = xyes ; then
- CFLAGS="-Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes $CFLAGS"
- CFLAGS="-Wmissing-prototypes -Wmissing-declarations $CFLAGS"
- CFLAGS="-Wpointer-arith -Waggregate-return -Wnested-externs $CFLAGS"
- fi
- CFLAGS="-DYYDEBUG $CFLAGS"
- 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, socks_enabled=no)
-
-if test "$socks_enabled" = "yes"; 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" -a "$socks_library" = "yes"; then
- CFLAGS="-I/usr/include/sock.h -DSOCKS $CFLAGS"
- LIBS="-lsocks $LIBS"
- 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, xtinyproxy_enabled=yes)
-
-if test "$xtinyproxy_enabled" = "yes"; 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, filter_enabled=yes)
-
-if test "$filter_enabled" = "yes"; 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, tunnel_enabled=yes)
-
-if test "$tunnel_enabled" = "yes" ; then
- AC_DEFINE(TUNNEL_SUPPORT)
-fi
-
+dnl
dnl Substitute the variables into the various Makefiles
+dnl
AC_SUBST(CFLAGS)
AC_SUBST(YFLAGS)
AC_SUBST(CPPFLAGS)