~ubuntu-branches/ubuntu/vivid/nettle/vivid-proposed

1 by Marek Habersack
Import upstream version 1.10
1
dnl -*- mode: shell-script; sh-indentation: 2; -*-
2
3
dnl Process this file with autoconf to produce a configure script.
4
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
5
AC_INIT([nettle], [2.7.1], [nettle-bugs@lists.lysator.liu.se])
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
6
AC_PREREQ(2.61)
1 by Marek Habersack
Import upstream version 1.10
7
AC_CONFIG_SRCDIR([arcfour.c])
1.1.1 by Marek Habersack
Import upstream version 1.12
8
# Needed to stop autoconf from looking for files in parent directories.
9
AC_CONFIG_AUX_DIR([.])
10
11
AC_CONFIG_HEADER([config.h])
1 by Marek Habersack
Import upstream version 1.10
12
1.4.2 by Magnus Holmgren
Import upstream version 2.1
13
LIBNETTLE_MAJOR=4
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
14
LIBNETTLE_MINOR=7
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
15
1.4.2 by Magnus Holmgren
Import upstream version 2.1
16
LIBHOGWEED_MAJOR=2
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
17
LIBHOGWEED_MINOR=5
1 by Marek Habersack
Import upstream version 1.10
18
19
AC_CANONICAL_HOST
20
21
# Command line options
22
AC_ARG_WITH(include-path,
23
  AC_HELP_STRING([--with-include-path], [A colon-separated list of directories to search for include files]),,
24
  [with_include_path=''])
25
26
if test x$with_include_path != x ; then
27
  CPPFLAGS="$CPPFLAGS -I`echo $with_include_path | sed 's/:/ -I/g'`"
28
fi
29
30
AC_ARG_WITH(lib-path,
31
  AC_HELP_STRING([--with-lib-path], [A colon-separated list of directories to search for libraries]),,
32
  [with_lib_path=''])
33
34
if test x$with_lib_path != x ; then
35
  LDFLAGS="$LDFLAGS -L`echo $with_lib_path | sed 's/:/ -L/g'`"
36
fi
37
38
AC_ARG_ENABLE(public-key,
39
  AC_HELP_STRING([--disable-public-key], [Disable public key algorithms]),,
40
  [enable_public_key=yes])
41
42
AC_ARG_ENABLE(assembler,
43
  AC_HELP_STRING([--disable-assembler],[Disable assembler code]),,
44
  [enable_assembler=yes])
45
1.5.2 by Magnus Holmgren
Import upstream version 2.6
46
AC_ARG_ENABLE(static,
47
  AC_HELP_STRING([--disable-static], [Do not build any static library]),,
48
  [enable_static=yes])
49
1 by Marek Habersack
Import upstream version 1.10
50
AC_ARG_ENABLE(shared,
1.5.1 by Magnus Holmgren
Import upstream version 2.5
51
  AC_HELP_STRING([--disable-shared], [Do not build any shared library]),,
52
  [enable_shared=yes])
1 by Marek Habersack
Import upstream version 1.10
53
1.1.1 by Marek Habersack
Import upstream version 1.12
54
AC_ARG_ENABLE(pic,
55
  AC_HELP_STRING([--disable-pic],
56
  [Do not try to compile library files as position independent code]),,
57
  [enable_pic=yes])
58
1.1.2 by Marek Habersack
Import upstream version 1.14
59
AC_ARG_ENABLE(openssl,
60
  AC_HELP_STRING([--disable-openssl], [Do not include openssl glue in the benchmark program]),,
61
  [enable_openssl=yes])
1.4.3 by Magnus Holmgren
Import upstream version 2.2
62
63
AC_ARG_ENABLE(gcov,
64
  AC_HELP_STRING([--enable-gcov], [Instrument for gcov (requires a modern gcc)]),,
65
  [enable_gcov=no])
66
1.5.2 by Magnus Holmgren
Import upstream version 2.6
67
AC_ARG_ENABLE(documentation,
68
  AC_HELP_STRING([--disable-documentation], [Omit building and installing the documentation. (default=auto)]),,
69
  [enable_documentation=auto])
70
1.4.6 by Magnus Holmgren
Import upstream version 2.7
71
AC_ARG_ENABLE(arm-neon,
72
  AC_HELP_STRING([--enable-arm-neon], [Enable ARM Neon assembly. (default=auto)]),,
73
  [enable_arm_neon=auto])
74
1 by Marek Habersack
Import upstream version 1.10
75
LSH_RPATH_INIT([`echo $with_lib_path | sed 's/:/ /g'` \
76
    `echo $exec_prefix | sed "s@^NONE@$prefix/lib@g" | sed "s@^NONE@$ac_default_prefix/lib@g"` \
77
    /usr/local/lib /sw/local/lib /sw/lib \
78
    /usr/gnu/lib /opt/gnu/lib /sw/gnu/lib /usr/freeware/lib /usr/pkg/lib])
79
80
# Checks for programs.
81
AC_PROG_CC
82
83
# When $CC foo.c -o foo creates both foo and foo.exe, autoconf picks
84
# up the foo.exe and sets exeext to .exe. That is correct for cygwin,
85
# which has some kind of magic link from foo to foo.exe, but not for
86
# rntcl. A better check for the cygwin case would check if the
87
# contents of foo and foo.exe are equal; in the rntcl case, foo is a
88
# sh script, and foo.exe is a windows executable.
89
90
if test "x$CC" = xrntcl ; then
1.1.2 by Marek Habersack
Import upstream version 1.14
91
    AC_MSG_NOTICE([Compiling with rntcl; clearing EXEEXT and disabling assembler])
1 by Marek Habersack
Import upstream version 1.10
92
    ac_exeext=''
93
    ac_cv_exeext=''
94
    EXEEXT=''
