configure.ac 15.4 KB
Newer Older
Niels Möller's avatar
Niels Möller committed
1 2
dnl -*- mode: shell-script; sh-indentation: 2; -*-

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

5
AC_INIT([nettle], [2.2], [nettle-bugs@lists.lysator.liu.se])
6
AC_PREREQ(2.61)
7 8 9 10
AC_CONFIG_SRCDIR([arcfour.c])
# Needed to stop autoconf from looking for files in parent directories.
AC_CONFIG_AUX_DIR([.])

11
AC_CONFIG_HEADER([config.h])
12

13 14
LIBNETTLE_MAJOR=4
LIBNETTLE_MINOR=0
15

16 17
LIBHOGWEED_MAJOR=2
LIBHOGWEED_MINOR=0
18

19 20
AC_CANONICAL_HOST

21 22 23 24 25 26
# 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
27
  CPPFLAGS="$CPPFLAGS -I`echo $with_include_path | sed 's/:/ -I/g'`"
28 29 30 31 32 33 34
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
35
  LDFLAGS="$LDFLAGS -L`echo $with_lib_path | sed 's/:/ -L/g'`"
36 37
fi

38 39 40 41
AC_ARG_ENABLE(public-key,
  AC_HELP_STRING([--disable-public-key], [Disable public key algorithms]),,
  [enable_public_key=yes])

42
AC_ARG_ENABLE(assembler,
43 44
  AC_HELP_STRING([--disable-assembler],[Disable assembler code]),,
  [enable_assembler=yes])
45

46
AC_ARG_ENABLE(shared,
47
  AC_HELP_STRING([--enable-shared], [Build a shared library]),,
48 49
  [enable_shared=no])

50 51 52 53 54
AC_ARG_ENABLE(pic,
  AC_HELP_STRING([--disable-pic],
  [Do not try to compile library files as position independent code]),,
  [enable_pic=yes])

55 56 57 58
AC_ARG_ENABLE(openssl,
  AC_HELP_STRING([--disable-openssl], [Do not include openssl glue in the benchmark program]),,
  [enable_openssl=yes])
  
59 60 61 62 63
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])

64
# Checks for programs.
Niels Möller's avatar
Niels Möller committed
65
AC_PROG_CC
66 67 68 69 70 71 72 73

# When $CC foo.c -o foo creates both foo and foo.exe, autoconf picks
# up the foo.exe and sets exeext to .exe. That is correct for cygwin,
# which has some kind of magic link from foo to foo.exe, but not for
# rntcl. A better check for the cygwin case would check if the
# contents of foo and foo.exe are equal; in the rntcl case, foo is a
# sh script, and foo.exe is a windows executable.

Niels Möller's avatar
Niels Möller committed
74
if test "x$CC" = xrntcl ; then
75
    AC_MSG_NOTICE([Compiling with rntcl; clearing EXEEXT and disabling assembler])
76 77
    ac_exeext=''
    ac_cv_exeext=''
Niels Möller's avatar
Niels Möller committed
78
    EXEEXT=''
79
    enable_assembler=no
80 81
fi

82 83 84 85 86 87 88 89
# Used by the testsuite only
AC_PROG_CXX

AC_LANG_PUSH(C++)
AC_TRY_COMPILE([],[return 0;],[CXX_TESTS='cxx-test$(EXEEXT)'], [CXX_TESTS=''])
AC_SUBST([CXX_TESTS])
AC_LANG_POP

Niels Möller's avatar
Niels Möller committed
90
AC_PROG_MAKE_SET
Niels Möller's avatar
Niels Möller committed
91
AC_PROG_RANLIB
92
AC_CHECK_TOOL(NM, nm, strings)
93 94
# Used only for the GNU-stack configure test.
AC_CHECK_TOOL(OBJDUMP, objdump, false)
Niels Möller's avatar
Niels Möller committed
95

