aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac488
1 files changed, 488 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000..5b7cf273
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,488 @@
+dnl Process this file with aclocal, autoconf and automake.
+
+AC_INIT([dillo], [3.0.2])
+
+dnl Detect the canonical target build environment
+AC_CANONICAL_TARGET
+
+AM_INIT_AUTOMAKE
+AC_CONFIG_SRCDIR([src/dillo.cc])
+AC_CONFIG_HEADERS([config.h])
+
+sysconfdir=${sysconfdir}/${PACKAGE}
+
+dnl Options
+
+AC_ARG_WITH(jpeg-lib, [ --with-jpeg-lib=DIR Specify where to find libjpeg], LIBJPEG_LIBDIR=$withval)
+AC_ARG_WITH(jpeg-inc, [ --with-jpeg-inc=DIR Specify where to find libjpeg's headers], LIBJPEG_INCDIR=$withval)
+
+AC_ARG_ENABLE(efence, [ --enable-efence Try to compile and run with Electric Fence],
+ , enable_efence=no)
+AC_ARG_ENABLE(gprof, [ --enable-gprof Try to compile and run with profiling enabled],
+ , enable_gprof=no)
+AC_ARG_ENABLE(insure, [ --enable-insure Try to compile and run with Insure++],
+ , enable_insure=no)
+AC_ARG_ENABLE(ssl, [ --enable-ssl Enable ssl, https (ALPHA CODE)],
+ , enable_ssl=no)
+AC_ARG_ENABLE(ipv6, [ --enable-ipv6 Build with support for IPv6], , )
+AC_ARG_ENABLE(cookies,[ --disable-cookies Don't compile support for cookies],
+ , enable_cookies=yes)
+AC_ARG_ENABLE(png, [ --disable-png Disable support for PNG images],
+ enable_png=$enableval, enable_png=yes)
+AC_ARG_ENABLE(jpeg, [ --disable-jpeg Disable support for JPEG images],
+ enable_jpeg=$enableval, enable_jpeg=yes)
+AC_ARG_ENABLE(gif, [ --disable-gif Disable support for GIF images],
+ enable_gif=$enableval, enable_gif=yes)
+AC_ARG_ENABLE(threaded-dns,[ --disable-threaded-dns Disable the advantage of a reentrant resolver library],
+ enable_threaded_dns=$enableval, enable_threaded_dns=yes)
+AC_ARG_ENABLE(rtfl, [ --enable-rtfl Build with rtfl messages (for debugging rendering)])
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_RANLIB
+AC_PROG_CPP
+
+dnl ----------------------------
+dnl Check our char and int types
+dnl ----------------------------
+dnl
+AC_CHECK_SIZEOF(char)
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(void *)
+
+AC_TYPE_INT16_T
+AC_TYPE_UINT16_T
+AC_TYPE_INT32_T
+AC_TYPE_UINT32_T
+
+dnl --------------------------------------
+dnl Check whether to add /usr/local or not
+dnl (this is somewhat a religious problem)
+dnl --------------------------------------
+dnl
+if test "`$CPP -v < /dev/null 2>&1 | grep '/usr/local/include' 2>&1`" = ""; then
+ CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+fi
+
+dnl ------------------------------------
+dnl Check for socket libs (AIX, Solaris)
+dnl ------------------------------------
+dnl
+AC_CHECK_FUNCS(gethostbyname,,
+ [AC_CHECK_LIB(nsl,gethostbyname,,[AC_CHECK_LIB(socket,gethostbyname)])])
+AC_CHECK_FUNCS(setsockopt,,[AC_CHECK_LIB(socket,setsockopt)])
+
+dnl --------------------
+dnl Checks for socklen_t
+dnl --------------------
+dnl
+AC_MSG_CHECKING([for socklen_t])
+ac_cv_socklen_t=""
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#include <sys/socket.h>
+]],[[
+socklen_t a=0;
+getsockname(0,(struct sockaddr*)0, &a);
+]])],
+ac_cv_socklen_t="socklen_t",
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#include <sys/socket.h>
+]],[[
+int a=0;
+getsockname(0,(struct sockaddr*)0, &a);
+]])],
+ac_cv_socklen_t="int",
+ac_cv_socklen_t="size_t"
+)
+)
+AC_MSG_RESULT($ac_cv_socklen_t)
+if test "$ac_cv_socklen_t" != "socklen_t"; then
+ AC_DEFINE_UNQUOTED([socklen_t], [$ac_cv_socklen_t],
+ [Define the real type of socklen_t])
+fi
+
+
+dnl ----------------------
+dnl Test for FLTK 1.3 library
+dnl ----------------------
+dnl
+dnl For debugging and to be user friendly
+AC_MSG_CHECKING([FLTK 1.3])
+fltk_version="`fltk-config --version 2>/dev/null`"
+case $fltk_version in
+ 1.3.*) AC_MSG_RESULT(yes)
+ LIBFLTK_CXXFLAGS=`fltk-config --cxxflags`
+ LIBFLTK_CFLAGS=`fltk-config --cflags`
+ LIBFLTK_LIBS=`fltk-config --ldflags`;;
+ ?*) AC_MSG_RESULT(no)
+ AC_ERROR(FLTK 1.3 required; version found: $fltk_version);;
+ *) AC_MSG_RESULT(no)
+ AC_ERROR(FLTK 1.3 required; fltk-config not found)
+esac
+
+
+dnl ----------------
+dnl Test for libjpeg
+dnl ----------------
+dnl
+if test "x$enable_jpeg" = "xyes"; then
+ AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)
+
+ if test "x$jpeg_ok" = "xyes"; then
+ old_libs="$LIBS"
+ AC_CHECK_LIB(jpeg, jpeg_destroy_decompress, jpeg_ok=yes, jpeg_ok=no)
+ LIBS="$old_libs"
+ fi
+
+ if test "x$jpeg_ok" = "xyes"; then
+ LIBJPEG_LIBS="-ljpeg"
+ if test -n "$LIBJPEG_LIBDIR"; then
+ LIBJPEG_LDFLAGS="-L$LIBJPEG_LIBDIR"
+ fi
+ if test -n "$LIBJPEG_INCDIR"; then
+ LIBJPEG_CPPFLAGS="-I$LIBJPEG_INCDIR"
+ fi
+ else
+ AC_MSG_WARN([*** No libjpeg found. Disabling jpeg images.***])
+ fi
+fi
+
+if test "x$jpeg_ok" = "xyes"; then
+ AC_DEFINE([ENABLE_JPEG], [1], [Enable JPEG images])
+fi
+
+dnl -------------
+dnl Test for zlib
+dnl -------------
+dnl
+AC_CHECK_HEADER(zlib.h, libz_ok=yes, libz_ok=no)
+
+if test "x$libz_ok" = "xyes"; then
+ old_libs="$LIBS"
+ AC_CHECK_LIB(z, zlibVersion, libz_ok=yes, libz_ok=no)
+ LIBS="$old_libs"
+fi
+
+if test "x$libz_ok" = xyes; then
+ LIBZ_LIBS="-lz"
+else
+ AC_MSG_ERROR(zlib must be installed!)
+fi
+
+dnl ---------------
+dnl Test for libpng
+dnl ---------------
+dnl
+if test "x$enable_png" = "xyes"; then
+ AC_MSG_CHECKING([for libpng-config])
+
+dnl Check if the user hasn't set the variable $PNG_CONFIG
+ if test -z "$PNG_CONFIG"; then
+ PNG_CONFIG=`which libpng14-config`
+ if test -z "$PNG_CONFIG"; then
+ PNG_CONFIG=`which libpng12-config`
+ fi
+ if test -z "$PNG_CONFIG"; then
+ PNG_CONFIG=`which libpng-config`
+ fi
+ if test -z "$PNG_CONFIG"; then
+ PNG_CONFIG=`which libpng10-config`
+ fi
+ fi
+
+dnl Check if the libpng-config script was found and is executable
+ if test -n "$PNG_CONFIG" && test -x "$PNG_CONFIG"; then
+ AC_MSG_RESULT([$PNG_CONFIG])
+ png_ok="yes"
+ else
+ AC_MSG_RESULT([missing])
+ png_ok="no"
+ fi
+
+ if test "x$png_ok" = "xyes"; then
+dnl For debugging and to be user friendly
+ AC_MSG_CHECKING([for libpng version])
+ png_version=`$PNG_CONFIG --version`
+ case $png_version in
+ 1.[[024]].*) AC_MSG_RESULT([$png_version]) ;;
+ *) AC_MSG_RESULT([$png_version (unrecognised version)]) ;;
+ esac
+
+dnl Try to use options that are supported by all libpng-config versions...
+ LIBPNG_CFLAGS=`$PNG_CONFIG --cflags`
+ LIBPNG_LIBS=`$PNG_CONFIG --ldflags`
+ case $png_version in
+ 1.2.4*) LIBPNG_LIBS="$LIBPNG_LIBS `$PNG_CONFIG --libs`" ;;
+ esac
+ else
+dnl Try to find libpng even though libpng-config wasn't found
+ AC_CHECK_HEADERS(png.h libpng/png.h, png_ok=yes && break, png_ok=no)
+
+ if test "x$png_ok" = "xyes"; then
+ old_libs="$LIBS"
+ AC_CHECK_LIB(png, png_sig_cmp, png_ok=yes, png_ok=no, $LIBZ_LIBS -lm)
+ LIBS="$old_libs"
+
+ if test "x$png_ok" = "xyes"; then
+ LIBPNG_LIBS="-lpng -lm"
+ fi
+ fi
+
+ if test "x$png_ok" = "xno"; then
+ AC_MSG_WARN([*** No libpng found. Disabling PNG images ***])
+ fi
+ fi
+fi
+
+if test "x$png_ok" = "xyes"; then
+ AC_DEFINE([ENABLE_PNG], [1], [Enable PNG images])
+fi
+
+dnl Check if support for GIF images should be compiled in
+if test "x$enable_gif" = "xyes"; then
+ AC_DEFINE([ENABLE_GIF], [1], [Enable GIF images])
+fi
+
+dnl --------------------------
+dnl Test for support for SSL
+dnl --------------------------
+dnl
+if test "x$enable_ssl" = "xyes"; then
+ AC_CHECK_HEADER(openssl/ssl.h, ssl_ok=yes, ssl_ok=no)
+
+ if test "x$ssl_ok" = "xyes"; then
+ old_libs="$LIBS"
+ AC_CHECK_LIB(ssl, SSL_library_init, ssl_ok=yes, ssl_ok=no, -lcrypto)
+ LIBS="$old_libs"
+ fi
+
+ if test "x$ssl_ok" = "xyes"; then
+ LIBSSL_LIBS="-lcrypto -lssl"
+ AC_MSG_WARN([*** Enabling ssl support. THIS IS ALPHA CODE!***])
+ else
+ AC_MSG_WARN([*** No libssl found. Disabling ssl support.***])
+ fi
+fi
+
+if test "x$ssl_ok" = "xyes"; then
+ AC_DEFINE([ENABLE_SSL], [1], [Enable SSL support])
+fi
+
+dnl --------------------------------------------------------------
+dnl Test for iconv functionality in libc or for libiconv usability
+dnl --------------------------------------------------------------
+AC_CHECK_HEADER(iconv.h, iconv_ok=yes, iconv_ok=no)
+if test "x$iconv_ok" = "xyes"; then
+ AC_CHECK_LIB(c, iconv_open, LIBICONV_LIBS="",
+ AC_CHECK_LIB(iconv, iconv_open, LIBICONV_LIBS="-liconv", iconv_ok=no))
+fi
+if test "x$iconv_ok" = "xno"; then
+ dnl Test for OpenBSD
+ old_libs="$LIBS"
+ LIBS="$old_libs -liconv"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <iconv.h>
+]],[[
+iconv_open("","");
+]])],
+iconv_ok=yes,iconv_ok=no)
+ LIBS="$old_libs"
+ if test "x$iconv_ok" = "xyes"; then
+ LIBICONV_LIBS="-liconv"
+ fi
+fi
+
+if test "x$iconv_ok" = "xno"; then
+ AC_MSG_ERROR(libiconv must be installed!)
+fi
+
+dnl ----------------------
+dnl Check if we need to
+dnl support the old
+dnl iconv interface
+dnl ----------------------
+if test "x$iconv_ok" = "xyes"; then
+ old_libs="$LIBS"
+ LIBS="$old_libs $LIBICONV_LIBS"
+ old_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <iconv.h>
+]],[[
+const char *inPtr;
+char *outPtr;
+size_t inLeft = 0, outRoom = 0;
+iconv_t encoder = iconv_open("ASCII", "UTF-8");
+iconv(encoder, &inPtr, &inLeft, &outPtr, &outRoom);
+]])],
+iconv_old=yes,iconv_old=no)
+ AC_LANG_POP([C++])
+ LIBS="$old_libs"
+ CFLAGS="$old_cflags"
+
+ if test "x$iconv_old" = "xyes"; then
+ AC_DEFINE([inbuf_t], [const char], [Use const char pointers for older libiconv])
+ else
+ AC_DEFINE([inbuf_t], [char], [Use char pointers for newer libiconv])
+ fi
+fi
+
+dnl ----------------------
+dnl Test for POSIX threads
+dnl ----------------------
+dnl
+if test -z "$LIBPTHREAD_LIBS"; then
+case $target in
+ *-*-linux*|*-*-solaris*)
+ old_libs="$LIBS"
+ AC_CHECK_LIB(pthread, pthread_create, LIBPTHREAD_LIBS="-lpthread")
+ LIBS="$old_libs"
+ ;;
+
+ *-*-osf1*)
+ AC_MSG_CHECKING(whether pthreads work)
+ LIBPTHREAD_LIBS="-lpthread -lexc -ldb"
+ AC_MSG_WARN([*** _Untested pthreads_ try setting LIBPTHREAD_LIBS manually if it doesn't work ***])
+ ;;
+
+ *-*-minix*)
+ AC_MSG_NOTICE([Minix detected, skipping pthread detection])
+ ;;
+
+ *)
+ AC_MSG_CHECKING(whether threads work with -pthread)
+ LDSAVEFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -pthread"
+ AC_LINK_IFELSE([AC_LANG_CALL([],[pthread_create])],
+pthread_ok=yes, pthread_ok=no)
+ LDFLAGS=$LDSAVEFLAGS
+
+ if test "x$pthread_ok" = "xyes"; then
+ AC_MSG_RESULT(yes)
+ LIBPTHREAD_LDFLAGS="-pthread"
+ else
+ AC_MSG_RESULT(no. Now we will try some libraries.)
+
+ AC_SEARCH_LIBS(pthread_create, pthread,
+ LIBPTHREADS_LIBS="-lpthread",
+ AC_SEARCH_LIBS(pthread_create, pthreads,
+ LIBPTHREADS_LIBS="-lpthreads",
+ AC_SEARCH_LIBS(pthread_create, c_r,
+ LIBPTHREADS_LIBS="-lc_r", thread_ok=no)))
+
+ if test "x$thread_ok" = "xno"; then
+ AC_MSG_WARN([*** No pthreads found. ***])
+ AC_MSG_ERROR([*** Try setting LIBPTHREAD_LIBS manually to point to your pthreads library. ***])
+ exit 1
+ else
+ AC_MSG_WARN([found a way to link threads, but it may not work...])
+ fi
+ fi
+ ;;
+
+esac
+fi
+
+dnl --------------------
+dnl Command line options
+dnl --------------------
+dnl
+if test "x$enable_cookies" = "xno" ; then
+ CFLAGS="$CFLAGS -DDISABLE_COOKIES"
+ CXXFLAGS="$CXXFLAGS -DDISABLE_COOKIES"
+fi
+if test "x$enable_ipv6" = "xyes" ; then
+ CFLAGS="$CFLAGS -DENABLE_IPV6"
+fi
+if test "x$enable_efence" = "xyes" ; then
+ LIBS="-lefence $LIBS"
+fi
+if test "x$enable_gprof" = "xyes" ; then
+ CFLAGS="$CFLAGS -pg"
+ CXXFLAGS="$CXXFLAGS -pg"
+fi
+if test "x$enable_insure" = "xyes" ; then
+ CC="insure -Zoi \"compiler $CC\""
+ LIBS="$LIBS -lstdc++-2-libc6.1-1-2.9.0"
+fi
+if test "x$enable_threaded_dns" = "xyes" ; then
+ CFLAGS="$CFLAGS -DD_DNS_THREADED"
+fi
+if test "x$enable_rtfl" = "xyes" ; then
+ CXXFLAGS="$CXXFLAGS -DDBG_RTFL"
+fi
+
+dnl -----------------------
+dnl Checks for header files
+dnl -----------------------
+dnl
+AC_CHECK_HEADERS(fcntl.h unistd.h sys/uio.h)
+
+dnl --------------------------
+dnl Check for compiler options
+dnl --------------------------
+dnl
+if eval "test x$GCC = xyes"; then
+ if test "`echo $CFLAGS | grep '\-D_REENTRANT' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -D_REENTRANT"
+ fi
+ if test "`echo $CFLAGS | grep '\-D_THREAD_SAFE' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -D_THREAD_SAFE"
+ fi
+ if test "`echo $CFLAGS | grep '\-Wall' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -Wall"
+ fi
+ if test "`echo $CFLAGS | grep -e '-W ' -e '-W$' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -W"
+ fi
+ if test "`echo $CFLAGS | grep '\-Wno-unused-parameter' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -Wno-unused-parameter"
+ fi
+ if test "`echo $CFLAGS | grep '\-Waggregate-return' 2> /dev/null`" = ""; then
+ CFLAGS="$CFLAGS -Waggregate-return"
+ fi
+fi
+dnl -----------
+dnl CXX options
+dnl -----------
+dnl
+
+if eval "test x$GCC = xyes"; then
+ CXXFLAGS="$CXXFLAGS -Wall -W -Wno-unused-parameter -fno-rtti -fno-exceptions"
+fi
+
+AC_SUBST(LIBJPEG_LIBS)
+AC_SUBST(LIBJPEG_LDFLAGS)
+AC_SUBST(LIBJPEG_CPPFLAGS)
+AC_SUBST(LIBPNG_LIBS)
+AC_SUBST(LIBPNG_CFLAGS)
+AC_SUBST(LIBZ_LIBS)
+AC_SUBST(LIBSSL_LIBS)
+AC_SUBST(LIBPTHREAD_LIBS)
+AC_SUBST(LIBPTHREAD_LDFLAGS)
+AC_SUBST(LIBFLTK_CXXFLAGS)
+AC_SUBST(LIBFLTK_CFLAGS)
+AC_SUBST(LIBFLTK_LIBS)
+AC_SUBST(LIBICONV_LIBS)
+AC_SUBST(datadir)
+
+AC_CONFIG_FILES([
+ Makefile
+ dlib/Makefile
+ dpip/Makefile
+ dpid/Makefile
+ dpi/Makefile
+ doc/Makefile
+ dw/Makefile
+ lout/Makefile
+ src/Makefile
+ src/IO/Makefile
+ test/Makefile
+])
+
+AC_OUTPUT