1.1.2 by Marek Habersack
Import upstream version 1.14
95
    enable_assembler=no
1 by Marek Habersack
Import upstream version 1.10
96
fi
97
1.1.4 by Magnus Holmgren
Import upstream version 1.15
98
# Used by the testsuite only
99
AC_PROG_CXX
100
101
AC_LANG_PUSH(C++)
1.5.2 by Magnus Holmgren
Import upstream version 2.6
102
AC_TRY_COMPILE([],[return 0;],[IF_CXX=''], [IF_CXX='#'])
103
AC_SUBST([IF_CXX])
1.1.4 by Magnus Holmgren
Import upstream version 1.15
104
AC_LANG_POP
105
1 by Marek Habersack
Import upstream version 1.10
106
AC_PROG_MAKE_SET
107
AC_PROG_RANLIB
1.1.2 by Marek Habersack
Import upstream version 1.14
108
AC_CHECK_TOOL(NM, nm, strings)
109
# Used only for the GNU-stack configure test.
110
AC_CHECK_TOOL(OBJDUMP, objdump, false)
1.5.2 by Magnus Holmgren
Import upstream version 2.6
111
AC_CHECK_TOOL(AR, ar, false)
1 by Marek Habersack
Import upstream version 1.10
112
1.1.1 by Marek Habersack
Import upstream version 1.12
113
if test "x$ac_cv_prog_cc_stdc" = xno ; then
1.4.2 by Magnus Holmgren
Import upstream version 2.1
114
  AC_ERROR([the C compiler doesn't handle ANSI-C]) #'
1 by Marek Habersack
Import upstream version 1.10
115
fi
116
1.1.1 by Marek Habersack
Import upstream version 1.12
117
AC_PROG_INSTALL
118
1.1.4 by Magnus Holmgren
Import upstream version 1.15
119
# According to the autoconf manual, needs install-sh from
120
# autoconf-2.60 or automake-1.10 to avoid races.
121
AC_PROG_MKDIR_P
122
1.5.1 by Magnus Holmgren
Import upstream version 2.5
123
AC_PROG_LN_S
124
1.4.6 by Magnus Holmgren
Import upstream version 2.7
125
# Compiler tests for the build system
126
GMP_PROG_CC_FOR_BUILD
127
GMP_PROG_EXEEXT_FOR_BUILD
128
1.1.1 by Marek Habersack
Import upstream version 1.12
129
LSH_DEPENDENCY_TRACKING
130
1.1.2 by Marek Habersack
Import upstream version 1.14
131
if test x$enable_dependency_tracking = xyes ; then
132
  # Since the makefiles use include to get the dependency files, we must
133
  # make sure that the files exist. We generate some more files than are
134
  # actually needed.
135
136
  AC_CONFIG_COMMANDS([dummy-dep-files],
1.5.2 by Magnus Holmgren
Import upstream version 2.6
137
  [(cd "$srcdir" && find . '(' -name '*.c' -o -name '*.cxx' ')' -print) \
138
 | sed 's/\.c\(xx\)\{0,1\}$//' | (while read f; do echo > "$f.o.d"; echo > "$f.po.d"; done)
1.1.2 by Marek Habersack
Import upstream version 1.14
139
])
140
fi
141
1.4.3 by Magnus Holmgren
Import upstream version 2.2
142
# Figure out ABI. Currently, configurable only by setting CFLAGS.
1.4.2 by Magnus Holmgren
Import upstream version 2.1
143
ABI=standard
144
145
case "$host_cpu" in
146
  [x86_64 | amd64])
147
    AC_TRY_COMPILE([
148
#if defined(__x86_64__) || defined(__arch64__)
149
#error 64-bit x86
150
#endif
151
    ], [], [
152
      ABI=32
153
    ], [
154
      ABI=64
155
    ])
156
    ;;
157
  *sparc*)
158
    AC_TRY_COMPILE([
159
#if defined(__sparcv9) || defined(__arch64__)
160
#error 64-bit sparc
161
#endif
162
    ], [], [
163
      ABI=32
164
    ], [
165
      ABI=64
166
    ])
167
    ;;
168
esac
169
170
if test "x$ABI" != xstandard ; then
171
  AC_MSG_NOTICE([Compiler uses $ABI-bit ABI. To change, set CC.])
172
  if test "$libdir" = '${exec_prefix}/lib' ; then
173
    # Try setting a better default
174
    case "$host_cpu:$host_os:$ABI" in
175
      *:solaris*:32|*:sunos*:32)
176
	libdir='${exec_prefix}/lib'
177
	;;
178
      *:solaris*:64|*:sunos*:64)
179
	libdir='${exec_prefix}/lib/64'
180
	;;
1.4.3 by Magnus Holmgren
Import upstream version 2.2
181
      # Linux conventions are a mess... According to the Linux File
182
      # Hierarchy Standard, all architectures except IA64 puts 32-bit
183
      # libraries in lib, and 64-bit in lib64. Some distributions,
184
      # e.g., Fedora and Gentoo, adhere to this standard, while at
185
      # least Debian has decided to put 64-bit libraries in lib and
186
      # 32-bit libraries in lib32.
187
      
188
      # We try to figure out the convention, except if we're cross
189
      # compiling. We use lib${ABI} if /usr/lib${ABI} exists and
190
      # appears to not be a symlink to a different name.
191
      *:linux*:32|*:linux*:64)
192
	if test "$cross_compiling" = yes ; then