96
if test "x$ac_cv_prog_cc_stdc" = xno ; then
97
  AC_ERROR([the C compiler doesn't handle ANSI-C]) #'
Niels Möller's avatar
Niels Möller committed
98
fi
99

100 101
AC_PROG_INSTALL

102 103 104 105
# According to the autoconf manual, needs install-sh from
# autoconf-2.60 or automake-1.10 to avoid races.
AC_PROG_MKDIR_P

106 107
LSH_DEPENDENCY_TRACKING

108
if test x$enable_dependency_tracking = xyes ; then
109 110 111
  # Since the makefiles use include to get the dependency files, we must
  # make sure that the files exist. We generate some more files than are
  # actually needed.
112

113 114
  AC_CONFIG_COMMANDS([dummy-dep-files],
  [(cd "$srcdir" && find . -name '*.c' -print) \
115
 | sed 's/\.c$//' | (while read f; do echo > "$f.o.d"; echo > "$f.po.d"; done)
116
])
117
fi
118

119 120 121
# Figure out ABI. Currently, configurable only be setting CFLAGS.
ABI=standard

122
case "$host_cpu" in
123
  [x86_64 | amd64])
124
    AC_TRY_COMPILE([
125 126
#if defined(__x86_64__) || defined(__arch64__)
#error 64-bit x86
127 128
#endif
    ], [], [
129
      ABI=32
130
    ], [
131
      ABI=64
132
    ])
133
    ;;
134
  *sparc*)
135 136 137 138 139
    AC_TRY_COMPILE([
#if defined(__sparcv9) || defined(__arch64__)
#error 64-bit sparc
#endif
    ], [], [
140
      ABI=32
141
    ], [
142
      ABI=64
143
    ])
144
    ;;
145 146 147
esac

if test "x$ABI" != xstandard ; then
148
  AC_MSG_NOTICE([Compiler uses $ABI-bit ABI. To change, set CC.])
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
  if test "$libdir" = '${exec_prefix}/lib' ; then
    # Try setting a better default
    case "$host_cpu:$host_os:$ABI" in
      *:solaris*:32|*:sunos*:32)
	libdir='${exec_prefix}/lib'
	;;
      *:solaris*:64|*:sunos*:64)
	libdir='${exec_prefix}/lib/64'
	;;
      # According to the fhs, all architectures except IA64
      # puts 32-bit libraries in lib, and 64-bit in lib64.
      *:linux*:32)
	libdir='${exec_prefix}/lib'
	;;
      *:linux*:64)
	libdir='${exec_prefix}/lib64'
	;;
      # On freebsd, it seems 32-bit libraries are in lib32,
      # and 64-bit in lib. Don't know about "kfreebsd", does
      # it follow the Linux fhs conventions?
      *:freebsd*:32)
	libdir='${exec_prefix}/lib32'
	;;
      *:freebsd*:64)
	libdir='${exec_prefix}/lib'
	;;
      *)
        AC_MSG_WARN([Don't know where to install $ABI-bit libraries on this system.]); #'

    esac
    AC_MSG_NOTICE([Libraries to be installed in $libdir.])
  fi
181 182 183 184 185 186 187 188 189
fi

# Select assembler code
asm_path=
case "$host_cpu" in
  [i?86* | k[5-8]* | pentium* | athlon])
    asm_path=x86
    ;;
  [x86_64 | amd64])
Niels Möller's avatar
Niels Möller committed
190
    if test "$ABI" = 64 ; then
191 192 193 194 195 196
      asm_path=x86_64
    else
      asm_path=x86
    fi
    ;;
  *sparc*)
Niels Möller's avatar
Niels Möller committed
197
    if test "$ABI" = 64 ; then
198 199 200 201 202
      asm_path=sparc64
    else
      asm_path=sparc32
    fi
    ;;
203 204 205
  *)
    enable_assembler=no
    ;;
206 207
esac

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

