dnl Define ourselves
AC_INIT(tcltls, 1.7.0)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_GNU_SOURCE
dnl Determine system information
DC_CHK_OS_INFO
dnl Look for appropriate headers
AC_CHECK_HEADERS(unistd.h stdlib.h string.h strings.h)
dnl Perform Tcl Extension required stuff
TCLEXT_INIT
if test "$TCLEXT_BUILD" != 'static'; then
dnl Determine how to make shared objects
DC_GET_SHOBJFLAGS
EXTENSION_TARGET="tcltls.${SHOBJEXT}"
else
AC_CHECK_TOOL([AR], [ar], [false])
AC_CHECK_TOOL([RANLIB], [ranlib], [:])
EXTENSION_TARGET="tcltls.a"
fi
AC_SUBST(EXTENSION_TARGET)
AC_SUBST(TCLEXT_BUILD)
dnl Determine what SSL library to link with
AC_ARG_WITH([ssl], AS_HELP_STRING([--with-ssl], [name of ssl library to build against (openssl, libressl, nss, auto)]), [
if test "$withval" = "no"; then
AC_MSG_ERROR([You may not specify --without-ssl])
fi
if test "$withval" = "yes"; then
AC_MSG_ERROR([If you specify --with-ssl then you must provide a value])
fi
tcltls_ssl_lib="$withval"
], [
tcltls_ssl_lib='auto'
])
dnl Enable support for building the same library every time
tcltls_deterministic='false'
AC_ARG_ENABLE([deterministic], AS_HELP_STRING([--enable-deterministic], [enable deterministic parameters]), [
if test "$enableval" = "yes"; then
tcltls_deterministic='true'
fi
])
if test "$tcltls_deterministic" = 'true'; then
GEN_DH_PARAMS_ARGS='fallback'
else
GEN_DH_PARAMS_ARGS=''
fi
AC_SUBST(GEN_DH_PARAMS_ARGS)
dnl Enable support for a debugging build
tcltls_debug='false'
AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [enable debugging parameters]), [
if test "$enableval" = "yes"; then
tcltls_debug='true'
fi
])
if test "$tcltls_debug" = 'true'; then
AC_DEFINE(TCLEXT_TCLTLS_DEBUG, [1], [Enable debugging build])
fi
dnl Find "xxd" so we can build the tls.tcl.h file
AC_CHECK_TOOL([XXD], [xxd], [__xxd__not__found])
dnl Find "pkg-config" since we need to use it
AC_CHECK_TOOL([PKGCONFIG], [pkg-config], [false])
dnl XXX:TODO: Automatically determine the SSL library to use
dnl defaulting to OpenSSL for compatibility reasons
if test "$tcltls_ssl_lib" = 'auto'; then
tcltls_ssl_lib='openssl'
fi
AC_MSG_CHECKING([which TLS library to use])
AS_CASE([$tcltls_ssl_lib],
[openssl], [
AC_MSG_RESULT([openssl])
LIBS="${LIBS} `"${PKGCONFIG}" openssl --libs`"
CFLAGS="${CFLAGS} `"${PKGCONFIG}" openssl --cflags-only-other`"
CPPFLAGS="${CPPFLAGS} `"${PKGCONFIG}" openssl --cflags-only-I`"
],
[libressl], [
AC_MSG_RESULT([libressl])
],
[nss], [
AC_MSG_RESULT([nss])
],
[
AC_MSG_ERROR([Unsupported SSL library: $tcltls_ssl_lib])
]
)
dnl Produce output
AC_OUTPUT(Makefile pkgIndex.tcl)