193
          AC_MSG_WARN([Cross compiling for linux. Can't guess if libraries go in lib${ABI} or lib.]); dnl '
194
	else
195
	  # The dash builtin pwd tries to be "helpful" and remember
196
	  # symlink names. Use -P option, and hope it's portable enough.
197
	  test -d /usr/lib${ABI} \
198
	    && (cd /usr/lib${ABI} && pwd -P | grep >/dev/null "/lib${ABI}"'$') \
199
	    && libdir='${exec_prefix}/'"lib${ABI}"
200
	fi
1.4.2 by Magnus Holmgren
Import upstream version 2.1
201
	;;
202
      # On freebsd, it seems 32-bit libraries are in lib32,
203
      # and 64-bit in lib. Don't know about "kfreebsd", does
204
      # it follow the Linux fhs conventions?
205
      *:freebsd*:32)
206
	libdir='${exec_prefix}/lib32'
207
	;;
208
      *:freebsd*:64)
209
	libdir='${exec_prefix}/lib'
210
	;;
211
      *)
1.4.3 by Magnus Holmgren
Import upstream version 2.2
212
        AC_MSG_WARN([Don't know where to install $ABI-bit libraries on this system.]); dnl '
1.4.2 by Magnus Holmgren
Import upstream version 2.1
213
214
    esac
215
    AC_MSG_NOTICE([Libraries to be installed in $libdir.])
216
  fi
217
fi
218
1 by Marek Habersack
Import upstream version 1.10
219
# Select assembler code
220
asm_path=
1.4.3 by Magnus Holmgren
Import upstream version 2.2
221
if test "x$enable_assembler" = xyes ; then
222
  case "$host_cpu" in
223
    [i?86* | k[5-8]* | pentium* | athlon])
1.4.2 by Magnus Holmgren
Import upstream version 2.1
224
      asm_path=x86
1.4.3 by Magnus Holmgren
Import upstream version 2.2
225
      ;;
226
    [x86_64 | amd64])
227
      if test "$ABI" = 64 ; then
228
	asm_path=x86_64
229
      else
230
	asm_path=x86
231
      fi
232
      ;;
233
    *sparc*)
234
      if test "$ABI" = 64 ; then
235
	asm_path=sparc64
236
      else
237
	asm_path=sparc32
238
      fi
239
      ;;
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
240
    armv6* | armv7*)
1.4.6 by Magnus Holmgren
Import upstream version 2.7
241
      NETTLE_CHECK_ARM_NEON
242
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
243
      asm_path="arm/v6 arm"
244
      
1.4.6 by Magnus Holmgren
Import upstream version 2.7
245
      if test "x$enable_arm_neon" = xyes ; then
246
	asm_path="arm/neon $asm_path"
247
      fi
248
      ;;
1.4.7 by Magnus Holmgren
Import upstream version 2.7.1
249
    arm*)
250
      asm_path=arm
251
      ;;
1.4.3 by Magnus Holmgren
Import upstream version 2.2
252
    *)
253
      enable_assembler=no
254
      ;;
255
  esac
256
fi
1.4.6 by Magnus Holmgren
Import upstream version 2.7
257
258
# Files which replace a C source file (or otherwise don't correspond
259
# to a new object file).
260
asm_replace_list="aes-encrypt-internal.asm aes-decrypt-internal.asm \
261
		arcfour-crypt.asm camellia-crypt-internal.asm \
262
		md5-compress.asm memxor.asm \
263
		salsa20-crypt.asm salsa20-core-internal.asm \
264
		serpent-encrypt.asm serpent-decrypt.asm \
265
		sha1-compress.asm sha256-compress.asm sha512-compress.asm \
266
		sha3-permute.asm umac-nh.asm umac-nh-n.asm machine.m4"
267
268
# Assembler files which generate additional object files if they are used.
269
asm_optional_list=""
270
271
if test "x$enable_public_key" = "xyes" ; then
272
  asm_optional_list="ecc-192-modp.asm ecc-224-modp.asm ecc-256-redc.asm \
273
      ecc-384-modp.asm ecc-521-modp.asm"
274
fi
275
276
OPT_ASM_SOURCES=""
277
278
asm_file_list=""
1 by Marek Habersack
Import upstream version 1.10
279
280
if test "x$enable_assembler" = xyes ; then
281
  if test -n "$asm_path"; then
1.4.6 by Magnus Holmgren
Import upstream version 2.7
282
    AC_MSG_NOTICE([Looking for assembler files in $asm_path.])
283
    for tmp_f in $asm_replace_list ; do
284
      for asm_dir in $asm_path ; do
285
        if test -f "$srcdir/$asm_dir/$tmp_f"; then
286
	  asm_file_list="$asm_file_list $tmp_f"
287
          AC_CONFIG_LINKS($tmp_f:$asm_dir/$tmp_f)
288
	  break
289
        fi
290
      done
1 by Marek Habersack
Import upstream version 1.10
291
    done
1.4.6 by Magnus Holmgren
Import upstream version 2.7
292
    dnl Workaround for AC_CONFIG_LINKS, which complains if we use the
293
    dnl same destination argument $tmp_f multiple times.
294
    for tmp_o in $asm_optional_list ; do
295
      for asm_dir in $asm_path ; do
296
	if test -f "$srcdir/$asm_dir/$tmp_o"; then
297
	  asm_file_list="$asm_file_list $tmp_o"
298
	  AC_CONFIG_LINKS($tmp_o:$asm_dir/$tmp_o)
299
	  while read tmp_func ; do
300
	    AC_DEFINE_UNQUOTED(HAVE_NATIVE_$tmp_func)
301
	    eval HAVE_NATIVE_$tmp_func=yes
302
	  done <<EOF
303
[`sed -n 's/[^ 	]*PROLOGUE(_*\(nettle_\)*\([^)]*\)).*$/\2/p' < "$srcdir/$asm_dir/$tmp_o"`]
304
EOF
305
	  OPT_ASM_SOURCES="$OPT_ASM_SOURCES $tmp_o"
306
	  break
307
	fi
308
      done
309
    done	
310
    if test -z "$asm_file_list"; then
1 by Marek Habersack
Import upstream version 1.10
311
      enable_assembler=no