210
if test "x$enable_assembler" = xyes ; then
211
  if test -n "$asm_path"; then
Niels Möller's avatar
Niels Möller committed
212
    AC_MSG_NOTICE([Looking for assembler files in $asm_path/.])
213
    found=no
214
    for tmp_f in aes-encrypt-internal.asm aes-decrypt-internal.asm \
215 216
		 arcfour-crypt.asm camellia-crypt-internal.asm \
		 md5-compress.asm sha1-compress.asm machine.m4; do
217 218
#       echo "Looking for $srcdir/$asm_path/$tmp_f"
      if test -f "$srcdir/$asm_path/$tmp_f"; then
219
#        echo found
220
        found=yes
221
        AC_CONFIG_LINKS($tmp_f:$asm_path/$tmp_f)
222 223 224 225 226 227 228 229 230
      fi
    done
    if test "$found" = no; then
      enable_assembler=no
      AC_MSG_WARN([No assembler files found.])
    fi
  fi
fi

231 232 233
LSH_CCPIC

SHLIBCFLAGS="$CCPIC"
234

235
case "$host_os" in
236 237 238 239 240 241 242 243 244 245 246 247 248
  mingw32*)
    LIBNETTLE_FORLINK='libnettle-$(LIBNETTLE_MAJOR)-$(LIBNETTLE_MINOR).dll'
    LIBNETTLE_SONAME=''
    LIBNETTLE_FILE='libnettle.dll.a'
    LIBNETTLE_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
    LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)'

    LIBHOGWEED_FORLINK='libhogweed-$(LIBHOGWEED_MAJOR)-$(LIBHOGWEED_MINOR).dll'
    LIBHOGWEED_SONAME=''
    LIBHOGWEED_FILE='libhogweed.dll.a'
    LIBHOGWEED_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
    LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS) libnettle.dll.a'
    ;;
249
  cygwin*)
250
    LIBNETTLE_FORLINK='cygnettle-$(LIBNETTLE_MAJOR)-$(LIBNETTLE_MINOR).dll'
251 252 253 254 255
    LIBNETTLE_SONAME=''
    LIBNETTLE_FILE='libnettle.dll.a'
    LIBNETTLE_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_LIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
    LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)'

256
    LIBHOGWEED_FORLINK='cyghogweed-$(LIBHOGWEED_MAJOR)-$(LIBHOGWEED_MINOR).dll'
257
    LIBHOGWEED_SONAME=''
258
    LIBHOGWEED_FILE='libhogweed.dll.a'
259 260
    LIBHOGWEED_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_LIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
    LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS)'
261
    ;;
Grant Robinson's avatar
Grant Robinson committed
262
  darwin*)
263 264 265 266 267 268
    LIBNETTLE_FORLINK=libnettle.dylib
    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
    LIBNETTLE_LINK='$(CC) -dynamiclib $(LDFLAGS)'
    LIBNETTLE_LIBS=''

269
    LIBHOGWEED_FORLINK=libhogweed.dylib
270 271 272 273
    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
    LIBHOGWEED_LINK='$(CC) -dynamiclib $(LDFLAGS)'
    LIBHOGWEED_LIBS=''
Grant Robinson's avatar
Grant Robinson committed
274
    ;;
275
  *)
276 277 278 279 280 281
    LIBNETTLE_FORLINK=libnettle.so
    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
    LIBNETTLE_LINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(LIBNETTLE_SONAME)'
    LIBNETTLE_LIBS=''

282
    LIBHOGWEED_FORLINK=libhogweed.so
283 284
    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
285 286 287 288 289 290 291
    LIBHOGWEED_LINK='$(CC) $(LDFLAGS) -L. -shared -Wl,-soname=$(LIBHOGWEED_SONAME)'
    # Requested by debian, to make linking with only -lhogweed work
    # (does not work in general, e.g., with static linking all of
    # -lhogweed -lgmp -lnettle are still required). Also makes dlopen
    # of libhogweed.so work, without having to use RTLD_GLOBAL.
    # Depends on -L. above, to locate nettle.so.
    LIBHOGWEED_LIBS='-lnettle -lgmp'
