diff options
Diffstat (limited to '')
-rw-r--r-- | configure.in | 272 |
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) |