312
      AC_MSG_WARN([No assembler files found.])
313
    fi
314
  fi
315
fi
316
1.4.6 by Magnus Holmgren
Import upstream version 2.7
317
AC_SUBST([OPT_ASM_SOURCES])
318
319
AH_VERBATIM([HAVE_NATIVE],
320
[/* Define to 1 each of the following for which a native (ie. CPU specific)
321
    implementation of the corresponding routine exists.  */
322
#undef HAVE_NATIVE_ecc_192_modp
323
#undef HAVE_NATIVE_ecc_192_redc
324
#undef HAVE_NATIVE_ecc_224_modp
325
#undef HAVE_NATIVE_ecc_224_redc
326
#undef HAVE_NATIVE_ecc_256_modp
327
#undef HAVE_NATIVE_ecc_256_redc
328
#undef HAVE_NATIVE_ecc_384_modp
329
#undef HAVE_NATIVE_ecc_384_redc
330
#undef HAVE_NATIVE_ecc_521_modp
331
#undef HAVE_NATIVE_ecc_521_redc])
332
333
# Besides getting correct dependencies, the explicit rules also tell
334
# make that the .s files "ought to exist", so they are preferred over
335
# .c files.
336
AC_CONFIG_COMMANDS([asm.d],
337
    [ for f in $asm_file_list
338
      do
339
        case $f in
340
	  *.asm)
341
	    echo "`basename $f .asm`.s : $f "'$(srcdir)/asm.m4 machine.m4 config.m4'
342
	    ;;
343
	esac
344
      done > asm.d
345
    ],
346
    [ asm_file_list="$asm_file_list" ]
347
)
348
1.1.1 by Marek Habersack
Import upstream version 1.12
349
LSH_CCPIC
350
351
SHLIBCFLAGS="$CCPIC"
352
1.5.1 by Magnus Holmgren
Import upstream version 2.5
353
IF_DLL='#'
354
LIBNETTLE_FILE_SRC='$(LIBNETTLE_FORLINK)'
355
LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FORLINK)'
356
EMULATOR=''
357
W64_ABI=no
358
1.1.2 by Marek Habersack
Import upstream version 1.14
359
case "$host_os" in
1.5.1 by Magnus Holmgren
Import upstream version 2.5
360
  mingw32*|cygwin*)
361
    # The actual DLLs, e.g. libnettle-$major-$minor.dll, are normally
362
    # installed into the bin dir (or more exactly $libdir/../bin, for
363
    # automake), while libnettle.dll.a, which is a stub file for
364
    # linking to the DLL, is installed into the lib dir.
365
    case "$host_os" in
366
      mingw32*)
367
        LIBNETTLE_FORLINK='libnettle-$(LIBNETTLE_MAJOR)-$(LIBNETTLE_MINOR).dll'
368
        LIBHOGWEED_FORLINK='libhogweed-$(LIBHOGWEED_MAJOR)-$(LIBHOGWEED_MINOR).dll'
369
        ;;
370
      cygwin*)
371
        LIBNETTLE_FORLINK='cygnettle-$(LIBNETTLE_MAJOR)-$(LIBNETTLE_MINOR).dll'
372
        LIBHOGWEED_FORLINK='cyghogweed-$(LIBHOGWEED_MAJOR)-$(LIBHOGWEED_MINOR).dll'
373
        ;;
374
    esac
375
    if test "x$cross_compiling" = xyes ; then
376
	case "$ABI" in
377
	    64)
378
		EMULATOR=wine64
379
		;;
380
	    *)
381
		EMULATOR=wine
382
		;;
383
	esac
384
    fi
385
    if test "x$ABI" = x64 ; then
386
        W64_ABI=yes
387
    fi
1.4.3 by Magnus Holmgren
Import upstream version 2.2
388
    LIBNETTLE_SONAME=''
389
    LIBNETTLE_FILE='libnettle.dll.a'
1.5.1 by Magnus Holmgren
Import upstream version 2.5
390
    LIBNETTLE_FILE_SRC='$(LIBNETTLE_FILE)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
391
    LIBNETTLE_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
1.4.3 by Magnus Holmgren
Import upstream version 2.2
392
    LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)'
393
394
    LIBHOGWEED_SONAME=''
395
    LIBHOGWEED_FILE='libhogweed.dll.a'
1.5.1 by Magnus Holmgren
Import upstream version 2.5
396
    LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FILE)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
397
    LIBHOGWEED_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
1.4.3 by Magnus Holmgren
Import upstream version 2.2
398
    LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS) libnettle.dll.a'
1.5.1 by Magnus Holmgren
Import upstream version 2.5
399
    IF_DLL=''
1.1.1 by Marek Habersack
Import upstream version 1.12
400
    ;;
1.1.4 by Magnus Holmgren
Import upstream version 1.15
401
  darwin*)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
402
    LIBNETTLE_FORLINK=libnettle.dylib
1.5.1 by Magnus Holmgren
Import upstream version 2.5
403
    LIBNETTLE_SONAME='libnettle.$(LIBNETTLE_MAJOR).dylib'
404
    LIBNETTLE_FILE='libnettle.$(LIBNETTLE_MAJOR).$(LIBNETTLE_MINOR).dylib'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
405
    LIBNETTLE_LINK='$(CC) $(CFLAGS) -dynamiclib $(LDFLAGS) -install_name ${libdir}/$(LIBNETTLE_SONAME) -compatibility_version $(LIBNETTLE_MAJOR) -current_version $(LIBNETTLE_MAJOR).$(LIBNETTLE_MINOR)'
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
406
    LIBNETTLE_LIBS=''
407
408
    LIBHOGWEED_FORLINK=libhogweed.dylib
1.5.1 by Magnus Holmgren
Import upstream version 2.5
409
    LIBHOGWEED_SONAME='libhogweed.$(LIBHOGWEED_MAJOR).dylib'
