Annotation of embedaddon/bird/aclocal.m4, revision 1.1
1.1 ! misho 1: dnl ** Additional Autoconf tests for BIRD configure script
! 2: dnl ** (c) 1999 Martin Mares <mj@ucw.cz>
! 3:
! 4: AC_DEFUN(BIRD_CHECK_INTEGERS,
! 5: [AC_CHECK_SIZEOF(char, 0)
! 6: AC_CHECK_SIZEOF(short int, 0)
! 7: AC_CHECK_SIZEOF(int, 0)
! 8: AC_CHECK_SIZEOF(long int, 0)
! 9: AC_CHECK_SIZEOF(long long int, 0)
! 10: for size in 1 2 4 8; do
! 11: bits=`expr $size "*" 8`
! 12: AC_MSG_CHECKING([for $bits-bit type])
! 13: if test $ac_cv_sizeof_int = $size ; then
! 14: res=int
! 15: elif test $ac_cv_sizeof_char = $size ; then
! 16: res=char
! 17: elif test $ac_cv_sizeof_short_int = $size ; then
! 18: res="short int"
! 19: elif test $ac_cv_sizeof_long_int = $size ; then
! 20: res="long int"
! 21: elif test $ac_cv_sizeof_long_long_int = $size ; then
! 22: res="long long int"
! 23: else
! 24: AC_MSG_RESULT([not found])
! 25: AC_MSG_ERROR([Cannot find $bits-bit integer type.])
! 26: fi
! 27: AC_MSG_RESULT($res)
! 28: AC_DEFINE_UNQUOTED(INTEGER_$bits, $res)
! 29: done
! 30: ])
! 31:
! 32: dnl BIRD_CHECK_ENDIAN is unused and obsolete
! 33: AC_DEFUN(BIRD_CHECK_ENDIAN,
! 34: [AC_CACHE_CHECK([CPU endianity], bird_cv_c_endian,[
! 35: AC_TRY_RUN([
! 36: #include <stdio.h>
! 37:
! 38: unsigned int x = 0x12345678;
! 39: unsigned char *z = (unsigned char *) &x;
! 40:
! 41: int main(void)
! 42: {
! 43: FILE *f = fopen("conftestresult", "w");
! 44: if (!f) return 10;
! 45: fprintf(f, "%02x %02x %02x %02x", *z, *(z+1), *(z+2), *(z+3));
! 46: fclose(f);
! 47: exit(0);
! 48: }
! 49: ],[
! 50: endian=`cat conftestresult`
! 51: if test "$endian" = "12 34 56 78" ; then
! 52: bird_cv_c_endian=big-endian
! 53: elif test "$endian" = "78 56 34 12" ; then
! 54: bird_cv_c_endian=little-endian
! 55: fi
! 56: ],[endian="test program failed"],[endian="not available, we're cross compiling"])
! 57: if test -z "$bird_cv_c_endian" ; then
! 58: AC_MSG_RESULT($endian)
! 59: AC_MSG_ERROR([Cannot determine CPU endianity.])
! 60: fi
! 61: ])
! 62: case $bird_cv_c_endian in
! 63: big-endian) AC_DEFINE(CPU_BIG_ENDIAN) ;;
! 64: little-endian) AC_DEFINE(CPU_LITTLE_ENDIAN) ;;
! 65: esac
! 66: ])
! 67:
! 68: AC_DEFUN(BIRD_CHECK_STRUCT_ALIGN,
! 69: [AC_CACHE_CHECK([usual alignment of structures],bird_cv_c_struct_align,[
! 70: AC_TRY_RUN([
! 71: #include <stdio.h>
! 72:
! 73: struct { char x; long int y; } ary[2];
! 74:
! 75: int main(void)
! 76: {
! 77: FILE *f = fopen("conftestresult", "w");
! 78: if (!f) return 10;
! 79: fprintf(f, "%d", sizeof(ary)/2);
! 80: fclose(f);
! 81: exit(0);
! 82: }
! 83: ],[
! 84: bird_cv_c_struct_align=`cat conftestresult`
! 85: ],[
! 86: AC_MSG_RESULT([test program failed])
! 87: AC_MSG_ERROR([Cannot determine structure alignment])
! 88: ],[bird_cv_c_struct_align=16])
! 89: ])
! 90: AC_DEFINE_UNQUOTED(CPU_STRUCT_ALIGN, $bird_cv_c_struct_align)
! 91: ])
! 92:
! 93: AC_DEFUN(BIRD_CHECK_TIME_T,
! 94: [AC_CACHE_CHECK([characteristics of time_t], bird_cv_type_time_t, [
! 95: AC_TRY_RUN([
! 96: #include <stdio.h>
! 97: #include <sys/time.h>
! 98: #include <limits.h>
! 99:
! 100: int main(void)
! 101: {
! 102: FILE *f = fopen("conftestresult", "w");
! 103: if (!f) return 10;
! 104: fprintf(f, "%d-bit ", sizeof(time_t)*CHAR_BIT);
! 105: if ((time_t) -1 > 0) fprintf(f, "un");
! 106: fprintf(f, "signed");
! 107: fclose(f);
! 108: exit(0);
! 109: }
! 110: ],[bird_cv_type_time_t=`cat conftestresult`
! 111: ],[ AC_MSG_RESULT([test program failed])
! 112: AC_MSG_ERROR([Cannot determine time_t size and signedness.])
! 113: ],[bird_cv_type_time_t="32-bit signed"])
! 114: ])
! 115: case "$bird_cv_type_time_t" in
! 116: *64-bit*) AC_DEFINE(TIME_T_IS_64BIT) ;;
! 117: esac
! 118: case "$bird_cv_type_time_t" in
! 119: *unsigned*) ;;
! 120: *) AC_DEFINE(TIME_T_IS_SIGNED) ;;
! 121: esac
! 122: ])
! 123:
! 124: AC_DEFUN(BIRD_CHECK_STRUCT_IP_MREQN,
! 125: [AC_CACHE_CHECK([for struct ip_mreqn], bird_cv_struct_ip_mreqn,[
! 126: AC_TRY_COMPILE([#include <netinet/in.h>
! 127: ],[struct ip_mreqn x;
! 128: ],[bird_cv_struct_ip_mreqn=yes
! 129: ],[bird_cv_struct_ip_mreqn=no
! 130: ])])
! 131: if test "$bird_cv_struct_ip_mreqn" = yes ; then
! 132: AC_DEFINE(HAVE_STRUCT_IP_MREQN)
! 133: fi
! 134: ])
! 135:
! 136: AC_DEFUN(BIRD_CHECK_PTHREADS,
! 137: [
! 138: bird_tmp_cflags="$CFLAGS"
! 139:
! 140: CFLAGS="$CFLAGS -pthread"
! 141: AC_CACHE_CHECK([whether POSIX threads are available], bird_cv_lib_pthreads,
! 142: [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[pthread_t pt; pthread_create(&pt, NULL, NULL, NULL); pthread_spinlock_t lock; pthread_spin_lock(&lock); ]])],
! 143: [bird_cv_lib_pthreads=yes], [bird_cv_lib_pthreads=no])])
! 144:
! 145: CFLAGS="$bird_tmp_cflags"
! 146: ])
! 147:
! 148: AC_DEFUN(BIRD_CHECK_GCC_OPTION,
! 149: [
! 150: bird_tmp_cflags="$CFLAGS"
! 151:
! 152: CFLAGS="$3 $2"
! 153: AC_CACHE_CHECK([whether CC supports $2], $1,
! 154: [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [$1=yes], [$1=no])])
! 155:
! 156: CFLAGS="$bird_tmp_cflags"
! 157: ])
! 158:
! 159: AC_DEFUN(BIRD_ADD_GCC_OPTION,
! 160: [
! 161: if test "$$1" = yes ; then
! 162: CFLAGS="$CFLAGS $2"
! 163: fi
! 164: ])
! 165:
! 166: # BIRD_CHECK_PROG_FLAVOR_GNU(PROGRAM-PATH, IF-SUCCESS, [IF-FAILURE])
! 167: # copied autoconf internal _AC_PATH_PROG_FLAVOR_GNU
! 168: m4_define([BIRD_CHECK_PROG_FLAVOR_GNU],
! 169: [# Check for GNU $1
! 170: case `"$1" --version 2>&1` in
! 171: *GNU*)
! 172: $2;;
! 173: m4_ifval([$3],
! 174: [*)
! 175: $3;;
! 176: ])esac
! 177: ])#
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>