See ChangeLog: Mon Jul 31 10:04:47 CEST 2000 Werner Koch
[libgcrypt.git] / configure.in
1 dnl
2 dnl Configure template for GNUPG
3 dnl
4 dnl (Process this file with autoconf to produce a configure script.)
5 AC_REVISION($Revision$)dnl
6
7 dnl Must reset CDPATH so that bash's cd does not print to stdout
8 CDPATH=
9
10 AC_PREREQ(2.13)
11 AC_INIT(g10/gpg.c)
12 AC_CONFIG_AUX_DIR(scripts)
13 AM_CONFIG_HEADER(config.h)
14 AC_CANONICAL_SYSTEM
15 AM_INIT_AUTOMAKE(gnupg,`cat $srcdir/VERSION`)
16
17 ALL_LINGUAS="da de eo es_ES fr id it ja nl pl pt_BR pt_PT ru sv"
18 static_modules="sha1 md5 rmd160"
19 static_random_module=""
20
21 AC_PROG_AWK
22
23 MODULES_IN_CIPHER=`$AWK '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \
24                                               $srcdir/cipher/Makefile.am`
25
26 dnl
27 dnl  Check for random module options
28 dnl
29 dnl  Fixme: get the list of available modules from MODULES_IN_CIPHER
30 dnl         and check against this list
31
32 AC_MSG_CHECKING([which static random module to use])
33 AC_ARG_ENABLE(static-rnd,
34     [  --enable-static-rnd=[egd|unix|linux|none]  ],
35 [use_static_rnd=$enableval], [use_static_rnd=default] )
36
37 if test "$use_static_rnd" = no; then
38     use_static_rnd=default
39 fi
40
41 case "$use_static_rnd" in
42     egd | linux | unix | none | default )
43       AC_MSG_RESULT($use_static_rnd)
44       ;;
45     * )
46       AC_MSG_RESULT(invalid argument)
47       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
48       ;;
49 esac
50
51
52
53 dnl
54 dnl See whether the user wants to disable checking for /dev/random
55
56 AC_MSG_CHECKING([whether use of /dev/random is requested])
57 AC_ARG_ENABLE(dev-random,
58 [  --disable-dev-random    disable the use of dev random],
59     try_dev_random=$enableval, try_dev_random=yes)
60 AC_MSG_RESULT($try_dev_random)
61
62
63 dnl
64 dnl  Check other options
65 dnl
66
67 AC_MSG_CHECKING([whether use of extensions is requested])
68 AC_ARG_ENABLE(dynload,
69 [  --disable-dynload       disable use of extensions],
70     try_dynload=$enableval, try_dynload=yes)
71 AC_MSG_RESULT($try_dynload)
72
73 AC_MSG_CHECKING([whether assembler modules are requested])
74 AC_ARG_ENABLE(asm,
75 [  --disable-asm           do not use assembler modules],
76      try_asm_modules=$enableval, try_asm_modules=yes)
77 AC_MSG_RESULT($try_asm_modules)
78
79 AC_MSG_CHECKING([whether memory debugging is requested])
80 AC_ARG_ENABLE(m-debug,
81 [  --enable-m-debug        enable debugging of memory allocation],
82 use_m_debug=$enableval, use_m_debug=no)
83 AC_MSG_RESULT($use_m_debug)
84 if test "$use_m_debug" = yes; then
85     AC_DEFINE(M_DEBUG)
86     use_m_guard=yes
87 else
88     AC_MSG_CHECKING([whether memory guard is requested])
89     AC_ARG_ENABLE(m-guard,
90     [  --enable-m-guard        enable memory guard facility],
91     use_m_guard=$enableval, use_m_guard=no)
92     AC_MSG_RESULT($use_m_guard)
93 fi
94 if test "$use_m_guard" = yes ; then
95     AC_DEFINE(M_GUARD)
96 fi
97
98
99 AC_MSG_CHECKING([whether included zlib is requested])
100 AC_ARG_WITH(included-zlib,
101     [  --with-included-zlib    use the zlib code included here],
102 [g10_force_zlib=yes], [g10_force_zlib=no] )
103 AC_MSG_RESULT($g10_force_zlib)
104
105 dnl
106 dnl Check wether we want to compile libgcrypt
107 dnl
108 AC_MSG_CHECKING([whether compilation of libgcrypt is requested])
109 AC_ARG_ENABLE(libgcrypt,
110     [  --enable-libgcrypt      compile the libgcrypt [default=yes]],
111 [compile_libgcrypt="$enableval"],[compile_libgcrypt=no])
112 AC_MSG_RESULT($compile_libgcrypt)
113 AM_CONDITIONAL(COMPILE_LIBGCRYPT, test x$compile_libgcrypt = xyes)
114
115
116 dnl
117 dnl Check whether we want to use Linux capabilities
118 dnl
119 AC_MSG_CHECKING([whether use of capabilities is requested])
120 AC_ARG_WITH(capabilities,
121     [  --with-capabilities     use linux capabilities [default=no]],
122 [use_capabilities="$withval"],[use_capabilities=no])
123 AC_MSG_RESULT($use_capabilities)
124
125
126
127
128
129 AM_MAINTAINER_MODE
130
131 dnl Checks for programs.
132
133 dnl
134 dnl Setup some stuff depending on host/target.
135 dnl
136 case "${target}" in
137     *-*-mingw32*)
138         # special stuff for Windoze NT
139         # Do we need to set cross_compiling here or is it sufficient
140         # to rely on AC_PROG_CC which is called later?
141         cross_compiling=yes
142         CC="${target}-gcc"
143         CPP="${target}-gcc -E"
144         RANLIB="${target}-ranlib"
145         disallowed_modules="rndunix rndlinux rndegd"
146         ;;
147     *)
148         disallowed_modules="rndw32"
149        ;;
150 esac
151
152 AC_ARG_PROGRAM
153 AC_PROG_MAKE_SET
154 AM_SANITY_CHECK
155 missing_dir=`cd $ac_aux_dir && pwd`
156 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
157 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
158 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
159 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
160 dnl AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
161 AC_PROG_CC
162 AC_PROG_CPP
163 AC_ISC_POSIX
164 AC_PROG_INSTALL
165 AC_PROG_AWK
166 GPH_PROG_DOCBOOK
167
168
169 dnl
170 dnl Build shared libraries only when compilation of libgcrypt
171 dnl has been requested
172 dnl
173 AM_DISABLE_STATIC
174 AM_PROG_LIBTOOL
175
176
177 MPI_OPT_FLAGS=""
178
179
180 try_gettext=yes
181 try_gdbm=yes
182 case "${target}" in
183     *-*-mingw32*)
184         # special stuff for Windoze NT
185         ac_cv_have_dev_random=no
186         AC_DEFINE(USE_ONLY_8DOT3)
187         AC_DEFINE(HAVE_DRIVE_LETTERS)
188         AC_DEFINE(HAVE_DOSISH_SYSTEM)
189         AC_DEFINE(USE_SIMPLE_GETTEXT)
190         try_gettext="no"
191         try_gdbm="no"
192         ;;
193     i?86-emx-os2 | i?86-*-os2*emx )
194         # OS/2 with the EMX environment
195         ac_cv_have_dev_random=no
196         AC_DEFINE(HAVE_DRIVE_LETTERS)
197         AC_DEFINE(HAVE_DOSISH_SYSTEM)
198         try_gettext="no"
199         try_gdbm="no"
200         ;;
201
202     i?86-*-msdosdjgpp*)
203         # DOS with the DJGPP environment
204         ac_cv_have_dev_random=no
205         AC_DEFINE(HAVE_DRIVE_LETTERS)
206         AC_DEFINE(HAVE_DOSISH_SYSTEM)
207         try_gettext="no"
208         try_gdbm="no"
209         ;;
210
211     *-*-freebsd*)
212        # FreeBSD
213        CPPFLAGS="$CPPFLAGS -I/usr/local/include"
214        LDFLAGS="$LDFLAGS -L/usr/local/lib"
215        ;;
216
217     *-*-hpux*)
218         if test -z "$GCC" ; then
219             CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
220         fi
221         ;;
222     *-dec-osf4*)
223         if test -z "$GCC" ; then
224             # Suppress all warnings
225             # to get rid of the unsigned/signed char mismatch warnings.
226             CFLAGS="$CFLAGS -w"
227         fi
228         ;;
229     m68k-atari-mint)
230         ;;
231     *)
232        ;;
233 esac
234
235 AC_SUBST(MPI_OPT_FLAGS)
236 GNUPG_SYS_SYMBOL_UNDERSCORE
237 GNUPG_CHECK_PIC
238 GNUPG_CHECK_EXPORTDYNAMIC
239 if test "$NO_PIC" = yes; then
240     try_dynload=no
241 fi
242
243
244 case "${target}" in
245     *-*-mingw32*)
246         PRINTABLE_OS_NAME="MingW32"
247         ;;
248     i?86-emx-os2 | i?86-*-os2*emx )
249         PRINTABLE_OS_NAME="OS/2"
250         ;;
251     i?86-*-msdosdjgpp*)
252         PRINTABLE_OS_NAME="MSDOS/DJGPP"
253         try_dynload=no
254         ;;
255     *-linux*)
256         PRINTABLE_OS_NAME="GNU/Linux"
257         ;;
258 dnl let that after linux to avoid gnu-linux problems
259     *-gnu*)
260         PRINTABLE_OS_NAME="GNU/Hurd"
261         ;;
262     *)
263         PRINTABLE_OS_NAME=`uname -s || echo "Unknown"`
264         ;;
265 esac
266 AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")
267
268 dnl  Fixme: Are these the best flags for OpenBSD????
269 dnl (I have removed the -lc from * ...CFLAGS for test purposes.)
270 case "${target}" in
271     *-openbsd*)
272         NAME_OF_DEV_RANDOM="/dev/srandom"
273         NAME_OF_DEV_URANDOM="/dev/urandom"
274         DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
275         ;;
276
277     *-netbsd*)
278         NAME_OF_DEV_RANDOM="/dev/random"
279         NAME_OF_DEV_URANDOM="/dev/urandom"
280         DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
281         ;;
282
283     *)
284         NAME_OF_DEV_RANDOM="/dev/random"
285         NAME_OF_DEV_URANDOM="/dev/urandom"
286         DYNLINK_MOD_CFLAGS="-shared $CFLAGS_PIC"
287         ;;
288 esac
289 AC_DEFINE_UNQUOTED(NAME_OF_DEV_RANDOM, "$NAME_OF_DEV_RANDOM")
290 AC_DEFINE_UNQUOTED(NAME_OF_DEV_URANDOM, "$NAME_OF_DEV_URANDOM")
291 AC_SUBST(MPI_OPT_FLAGS)
292
293
294 dnl Checks for libraries.
295
296 if test "$try_gettext" = yes; then
297 AM_GNU_GETTEXT
298 else
299 USE_NLS=no
300 USE_INCLUDED_LIBINTL=no
301 AC_SUBST(USE_NLS)
302 AC_SUBST(USE_INCLUDED_LIBINTL)
303 fi
304
305 dnl
306 dnl There are lot of misconfigured systems.  We include
307 dnl gdbm support only if the lib and the header is installed.
308 dnl
309 if test "$try_gdbm" = yes; then
310 AC_CHECK_HEADERS(gdbm.h)
311 if test "$ac_cv_header_gdbm_h" = yes ; then
312   AC_CHECK_LIB(gdbm,gdbm_firstkey)
313 fi
314 fi
315
316
317 dnl Solaris needs -lsocket and -lnsl. Unisys system includes
318 dnl gethostbyname in libsocket but needs libnsl for socket.
319 AC_CHECK_LIB(nsl, gethostbyname)
320 AC_CHECK_LIB(socket, socket, ac_need_libsocket=1, ac_try_nsl=1)
321 if test x$ac_need_libsocket = x1; then
322     LIBS="$LIBS -lsocket"
323 fi
324 if test x$ac_try_nsl = x1; then
325     AC_CHECK_LIB(nsl, gethostbyname, ac_need_libnsl=1)
326     if test x$ac_need_libnsl = x1
327     then
328         LIBS="$LIBS -lnsl"
329     fi
330 fi
331
332
333 if test "$try_dynload" = yes ; then
334   AC_CHECK_LIB(dl,dlopen)
335   if test "$ac_cv_lib_dl_dlopen" = "yes"; then
336     AC_DEFINE(USE_DYNAMIC_LINKING)
337     AC_DEFINE(HAVE_DL_DLOPEN)
338     DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
339     use_gnupg_extensions=yes
340   else
341     AC_CHECK_FUNCS(dlopen)
342     if test "$ac_cv_func_dlopen" = "yes"; then
343       AC_DEFINE(USE_DYNAMIC_LINKING)
344       AC_DEFINE(HAVE_DL_DLOPEN)
345       DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
346       use_gnupg_extensions=yes
347     else
348       AC_CHECK_LIB(dld,shl_load)
349       if test "$ac_cv_lib_dld_shl_load" = "yes"; then
350         AC_DEFINE(USE_DYNAMIC_LINKING)
351         AC_DEFINE(HAVE_DL_SHL_LOAD)
352         DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
353         use_gnupg_extensions=yes
354 dnl -----------------
355 dnl  DLD is not ready for use. So I better disable this test
356 dnl
357 dnl    AC_CHECK_LIB(dld,dld_link)
358 dnl    if test "$ac_cv_lib_dld_dld_link" = "yes"; then
359 dnl      AC_DEFINE(USE_DYNAMIC_LINKING)
360 dnl      AC_DEFINE(HAVE_DLD_DLD_LINK)
361 dnl      DYNLINK_LDFLAGS="$CFLAGS_EXPORTDYNAMIC"
362 dnl      use_gnupg_extensions=yes
363 dnl ---------------
364       fi
365     fi
366   fi
367 else
368   AC_MSG_CHECKING(for dynamic loading)
369   DYNLINK_LDFLAGS=
370   DYNLINK_MOD_CFLAGS=
371   use_gnupg_extensions=no
372   AC_MSG_RESULT(has been disabled)
373 fi
374
375 AM_CONDITIONAL(ENABLE_GNUPG_EXTENSIONS, test "$use_gnupg_extensions" = yes )
376 AC_SUBST(DYNLINK_LDFLAGS)
377 AC_SUBST(DYNLINK_MOD_CFLAGS)
378
379
380 dnl Checks for header files.
381 AC_HEADER_STDC
382 AC_CHECK_HEADERS(unistd.h langinfo.h termio.h)
383
384
385 dnl Checks for typedefs, structures, and compiler characteristics.
386 AC_C_CONST
387 AC_C_INLINE
388 AC_TYPE_SIZE_T
389 AC_TYPE_SIGNAL
390 AC_DECL_SYS_SIGLIST
391
392 GNUPG_CHECK_ENDIAN
393
394
395 GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF)
396 GNUPG_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF)
397 GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF)
398 GNUPG_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF)
399 GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
400
401 AC_CHECK_SIZEOF(unsigned short, 2)
402 AC_CHECK_SIZEOF(unsigned int, 4)
403 AC_CHECK_SIZEOF(unsigned long, 4)
404 AC_CHECK_SIZEOF(unsigned long long, 0)
405
406 if test "$ac_cv_sizeof_unsigned_short" = "0" \
407    || test "$ac_cv_sizeof_unsigned_int" = "0" \
408    || test "$ac_cv_sizeof_unsigned_long" = "0"; then
409     AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
410 fi
411
412
413
414 dnl Checks for library functions.
415 AC_FUNC_VPRINTF
416 AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap)
417 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit clock_gettime)
418 AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo)
419 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask)
420
421 GNUPG_CHECK_MLOCK
422 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
423
424 dnl
425 dnl Check whether we can use Linux capabilities as requested
426 dnl
427 if test "$use_capabilities" = "yes" ; then
428 use_capabilities=no
429 AC_CHECK_HEADERS(sys/capability.h)
430 if test "$ac_cv_header_sys_capability_h" = "yes" ; then
431   AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
432   if test "$ac_cv_lib_cap_cap_init" = "yes"; then
433      AC_DEFINE(USE_CAPABILITIES)
434      LIBS="$LIBS -lcap"
435      use_capabilities=yes
436   fi
437 fi
438 if test "$use_capabilities" = "no" ; then
439     AC_MSG_WARN([[
440 ***
441 *** The use of capabilities on this system is not possible.
442 *** You need a recent Linux kernel and some patches:
443 ***   fcaps-2.2.9-990610.patch      (kernel patch for 2.2.9)
444 ***   fcap-module-990613.tar.gz     (kernel module)
445 ***   libcap-1.92.tar.gz            (user mode library and utilities)
446 *** And you have to configure the kernel with CONFIG_VFS_CAP_PLUGIN
447 *** set (filesystems menu). Be warned: This code is *really* ALPHA.
448 ***]])
449 fi
450 fi
451
452
453 GNUPG_CHECK_IPC
454 if test "$ac_cv_header_sys_shm_h" = "yes"; then
455   AC_DEFINE(USE_SHM_COPROCESSING)
456 fi
457
458 dnl
459 dnl check whether we have a random device
460 dnl
461 if test "$try_dev_random" = yes ; then
462     AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
463     [if test -c "$NAME_OF_DEV_RANDOM" && test -c "$NAME_OF_DEV_URANDOM" ; then
464       ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi])
465     if test "$ac_cv_have_dev_random" = yes; then
466         AC_DEFINE(HAVE_DEV_RANDOM)
467     fi
468 else
469     AC_MSG_CHECKING(for random device)
470     ac_cv_have_dev_random=no
471     AC_MSG_RESULT(has been disabled)
472 fi
473
474 dnl
475 dnl and whether this device supports ioctl
476 dnl (Note, that we should do a real test here)
477 dnl
478 if test "$ac_cv_have_dev_random" = yes ; then
479     AC_CHECK_HEADERS(linux/random.h)
480     AC_CACHE_CHECK(for random device ioctl, ac_cv_have_dev_random_ioctl,
481       [ if test "$ac_cv_header_linux_random_h" = yes ; then
482           ac_cv_have_dev_random_ioctl=yes;
483         else
484           ac_cv_have_dev_random_ioctl=no;
485         fi
486       ])
487     if test "$ac_cv_have_dev_random_ioctl" = yes; then
488         AC_DEFINE(HAVE_DEV_RANDOM_IOCTL)
489     fi
490 fi
491
492
493 dnl
494 dnl Figure out the default linkage mode for cipher modules
495 dnl
496 print_egd_notice=no
497 if test "$use_static_rnd" = default; then
498   if test "$ac_cv_have_dev_random" = yes; then
499       static_random_module="rndlinux"
500   else
501       case "${target}" in
502           *-*-mingw32*)
503               static_random_module="rndw32"
504               AC_DEFINE(USE_STATIC_RNDW32)
505               ;;
506           i?86-emx-os2|i?86-*-os2*emx)
507               static_random_module="rndos2"
508               ;;
509           m68k-atari-mint)
510               static_random_module="rndatari"
511               ;;
512           i?86-*-msdosdjgpp*)
513               :
514               ;;
515           *)
516               static_random_module="rndunix"
517               print_egd_notice=yes
518              ;;
519       esac
520   fi
521 else
522   if test "$use_static_rnd" = none; then
523     :
524   else
525     static_random_module="rnd$use_static_rnd"
526     if test "$use_static_rnd" = "unix"; then
527         print_egd_notice=yes
528     fi
529   fi
530 fi
531
532
533 if test "$print_egd_notice" = "yes"; then
534     AC_MSG_WARN([[
535 ***
536 *** The performance of the UNIX random gatherer module is not very good
537 *** and it does not keep the entropy pool over multiple invocations of
538 *** GnuPG.  The suggested way to overcome this problem is to use the
539 ***
540 ***               Entropy Gathering Daemon (EGD)
541 ***
542 *** which provides a entropy source for the whole system.  It is written
543 *** in Perl and available at the GnuPG FTP servers.  For more information
544 *** consult the GnuPG webpages:
545 ***
546 ***           http://www.gnupg.org/download.html#egd
547 ***
548 *** You may want to run ./configure with --enable-static-rnd=none to be
549 *** able to load the EGD client code dynamically; this way you can choose
550 *** between RNDUNIX and RNDEGD without recompilation.
551 ***]])
552 fi
553
554 dnl
555 dnl Parse the modules list and build the list
556 dnl of static and dymically linked modules
557 dnl
558 dnl (We always need a static rmd160)
559 static_modules="$static_modules rmd160 $static_random_module"
560 STATIC_CIPHER_NAMES=""
561 STATIC_CIPHER_OBJS=""
562 DYNAMIC_CIPHER_MODS=""
563 GNUPG_MSG_PRINT([dynamically linked cipher modules:])
564 for name in $MODULES_IN_CIPHER; do
565     x="yes"
566     for i in $disallowed_modules; do
567         if test "$name" = "$i" ; then x="no" ; fi
568     done;
569     if test $x = yes; then
570         x="no"
571         for i in $static_modules; do
572             if test "$name" = "$i" ; then
573                 x="yes"
574             fi
575         done;
576         if test $x = yes; then
577             STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
578             STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
579         else
580             DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name"
581             GNUPG_MSG_PRINT([$name])
582         fi
583     fi
584 done
585 AC_MSG_RESULT()
586 AC_SUBST(STATIC_CIPHER_OBJS)
587 AC_SUBST(STATIC_CIPHER_NAMES)
588 AC_SUBST(DYNAMIC_CIPHER_MODS)
589
590 dnl
591 dnl And build the constructor file
592 dnl
593
594 test -d cipher || mkdir cipher
595 cat <<G10EOF >cipher/construct.c
596 /* automatically generated by configure - do not edit */
597
598 G10EOF
599 GNUPG_MSG_PRINT([statically linked cipher modules:])
600 for name in $STATIC_CIPHER_NAMES; do
601     echo "void ${name}_constructor(void);" >>cipher/construct.c
602     GNUPG_MSG_PRINT([$name])
603 done
604 AC_MSG_RESULT()
605 cat <<G10EOF >>cipher/construct.c
606
607 void
608 cipher_modules_constructor(void)
609 {
610     static int done = 0;
611     if( done )
612         return;
613     done = 1;
614
615 G10EOF
616 for name in $STATIC_CIPHER_NAMES; do
617     echo "   ${name}_constructor();" >>cipher/construct.c
618 done
619 echo '}' >>cipher/construct.c
620
621
622
623
624 dnl
625 dnl Figure how to link the cipher modules
626 dnl
627 AC_SUBST(STATIC_CIPHER_OBJS)
628 AC_SUBST(DYNAMIC_CIPHER_MODS)
629
630
631 dnl setup assembler stuff
632 AC_MSG_CHECKING(for mpi assembler functions)
633 if test -f $srcdir/mpi/config.links ; then
634     . $srcdir/mpi/config.links
635     GNUPG_LINK_FILES($mpi_ln_src, $mpi_ln_dst)
636     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
637     ac_cv_mpi_sflags="$mpi_sflags"
638     ac_cv_mpi_config_done="yes"
639     AC_MSG_RESULT(done)
640 else
641     AC_MSG_RESULT(failed)
642     AC_MSG_ERROR([mpi/config.links missing!])
643 fi
644 MPI_EXTRA_ASM_OBJS=""
645 if test "$ac_cv_mpi_extra_asm_modules" != ""; then
646 GNUPG_MSG_PRINT([mpi extra asm functions:])
647 for i in $ac_cv_mpi_extra_asm_modules; do
648     GNUPG_MSG_PRINT([$i])
649     MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.lo"
650 done
651 AC_MSG_RESULT()
652 fi
653 AC_SUBST(MPI_EXTRA_ASM_OBJS)
654 MPI_SFLAGS="$ac_cv_mpi_sflags"
655 AC_SUBST(MPI_SFLAGS)
656
657 dnl Do we have zlib? Must do it here because Solaris failed
658 dnl when compiling a conftest (due to the "-lz" from LIBS).
659 use_local_zlib=yes
660 if test "$g10_force_zlib" = "yes"; then
661   :
662 else
663   AC_CHECK_HEADERS(zlib.h)
664   if test "$ac_cv_header_zlib_h" = yes ; then
665       AC_CHECK_LIB(z,deflateInit2_,use_local_zlib=no,:)
666   fi
667 fi
668
669 if test "$use_local_zlib" = yes ; then
670     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, true)
671     GNUPG_LINK_FILES(zlib/zlib.h, zlib.h )
672     GNUPG_LINK_FILES(zlib/zconf.h, zconf.h )
673     ZLIBS="../zlib/libzlib.a"
674 else
675     AM_CONDITIONAL(ENABLE_LOCAL_ZLIB, false)
676     ZLIBS=
677     LIBS="-lz $LIBS"
678 fi
679 AC_SUBST(ZLIBS)
680
681
682 # Allow users to append something to the version string without
683 # flagging it as development version.  The user version parts is
684 # considered everything after a dash.
685 changequote(,)dnl
686 tmp_pat='[a-zA-Z]'
687 changequote([,])dnl
688 if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
689     AC_DEFINE(IS_DEVELOPMENT_VERSION)
690 fi
691
692 dnl Temp workarounds:
693 GNUPG_LINK_FILES(gcrypt/gcrypt.h, gcrypt.h )
694 GNUPG_LINK_FILES(include/types.h, gcrypt/types.h )
695
696 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
697
698 GNUPG_DO_LINK_FILES
699
700 GNUPG_CHECK_GNUMAKE
701
702 if test "$GCC" = yes; then
703     if test "$MAINTAINER_MODE" = "yes"; then
704         CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
705     else
706         CFLAGS="$CFLAGS -Wall"
707     fi
708 fi
709
710 dnl
711 dnl Make the version number in gcrypt/gcrypt.h the same as the one here.
712 dnl (this is easier than to have a .in file just for one substitution)
713 dnl
714 GNUPG_FIX_HDR_VERSION(gcrypt/gcrypt.h, GCRYPT_VERSION)
715
716 GCRYPT_LIBS="-L${libdir} -lgcrypt"
717 GCRYPT_CFLAGS=""
718 AC_SUBST(GCRYPT_LIBS)
719 AC_SUBST(GCRYPT_CFLAGS)
720
721 AC_OUTPUT_COMMANDS([
722 chmod +x scripts/db2html
723 chmod +x gcrypt/gcrypt-config
724 cat >gnupg-defs.tmp <<G10EOF
725 /* Generated automatically by configure */
726 #ifdef HAVE_DRIVE_LETTERS
727   #define GNUPG_LOCALEDIR "c:/lib/gnupg/locale"
728   #define GNUPG_LIBDIR  "c:/lib/gnupg"
729   #define GNUPG_DATADIR "c:/lib/gnupg"
730 #else
731   #define GNUPG_LOCALEDIR "${prefix}/${DATADIRNAME}/locale"
732   #define GNUPG_LIBDIR  "${libdir}/gnupg"
733   #define GNUPG_DATADIR "${datadir}/gnupg"
734 #endif
735 G10EOF
736 if cmp -s gnupg-defs.h gnupg-defs.tmp 2>/dev/null; then
737     echo "gnupg-defs.h is unchanged"
738     rm -f gnupg-defs.tmp
739 else
740     rm -f gnupg-defs.h
741     mv gnupg-defs.tmp gnupg-defs.h
742     echo "gnupg-defs.h created"
743 fi
744 ],[
745 prefix=$prefix
746 exec_prefix=$exec_prefix
747 libdir=$libdir
748 datadir=$datadir
749 DATADIRNAME=$DATADIRNAME
750 ])
751
752
753 AC_OUTPUT([
754 Makefile
755 scripts/db2html
756 intl/Makefile
757 po/Makefile.in
758 jnlib/Makefile
759 util/Makefile
760 mpi/Makefile
761 cipher/Makefile
762 g10/Makefile
763 doc/Makefile
764 doc/version.sgml
765 tools/Makefile
766 zlib/Makefile
767 checks/Makefile
768 gcrypt/Makefile
769 gcrypt/gcrypt-config
770 ])
771
772 dnl *-*wedit:notab*-*  Please keep this as the last line.