410
    LIBHOGWEED_FILE='libhogweed.$(LIBHOGWEED_MAJOR).$(LIBHOGWEED_MINOR).dylib'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
411
    LIBHOGWEED_LINK='$(CC) $(CFLAGS) -dynamiclib -L. $(LDFLAGS) -install_name ${libdir}/$(LIBHOGWEED_SONAME) -compatibility_version $(LIBHOGWEED_MAJOR) -current_version $(LIBHOGWEED_MAJOR).$(LIBHOGWEED_MINOR)'
1.5.1 by Magnus Holmgren
Import upstream version 2.5
412
    LIBHOGWEED_LIBS='-lnettle -lgmp'
1.1.4 by Magnus Holmgren
Import upstream version 1.15
413
    ;;
1.4.3 by Magnus Holmgren
Import upstream version 2.2
414
  solaris*)
415
    # Sun's ld uses -h to set the soname, and this option is passed
416
    # through by both Sun's compiler and gcc. Might not work with GNU
417
    # ld, but it's unusual to use GNU ld on Solaris.
418
    LIBNETTLE_FORLINK=libnettle.so
419
    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
420
    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
421
    LIBNETTLE_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -G -h $(LIBNETTLE_SONAME)'
1.4.3 by Magnus Holmgren
Import upstream version 2.2
422
    LIBNETTLE_LIBS=''
423
424
    LIBHOGWEED_FORLINK=libhogweed.so
425
    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
426
    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
427
    LIBHOGWEED_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -L. -G -h $(LIBHOGWEED_SONAME)'
1.4.3 by Magnus Holmgren
Import upstream version 2.2
428
    LIBHOGWEED_LIBS='-lnettle -lgmp'
429
    ;;
1.1.1 by Marek Habersack
Import upstream version 1.12
430
  *)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
431
    LIBNETTLE_FORLINK=libnettle.so
432
    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
433
    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
434
    LIBNETTLE_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname=$(LIBNETTLE_SONAME)'
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
435
    LIBNETTLE_LIBS=''
436
437
    LIBHOGWEED_FORLINK=libhogweed.so
438
    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
439
    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
1.5.2 by Magnus Holmgren
Import upstream version 2.6
440
    LIBHOGWEED_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -L. -shared -Wl,-soname=$(LIBHOGWEED_SONAME)'
1.4.2 by Magnus Holmgren
Import upstream version 2.1
441
    # Requested by debian, to make linking with only -lhogweed work
442
    # (does not work in general, e.g., with static linking all of
443
    # -lhogweed -lgmp -lnettle are still required). Also makes dlopen
444
    # of libhogweed.so work, without having to use RTLD_GLOBAL.
445
    # Depends on -L. above, to locate nettle.so.
446
    LIBHOGWEED_LIBS='-lnettle -lgmp'
1.1.1 by Marek Habersack
Import upstream version 1.12
447
    ;;
448
esac
449
450
if test "x$enable_pic" = xyes; then
451
  CCPIC_MAYBE="$CCPIC"
452
else
453
  CCPIC_MAYBE=''