292 293
    ;;
esac
294

295 296 297 298
if test "x$enable_pic" = xyes; then
  CCPIC_MAYBE="$CCPIC"
else
  CCPIC_MAYBE=''
299
fi
300
AC_SUBST([CCPIC_MAYBE])
301

302
ASM_SYMBOL_PREFIX=''
303
ASM_ELF_STYLE='no'
304
ASM_TYPE_FUNCTION=''
305
ASM_MARK_NOEXEC_STACK=''
306
ASM_ALIGN_LOG=''
307 308 309 310 311 312 313 314

if test x$enable_assembler = xyes ; then
  AC_CACHE_CHECK([if globals are prefixed by underscore],
  nettle_cv_asm_underscore,
  [ # Default is no underscore
    nettle_cv_asm_underscore=no
    AC_COMPILE_IFELSE(
      [int a_global_symbol;],
315
      [ $NM conftest.$OBJEXT >conftest.out
316 317 318 319 320 321 322 323
        if grep _a_global_symbol conftest.out >/dev/null ; then
          nettle_cv_asm_underscore=yes
        elif grep a_global_symbol conftest.out >/dev/null ; then
          nettle_cv_asm_underscore=no
        else
          AC_MSG_WARN([nm doesn't list a_global_symbol at all])
	fi],
      [AC_MSG_WARN([test program with a single global could not be compiled!?])])])
324
  if test x$nettle_cv_asm_underscore = xyes ; then
325
    ASM_SYMBOL_PREFIX='_'
326
  fi
327 328 329 330 331 332 333 334 335 336 337 338

  AC_CACHE_CHECK([if we should use a .note.GNU-stack section],
  nettle_cv_asm_gnu_stack,
  [ # Default
    nettle_cv_asm_gnu_stack=no

    cat >conftest.c <<EOF
int foo() { return 0; }
EOF
    nettle_compile="$CC $CFLAGS $CPPFLAGS -c conftest.c >conftest.out 2>&1"
    if AC_TRY_EVAL(nettle_compile); then
      cat conftest.out >&AC_FD_CC
339
      $OBJDUMP -x conftest.o | grep '\.note\.GNU-stack' > /dev/null \
340 341 342 343 344 345 346 347 348 349 350
      && nettle_cv_asm_gnu_stack=yes
    else
      cat conftest.out >&AC_FD_CC
      echo "configure: failed program was:" >&AC_FD_CC
      cat conftest.s >&AC_FD_CC
    fi
    rm -f conftest.*])
  if test x$nettle_cv_asm_gnu_stack = xyes ; then
    ASM_MARK_NOEXEC_STACK='.section .note.GNU-stack,"",@progbits'
  fi

351 352 353
  AC_CACHE_CHECK([for ELF-style .type,%function pseudo-ops],
    [nettle_cv_asm_type_percent_function],
    [GMP_TRY_ASSEMBLE([
354 355
.text
.globl foo
356
.type foo,%function
357 358 359 360
foo:
.Lend:

.size foo, .Lend - foo
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
],
       [nettle_cv_asm_type_percent_function=yes],
       [nettle_cv_asm_type_percent_function=no])])

dnl Needs double quote for the # character
  AC_CACHE_CHECK([[for ELF-style .type,#function pseudo-ops]],
    [nettle_cv_asm_type_hash_function],
    [GMP_TRY_ASSEMBLE([
.text
.globl foo
.type foo,#function
foo:
.Lend:

.size foo, .Lend - foo
],
       [nettle_cv_asm_type_hash_function=yes],
       [nettle_cv_asm_type_hash_function=no])])

  if test x$nettle_cv_asm_type_percent_function = xyes ; then
381
    ASM_ELF_STYLE='yes'
382 383 384 385 386 387
    ASM_TYPE_FUNCTION='%function'
  else
    if test x$nettle_cv_asm_type_hash_function = xyes ; then
      ASM_ELF_STYLE='yes'
      ASM_TYPE_FUNCTION='#function'
    fi
388
  fi
389 390 391 392 393 394 395 396 397 398
  AC_CACHE_CHECK([if .align assembly directive is logarithmic],
    [nettle_cv_asm_align_log],
    [GMP_TRY_ASSEMBLE([
.align 3
],
       [nettle_cv_asm_align_log=yes],
       [nettle_cv_asm_align_log=no])])
  if test x$nettle_cv_asm_align_log = xyes ; then
    ASM_ALIGN_LOG='yes'
  fi
399 400 401
fi

AC_SUBST(ASM_SYMBOL_PREFIX)
402
AC_SUBST(ASM_ELF_STYLE)
403
AC_SUBST(ASM_TYPE_FUNCTION)
404
AC_SUBST(ASM_MARK_NOEXEC_STACK)
405
AC_SUBST(ASM_ALIGN_LOG)
406

407
AC_SUBST(SHLIBCFLAGS)
408 409 410 411 412 413 414 415 416

AC_SUBST(LIBNETTLE_MAJOR)
AC_SUBST(LIBNETTLE_MINOR)
AC_SUBST(LIBNETTLE_FORLINK)
AC_SUBST(LIBNETTLE_SONAME)
AC_SUBST(LIBNETTLE_FILE)
AC_SUBST(LIBNETTLE_LINK)
AC_SUBST(LIBNETTLE_LIBS)

Niels Möller's avatar
Niels Möller committed
417 418 419 420 421 422 423
AC_SUBST(LIBHOGWEED_MAJOR)
AC_SUBST(LIBHOGWEED_MINOR)
AC_SUBST(LIBHOGWEED_FORLINK)
AC_SUBST(LIBHOGWEED_SONAME)
AC_SUBST(LIBHOGWEED_FILE)
AC_SUBST(LIBHOGWEED_LINK)
AC_SUBST(LIBHOGWEED_LIBS)
Niels Möller's avatar
Niels Möller committed
424

Niels Möller's avatar
Niels Möller committed
425
AC_PATH_PROG(M4, m4, m4)
426

427
# Checks for typedefs, structures, and compiler characteristics.
Niels Möller's avatar
Niels Möller committed
428
AC_C_CONST
Niels Möller's avatar
Niels Möller committed
429 430 431 432
AC_C_INLINE
AC_TYPE_UID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
Niels Möller's avatar
Niels Möller committed
433 434
# Used by eratosthenes.c
AC_CHECK_SIZEOF(long)
Niels Möller's avatar
Niels Möller committed
435

Niels Möller's avatar
Niels Möller committed
436
AC_CHECK_HEADERS([openssl/blowfish.h openssl/des.h openssl/cast.h openssl/aes.h],,
437 438 439
[enable_openssl=no
 break])

Niels Möller's avatar
Niels Möller committed
440
LSH_FUNC_ALLOCA
Niels Möller's avatar
Niels Möller committed
441

Niels Möller's avatar
Niels Möller committed
442
# Needed by the supplied memcmp.c
Niels Möller's avatar
Niels Möller committed
443
AC_C_BIGENDIAN
Niels Möller's avatar
Niels Möller committed
444 445
AC_REPLACE_FUNCS(memxor)

Niels Möller's avatar
Niels Möller committed
446
LSH_GCC_ATTRIBUTES
Niels Möller's avatar
Niels Möller committed
447

448 449
# According to Simon Josefsson, looking for uint32_t and friends in
# sys/types.h is needed on some systems, in particular cygwin.
450
AX_CREATE_STDINT_H([nettle-stdint.h], [sys/types.h])
451

Niels Möller's avatar
Niels Möller committed
452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
# Check for file locking. We (AC_PROG_CC?) have already checked for
# sys/types.h and unistd.h.
AC_CACHE_CHECK([for fcntl file locking],
		nettle_cv_fcntl_locking,
[AC_TRY_COMPILE([
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <fcntl.h>
],[
int op = F_SETLKW;
struct flock fl;
],
nettle_cv_fcntl_locking=yes,
nettle_cv_fcntl_locking=no)])

AH_TEMPLATE([HAVE_FCNTL_LOCKING], [Define if fcntl file locking is available])
if test "x$nettle_cv_fcntl_locking" = "xyes" ; then
  AC_DEFINE(HAVE_FCNTL_LOCKING)
fi

476 477 478 479
# 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.
480 481 482
Support for public key algorithms will be unavailable.])]
    enable_public_key=no)

