From 91af06dd1a8aac900f46aca6a778c54d99ebfc3d Mon Sep 17 00:00:00 2001 From: Robert James Kaes Date: Wed, 6 Jun 2001 19:32:09 +0000 Subject: [PATCH] Completely reorganized the file. I'm trying to follow the layout specified in the Autoconf manual. --- configure.in | 304 +++++++++++++++++++++++++++++---------------------- 1 file changed, 175 insertions(+), 129 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 -dnl Checks for header files. +AC_CHECK_LIB(socket, socket, , 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 + +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,101 +191,14 @@ 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="-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 - -if test "$tinyproxy_no_nsl_checks" != "yes"; then - AC_CHECK_LIB(nsl, gethostname, LIBS="-lnsl $LIBS", AC_CHECK_LIB(nsl, gethostbyaddr)) -fi - -AC_CHECK_LIB(resolv, inet_aton) - -dnl Checks for library functions. -AC_FUNC_ALLOCA -dnl AC_FUNC_MEMCMP +AC_TYPE_PID_T AC_TYPE_SIGNAL -AC_FUNC_STRFTIME -AC_FUNC_VPRINTF -AC_CHECK_FUNCS(\ -ftruncate \ -select \ -setrlimit \ -socket \ -strdup \ -strerror \ -strtol \ -vsnprintf \ -vsyslog \ -) -AC_CHECK_FUNCS(strlcpy strlcat) -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 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" != "yes" ; then - AC_MSG_CHECKING(whether your system's regexp library is completely broken) - AC_CACHE_VAL(tinyproxy_cv_regex_broken, - AC_TRY_RUN([ -# include -# include -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="gnuregex.o $LIBOBJS" -fi - -dnl Add compiler-specific optimization flags -AC_ARG_ENABLE(debug, -[ --enable-debug Disable aggressive optimizations [default=no]], - debug_enabled=yes) +dnl +dnl Compiler characteristics +dnl +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 @@ -198,51 +214,81 @@ else 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) +dnl +dnl Checks for functions +dnl +AC_FUNC_ALLOCA +dnl AC_FUNC_MEMCMP +AC_FUNC_STRFTIME +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(\ +ftruncate \ +regexec \ +select \ +setrlimit \ +socket \ +strdup \ +strerror \ +strtol \ +vsnprintf \ +vsyslog \ +) +AC_CHECK_FUNCS(strlcpy strlcat) +if test "$ac_cv_func_vprintf" != "yes"; then + AC_CHECK_FUNC(_doprnt, AC_DEFINE(HAVE_DOPRNT)) +fi + +dnl +dnl Make sure we can actually handle the "--with-*" and "--enable-*" stuff. +dnl + +dnl Handle the SOCKS support 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) + AC_MSG_ERROR([Could not include 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) +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 +# include +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)) -if test "$xtinyproxy_enabled" = "yes"; then - AC_DEFINE(XTINYPROXY_ENABLE) + 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_use_our_regex=yes + fi 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) +if test "$tinyproxy_use_our_regex" = "yes" ; then + AC_DEFINE(USE_GNU_REGEX) + LIBOBJS="gnuregex.o $LIBOBJS" fi +dnl dnl Substitute the variables into the various Makefiles +dnl AC_SUBST(CFLAGS) AC_SUBST(YFLAGS) AC_SUBST(CPPFLAGS)