From 2900284514330c9d4fc53d3287bcb5ffbd413faa Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 10 Dec 1998 19:20:31 +0000 Subject: See ChangeLog: Thu Dec 10 20:15:36 CET 1998 Werner Koch --- acinclude.m4 | 224 +++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 149 insertions(+), 75 deletions(-) (limited to 'acinclude.m4') diff --git a/acinclude.m4 b/acinclude.m4 index bb8700f5..13eff5fa 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,41 +1,41 @@ dnl macros to configure g10 -dnl WK_MSG_PRINT(STRING) +dnl GNUPG_MSG_PRINT(STRING) dnl print a message dnl -define(WK_MSG_PRINT, +define(GNUPG_MSG_PRINT, [ echo $ac_n "$1"" $ac_c" 1>&AC_FD_MSG ]) -dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME) +dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME) dnl Check whether a typedef exists and create a #define $2 if it exists dnl -AC_DEFUN(WK_CHECK_TYPEDEF, +AC_DEFUN(GNUPG_CHECK_TYPEDEF, [ AC_MSG_CHECKING(for $1 typedef) - AC_CACHE_VAL(wk_cv_typedef_$1, + AC_CACHE_VAL(gnupg_cv_typedef_$1, [AC_TRY_COMPILE([#include #include ], [ #undef $1 int a = sizeof($1); - ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )]) - AC_MSG_RESULT($wk_cv_typedef_$1) - if test "$wk_cv_typedef_$1" = yes; then + ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )]) + AC_MSG_RESULT($gnupg_cv_typedef_$1) + if test "$gnupg_cv_typedef_$1" = yes; then AC_DEFINE($2) fi ]) -dnl WK_LINK_FILES( SRC, DEST ) +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 -dnl when WK_DO_LINK_FILES is called +dnl when GNUPG_DO_LINK_FILES is called dnl This is a workaround for AC_LINK_FILES, because it does not work dnl correct when using a caching scheme dnl -define(WK_LINK_FILES, +define(GNUPG_LINK_FILES, [ if test "x$wk_link_files_src" = "x"; then wk_link_files_src="$1" wk_link_files_dst="$2" @@ -44,21 +44,21 @@ define(WK_LINK_FILES, wk_link_files_dst="$wk_link_files_dst $2" fi ]) -define(WK_DO_LINK_FILES, +define(GNUPG_DO_LINK_FILES, [ AC_LINK_FILES( $wk_link_files_src, $wk_link_files_dst ) ]) -dnl WK_CHECK_ENDIAN +dnl GNUPG_CHECK_ENDIAN dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST dnl -define(WK_CHECK_ENDIAN, +define(GNUPG_CHECK_ENDIAN, [ if test "$cross_compiling" = yes; then AC_MSG_WARN(cross compiling; assuming little endianess) fi AC_MSG_CHECKING(endianess) - AC_CACHE_VAL(wk_cv_c_endian, - [ wk_cv_c_endian=unknown + AC_CACHE_VAL(gnupg_cv_c_endian, + [ gnupg_cv_c_endian=unknown # See if sys/param.h defines the BYTE_ORDER macro. AC_TRY_COMPILE([#include #include ], [ @@ -69,8 +69,8 @@ define(WK_CHECK_ENDIAN, #include ], [ #if BYTE_ORDER != BIG_ENDIAN not big endian - #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)]) - if test "$wk_cv_c_endian" = unknown; then + #endif], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)]) + if test "$gnupg_cv_c_endian" = unknown; then AC_TRY_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union @@ -81,27 +81,27 @@ define(WK_CHECK_ENDIAN, u.l = 1; exit (u.c[sizeof (long) - 1] == 1); }], - wk_cv_c_endian=little, - wk_cv_c_endian=big, - wk_cv_c_endian=little + gnupg_cv_c_endian=little, + gnupg_cv_c_endian=big, + gnupg_cv_c_endian=little ) fi ]) - AC_MSG_RESULT([$wk_cv_c_endian]) - if test "$wk_cv_c_endian" = little; then + AC_MSG_RESULT([$gnupg_cv_c_endian]) + if test "$gnupg_cv_c_endian" = little; then AC_DEFINE(LITTLE_ENDIAN_HOST) else AC_DEFINE(BIG_ENDIAN_HOST) fi ]) -dnl WK_CHECK_CACHE +dnl GNUPG_CHECK_CACHE dnl -define(WK_CHECK_CACHE, +define(GNUPG_CHECK_CACHE, [ AC_MSG_CHECKING(cached information) - wk_hostcheck="$target" - AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ]) - if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then + gnupg_hostcheck="$target" + AC_CACHE_VAL(gnupg_cv_hostcheck, [ gnupg_cv_hostcheck="$gnupg_hostcheck" ]) + if test "$gnupg_cv_hostcheck" != "$gnupg_hostcheck"; then AC_MSG_RESULT(changed) AC_MSG_WARN(config.cache exists!) AC_MSG_ERROR(you must do 'make distclean' first to compile for @@ -112,65 +112,138 @@ define(WK_CHECK_CACHE, ]) - - ###################################################################### -# Check for SysV IPC (from GIMP) -# And see whether we have a SHM_LOCK (FreeBSD does not have it). +# Check for -fPIC etc (taken from libtool) +# This sets CFLAGS_PIC to the required flags +# NO_PIC to yes if it is not possible to +# generate PIC ###################################################################### -dnl WK_CHECK_IPC +dnl GNUPG_CHECK_PIC dnl -define(WK_CHECK_IPC, - [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h) - if test "$ac_cv_header_sys_shm_h" = "yes"; then - AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches) - AC_TRY_RUN([ - #include - #include - #include - int main() - { - int id; - char *shmaddr; - id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777); - if (id == -1) - exit (2); - shmaddr = shmat (id, 0, 0); - shmctl (id, IPC_RMID, 0); - if ((char*) shmat (id, 0, 0) == (char*) -1) - { - shmdt (shmaddr); - exit (1); - } - shmdt (shmaddr); - shmdt (shmaddr); - exit (0); - } - ], - AC_DEFINE(IPC_RMID_DEFERRED_RELEASE) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no), - AC_MSG_RESULT(assuming no)) - AC_MSG_CHECKING(whether SHM_LOCK is available) - AC_TRY_COMPILE([#include - #include - #include ],[ - int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); } - ], - AC_DEFINE(IPC_HAVE_SHM_LOCK) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no)) +define(GNUPG_CHECK_PIC, + [ AC_MSG_CHECKING(for option to create PIC) + CFLAGS_PIC= + NO_PIC=no + if test "$cross_compiling" = yes; then + AC_MSG_RESULT(assume none) + else + if test "$GCC" = yes; then + CFLAGS_PIC="-fPIC" + else + case "$host_os" in + aix3* | aix4*) + # All rs/6000 code is PIC + # but is there any non-rs/6000 AIX platform? + ;; + + hpux9* | hpux10*) + CFLAGS_PIC="+Z" + ;; + + irix5* | irix6*) + # PIC (with -KPIC) is the default. + ;; + + osf3* | osf4*) + # FIXME - pic_flag is probably required for + # hppa*-osf* and i860-osf* + ;; + + sco3.2v5*) + CFLAGS_PIC='-Kpic' + ;; + + solaris2* | solaris7* ) + CFLAGS_PIC='-KPIC' + ;; + + sunos4*) + CFLAGS_PIC='-PIC' + ;; + + *) + NO_PIC=yes + ;; + esac + fi + + case "$host_cpu" in + rs6000 | powerpc | powerpcle) + # Yippee! All RS/6000 and PowerPC code is position-independent. + CFLAGS_PIC="" + ;; + esac + + if test "$NO_PIC" = yes; then + AC_MSG_RESULT(not possible) + else + if test -z "$CFLAGS_PIC"; then + AC_MSG_RESULT(none) + else + AC_MSG_RESULT($CFLAGS_PIC) + fi + fi fi ]) +##################################################################### +# Check for SysV IPC (from GIMP) +# And see whether we have a SHM_LOCK (FreeBSD does not have it). +##################################################################### +dnl GNUPG_CHECK_IPC +dnl +define(GNUPG_CHECK_IPC, + [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h) + if test "$ac_cv_header_sys_shm_h" = "yes"; then + AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches) + AC_TRY_RUN([ + #include + #include + #include + int main() + { + int id; + char *shmaddr; + id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777); + if (id == -1) + exit (2); + shmaddr = shmat (id, 0, 0); + shmctl (id, IPC_RMID, 0); + if ((char*) shmat (id, 0, 0) == (char*) -1) + { + shmdt (shmaddr); + exit (1); + } + shmdt (shmaddr); + shmdt (shmaddr); + exit (0); + } + ], + AC_DEFINE(IPC_RMID_DEFERRED_RELEASE) + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no), + AC_MSG_RESULT(assuming no)) + AC_MSG_CHECKING(whether SHM_LOCK is available) + AC_TRY_COMPILE([#include + #include + #include ],[ + int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); } + ], + AC_DEFINE(IPC_HAVE_SHM_LOCK) + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no)) + fi + ]) + + ###################################################################### # 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) ###################################################################### -dnl WK_CHECK_MLOCK +dnl GNUPG_CHECK_MLOCK dnl -define(WK_CHECK_MLOCK, +define(GNUPG_CHECK_MLOCK, [ AC_CHECK_FUNCS(mlock) if test "$ac_cv_func_mlock" = "yes"; then AC_MSG_CHECKING(whether mlock is broken) @@ -533,3 +606,4 @@ strdup __argz_count __argz_stringify __argz_next]) < $srcdir/po/POTFILES.in > po/POTFILES ]) +dnl *-*wedit:notab*-* Please keep this as the last line. -- cgit v1.2.1