summaryrefslogtreecommitdiffstats
path: root/acinclude.m4
diff options
context:
space:
mode:
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m4119
1 files changed, 87 insertions, 32 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 20c92be52..9f8bfd01d 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -50,6 +50,25 @@ AC_DEFUN(GNUPG_FIX_HDR_VERSION,
])
+dnl GNUPG_CHECK_GNUMAKE
+dnl
+AC_DEFUN(GNUPG_CHECK_GNUMAKE,
+ [
+ if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
+ :
+ else
+ AC_MSG_WARN([[
+***
+*** It seems that you are not using GNU make. Some make tools have serious
+*** flaws and you may not be able to build this software at all. Before you
+*** complain, please try GNU make: GNU make is easy to build and available
+*** at all GNU archives. It is always available from ftp.gnu.org:/gnu/make.
+***]])
+ fi
+ ])
+
+
+
dnl GNUPG_LINK_FILES( SRC, DEST )
dnl same as AC_LINK_FILES, but collect the files to link in
dnl some special variables and do the link
@@ -212,39 +231,38 @@ define(GNUPG_CHECK_PIC,
######################################################################
-# Check for rdynamic flag
-# This sets CFLAGS_RDYNAMIC to the required flags
+# Check for export-dynamic flag
+# This sets CFLAGS_EXPORTDYNAMIC to the required flags
######################################################################
-dnl GNUPG_CHECK_RDYNAMIC
+dnl GNUPG_CHECK_EXPORTDYNAMIC
dnl
-define(GNUPG_CHECK_RDYNAMIC,
- [ AC_MSG_CHECKING(how to specify -rdynamic)
- CFLAGS_RDYNAMIC=
+define(GNUPG_CHECK_EXPORTDYNAMIC,
+ [ AC_MSG_CHECKING(how to specify -export-dynamic)
if test "$cross_compiling" = yes; then
- AC_MSG_RESULT(assume none)
+ AC_MSG_RESULT(assume none)
+ CFLAGS_EXPORTDYNAMIC=""
else
- case "$host_os" in
- solaris* )
- CFLAGS_RDYNAMIC="-Wl,-dy"
- ;;
-
- hpux* )
- CFLAGS_RDYNAMIC="-Wl,-E"
- ;;
-
- openbsd* | freebsd2* | osf4* | irix* )
- CFLAGS_RDYNAMIC=""
- ;;
-
- * )
- CFLAGS_RDYNAMIC="-Wl,-export-dynamic"
- ;;
- esac
- AC_MSG_RESULT($CFLAGS_RDYNAMIC)
+ AC_CACHE_VAL(gnupg_cv_export_dynamic,[
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS -Wl,--version 2>&1 |
+ grep "GNU ld" >/dev/null]); then
+ # using gnu's linker
+ gnupg_cv_export_dynamic="-Wl,-export-dynamic"
+ else
+ case "$host_os" in
+ hpux* )
+ gnupg_cv_export_dynamic="-Wl,-E"
+ ;;
+ * )
+ gnupg_cv_export_dynamic=""
+ ;;
+ esac
+ fi
+ ])
+ AC_MSG_RESULT($gnupg_cv_export_dynamic)
+ CFLAGS_EXPORTDYNAMIC="$gnupg_cv_export_dynamic"
fi
])
-
#####################################################################
# Check for SysV IPC (from GIMP)
# And see whether we have a SHM_LOCK (FreeBSD does not have it).
@@ -299,7 +317,8 @@ define(GNUPG_CHECK_IPC,
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>],[
- int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); }
+ int shm_id;
+ shmctl(shm_id, SHM_LOCK, 0);
],
gnupg_cv_ipc_have_shm_lock="yes",
gnupg_cv_ipc_have_shm_lock="no"
@@ -318,11 +337,46 @@ define(GNUPG_CHECK_IPC,
######################################################################
# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
# is not called from uid 0 (not tested whether uid 0 works)
+# For DECs Tru64 we have also to check whether mlock is in librt
+# mlock is there a macro using memlk()
######################################################################
dnl GNUPG_CHECK_MLOCK
dnl
define(GNUPG_CHECK_MLOCK,
[ AC_CHECK_FUNCS(mlock)
+ if test "$ac_cv_func_mlock" = "no"; then
+ AC_CHECK_HEADERS(sys/mman.h)
+ if test "$ac_cv_header_sys_mman_h" = "yes"; then
+ # Add librt to LIBS:
+ AC_CHECK_LIB(rt, memlk)
+ AC_CACHE_CHECK([whether mlock is in sys/mman.h],
+ gnupg_cv_mlock_is_in_sys_mman,
+ [AC_TRY_LINK([
+ #include <assert.h>
+ #ifdef HAVE_SYS_MMAN_H
+ #include <sys/mman.h>
+ #endif
+ ], [
+ int i;
+ mkdir ("foo", 0);
+ /* glibc defines this for functions which it implements
+ * to always fail with ENOSYS. Some functions are actually
+ * named something starting with __ and the normal name
+ * is an alias. */
+ #if defined (__stub_mlock) || defined (__stub___mlock)
+ choke me
+ #else
+ mlock(&i, 4);
+ #endif
+ ; return 0;
+ ],
+ gnupg_cv_mlock_is_in_sys_mman=yes,
+ gnupg_cv_mlock_is_in_sys_mman=no)])
+ if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then
+ AC_DEFINE(HAVE_MLOCK)
+ fi
+ fi
+ fi
if test "$ac_cv_func_mlock" = "yes"; then
AC_MSG_CHECKING(whether mlock is broken)
AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
@@ -372,9 +426,10 @@ define(GNUPG_CHECK_MLOCK,
])
-################################################################
+################################################################
# GNUPG_PROG_NM - find the path to a BSD-compatible name lister
+################################################################
AC_DEFUN(GNUPG_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
@@ -433,7 +488,7 @@ case "$host_os" in
aix*)
ac_symcode='[BCDTU]'
;;
-freebsd* | netbsd* | openbsd* | sunos* | cygwin32* | mingw32*)
+freebsd* | netbsd* | openbsd* | bsdi* | sunos* | cygwin32* | mingw32*)
ac_sympat='_\([_A-Za-z][_A-Za-z0-9]*\)'
ac_symxfrm='_\1 \1'
;;
@@ -586,7 +641,7 @@ AC_CHECK_TOOL(AS, as, false)
AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
[tmp_do_check="no"
case "${target}" in
- i386-emx-os2 | i[3456]86-pc-os2*emx )
+ i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
ac_cv_sys_symbol_underscore=yes
;;
*)
@@ -645,7 +700,8 @@ dnl Stolen from gcc
dnl Define MKDIR_TAKES_ONE_ARG if mkdir accepts only one argument instead
dnl of the usual 2.
AC_DEFUN(GNUPG_FUNC_MKDIR_TAKES_ONE_ARG,
-[AC_CACHE_CHECK([if mkdir takes one argument], gnupg_cv_mkdir_takes_one_arg,
+[AC_CHECK_HEADERS(sys/stat.h unistd.h direct.h)
+AC_CACHE_CHECK([if mkdir takes one argument], gnupg_cv_mkdir_takes_one_arg,
[AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_SYS_STAT_H
@@ -663,7 +719,6 @@ if test $gnupg_cv_mkdir_takes_one_arg = yes ; then
fi
])
-
dnl GPH_PROG_DOCBOOK()
dnl Check whether we have the needed Docbook environment
dnl and issue a warning if this is not the case.