454
fi
455
AC_SUBST([CCPIC_MAYBE])
456
1.1.2 by Marek Habersack
Import upstream version 1.14
457
ASM_SYMBOL_PREFIX=''
458
ASM_ELF_STYLE='no'
1.4.6 by Magnus Holmgren
Import upstream version 2.7
459
# GNU as default is to use @
460
ASM_TYPE_FUNCTION='@function'
461
ASM_TYPE_PROGBITS='@progbits'
1.1.2 by Marek Habersack
Import upstream version 1.14
462
ASM_MARK_NOEXEC_STACK=''
1.1.4 by Magnus Holmgren
Import upstream version 1.15
463
ASM_ALIGN_LOG=''
1.1.2 by Marek Habersack
Import upstream version 1.14
464
465
if test x$enable_assembler = xyes ; then
466
  AC_CACHE_CHECK([if globals are prefixed by underscore],
467
  nettle_cv_asm_underscore,
468
  [ # Default is no underscore
469
    nettle_cv_asm_underscore=no
470
    AC_COMPILE_IFELSE(
1.5.2 by Magnus Holmgren
Import upstream version 2.6
471
      [AC_LANG_SOURCE([int a_global_symbol;])],
1.1.2 by Marek Habersack
Import upstream version 1.14
472
      [ $NM conftest.$OBJEXT >conftest.out
473
        if grep _a_global_symbol conftest.out >/dev/null ; then
474
          nettle_cv_asm_underscore=yes
475
        elif grep a_global_symbol conftest.out >/dev/null ; then
476
          nettle_cv_asm_underscore=no
477
        else
478
          AC_MSG_WARN([nm doesn't list a_global_symbol at all])
479
	fi],
480
      [AC_MSG_WARN([test program with a single global could not be compiled!?])])])
481
  if test x$nettle_cv_asm_underscore = xyes ; then
482
    ASM_SYMBOL_PREFIX='_'
483
  fi
484
485
  AC_CACHE_CHECK([for ELF-style .type,%function pseudo-ops],
486
    [nettle_cv_asm_type_percent_function],
487
    [GMP_TRY_ASSEMBLE([
488
.text
489
.globl foo
490
.type foo,%function
491
foo:
492
.Lend:
493
494
.size foo, .Lend - foo
495
],
496
       [nettle_cv_asm_type_percent_function=yes],
497
       [nettle_cv_asm_type_percent_function=no])])
498
499
dnl Needs double quote for the # character
500
  AC_CACHE_CHECK([[for ELF-style .type,#function pseudo-ops]],
501
    [nettle_cv_asm_type_hash_function],
502
    [GMP_TRY_ASSEMBLE([
503
.text
504
.globl foo
505
.type foo,#function
506
foo:
507
.Lend:
508
509
.size foo, .Lend - foo
510
],
511
       [nettle_cv_asm_type_hash_function=yes],
512
       [nettle_cv_asm_type_hash_function=no])])
513
514
  if test x$nettle_cv_asm_type_percent_function = xyes ; then
515
    ASM_ELF_STYLE='yes'
516
    ASM_TYPE_FUNCTION='%function'
1.4.6 by Magnus Holmgren
Import upstream version 2.7
517
    ASM_TYPE_PROGBITS='%progbits'
1.1.2 by Marek Habersack
Import upstream version 1.14
518
  else
519
    if test x$nettle_cv_asm_type_hash_function = xyes ; then
520
      ASM_ELF_STYLE='yes'
521
      ASM_TYPE_FUNCTION='#function'
1.4.6 by Magnus Holmgren
Import upstream version 2.7
522
      ASM_TYPE_PROGBITS='#progbits'
523
    fi
524
  fi
525
526
  AC_CACHE_CHECK([if we should use a .note.GNU-stack section],
527
  nettle_cv_asm_gnu_stack,
528
  [ # Default
529
    nettle_cv_asm_gnu_stack=no
530
531
    cat >conftest.c <<EOF
532
int foo() { return 0; }
533
EOF
534
    nettle_compile="$CC $CFLAGS $CPPFLAGS -c conftest.c >conftest.out 2>&1"
535
    if AC_TRY_EVAL(nettle_compile); then
536
      cat conftest.out >&AC_FD_CC
537
      $OBJDUMP -x conftest.o | grep '\.note\.GNU-stack' > /dev/null \
538
      && nettle_cv_asm_gnu_stack=yes
539
    else
540
      cat conftest.out >&AC_FD_CC
541
      echo "configure: failed program was:" >&AC_FD_CC
542
      cat conftest.s >&AC_FD_CC
543
    fi
544
    rm -f conftest.*])
545
  if test x$nettle_cv_asm_gnu_stack = xyes ; then
546
    ASM_MARK_NOEXEC_STACK='.section .note.GNU-stack,"",TYPE_PROGBITS'
547
  fi
548
1.1.4 by Magnus Holmgren
Import upstream version 1.15
549
  AC_CACHE_CHECK([if .align assembly directive is logarithmic],
550
    [nettle_cv_asm_align_log],
551
    [GMP_TRY_ASSEMBLE([
552
.align 3
553
],
554
       [nettle_cv_asm_align_log=yes],
555
       [nettle_cv_asm_align_log=no])])
1.4.6 by Magnus Holmgren
Import upstream version 2.7
556
  ASM_ALIGN_LOG="$nettle_cv_asm_align_log"
1.1.2 by Marek Habersack
Import upstream version 1.14
557
fi
558
559
AC_SUBST(ASM_SYMBOL_PREFIX)
560
AC_SUBST(ASM_ELF_STYLE)
561
AC_SUBST(ASM_TYPE_FUNCTION)
1.4.6 by Magnus Holmgren
Import upstream version 2.7
562
AC_SUBST(ASM_TYPE_PROGBITS)
1.1.2 by Marek Habersack
Import upstream version 1.14
563
AC_SUBST(ASM_MARK_NOEXEC_STACK)
1.1.4 by Magnus Holmgren
Import upstream version 1.15
564
AC_SUBST(ASM_ALIGN_LOG)
1.5.1 by Magnus Holmgren
Import upstream version 2.5
565
AC_SUBST(W64_ABI)
566
AC_SUBST(EMULATOR)
1 by Marek Habersack
Import upstream version 1.10
567
568
AC_SUBST(SHLIBCFLAGS)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
569
570
AC_SUBST(LIBNETTLE_MAJOR)
571
AC_SUBST(LIBNETTLE_MINOR)
572
AC_SUBST(LIBNETTLE_FORLINK)
573
AC_SUBST(LIBNETTLE_SONAME)
574
AC_SUBST(LIBNETTLE_FILE)
1.5.1 by Magnus Holmgren
Import upstream version 2.5
575
AC_SUBST(LIBNETTLE_FILE_SRC)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
576
AC_SUBST(LIBNETTLE_LINK)
577
AC_SUBST(LIBNETTLE_LIBS)
578
579
AC_SUBST(LIBHOGWEED_MAJOR)
580
AC_SUBST(LIBHOGWEED_MINOR)
581
AC_SUBST(LIBHOGWEED_FORLINK)
582
AC_SUBST(LIBHOGWEED_SONAME)
583
AC_SUBST(LIBHOGWEED_FILE)
1.5.1 by Magnus Holmgren
Import upstream version 2.5
584
AC_SUBST(LIBHOGWEED_FILE_SRC)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
585
AC_SUBST(LIBHOGWEED_LINK)
586
AC_SUBST(LIBHOGWEED_LIBS)
1.1.1 by Marek Habersack
Import upstream version 1.12
587
1 by Marek Habersack
Import upstream version 1.10
588
AC_PATH_PROG(M4, m4, m4)
589
1.4.3 by Magnus Holmgren
Import upstream version 2.2
590
if test "x$enable_gcov" = "xyes"; then
591
  CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs"
592
fi
593
1 by Marek Habersack
Import upstream version 1.10
594
# Checks for typedefs, structures, and compiler characteristics.
595
AC_C_CONST
596
AC_C_INLINE
597
AC_TYPE_UID_T
598
AC_TYPE_SIZE_T
599
AC_HEADER_TIME
1.1.5 by Magnus Holmgren
Import upstream version 2.0
600
AC_CHECK_SIZEOF(long)
1.5.1 by Magnus Holmgren
Import upstream version 2.5
601
AC_CHECK_ALIGNOF(uint64_t)
602
603
ALIGNOF_UINT64_T="$ac_cv_alignof_uint64_t"
604
AC_SUBST(ALIGNOF_UINT64_T)
1 by Marek Habersack
Import upstream version 1.10
605
1.1.2 by Marek Habersack
Import upstream version 1.14
606
AC_CHECK_HEADERS([openssl/blowfish.h openssl/des.h openssl/cast.h openssl/aes.h],,
607
[enable_openssl=no
608
 break])
609
1 by Marek Habersack
Import upstream version 1.10
610
LSH_FUNC_ALLOCA
1.4.3 by Magnus Holmgren
Import upstream version 2.2
611
LSH_FUNC_STRERROR
1 by Marek Habersack
Import upstream version 1.10
612
613
# Needed by the supplied memcmp.c
614
AC_C_BIGENDIAN
615
AC_REPLACE_FUNCS(memxor)
616
617
LSH_GCC_ATTRIBUTES
618
619
# According to Simon Josefsson, looking for uint32_t and friends in
620
# sys/types.h is needed on some systems, in particular cygwin.
1.1.2 by Marek Habersack
Import upstream version 1.14
621
AX_CREATE_STDINT_H([nettle-stdint.h], [sys/types.h])
1 by Marek Habersack
Import upstream version 1.10
622
1.1.5 by Magnus Holmgren
Import upstream version 2.0
623
# Check for file locking. We (AC_PROG_CC?) have already checked for
624
# sys/types.h and unistd.h.
625
AC_CACHE_CHECK([for fcntl file locking],
626
		nettle_cv_fcntl_locking,
627
[AC_TRY_COMPILE([
628
#if HAVE_SYS_TYPES_H
629
# include <sys/types.h>
630
#endif
631
#if HAVE_UNISTD_H
632
# include <unistd.h>
633
#endif
634
#include <fcntl.h>
635
],[
636
int op = F_SETLKW;
637
struct flock fl;
638
],
639
nettle_cv_fcntl_locking=yes,
640
nettle_cv_fcntl_locking=no)])
641
642
AH_TEMPLATE([HAVE_FCNTL_LOCKING], [Define if fcntl file locking is available])
643
if test "x$nettle_cv_fcntl_locking" = "xyes" ; then
644
  AC_DEFINE(HAVE_FCNTL_LOCKING)
645
fi
646
1 by Marek Habersack
Import upstream version 1.10
647
# Checks for libraries
648
AC_CHECK_LIB(gmp, __gmpz_getlimbn,,
649
    [AC_MSG_WARN(
1.4.3 by Magnus Holmgren
Import upstream version 2.2
650
[GNU MP not found, or not 3.1 or up, see http://gmplib.org/.
1 by Marek Habersack
Import upstream version 1.10
651
Support for public key algorithms will be unavailable.])]
652
    enable_public_key=no)
653
1.4.2 by Magnus Holmgren
Import upstream version 2.1
654
# Add -R flags needed to run programs linked with gmp
655
LSH_RPATH_FIX
656
1.4.6 by Magnus Holmgren
Import upstream version 2.7
657
# Check for gmp limb size
658
nettle_cv_gmp_numb_bits=0
659
if test "$enable_public_key" = yes; then
660
  AC_MSG_CHECKING([for GMP limb size])
661
  AC_COMPUTE_INT(nettle_cv_gmp_numb_bits, [GMP_NUMB_BITS],
662
      [#include <gmp.h>],
663
      [AC_MSG_FAILURE([cannot find value of GMP_NUMB_BITS])])
664
665
  AC_MSG_RESULT([$nettle_cv_gmp_numb_bits bits])
666
fi
667
668
GMP_NUMB_BITS="$nettle_cv_gmp_numb_bits"
669
AC_SUBST([GMP_NUMB_BITS])
670
1.4.2 by Magnus Holmgren
Import upstream version 2.1
671
AH_TEMPLATE([HAVE_MPZ_POWM_SEC], [Define if mpz_powm_sec is available (appeared in GMP-5)])
672
AC_CHECK_FUNC(__gmpz_powm_sec, [AC_DEFINE(HAVE_MPZ_POWM_SEC)])
673
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
674
AH_TEMPLATE([WITH_HOGWEED], [Defined if public key features are enabled])
675
1 by Marek Habersack
Import upstream version 1.10
676
if test "x$enable_public_key" = xyes ; then
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
677
  AC_DEFINE(WITH_HOGWEED)
678
  IF_HOGWEED=''
679
else
680
  IF_HOGWEED='#'
681
fi
682
1.5.2 by Magnus Holmgren
Import upstream version 2.6
683
if test "x$enable_static" = xyes ; then
684
  IF_STATIC=''
685
else
686
  IF_STATIC='#'
687
fi
688
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
689
if test "x$enable_shared" = xyes ; then
690
  IF_SHARED=''
691
else
692
  IF_SHARED='#'
693
fi
694
1.5.2 by Magnus Holmgren
Import upstream version 2.6
695
# Documentation tools
696
if test "x$enable_documentation" != "xno"; then
697
  AC_PATH_PROG(MAKEINFO, makeinfo, not-found)
698
699
  if test "x$MAKEINFO" != "xnot-found"; then
700
    enable_documentation=yes
701
    AC_SUBST(MAKEINFO)
702
  else
703
    if test "x$enable_documentation" == "xauto" ; then
704
      enable_documentation=no
705
    else
706
      AC_MSG_ERROR([Cannot find 'makeinfo', required for documentation.])
707
    fi
708
  fi
709
fi
710
711
if test "x$enable_documentation" = "xyes" ; then
712
  IF_DOCUMENTATION=''
713
else
714
  IF_DOCUMENTATION='#'
715
fi
716
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
717
AC_SUBST(IF_HOGWEED)
1.5.2 by Magnus Holmgren
Import upstream version 2.6
718
AC_SUBST(IF_STATIC)
1.4.1 by Magnus Holmgren
Import upstream version 1.16~cvs20070603
719
AC_SUBST(IF_SHARED)
1.5.2 by Magnus Holmgren
Import upstream version 2.6
720
AC_SUBST(IF_DOCUMENTATION)
1.5.1 by Magnus Holmgren
Import upstream version 2.5
721
AC_SUBST(IF_DLL)
1 by Marek Habersack
Import upstream version 1.10
722
723
OPENSSL_LIBFLAGS=''
724
725
# Check for openssl's libcrypto (used only for benchmarking)
1.1.2 by Marek Habersack
Import upstream version 1.14
726
if test x$enable_openssl = xyes ; then
727
  AC_CHECK_LIB(crypto, BF_ecb_encrypt,
728
    [OPENSSL_LIBFLAGS='-lcrypto'],
729
    [enable_openssl=no])
730
fi
731
732
AH_TEMPLATE([WITH_OPENSSL],
1.5.1 by Magnus Holmgren
Import upstream version 2.5
733
	    [Define if you have openssl's libcrypto (used for benchmarking)]) dnl'
1.1.2 by Marek Habersack
Import upstream version 1.14
734
735
if test x$enable_openssl = xyes ; then
736
  AC_DEFINE(WITH_OPENSSL)
737
fi
1 by Marek Habersack
Import upstream version 1.10
738
739
AC_SUBST(OPENSSL_LIBFLAGS)
740
1.4.3 by Magnus Holmgren
Import upstream version 2.2
741
AH_BOTTOM(
1.5.1 by Magnus Holmgren
Import upstream version 2.5
742
[#if defined(__x86_64__) || defined(__arch64__)
743
# define HAVE_NATIVE_64_BIT 1
744
#else
745
/* Needs include of <limits.h> before use. */
746
# define HAVE_NATIVE_64_BIT (SIZEOF_LONG * CHAR_BIT >= 64)
747
#endif
1.4.3 by Magnus Holmgren
Import upstream version 2.2
748
])
749
750
# clock_gettime is in librt on *-*-osf5.1 and on glibc, so add -lrt to
751
# BENCH_LIBS if needed. On linux (tested on x86_32, 2.6.26),
752
# clock_getres reports ns accuracy, while in a quick test on osf
753
# clock_getres said only 1 millisecond.
754
755
old_LIBS="$LIBS"
756
AC_SEARCH_LIBS(clock_gettime, rt, [
1.5.1 by Magnus Holmgren
Import upstream version 2.5
757
  AC_DEFINE([HAVE_CLOCK_GETTIME],1,[Define if clock_gettime is available])])
1.4.3 by Magnus Holmgren
Import upstream version 2.2
758
BENCH_LIBS="$LIBS"
759
LIBS="$old_LIBS"
760
761
AC_SUBST(BENCH_LIBS)
762
1 by Marek Habersack
Import upstream version 1.10
763
# Set these flags *last*, or else the test programs won't compile
764
if test x$GCC = xyes ; then
765
  # Using -ggdb3 makes (some versions of) Redhat's gcc-2.96 dump core
1.4.3 by Magnus Holmgren
Import upstream version 2.2
766
  if $CC --version | grep '^2\.96$' 1>/dev/null 2>&1; then
1 by Marek Habersack
Import upstream version 1.10
767
    true
768
  else
769
    CFLAGS="$CFLAGS -ggdb3"
770
  fi
1.1.2 by Marek Habersack
Import upstream version 1.14
771
  # FIXME: It would be better to actually test if this option works and/or is needed.
1.1.4 by Magnus Holmgren
Import upstream version 1.15
772
  # Or perhaps use -funsigned-char.
1.4.3 by Magnus Holmgren
Import upstream version 2.2
773
  if $CC --version | grep 'gcc.* 4\.' 1>/dev/null 2>&1; then
1.1.2 by Marek Habersack
Import upstream version 1.14
774
    CFLAGS="$CFLAGS -Wno-pointer-sign"
775
  fi
1 by Marek Habersack
Import upstream version 1.10
776
  CFLAGS="$CFLAGS -Wall -W \
777
  -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \
778
  -Wpointer-arith -Wbad-function-cast -Wnested-externs"
779
780
# Don't enable -Wcast-align as it results in tons of warnings in the
781
# DES code. And when using stdio.
782
# Don't enable -Waggregate-return, as that causes warnings for glibc
783
# inttypes.h.
784
fi
785
1.1.1 by Marek Habersack
Import upstream version 1.12
786
AC_CONFIG_FILES([config.make config.m4 Makefile])
787
AC_CONFIG_FILES([tools/Makefile testsuite/Makefile examples/Makefile])
1.4.4 by Magnus Holmgren
Import upstream version 2.3
788
AC_CONFIG_FILES([nettle.pc hogweed.pc])
1.1.1 by Marek Habersack
Import upstream version 1.12
789
790
AC_OUTPUT
1 by Marek Habersack
Import upstream version 1.10
791
1.4.3 by Magnus Holmgren
Import upstream version 2.2
792
AC_MSG_NOTICE([summary of build options:
793
794
  Version:           ${PACKAGE_STRING}
795
  Host type:         ${host}
796
  ABI:               ${ABI}
797
  Assembly files:    ${asm_path:-none}
798
  Install prefix:    ${prefix}
799
  Library directory: ${libdir}
800
  Compiler:          ${CC}
1.5.2 by Magnus Holmgren
Import upstream version 2.6
801
  Static libraries:  ${enable_static}
1.4.3 by Magnus Holmgren
Import upstream version 2.2
802
  Shared libraries:  ${enable_shared}
803
  Public key crypto: ${enable_public_key}
1.5.2 by Magnus Holmgren
Import upstream version 2.6
804
  Documentation:     ${enable_documentation}
1.4.3 by Magnus Holmgren
Import upstream version 2.2
805
])