Newer
Older
dnl Process this file with autoconf to produce a configure script.
AC_INIT([nettle], [1.6])
AC_CONFIG_SRCDIR([arcfour.c])
SHLIBMAJOR=0
SHLIBMINOR=0
# Command line options
AC_ARG_WITH(include-path,
AC_HELP_STRING([--with-include-path], [A colon-separated list of directories to search for include files]),,
[with_include_path=''])
if test x$with_include_path != x ; then
CPPFLAGS="$CPPFLAGS -I `echo $with_include_path | sed 's/:/ -I /g'`"
fi
AC_ARG_WITH(lib-path,
AC_HELP_STRING([--with-lib-path], [A colon-separated list of directories to search for libraries]),,
[with_lib_path=''])
if test x$with_lib_path != x ; then
LDFLAGS="-L `echo $with_lib_path | sed 's/:/ -L /g'`"
fi
AC_ARG_ENABLE(public-key,
AC_HELP_STRING([--disable-public-key], [Disable public key algorithms]),,
[enable_public_key=yes])
AC_HELP_STRING([--disable-assembler],[Disable assembler code]),,
[enable_assembler=yes])
AC_HELP_STRING([--enable-shared], [Build a shared library]),,
LSH_RPATH_INIT([`echo $with_lib_path | sed 's/:/ /g'` \
`echo $exec_prefix | sed "s@^NONE@$prefix/lib@g" | sed "s@^NONE@$ac_default_prefix/lib@g"` \
/usr/local/lib /sw/local/lib /sw/lib \
/usr/gnu/lib /opt/gnu/lib /sw/gnu/lib /usr/freeware/lib /usr/pkg/lib])
if test "x$am_cv_prog_cc_stdc" = xno ; then
AC_ERROR([the C compiler doesn't handle ANSI-C])
fi
case "$host" in
[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-*])
# echo "enable_assembler: $enable_assembler, asm_path: $asm_path"
if test "x$enable_assembler" = xyes ; then
if test -n "$asm_path"; then
AC_MSG_NOTICE([Looking for assembler files in $asm_path/.])
for tmp_f in aes.asm aes-encrypt.asm aes-decrypt.asm machine.m4; do
# echo "Looking for $srcdir/$asm_path/$tmp_f"
if test -f "$srcdir/$asm_path/$tmp_f"; then
AC_CONFIG_LINKS($tmp_f:$asm_path/$tmp_f)
fi
done
if test "$found" = no; then
enable_assembler=no
AC_MSG_WARN([No assembler files found.])
fi
fi
fi
SHLIBCFLAGS="-fpic"
SHLIBFORLINK=libnettle.so
SHLIBSONAME='$(SHLIBFORLINK).$(SHLIBMAJOR)'
SHLIBFILE='$(SHLIBSONAME).$(SHLIBMINOR)'
SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME)'
if test "x$enable_shared" = xyes ; then
SHLIBTARGET='$(SHLIBFORLINK)'
SHLIBINSTALL=install-shared
else
SHLIBTARGET=''
SHLIBINSTALL=''
fi
AC_SUBST(SHLIBCFLAGS)
AC_SUBST(SHLIBMAJOR)
AC_SUBST(SHLIBMINOR)
AC_SUBST(SHLIBFORLINK)
AC_SUBST(SHLIBSONAME)
AC_SUBST(SHLIBFILE)
AC_SUBST(SHLIBLINK)
AC_SUBST(SHLIBTARGET)
AC_SUBST(SHLIBINSTALL)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_UID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
# Needed by the supplied memcmp.c
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# Check for gcc's __attribute__ construction
AC_CACHE_CHECK(for __attribute__,
lsh_cv_c_attribute,
[ AC_TRY_COMPILE([
#include <stdlib.h>
],
[
static void foo(void) __attribute__ ((noreturn));
static void __attribute__ ((noreturn))
foo(void)
{
exit(1);
}
],
lsh_cv_c_attribute=yes,
lsh_cv_c_attribute=no)])
AH_TEMPLATE([HAVE_GCC_ATTRIBUTE],
[Define if the compiler understands __attribute__])
if test "x$lsh_cv_c_attribute" = "xyes"; then
AC_DEFINE(HAVE_GCC_ATTRIBUTE)
fi
AH_BOTTOM(
[#if __GNUC__ && HAVE_GCC_ATTRIBUTE
# define NORETURN __attribute__ ((__noreturn__))
# define PRINTF_STYLE(f, a) __attribute__ ((__format__ (__printf__, f, a)))
# define UNUSED __attribute__ ((__unused__))
#else
# define NORETURN
# define PRINTF_STYLE(f, a)
# define UNUSED
#endif
])
# Checks for libraries
AC_CHECK_LIB(gmp, __gmpz_getlimbn,,
[AC_MSG_WARN(
[GNU MP not found, or not 3.1 or up, see http://www.swox.com/gmp.
Support for public key algorithms will be unavailable.])]
enable_public_key=no)
if test "x$enable_public_key" = xyes ; then
AC_DEFINE(WITH_PUBLIC_KEY)
RSA_EXAMPLES="rsa-keygen rsa-sign rsa-verify"
else
RSA_EXAMPLES=""
fi
AH_TEMPLATE([WITH_PUBLIC_KEY], [Define to enable public key features])
AC_SUBST(RSA_EXAMPLES)
# Add -R flags needed to run programs linked with gmp
LSH_RPATH_FIX
# Check for openssl's libcrypto (used only for benchmarking)
AC_CHECK_LIB(crypto, BF_ecb_encrypt)
LSH_RPATH_FIX
# Set these flags *last*, or else the test programs won't compile
if test x$GCC = xyes ; then
# Using -ggdb3 makes (some versions of) Redhat's gcc-2.96 dump core
if "$CC" --version | grep '^2\.96$' 1>/dev/null 2>&1; then
true
else
CFLAGS="$CFLAGS -ggdb3"
fi
CFLAGS="$CFLAGS -Wall -W \
-Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \
-Wpointer-arith -Wbad-function-cast -Wnested-externs"
# Don't enable -Wcast-align as it results in tons of warnings in the
# DES code. And when using stdio.
# Don't enable -Waggregate-return, as that causes warnings for glibc
# inttypes.h.
AC_OUTPUT(Makefile tools/Makefile testsuite/Makefile examples/Makefile config.m4)