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