Niels Möller's avatar
Niels Möller committed
483 484 485 486 487 488
# Add -R flags needed to run programs linked with gmp
LSH_RPATH_FIX

AH_TEMPLATE([HAVE_MPZ_POWM_SEC], [Define if mpz_powm_sec is available (appeared in GMP-5)])
AC_CHECK_FUNC(__gmpz_powm_sec, [AC_DEFINE(HAVE_MPZ_POWM_SEC)])

489 490
AH_TEMPLATE([WITH_HOGWEED], [Defined if public key features are enabled])

491
if test "x$enable_public_key" = xyes ; then
492 493 494 495 496 497 498 499
  AC_DEFINE(WITH_HOGWEED)
  IF_HOGWEED=''
else
  IF_HOGWEED='#'
fi

if test "x$enable_shared" = xyes ; then
  IF_SHARED=''
500
else
501
  IF_SHARED='#'
502 503
fi

504 505
AC_SUBST(IF_HOGWEED)
AC_SUBST(IF_SHARED)
506

507 508
OPENSSL_LIBFLAGS=''

509
# Check for openssl's libcrypto (used only for benchmarking)
510 511 512 513 514 515 516 517 518 519 520 521
if test x$enable_openssl = xyes ; then
  AC_CHECK_LIB(crypto, BF_ecb_encrypt,
    [OPENSSL_LIBFLAGS='-lcrypto'],
    [enable_openssl=no])
