diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..da98155 --- /dev/null +++ b/configure.in @@ -0,0 +1,171 @@ +AC_INIT() +AM_INIT_AUTOMAKE(tinyproxy,1.3.1e) +AM_CONFIG_HEADER(src/defines.h) + +dnl Grab any initial CFLAGS and LIBS so we can pick better defaults +iCFLAGS="$CFLAGS" +iLIBS="$LIBS" + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_INSTALL + +dnl Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS(fcntl.h sys/time.h syslog.h unistd.h) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_SIZE_T +AC_HEADER_TIME +AC_C_INLINE + +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 to switch to on startup], \ + [AC_DEFINE_UNQUOTED(DEFAULT_USER, "$withval")]) + +dnl enable arguments for adns lib/include +dnl there must be a nicer way to do this, but I sure don't know what it is +AC_ARG_WITH(adns-include, \ + [--with-adns-include=DIR Directory containing adns.h], \ + [ADNS_INCLUDE=$withval ; CFLAGS="$CFLAGS -I$withval"]) +AC_ARG_WITH(adns-lib, \ + [--with-adns-lib=DIR Directory containing libadns.so], \ + [CFLAGS="$CFLAGS -L$withval"]) + +dnl check that adns is installed +AC_CHECK_HEADER(adns.h, [], \ + AC_CHECK_HEADER($ADNS_INCLUDE/adns.h, [], \ + [AC_MSG_ERROR(You must have ADNS installed)])) +AC_CHECK_LIB(adns, adns_init, [LIBS="$LIBS -ladns"],\ + [AC_MSG_ERROR(You must have ADNS installed)]) + +dnl Checks for library functions. +AC_TYPE_SIGNAL +AC_FUNC_STRFTIME +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(socket select strerror strdup vsyslog vsnprintf) + +dnl Add the warnings if we have the GCC compiler +rm -f conftest* + +case "$GCC" in + yes) + CFLAGS="$CFLAGS -Wall" + 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 -Wredundant-decls" +dnl CFLAGS="$CFLAGS -Wpointer-arith" + CFLAGS="$CFLAGS -Waggregate-return" + CFLAGS="$CFLAGS -Wnested-externs" + + AC_CACHE_CHECK(whether ${CC-cc} -pipe works, ac_cv_prog_cc_pipe, + [echo 'void f(){}' > conftest.c + if test -z "`${CC-cc} -pipe -c conftest.c 2>&1`" -a -s conftest.o; then + ac_cv_prog_cc_pipe=yes + else + ac_cv_prog_cc_pipe=no + fi + rm -f conftest* + ]) + + case "$ac_cv_prog_cc_pipe" in + yes) + CFLAGS="$CFLAGS -pipe" + ;; + esac + ;; +esac + +AC_CHECK_LIB(nsl, gethostname, [LIBS="$LIBS -lnsl"]) +AC_CHECK_LIB(socket, setsockopt, [LIBS="$LIBS -lsocket"]) + +dnl Check to see if the debuging code is turned on +AC_MSG_CHECKING(Include debugging code) +AC_ARG_ENABLE(debug, \ + [--enable-debug turn on additional debugging code], + [debug_enabled=yes], [debug_enabled=no]) +if test "$debug_enabled" = "no"; then + CFLAGS="$CFLAGS -DNDEBUG" +fi +AC_MSG_RESULT($debug_enabled) + +AC_MSG_CHECKING(Include support for SOCKS) +AC_ARG_ENABLE(socks, \ + [--enable-socks enable SOCKS support], + [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" && test "$socks_library" = "yes"; then + CFLAGS="$CFLAGS -I/usr/include/sock.h -DSOCKS" + LIBS="$LIBS -lsocks" + else + socks_enabled=no + fi +fi +AC_MSG_RESULT($socks_enabled) + +AC_MSG_CHECKING(Include the XTinyproxy header code) +AC_ARG_ENABLE(xtinyproxy, \ + [--enable-xtinyproxy enable the use of the XTinyproxy header], + [xtinyproxy_enabled=yes], [xtinyproxy_enabled=no]) +if test "$xtinyproxy_enabled" = "yes"; then + AC_DEFINE(XTINYPROXY) +fi +AC_MSG_RESULT($xtinyproxy_enabled) + +AC_MSG_CHECKING(Include filtering of domain/URL) +AC_ARG_ENABLE(filter, \ + [--enable-filter enable filtering of domains/URLs], + [filter_enabled=yes], [filter_enabled=no]) +if test "$filter_enabled" = "yes"; then + LIBOBJS="$LIBOBJS filter.o" + AC_DEFINE(FILTER_ENABLE) +fi +AC_MSG_RESULT($filter_enabled) + +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_TRY_RUN([ +#include <unistd.h> +#include <regex.h> +main() { 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 + +AC_SUBST(CFLAGS)dnl +AC_SUBST(LIBS)dnl +AC_SUBST(LIBOBJS)dnl + +AC_OUTPUT(Makefile src/Makefile doc/Makefile) |