dnl -*- mode: shell-script; sh-indentation: 2; -*-
dnl $Id$

dnl Process this file with autoconf to produce a configure script.

AC_INIT(arcfour.c)

AC_PREREQ(2.50)

AC_CANONICAL_HOST

AM_INIT_AUTOMAKE(nettle, 1.5)

AM_CONFIG_HEADER(config.h)

# 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(assembler,
AC_HELP_STRING([--enable-assembler],[enable assembler code [default=yes]]),
[ case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for --enable-assembler, need yes or no]) ;;
esac],
[enable_assembler=yes])

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])

# Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AM_PROG_CC_STDC

if test "x$am_cv_prog_cc_stdc" = xno ; then
  AC_ERROR([the C compiler doesn't handle ANSI-C])
fi

# Select assembler code
asm_path=
case "$host" in
  [i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-*])
    asm_path=x86
    ;;
  *sparc*-*-*)
    asm_path=sparc
    ;;
esac

# echo "enable_assembler: $enable_assembler, asm_path: $asm_path"

if test "$enable_assembler" = yes ; then
  if test -n "$asm_path"; then
    found=no
    for tmp_f in aes.asm machine.m4; do
#       echo "Looking for $asm_path/$tmp_f"
      if test -f "$asm_path/$tmp_f"; then
#        echo found
        found=yes
        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

AC_PATH_PROG(M4, m4, m4)

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_UID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME

# Needed by the supplied memcmp.c
AC_C_BIGENDIAN

AC_REPLACE_FUNCS(memxor)

# 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.])])

# Add -R flags needed to run programs linked with gmp
LSH_RPATH_FIX

# Set these flags *last*, or else the test programs won't compile
if test x$GCC = xyes ; then
    CFLAGS="$CFLAGS -ggdb3 -Wall -W \
 -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \
 -Waggregate-return \
 -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.

fi

AC_OUTPUT(Makefile testsuite/Makefile examples/Makefile)