fi

AH_TEMPLATE([WITH_OPENSSL],
	    [Define if you have openssl's libcrypto (used for benchmarking)])

if test x$enable_openssl = xyes ; then
  AC_DEFINE(WITH_OPENSSL)
fi
522 523

AC_SUBST(OPENSSL_LIBFLAGS)
524

Niels Möller's avatar
Niels Möller committed
525 526
# Set these flags *last*, or else the test programs won't compile
if test x$GCC = xyes ; then
527 528 529 530 531 532
  # 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
533
  # FIXME: It would be better to actually test if this option works and/or is needed.
Niels Möller's avatar
Niels Möller committed
534
  # Or perhaps use -funsigned-char.
535 536 537
  if "$CC" --version | grep 'gcc.* 4\.' 1>/dev/null 2>&1; then
    CFLAGS="$CFLAGS -Wno-pointer-sign"
  fi
538 539 540
  CFLAGS="$CFLAGS -Wall -W \
  -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \
  -Wpointer-arith -Wbad-function-cast -Wnested-externs"
Niels Möller's avatar
Niels Möller committed
541 542 543

# Don't enable -Wcast-align as it results in tons of warnings in the
# DES code. And when using stdio.
544 545
# Don't enable -Waggregate-return, as that causes warnings for glibc
# inttypes.h.
Niels Möller's avatar
Niels Möller committed
546
fi
Niels Möller's avatar
Niels Möller committed
547

548 549 550 551
AC_CONFIG_FILES([config.make config.m4 Makefile])
AC_CONFIG_FILES([tools/Makefile testsuite/Makefile examples/Makefile])

AC_OUTPUT
552