summaryrefslogtreecommitdiffhomepage
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in171
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)