2005-09-15 09:58:31 -04:00
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
|
|
AC_PREREQ(2.13)
|
|
|
|
AC_INIT(src/main/main.c)
|
|
|
|
AC_CONFIG_AUX_DIR(config)
|
|
|
|
|
2005-09-16 07:42:25 -04:00
|
|
|
PACKAGE=elinks
|
2005-12-31 18:21:28 -05:00
|
|
|
VERSION=0.12.GIT
|
2005-09-16 07:42:25 -04:00
|
|
|
AC_SUBST(PACKAGE)
|
2005-09-16 07:45:59 -04:00
|
|
|
AC_SUBST(VERSION)
|
2005-09-16 07:54:26 -04:00
|
|
|
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Package version])
|
|
|
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Package version])
|
2005-09-16 07:45:59 -04:00
|
|
|
AC_CONFIG_HEADERS(config.h)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2005-10-02 19:29:52 -04:00
|
|
|
AC_CHECK_PROG(ACLOCAL,[aclocal],[aclocal],[config/missing aclocal])
|
|
|
|
AC_CHECK_PROG(AUTOCONF,[autoconf],[autoconf],[config/missing autoconf])
|
|
|
|
AC_CHECK_PROG(AUTOHEADER,[autoheader],[autoheader],[config/missing autoheader])
|
|
|
|
|
2005-10-22 07:25:28 -04:00
|
|
|
MAKE=
|
|
|
|
|
|
|
|
for make in gnumake gmake make false; do
|
|
|
|
if test "x$MAKE" = x; then
|
|
|
|
AC_PATH_PROGS(MAKE, "$make")
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2006-01-14 09:00:26 -05:00
|
|
|
builddir="`pwd`"
|
|
|
|
|
2005-10-22 07:25:28 -04:00
|
|
|
# Cleanup if we are configuring with a previous build in the tree
|
|
|
|
if test -e Makefile.config; then
|
2006-01-14 09:00:26 -05:00
|
|
|
AC_MSG_CHECKING([for previous build to clean])
|
|
|
|
"$MAKE" -C "$builddir/src" cleanall >/dev/null 2>/dev/null
|
|
|
|
AC_MSG_RESULT(done)
|
2005-10-22 07:25:28 -04:00
|
|
|
fi
|
|
|
|
|
2005-09-15 09:58:31 -04:00
|
|
|
dnl ===================================================================
|
|
|
|
dnl Load feature configuration file and start logging features.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
features="features.conf"
|
|
|
|
AC_CHECK_FILE("$srcdir/$features", [ . $srcdir/$features ])
|
|
|
|
AC_CHECK_FILE("$builddir/$features", [ . $builddir/$features ])
|
|
|
|
echo "Feature summary:" > features.log
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for programs.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_AWK
|
|
|
|
AC_PATH_PROGS(AWK, "$AWK")
|
|
|
|
AC_PROG_RANLIB
|
2005-09-17 14:00:58 -04:00
|
|
|
AC_PROG_INSTALL
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2005-09-19 05:04:03 -04:00
|
|
|
AC_PATH_PROGS(CG_COMMIT_ID, "cg-commit-id")
|
2005-11-24 07:24:19 -05:00
|
|
|
AC_PATH_PROGS(SPARSE, "sparse")
|
|
|
|
|
2005-09-15 09:58:31 -04:00
|
|
|
CONFIG_ASCIIDOC="no"
|
|
|
|
CONFIG_POD2HTML="no"
|
|
|
|
CONFIG_XMLTO="no"
|
|
|
|
CONFIG_JW="no"
|
|
|
|
|
|
|
|
if test "x$CONFIG_DOC" != xno; then
|
|
|
|
AC_PATH_PROGS(ASCIIDOC, "asciidoc")
|
2005-10-02 18:50:16 -04:00
|
|
|
if test "x$ASCIIDOC" != "x"; then
|
2005-09-15 09:58:31 -04:00
|
|
|
EL_CONFIG(CONFIG_ASCIIDOC, [AsciiDoc])
|
|
|
|
EL_CONFIG(MANUAL_ASCIIDOC, [HTML (one file)])
|
|
|
|
EL_CONFIG(MAN_ASCIIDOC, [HTML])
|
2006-01-26 20:32:06 -05:00
|
|
|
|
|
|
|
echo > config.asciidoc-unsafe.txt
|
2006-02-25 03:58:17 -05:00
|
|
|
if "$ASCIIDOC" --unsafe config.asciidoc-unsafe.txt >/dev/null 2>/dev/null; then
|
2006-01-26 20:32:06 -05:00
|
|
|
ASCIIDOC_FLAGS=--unsafe
|
|
|
|
fi
|
|
|
|
rm config.asciidoc-unsafe.*
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PATH_PROGS(XMLTO, "xmlto")
|
|
|
|
if test "x$XMLTO" != "x"; then
|
|
|
|
EL_CONFIG(CONFIG_XMLTO, [XmlTo])
|
|
|
|
EL_CONFIG(MANUAL_XMLTO, [HTML (multiple files)])
|
|
|
|
EL_CONFIG(MAN_XMLTO, [man (groff)])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PATH_PROGS(JW, "jw")
|
|
|
|
if test "x$JW" != "x"; then
|
|
|
|
EL_CONFIG(CONFIG_JW, [JadeWrapper])
|
|
|
|
EL_CONFIG(MANUAL_JW, [PDF])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PATH_PROGS(POD2HTML, "pod2html")
|
|
|
|
if test "x$POD2HTML" != "x"; then
|
|
|
|
EL_CONFIG(CONFIG_POD2HTML, [Pod2HTML])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2006-01-26 20:32:06 -05:00
|
|
|
AC_SUBST(ASCIIDOC_FLAGS)
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_SUBST(CONFIG_ASCIIDOC)
|
|
|
|
AC_SUBST(CONFIG_POD2HTML)
|
|
|
|
AC_SUBST(CONFIG_XMLTO)
|
|
|
|
AC_SUBST(CONFIG_JW)
|
|
|
|
|
2006-02-08 14:28:10 -05:00
|
|
|
EL_CONFIG_DEPENDS(CONFIG_DOC, [CONFIG_ASCIIDOC CONFIG_XMLTO CONFIG_JW CONFIG_POD2HTML], [Documentation Tools])
|
|
|
|
EL_CONFIG_DEPENDS(CONFIG_MANUAL, [MANUAL_ASCIIDOC MANUAL_XMLTO MANUAL_JW], [Manual Formats])
|
|
|
|
EL_CONFIG_DEPENDS(CONFIG_MANPAGE, [MAN_ASCIIDOC MAN_XMLTO], [Man Page Formats])
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
dnl gcc specific options (to be continued at the bottom of configure)
|
|
|
|
if test "x$ac_cv_prog_gcc" = "xyes"; then
|
|
|
|
dnl We want to see all warnings and live with none.
|
|
|
|
dnl We can't set up -Werror here as there may be some warnings in test
|
|
|
|
dnl suite of configure, and we don't want to fail them.
|
|
|
|
CFLAGS="$CFLAGS -Wall"
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for special OSes.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
dnl EL_CHECK_COMPILER_MACRO(define, name, flagname)
|
|
|
|
AC_DEFUN([EL_CHECK_COMPILER_MACROS],
|
|
|
|
[
|
|
|
|
AC_MSG_CHECKING([for $2])
|
|
|
|
|
|
|
|
for flag in $3; do
|
|
|
|
AC_TRY_COMPILE(, [#ifndef $flag
|
|
|
|
kill me!
|
|
|
|
#endif ], $1=yes, $1=no)
|
|
|
|
if test "[$]$1" = yes; then
|
|
|
|
EL_CONFIG([$1], [$2])
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
AC_MSG_RESULT([$]$1)
|
|
|
|
])
|
|
|
|
|
2006-01-11 14:12:59 -05:00
|
|
|
EL_CHECK_COMPILER_MACROS(CONFIG_OS_BEOS, [BEOS], [__BEOS__])
|
|
|
|
AC_SUBST(CONFIG_OS_BEOS)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2006-01-11 14:10:26 -05:00
|
|
|
EL_CHECK_COMPILER_MACROS(CONFIG_OS_RISCOS, [RISCOS], [__riscos__])
|
|
|
|
AC_SUBST(CONFIG_OS_RISCOS)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2006-01-11 14:10:27 -05:00
|
|
|
EL_CHECK_COMPILER_MACROS(CONFIG_OS_WIN32, [WIN32], [_WIN32 __WIN32__])
|
|
|
|
AC_SUBST(CONFIG_OS_WIN32)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2006-01-11 14:10:26 -05:00
|
|
|
EL_CHECK_COMPILER_MACROS(CONFIG_OS_OS2, [EMX], [__EMX__])
|
|
|
|
AC_SUBST(CONFIG_OS_OS2)
|
|
|
|
test "$CONFIG_OS_OS2" = yes && LDFLAGS=`echo "$LDFLAGS" | sed "s/-Zexe//g"`
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
AC_MSG_CHECKING([for UNIX])
|
|
|
|
dnl FIXME: some depend kind of mechanism
|
2006-01-11 14:12:59 -05:00
|
|
|
if test "$CONFIG_OS_BEOS" = no && \
|
2006-01-11 14:10:26 -05:00
|
|
|
test "$CONFIG_OS_RISCOS" = no && \
|
2006-01-11 14:10:27 -05:00
|
|
|
test "$CONFIG_OS_WIN32" = no && \
|
2006-01-11 14:10:26 -05:00
|
|
|
test "$CONFIG_OS_OS2" = no; then
|
2006-01-11 14:10:27 -05:00
|
|
|
EL_CONFIG(CONFIG_OS_UNIX, [UNIX])
|
2005-09-15 09:58:31 -04:00
|
|
|
else
|
2006-01-11 14:10:27 -05:00
|
|
|
CONFIG_OS_UNIX=no
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
2006-01-11 14:10:27 -05:00
|
|
|
AC_MSG_RESULT($CONFIG_OS_UNIX)
|
|
|
|
AC_SUBST(CONFIG_OS_UNIX)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for header files.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_HEADER_DIRENT
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_HEADER_SYS_WAIT
|
|
|
|
AC_HEADER_TIME
|
|
|
|
|
2006-10-21 17:05:37 -04:00
|
|
|
AC_CHECK_HEADERS(wctype.h)
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_CHECK_HEADERS(fcntl.h limits.h time.h unistd.h)
|
|
|
|
AC_CHECK_HEADERS(sigaction.h)
|
|
|
|
AC_CHECK_HEADERS(arpa/inet.h)
|
|
|
|
AC_CHECK_HEADERS(netinet/in_systm.h netinet/in_system.h netinet/ip.h)
|
|
|
|
AC_CHECK_HEADERS(net/if.h netdb.h netinet/in.h netinet/in6_var.h)
|
|
|
|
AC_CHECK_HEADERS(ifaddrs.h)
|
|
|
|
AC_CHECK_HEADERS(sys/cygwin.h io.h)
|
|
|
|
AC_CHECK_HEADERS(sys/fmutex.h)
|
|
|
|
AC_CHECK_HEADERS(sys/ioctl.h sys/sockio.h)
|
|
|
|
AC_CHECK_HEADERS(sys/resource.h)
|
|
|
|
AC_CHECK_HEADERS(sys/select.h)
|
|
|
|
AC_CHECK_HEADERS(sys/signal.h)
|
|
|
|
AC_CHECK_HEADERS(sys/socket.h)
|
|
|
|
AC_CHECK_HEADERS(sys/time.h)
|
|
|
|
AC_CHECK_HEADERS(sys/utsname.h)
|
|
|
|
AC_CHECK_HEADERS(stdint.h inttypes.h)
|
|
|
|
AC_CHECK_HEADERS(locale.h pwd.h)
|
|
|
|
AC_CHECK_HEADERS(termios.h)
|
|
|
|
|
|
|
|
|
|
|
|
AC_CHECK_HEADERS(sys/un.h,
|
|
|
|
[CONFIG_INTERLINK=yes
|
|
|
|
EL_CONFIG([CONFIG_INTERLINK], [interlinking])],
|
|
|
|
[CONFIG_INTERLINK=no])
|
2005-09-15 22:24:01 -04:00
|
|
|
AC_SUBST(CONFIG_INTERLINK)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_STRUCT_TM
|
|
|
|
AC_C_CONST
|
|
|
|
AC_C_INLINE
|
|
|
|
EL_CHECK_CODE(typeof, HAVE_TYPEOF, [], [int a; typeof(a) b;])
|
|
|
|
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_TYPE_OFF_T
|
|
|
|
EL_CHECK_TYPE(ssize_t, int)
|
|
|
|
EL_CHECK_SYS_TYPE(long long, HAVE_LONG_LONG, [])
|
2006-08-04 18:31:29 -04:00
|
|
|
EL_CHECK_SYS_TYPE(off_t, HAVE_OFF_T, [])
|
2005-09-15 09:58:31 -04:00
|
|
|
EL_CHECK_INT_TYPE(int32_t, HAVE_INT32_T)
|
|
|
|
EL_CHECK_INT_TYPE(uint32_t, HAVE_UINT32_T)
|
|
|
|
EL_CHECK_INT_TYPE(uint16_t, HAVE_UINT16_T)
|
|
|
|
|
|
|
|
AC_CHECK_SIZEOF(char, 1)
|
|
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
|
|
test "x$HAVE_LONG_LONG" = xyes && AC_CHECK_SIZEOF(long long, 8)
|
2006-08-04 18:31:29 -04:00
|
|
|
test "x$HAVE_OFF_T" = xyes && AC_CHECK_SIZEOF(off_t, 4)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
dnl Check for variadic macros
|
|
|
|
EL_CHECK_CODE([variadic macros], HAVE_VARIADIC_MACROS,
|
|
|
|
[#include <stdio.h>
|
|
|
|
#define a(b,c...) printf(b,##c)],
|
|
|
|
[a("foo");a("%s","bar");a("%s%s","baz","quux");])
|
|
|
|
|
|
|
|
dnl Check for -rdynamic
|
2006-09-17 10:28:57 -04:00
|
|
|
dnl
|
|
|
|
dnl gcc -rdynamic calls ld -export-dynamic, which adds all symbols of
|
|
|
|
dnl the executable to its dynamic symbol table. ELinks uses this for
|
|
|
|
dnl two purposes:
|
|
|
|
dnl
|
|
|
|
dnl 1. If ELinks detects a bug, it can try to display a backtrace by
|
|
|
|
dnl calling backtrace_symbols_fd() in the GNU libc. The glibc-2.3.6
|
|
|
|
dnl manual states users of GNU ld must pass -rdynamic to make the
|
|
|
|
dnl symbols available to the program.
|
|
|
|
dnl
|
|
|
|
dnl 2. It would eventually be nice to dynamically load shared
|
|
|
|
dnl libraries as plugins (bug 73). The plugins must be able to
|
|
|
|
dnl call ELinks functions. This can be implemented either by
|
|
|
|
dnl registering all callable functions in ELinks-specific data
|
|
|
|
dnl structures, or by letting the dynamic linker handle them.
|
|
|
|
dnl The latter way requires something equivalent to -rdynamic.
|
|
|
|
dnl
|
|
|
|
dnl Because backtraces are not needed for correct operation, and bug
|
|
|
|
dnl 73 is not yet being fixed, the configure script and makefiles
|
|
|
|
dnl should not complain to the user if they find that -rdynamic does
|
|
|
|
dnl not work. Besides, it was reported at elinks-users on 2006-09-12
|
|
|
|
dnl that gcc-3.4.2 with "ld: Software Generation Utilities - Solaris
|
|
|
|
dnl Link Editors: 5.8-1.284" on Sun Solaris 8 Sparc does not support
|
|
|
|
dnl -rdynamic but does something equivalent automatically. (This was
|
|
|
|
dnl tested with "nm -D elinks | grep redraw_from_window".)
|
|
|
|
dnl
|
2005-09-15 09:58:31 -04:00
|
|
|
dnl FIXME: This check doesn't work. Something to do with the compiler
|
|
|
|
dnl happily ignoring it and stderr not being checked for error messages.
|
|
|
|
AC_MSG_CHECKING([for -rdynamic])
|
|
|
|
LDFLAGS_X="$LDFLAGS"
|
|
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
|
|
|
AC_TRY_LINK([], [], have_rdynamic=yes, have_rdynamic=no)
|
|
|
|
test "$have_rdynamic" = no && LDFLAGS="$LDFLAGS_X"
|
|
|
|
AC_MSG_RESULT($have_rdynamic)
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for POSIX <regex.h>
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
EL_CHECK_SYS_TYPE(regex_t, HAVE_REGEX_H, [#include <regex.h>])
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for library functions.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_PROG_GCC_TRADITIONAL
|
|
|
|
AC_FUNC_MEMCMP
|
|
|
|
AC_FUNC_MMAP
|
|
|
|
AC_FUNC_STRFTIME
|
2007-01-24 12:40:28 -05:00
|
|
|
AC_CHECK_FUNCS(atoll cfmakeraw gethostbyaddr herror strerror)
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_CHECK_FUNCS(popen uname access chmod alarm timegm mremap)
|
2006-10-21 17:05:37 -04:00
|
|
|
AC_CHECK_FUNCS(strcasecmp strncasecmp strcasestr strstr strchr strrchr)
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_CHECK_FUNCS(memmove bcopy stpcpy strdup index isdigit mempcpy memrchr)
|
|
|
|
AC_CHECK_FUNCS(snprintf vsnprintf asprintf vasprintf)
|
|
|
|
AC_CHECK_FUNCS(getifaddrs getpwnam inet_pton inet_ntop)
|
|
|
|
AC_CHECK_FUNCS(fflush fsync fseeko ftello sigaction)
|
|
|
|
AC_CHECK_FUNCS(gettimeofday clock_gettime)
|
|
|
|
|
|
|
|
AC_HAVE_FUNCS(cygwin_conv_to_full_win32_path)
|
|
|
|
|
|
|
|
AC_CHECK_FUNCS(setenv putenv, HAVE_SETENV_OR_PUTENV=yes)
|
|
|
|
AC_CHECK_FUNCS(getuid, HAVE_GETUID=yes)
|
|
|
|
AC_CHECK_FUNCS(geteuid, HAVE_GETEUID=yes)
|
|
|
|
|
|
|
|
dnl These aren't probably needed now, as they are commented in links.h.
|
|
|
|
dnl I've no idea about their historical background, but I keep them here
|
|
|
|
dnl just in the case they will help later. --pasky
|
|
|
|
AC_CHECK_FUNCS(getpid, HAVE_GETPID=yes)
|
|
|
|
AC_CHECK_FUNCS(setpgid getpgid setpgrp getpgrp)
|
|
|
|
AC_CHECK_FUNCS(raise, HAVE_RAISE=yes)
|
|
|
|
AC_CHECK_FUNCS(kill, HAVE_KILL=yes)
|
|
|
|
|
|
|
|
if test x"$HAVE_RAISE" = x; then
|
|
|
|
if test x"$HAVE_KILL" = x || test x"$HAVE_GETPID" = x; then
|
|
|
|
AC_ERROR([Unable to emulate raise()])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CACHE_CHECK([for __va_copy],el_cv_HAVE_VA_COPY,[
|
|
|
|
AC_TRY_LINK([#include <stdarg.h>
|
|
|
|
va_list ap1,ap2;], [__va_copy(ap1,ap2);],
|
|
|
|
el_cv_HAVE_VA_COPY=yes,el_cv_HAVE_VA_COPY=no)])
|
|
|
|
if test x"$el_cv_HAVE_VA_COPY" = x"yes"; then
|
|
|
|
EL_DEFINE(HAVE_VA_COPY, __va_copy)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CACHE_CHECK([for sysconf(_SC_PAGE_SIZE)],el_cv_HAVE_SC_PAGE_SIZE,[
|
|
|
|
AC_TRY_LINK([#include <unistd.h>
|
|
|
|
], [int page_size = sysconf(_SC_PAGE_SIZE);],
|
|
|
|
el_cv_HAVE_SC_PAGE_SIZE=yes,el_cv_HAVE_SC_PAGE_SIZE=no)])
|
|
|
|
if test x"$el_cv_HAVE_SC_PAGE_SIZE" = x"yes"; then
|
|
|
|
EL_DEFINE(HAVE_SC_PAGE_SIZE, _SC_PAGE_SIZE)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CACHE_CHECK([for C99 vsnprintf],el_cv_HAVE_C99_VSNPRINTF,[
|
|
|
|
AC_TRY_RUN([
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
char buf[8];
|
|
|
|
|
|
|
|
int bar(char *buf, const char *format, va_list ap)
|
|
|
|
{
|
|
|
|
return vsnprintf(buf, 0, format, ap);
|
|
|
|
}
|
|
|
|
|
|
|
|
void foo(const char *format, ...) {
|
|
|
|
va_list ap;
|
|
|
|
int len;
|
|
|
|
|
|
|
|
va_start(ap, format);
|
|
|
|
len = bar(buf, format, ap);
|
|
|
|
va_end(ap);
|
|
|
|
if ((len != 6) && (len != 7)) exit(1); /* \n -> \r\n */
|
|
|
|
|
|
|
|
va_start(ap, format);
|
|
|
|
len = bar(buf, format, ap);
|
|
|
|
va_end(ap);
|
|
|
|
if ((len != 6) && (len != 7)) exit(1);
|
|
|
|
|
|
|
|
if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
|
|
|
|
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
main() { foo("hello\n"); }
|
|
|
|
],
|
|
|
|
el_cv_HAVE_C99_VSNPRINTF=yes,el_cv_HAVE_C99_VSNPRINTF=no,el_cv_HAVE_C99_VSNPRINTF=cross)])
|
|
|
|
if test x"$el_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
|
|
|
|
EL_DEFINE(HAVE_C99_VSNPRINTF, [C99 compliant vsnprintf()])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_LIB(dl, dlopen) # OpenSSL and Lua frequently needs it
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for libraries.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
dnl Replace `main' with a function in -lsocket:
|
|
|
|
AC_CHECK_FUNC(socket, cf_result=yes, cf_result=no)
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
AC_CHECK_LIB(socket, socket)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_FUNC(setsockopt, cf_result=yes, cf_result=no)
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
AC_CHECK_LIB(socket, setsockopt)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_FUNC(gethostbyname, cf_result=yes, cf_result=no)
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
AC_CHECK_LIB(socket, gethostbyname, cf_result=yes, cf_result=no)
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
AC_CHECK_LIB(nsl, gethostbyname)
|
|
|
|
else
|
|
|
|
test -z "`echo $LIBS | grep -- -lsocket`" && LIBS="$LIBS -lsocket"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for packaging specific options.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_ARG_WITH(xterm, [ --with-xterm how to invoke the X terminal emulator],
|
|
|
|
[ if test "$withval" != no && test "$withval" != yes; then
|
|
|
|
AC_DEFINE_UNQUOTED(XTERM, "$withval", [How to invoke XTerm])
|
|
|
|
fi ])
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for a libraries, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
dnl EL_CHECK_OPTIONAL_LIBRARY(define, name, header, lib, function)
|
|
|
|
AC_DEFUN([EL_CHECK_OPTIONAL_LIBRARY],
|
|
|
|
[
|
|
|
|
AC_MSG_CHECKING([for $2 support])
|
|
|
|
|
|
|
|
if test "[$]$1" != no; then
|
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
if test -n "$withval" && test -d "$withval"; then
|
2006-01-30 22:28:25 -05:00
|
|
|
# Be a little more careful when setting
|
|
|
|
# include and lib directories. This way
|
|
|
|
# $withval will work when includes are
|
|
|
|
# there but the library is in the common
|
|
|
|
# /usr/lib ... Does the right thing when
|
|
|
|
# looking for gc on Debian.
|
|
|
|
if test -d "$withval/include"; then
|
|
|
|
CFLAGS="$CFLAGS -I$withval/include"
|
|
|
|
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
|
|
|
else
|
|
|
|
CFLAGS="$CFLAGS -I$withval"
|
|
|
|
CPPFLAGS="$CPPFLAGS -I$withval"
|
|
|
|
fi
|
|
|
|
if test -d "$withval/lib"; then
|
|
|
|
LDFLAGS="$LDFLAGS -L$withval/lib"
|
|
|
|
fi
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_HEADERS([$3], [$1=yes], [$1=no; break;])
|
|
|
|
if test "[$]$1" = yes; then
|
|
|
|
AC_CHECK_LIB([$4], [$5], [$1=yes], [$1=no])
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "[$]$1" = yes; then
|
|
|
|
EL_CONFIG([$1], [$2])
|
|
|
|
LIBS="$LIBS -l$4"
|
|
|
|
else
|
|
|
|
if test -n "[$]WITHVAL_$1" &&
|
|
|
|
test "[$]WITHVAL_$1" != xno; then
|
|
|
|
AC_MSG_ERROR([$2 not found])
|
|
|
|
fi
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(disabled)
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl EL_CONFIG_OPTIONAL_LIBRARY(define, name, header, lib, function, confhelp)
|
|
|
|
AC_DEFUN([EL_CONFIG_OPTIONAL_LIBRARY],
|
|
|
|
[
|
|
|
|
$1=yes
|
|
|
|
WITHVAL_$1=
|
|
|
|
|
|
|
|
AC_ARG_WITH([$2], [$6], [WITHVAL_$1="[$]withval"])
|
|
|
|
if test "x[$]WITHVAL_$1" = xno; then $1=no; fi
|
|
|
|
|
|
|
|
EL_CHECK_OPTIONAL_LIBRARY([$1], [$2], [$3], [$4], [$5])
|
|
|
|
|
|
|
|
EL_LOG_CONFIG([$1], [$2], [])
|
|
|
|
])
|
|
|
|
|
|
|
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GPM, gpm, gpm.h, gpm, Gpm_Open,
|
|
|
|
[ --without-gpm disable gpm (mouse) support])
|
|
|
|
|
|
|
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GZIP, zlib, zlib.h, z, gzdopen,
|
|
|
|
[ --without-zlib disable zlib support])
|
|
|
|
|
|
|
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_BZIP2, bzlib, bzlib.h, bz2, BZ2_bzReadOpen,
|
|
|
|
[ --without-bzlib disable bzlib support])
|
|
|
|
|
|
|
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_IDN, idn, idna.h, idn, stringprep_check_version,
|
|
|
|
[ --without-idn disable international domain names support])
|
|
|
|
|
2006-02-01 04:36:42 -05:00
|
|
|
if test "x{with_gc}" != xno; then
|
|
|
|
EL_CONFIG_OPTIONAL_LIBRARY(CONFIG_GC, gc, gc.h, gc, GC_init,
|
2006-07-26 15:31:01 -04:00
|
|
|
[ --with-gc enable Boehm's garbage collector])
|
2006-02-01 04:36:42 -05:00
|
|
|
fi
|
2006-01-30 22:28:25 -05:00
|
|
|
|
2006-03-24 06:30:54 -05:00
|
|
|
EL_ARG_ENABLE(CONFIG_LZMA, lzma, [lzma],
|
2006-05-22 19:50:55 -04:00
|
|
|
[ --enable-lzma enable lzma encoding support])
|
2006-12-09 19:30:16 -05:00
|
|
|
|
2005-09-15 09:58:31 -04:00
|
|
|
dnl ===================================================================
|
2006-06-14 08:41:59 -04:00
|
|
|
dnl Check for GSSAPI, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
enable_gssapi="no";
|
|
|
|
|
|
|
|
AC_ARG_WITH(gssapi, [ --with-gssapi enable GSSAPI support],
|
|
|
|
[ if test "x$withval" != xno; then enable_gssapi=yes; fi ])
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for GSSAPI])
|
|
|
|
|
|
|
|
if test "$enable_gssapi" = "yes"; then
|
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
GSSAPI_CFLAGS=`krb5-config --cflags gssapi`
|
|
|
|
GSSAPI_LIBS=`krb5-config --libs gssapi`
|
|
|
|
CFLAGS="$GSSAPI_CFLAGS $CFLAGS"
|
|
|
|
LIBS="$GSSAPI_LIBS $LIBS"
|
|
|
|
EL_CONFIG(CONFIG_GSSAPI, [GssApi])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST(CONFIG_GSSAPI)
|
|
|
|
|
|
|
|
dnl ===================================================================
|
2005-09-15 09:58:31 -04:00
|
|
|
dnl Bookmark and XBEL support
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
|
|
|
|
EL_ARG_ENABLE(CONFIG_BOOKMARKS, bookmarks, [Bookmarks],
|
|
|
|
[ --disable-bookmarks disable bookmark support])
|
|
|
|
|
|
|
|
# Check whether --enable-xbel or --disable-xbel was given.
|
|
|
|
if test "x${enable_xbel}" != xno; then
|
|
|
|
AC_CHECK_HEADERS(expat.h, HAVE_LIBEXPAT=yes, HAVE_LIBEXPAT=no)
|
|
|
|
|
|
|
|
if test "$HAVE_LIBEXPAT" = yes; then
|
|
|
|
AC_CHECK_LIB(expat, XML_ParserCreate, HAVE_LIBEXPAT=yes, HAVE_LIBEXPAT=no)
|
|
|
|
if test "$HAVE_LIBEXPAT" = yes; then
|
|
|
|
LIBS="$LIBS -lexpat"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
EL_ARG_DEPEND(CONFIG_XBEL_BOOKMARKS, xbel, [CONFIG_BOOKMARKS:yes HAVE_LIBEXPAT:yes],
|
|
|
|
[XBEL bookmarks],
|
|
|
|
[ --disable-xbel disable XBEL bookmark support (requires expat)])
|
|
|
|
|
|
|
|
if test "$CONFIG_XBEL_BOOKMARKS" != yes; then
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for BSD sysmouse
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
HAVE_SYSMOUSE_HEADER="no"
|
|
|
|
|
|
|
|
# Either of these header files provides the (same) sysmouse interface
|
|
|
|
AC_CHECK_HEADERS(sys/consio.h machine/console.h, [HAVE_SYSMOUSE_HEADER="yes"])
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for OS/2
|
|
|
|
dnl ===================================================================
|
|
|
|
|
2006-01-11 14:10:26 -05:00
|
|
|
if test "$CONFIG_OS_OS2" = yes; then
|
|
|
|
EL_CONFIG_OS_OS2
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Checks for Win32
|
|
|
|
dnl ===================================================================
|
|
|
|
|
2006-01-11 14:10:27 -05:00
|
|
|
if test "$CONFIG_OS_WIN32" = yes; then
|
|
|
|
EL_CONFIG_OS_WIN32
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
|
|
|
|
2006-01-10 13:17:29 -05:00
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for SEE (Simple Ecmascript Engine)
|
|
|
|
dnl ===================================================================
|
|
|
|
AC_ARG_WITH(see, [ --with-see enable Simple Ecmascript Engine (SEE) support],
|
|
|
|
[ if test "x$withval" != xno; then enable_see=yes; fi ])
|
|
|
|
|
|
|
|
# The following is probably bad, ugly and so on. Stolen from Guile's (1.4)
|
|
|
|
# SEE_FLAGS but I really don't want to require people to have Guile in order
|
|
|
|
# to compile CVS. Also, the macro seems to be really stupid regarding searching
|
|
|
|
# for Guile in $PATH etc. --pasky
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for SEE])
|
|
|
|
|
2006-01-20 10:31:59 -05:00
|
|
|
CONFIG_ECMASCRIPT_SEE=no
|
|
|
|
|
2006-01-10 13:17:29 -05:00
|
|
|
if test "$enable_see" = "yes"; then
|
|
|
|
AC_MSG_RESULT(yes);
|
|
|
|
## Based on the SEE_FLAGS macro.
|
|
|
|
|
|
|
|
if test -d "$withval"; then
|
|
|
|
SEE_PATH="$withval:$PATH"
|
|
|
|
else
|
|
|
|
SEE_PATH="$PATH"
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PATH_PROG(SEE_CONFIG, libsee-config, no, $SEE_PATH)
|
|
|
|
|
|
|
|
## First, let's just see if we can find Guile at all.
|
|
|
|
if test "$SEE_CONFIG" != no; then
|
|
|
|
cf_result="yes";
|
|
|
|
|
|
|
|
SEE_LIBS="`$SEE_CONFIG --libs`"
|
|
|
|
SEE_CFLAGS="`$SEE_CONFIG --cppflags`"
|
|
|
|
LIBS="$SEE_LIBS $LIBS"
|
2006-01-12 11:33:33 -05:00
|
|
|
EL_CONFIG(CONFIG_ECMASCRIPT_SEE, [SEE])
|
2006-01-10 13:17:29 -05:00
|
|
|
AC_SUBST(SEE_CFLAGS)
|
|
|
|
else
|
|
|
|
if test -n "$withval" && test "x$withval" != xno; then
|
|
|
|
AC_MSG_ERROR([SEE not found])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([SEE support disabled])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no);
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2005-12-24 20:23:54 -05:00
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for SpiderMonkey, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_ARG_WITH(spidermonkey, [ --without-spidermonkey disable SpiderMonkey Mozilla JavaScript engine support],
|
|
|
|
[if test "$withval" = no; then disable_spidermonkey=yes; fi])
|
|
|
|
AC_MSG_CHECKING([for SpiderMonkey])
|
|
|
|
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
cf_result=no
|
|
|
|
|
|
|
|
if test -z "$disable_spidermonkey"; then
|
|
|
|
if test ! -d "$withval"; then
|
|
|
|
withval="";
|
|
|
|
fi
|
|
|
|
for spidermonkeydir in "$withval" "" /usr /usr/local /opt/spidermonkey /opt/js; do
|
2006-02-26 03:28:15 -05:00
|
|
|
for spidermonkeyinclude in "/include" "/include/js" "/include/smjs" "/include/mozjs"; do
|
2006-02-26 03:25:22 -05:00
|
|
|
for spidermonkeylib in js smjs mozjs; do
|
2005-12-24 20:23:54 -05:00
|
|
|
if test "$cf_result" = no; then
|
|
|
|
SPIDERMONKEY_LIBS="-l$spidermonkeylib"
|
|
|
|
|
|
|
|
if test ! -z "$spidermonkeydir"; then
|
|
|
|
SPIDERMONKEY_LIBS="-L$spidermonkeydir/lib $SPIDERMONKEY_LIBS"
|
|
|
|
SPIDERMONKEY_CFLAGS="-I$spidermonkeydir$spidermonkeyinclude"
|
|
|
|
fi
|
|
|
|
|
|
|
|
LIBS="$SPIDERMONKEY_LIBS $LIBS_X"
|
|
|
|
CFLAGS="$CFLAGS_X $SPIDERMONKEY_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS_X $SPIDERMONKEY_CFLAGS"
|
|
|
|
|
|
|
|
AC_TRY_LINK([#define XP_UNIX
|
|
|
|
#include <jsapi.h>],
|
|
|
|
[JS_GetImplementationVersion()],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
done
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_MSG_RESULT($cf_result)
|
2006-01-20 10:31:59 -05:00
|
|
|
CONFIG_SPIDERMONKEY="$cf_result"
|
2006-01-20 09:26:57 -05:00
|
|
|
EL_RESTORE_FLAGS
|
2005-12-24 20:23:54 -05:00
|
|
|
|
2006-01-20 10:31:59 -05:00
|
|
|
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
|
|
|
|
test "x$CONFIG_ECMASCRIPT_SEE" != xyes; then
|
2006-01-10 20:21:53 -05:00
|
|
|
EL_CONFIG(CONFIG_ECMASCRIPT_SMJS, [SpiderMonkey document scripting])
|
2006-01-20 10:31:59 -05:00
|
|
|
else
|
|
|
|
CONFIG_ECMASCRIPT_SMJS=no
|
2006-01-10 20:21:53 -05:00
|
|
|
fi
|
|
|
|
|
2006-01-12 11:33:33 -05:00
|
|
|
EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_ECMASCRIPT_SEE CONFIG_ECMASCRIPT_SMJS], [ECMAScript (JavaScript)])
|
2006-01-20 10:31:59 -05:00
|
|
|
AC_SUBST(CONFIG_ECMASCRIPT_SEE)
|
|
|
|
AC_SUBST(CONFIG_ECMASCRIPT_SMJS)
|
2006-01-10 20:21:53 -05:00
|
|
|
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Optional Spidermonkey-based ECMAScript browser scripting
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(sm-scripting,
|
|
|
|
[ --disable-sm-scripting ECMAScript browser scripting (requires Spidermonkey)],
|
|
|
|
[if test "$enableval" != no; then enableval="yes"; fi
|
2006-01-11 08:14:11 -05:00
|
|
|
CONFIG_SCRIPTING_SPIDERMONKEY="$enableval";])
|
2006-01-10 20:21:53 -05:00
|
|
|
|
|
|
|
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
|
2006-01-11 08:14:11 -05:00
|
|
|
test "x$CONFIG_SCRIPTING_SPIDERMONKEY" = xyes; then
|
|
|
|
EL_CONFIG(CONFIG_SCRIPTING_SPIDERMONKEY, [SpiderMonkey])
|
2006-01-10 20:21:53 -05:00
|
|
|
else
|
2006-01-11 08:14:11 -05:00
|
|
|
CONFIG_SCRIPTING_SPIDERMONKEY=no
|
2006-01-10 20:21:53 -05:00
|
|
|
fi
|
2005-12-24 20:23:54 -05:00
|
|
|
|
2006-01-20 10:31:59 -05:00
|
|
|
if test "x$CONFIG_ECMASCRIPT_SMJS" = xyes ||
|
|
|
|
test "x$CONFIG_SCRIPTING_SPIDERMONKEY" = xyes; then
|
|
|
|
LIBS="$LIBS $SPIDERMONKEY_LIBS"
|
|
|
|
AC_SUBST(SPIDERMONKEY_LIBS)
|
|
|
|
AC_SUBST(SPIDERMONKEY_CFLAGS)
|
|
|
|
AC_SUBST(CONFIG_SPIDERMONKEY)
|
2006-01-20 09:26:57 -05:00
|
|
|
fi
|
2005-12-24 20:23:54 -05:00
|
|
|
|
2005-09-15 09:58:31 -04:00
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for Guile, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
enable_guile="no";
|
|
|
|
|
|
|
|
AC_ARG_WITH(guile, [ --with-guile enable Guile support],
|
|
|
|
[ if test "x$withval" != xno; then enable_guile=yes; fi ])
|
|
|
|
|
|
|
|
# The following is probably bad, ugly and so on. Stolen from Guile's (1.4)
|
|
|
|
# GUILE_FLAGS but I really don't want to require people to have Guile in order
|
|
|
|
# to compile CVS. Also, the macro seems to be really stupid regarding searching
|
|
|
|
# for Guile in $PATH etc. --pasky
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for Guile])
|
|
|
|
|
|
|
|
if test "$enable_guile" = "yes"; then
|
|
|
|
AC_MSG_RESULT(yes);
|
|
|
|
## Based on the GUILE_FLAGS macro.
|
|
|
|
|
|
|
|
if test -d "$withval"; then
|
|
|
|
GUILE_PATH="$withval:$PATH"
|
|
|
|
else
|
|
|
|
GUILE_PATH="$PATH"
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PATH_PROG(GUILE_CONFIG, guile-config, no, $GUILE_PATH)
|
|
|
|
|
|
|
|
## First, let's just see if we can find Guile at all.
|
|
|
|
if test "$GUILE_CONFIG" != no; then
|
|
|
|
cf_result="yes";
|
|
|
|
|
|
|
|
GUILE_LIBS="`guile-config link`"
|
|
|
|
GUILE_CFLAGS="`guile-config compile`"
|
|
|
|
LIBS="$GUILE_LIBS $LIBS"
|
2006-01-11 08:10:41 -05:00
|
|
|
EL_CONFIG(CONFIG_SCRIPTING_GUILE, [Guile])
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_SUBST(GUILE_CFLAGS)
|
|
|
|
cat <<EOF
|
|
|
|
***********************************************************************
|
|
|
|
The Guile support is incomplete and not so well integrated to ELinks
|
2006-02-11 13:37:57 -05:00
|
|
|
yet. That means, e.g., that you have no Guile console and there might
|
2005-09-15 09:58:31 -04:00
|
|
|
not be all the necessary hooks. Also, the Guile interface is not too
|
|
|
|
well tested (success stories heartily welcomed!). See
|
|
|
|
src/scripting/guile/README for further details and hints.
|
|
|
|
***********************************************************************
|
|
|
|
EOF
|
|
|
|
else
|
|
|
|
if test -n "$withval" && test "x$withval" != xno; then
|
|
|
|
AC_MSG_ERROR([Guile not found])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([Guile support disabled])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no);
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for Perl
|
|
|
|
dnl ===================================================================
|
|
|
|
enable_perl="no";
|
|
|
|
|
|
|
|
AC_ARG_WITH(perl, [ --with-perl enable Perl support],
|
|
|
|
[
|
|
|
|
if test "$withval" = yes; then
|
|
|
|
# FIXME: If withval is a valid directory append it to PATH
|
|
|
|
# so that you can specify one of several perl installations.
|
|
|
|
withval="";
|
|
|
|
enable_perl=yes;
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for Perl])
|
|
|
|
|
|
|
|
cf_result=no
|
|
|
|
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
|
|
|
|
if test "$enable_perl" = "yes"; then
|
|
|
|
PERL_LIBS="`perl -MExtUtils::Embed -e ldopts`"
|
|
|
|
PERL_CFLAGS="`perl -MExtUtils::Embed -e ccopts`"
|
|
|
|
LIBS="$PERL_LIBS $LIBS"
|
|
|
|
CFLAGS="$PERL_CFLAGS $CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS $PERL_CFLAGS"
|
|
|
|
AC_TRY_LINK([
|
|
|
|
#include <EXTERN.h>
|
|
|
|
#include <perl.h>
|
|
|
|
#include <perlapi.h>
|
|
|
|
],
|
|
|
|
[PerlInterpreter *my_perl = perl_alloc();],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
fi
|
|
|
|
|
2006-12-09 13:26:06 -05:00
|
|
|
if test "$cf_result"; then AC_MSG_RESULT($cf_result); fi
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether POPpx works without an n_a variable])
|
|
|
|
AC_TRY_COMPILE([
|
|
|
|
#include <EXTERN.h>
|
|
|
|
#include <perl.h>
|
|
|
|
extern PerlInterpreter *my_perl;
|
|
|
|
],
|
|
|
|
[dSP; (void) POPpx;],
|
|
|
|
[AC_MSG_RESULT([yes])
|
|
|
|
AC_DEFINE([CONFIG_PERL_POPPX_WITHOUT_N_A], [1],
|
|
|
|
[Define if using Perl 5.8.8 or later, where the "POPpx" macro
|
|
|
|
no longer needs an "n_a" variable like it did in 5.8.7])],
|
|
|
|
[AC_MSG_RESULT([no])])
|
|
|
|
|
2005-09-15 09:58:31 -04:00
|
|
|
if test "$cf_result" != "yes"; then
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
else
|
2006-01-11 08:07:17 -05:00
|
|
|
EL_CONFIG(CONFIG_SCRIPTING_PERL, [Perl])
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
CFLAGS="$CFLAGS_X"
|
2007-02-17 12:08:00 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS_X"
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_SUBST(PERL_LIBS)
|
|
|
|
AC_SUBST(PERL_CFLAGS)
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for Python
|
|
|
|
dnl ===================================================================
|
|
|
|
enable_python="no";
|
|
|
|
|
2006-07-26 15:27:57 -04:00
|
|
|
AC_ARG_WITH(python, [ --with-python=[DIR] enable Python support],
|
|
|
|
[ if test "x$withval" != xno; then enable_python=yes; fi ])
|
2005-09-15 09:58:31 -04:00
|
|
|
|
2006-07-26 15:27:57 -04:00
|
|
|
EL_SAVE_FLAGS
|
2005-09-15 09:58:31 -04:00
|
|
|
cf_result=no
|
|
|
|
|
2006-07-26 15:27:57 -04:00
|
|
|
AC_MSG_CHECKING([for Python])
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
if test "$enable_python" = "yes"; then
|
2006-07-26 15:27:57 -04:00
|
|
|
AC_MSG_RESULT(yes);
|
|
|
|
|
|
|
|
if test -d "$withval"; then
|
|
|
|
PYTHON_PATH="$withval:$PATH"
|
2006-01-29 10:48:33 -05:00
|
|
|
else
|
|
|
|
PYTHON_PATH="$PATH"
|
|
|
|
fi
|
2006-07-26 15:27:57 -04:00
|
|
|
|
2006-01-29 10:48:33 -05:00
|
|
|
AC_PATH_PROG(PYTHON, python, no, $PYTHON_PATH)
|
2006-07-26 15:27:57 -04:00
|
|
|
|
|
|
|
if test "$PYTHON" != no; then
|
|
|
|
cf_result="yes";
|
|
|
|
|
|
|
|
PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; print "-I%s -I%s" % (sysconfig.get_python_inc(), sysconfig.get_python_inc(plat_specific=True))'`"
|
|
|
|
PYTHON_LIBS="`$PYTHON -c 'from distutils import sysconfig; var = sysconfig.get_config_var; print "%s %s %s -L%s -lpython%s" % (var("LINKFORSHARED"), var("LIBS"), var("SYSLIBS"), var("LIBPL"), var("VERSION"))'`"
|
2006-01-29 10:48:33 -05:00
|
|
|
LIBS="$PYTHON_LIBS $LIBS"
|
2006-07-26 15:27:57 -04:00
|
|
|
CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS"
|
2006-01-29 10:48:33 -05:00
|
|
|
AC_TRY_LINK([#include <Python.h>],
|
2005-09-15 09:58:31 -04:00
|
|
|
[Py_Initialize();],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
|
2006-01-29 10:48:33 -05:00
|
|
|
if test "$cf_result" != "yes"; then
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
else
|
|
|
|
EL_CONFIG(CONFIG_SCRIPTING_PYTHON, [Python])
|
|
|
|
AC_SUBST(PYTHON_LIBS)
|
|
|
|
AC_SUBST(PYTHON_CFLAGS)
|
2007-02-17 12:12:53 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS_X"
|
2006-07-26 15:27:57 -04:00
|
|
|
cat <<EOF
|
|
|
|
***********************************************************************
|
|
|
|
The Python support is incomplete and not so well integrated to ELinks
|
2006-09-17 10:32:07 -04:00
|
|
|
yet. That means, e.g., that you have no Python console and there might
|
2006-07-26 15:27:57 -04:00
|
|
|
not be all the necessary hooks. Also, the Python interface is not too
|
|
|
|
well tested (success stories heartily welcomed!).
|
|
|
|
***********************************************************************
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
if test -n "$withval" && test "x$withval" != xno; then
|
|
|
|
AC_MSG_ERROR([Python not found])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN([Python support disabled])
|
2006-01-29 10:48:33 -05:00
|
|
|
fi
|
|
|
|
fi
|
2006-07-26 15:27:57 -04:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no);
|
2005-09-15 09:58:31 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for Lua, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
dnl Do this the long way, as FreeBSD reportedly needs -L<dir> for
|
|
|
|
dnl anything other than /usr/lib, and Lua is very often in /usr/local/lib.
|
|
|
|
|
|
|
|
AC_ARG_WITH(lua, [ --without-lua disable Lua support],
|
|
|
|
[if test "$withval" = no; then disable_lua=yes; fi])
|
|
|
|
AC_MSG_CHECKING([for Lua])
|
|
|
|
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
cf_result=no
|
|
|
|
|
|
|
|
if test -z "$disable_lua"; then
|
|
|
|
if test ! -d "$withval"; then
|
|
|
|
withval="";
|
|
|
|
fi
|
|
|
|
for luadir in "$withval" "" /usr /usr/local; do
|
|
|
|
for suffix in "" 50 51; do
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
LUA_LIBS="-llua$suffix -llualib$suffix -lm"
|
|
|
|
|
|
|
|
if test ! -z "$luadir"; then
|
|
|
|
LUA_LIBS="-L$luadir/lib $LUA_LIBS"
|
|
|
|
LUA_CFLAGS="-I$luadir/include -I$luadir/include/lua$suffix"
|
|
|
|
fi
|
|
|
|
|
|
|
|
LIBS="$LUA_LIBS $LIBS_X"
|
|
|
|
CFLAGS="$CFLAGS_X $LUA_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS_X $LUA_CFLAGS"
|
|
|
|
|
|
|
|
# Check that it is a compatible Lua version
|
|
|
|
AC_TRY_LINK([ #include <lua.h>
|
|
|
|
#include <lualib.h>],
|
|
|
|
[ lua_State *L = lua_open();
|
2006-02-26 03:20:30 -05:00
|
|
|
luaopen_base(L);
|
|
|
|
luaopen_table(L);
|
|
|
|
luaopen_io(L);
|
|
|
|
luaopen_string(L);
|
|
|
|
luaopen_math(L);
|
2005-09-15 09:58:31 -04:00
|
|
|
lua_pushboolean(L, 1);
|
|
|
|
lua_close(L);],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_MSG_RESULT($cf_result)
|
|
|
|
|
|
|
|
if test "$cf_result" != yes; then
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
else
|
2006-01-11 08:06:13 -05:00
|
|
|
EL_CONFIG(CONFIG_SCRIPTING_LUA, [Lua])
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_CHECK_HEADERS(lauxlib.h)
|
|
|
|
|
|
|
|
CFLAGS="$CFLAGS_X"
|
2007-02-17 12:19:10 -05:00
|
|
|
CPPFLAGS="$CPPFLAGS_X"
|
2005-09-15 09:58:31 -04:00
|
|
|
AC_SUBST(LUA_LIBS)
|
|
|
|
AC_SUBST(LUA_CFLAGS)
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for Ruby, optional even if installed.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
2006-01-11 08:10:51 -05:00
|
|
|
EL_CONFIG_SCRIPTING_RUBY
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Setup global scripting
|
|
|
|
dnl ===================================================================
|
|
|
|
|
2006-01-11 08:14:11 -05:00
|
|
|
EL_CONFIG_DEPENDS(CONFIG_SCRIPTING, [CONFIG_SCRIPTING_GUILE CONFIG_SCRIPTING_LUA CONFIG_SCRIPTING_PERL CONFIG_SCRIPTING_PYTHON CONFIG_SCRIPTING_RUBY CONFIG_SCRIPTING_SPIDERMONKEY], [Browser scripting])
|
2006-01-11 08:10:41 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_GUILE)
|
2006-01-11 08:06:13 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_LUA)
|
2006-01-11 08:07:17 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_PERL)
|
2006-01-11 08:10:58 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_PYTHON)
|
2006-01-11 08:10:51 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_RUBY)
|
2006-01-11 08:14:11 -05:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING_SPIDERMONKEY)
|
2005-09-15 22:24:01 -04:00
|
|
|
AC_SUBST(CONFIG_SCRIPTING)
|
2005-09-15 09:58:31 -04:00
|
|
|
|
|
|
|
|
|
|
|
dnl ===================================================================
|
|
|
|
dnl Check for SSL support.
|
|
|
|
dnl ===================================================================
|
|
|
|
|
|
|
|
dnl We by default use OpenSSL, and we always prefer it. However, when GNUTLS
|
|
|
|
dnl is enabled, we won't try to use OpenSSL anymore.
|
|
|
|
|
|
|
|
dnl For wiping SSL hooks..
|
|
|
|
#ifdef CONFIG_SSL
|
|
|
|
|
|
|
|
disable_openssl=""
|
|
|
|
disable_gnutls=""
|
|
|
|
enable_gnutls=""
|
|
|
|
|
2005-09-17 05:54:14 -04:00
|
|
|
AC_ARG_WITH(gnutls, [ --without-gnutls disable GNUTLS SSL support],
|
2005-09-15 09:58:31 -04:00
|
|
|
[if test "$with_gnutls" = no; then disable_gnutls=yes; fi])
|
2005-09-17 05:54:14 -04:00
|
|
|
AC_ARG_WITH(gnutls, [ --with-gnutls[=DIR] enable GNUTLS SSL support],
|
2005-09-15 09:58:31 -04:00
|
|
|
[if test "$with_gnutls" != no; then enable_gnutls=yes; fi])
|
|
|
|
gnutls_withval="$withval"
|
|
|
|
|
|
|
|
if test "$enable_gnutls" = yes; then
|
|
|
|
disable_openssl=yes;
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_ARG_WITH(openssl, [ --without-openssl disable OpenSSL support],
|
|
|
|
[if test "$with_openssl" = no; then disable_openssl=yes; fi])
|
|
|
|
AC_ARG_WITH(openssl, [ --with-openssl[=DIR] enable OpenSSL support (default)])
|
|
|
|
openssl_withval="$withval"
|
|
|
|
|
|
|
|
dnl ---- OpenSSL
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for OpenSSL])
|
|
|
|
|
|
|
|
EL_SAVE_FLAGS
|
|
|
|
cf_result="no"
|
|
|
|
|
|
|
|
if test "$disable_openssl" = yes; then
|
|
|
|
cf_result="not used"
|
|
|
|
else
|
|
|
|
for ssldir in "$openssl_withval" "" /usr /usr/local/openssl \
|
|
|
|
/usr/lib/openssl /usr/local/ssl \
|
|
|
|
/usr/local/www /usr/lib/ssl /usr/local \
|
|
|
|
/usr/pkg /opt /opt/openssl; do
|
|
|
|
if test "$cf_result" = no; then
|
|
|
|
if test -d "$ssldir"; then
|
|
|
|
OPENSSL_CFLAGS="-I$ssldir/include"
|
|
|
|
LIBS="-L$ssldir/lib -lssl -lcrypto $LIBS_X"
|
|
|
|
CFLAGS="$CFLAGS_X $OPENSSL_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS_X $OPENSSL_CFLAGS"
|
|
|
|
# # FIXME: This created serious portability problems. --pasky
|
|
|
|
# if test "$CC" == "gcc"; then
|
|
|
|
# # I'm not sure about compatibility here. --pasky
|
|
|
|
# LIBS="$LIBS -R$ssldir/lib"
|
|
|
|
# fi
|
|
|
|
else
|
|
|
|
LIBS="-lssl -lcrypto $LIBS_X"
|
|
|
|
fi
|
|
|
|
AC_TRY_LINK([#include <openssl/ssl.h>],
|
|
|
|
[OpenSSL_add_all_algorithms()],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
if test "$cf_result" != yes; then
|
|
|
|
AC_TRY_LINK([#include <openssl/ssl.h>],
|
|
|
|
[SSLeay_add_ssl_algorithms()],
|
|
|
|
cf_result=yes, cf_result=no)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if test "$cf_result" != yes; then
|
|
|
|
if test -n "$openssl_withval" && test "x$openssl_withval" != xno; then
|
|
|
|
AC_MSG_ERROR([OpenSSL not found])
|
|
|
|
fi
|
|
|
|
EL_RESTORE_FLAGS
|
|
|
|
else
|
|
|
|
EL_CONFIG(CONFIG_OPENSSL, [OpenSSL])
|
|
|
|
|
|
|
|
CFLAGS="$CFLAGS_X"
|
|
|
|
AC_SUBST(OPENSSL_CFLAGS)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_MSG_RESULT($cf_result)
|
|
|
|
|
2006-01-28 16:03:46 -05:00
|
|
|
CONFIG_GNUTLS_OPENSSL_COMPAT=no
|
|