X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=configure.ad;h=3244e3786b8962bd6746ab7decd1bf3cb4f40f36;hp=f88c59c7ff5d9d1729d75a310aca42d0492fc582;hb=e0bbbcc41edc732a66c55d26a56002f907fdaaf4;hpb=40f8443d8d3a6577336ee66d18e04d9ac4d956bb diff --git a/configure.ad b/configure.ad index f88c59c7..3244e378 100644 --- a/configure.ad +++ b/configure.ad @@ -3,7 +3,7 @@ # # Author: Pekka Riikonen # -# Copyright (C) 2000 - 2005 Pekka Riikonen +# Copyright (C) 2000 - 2006 Pekka Riikonen # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,6 +44,25 @@ case "$target" in ;; esac +# Get CPU +case "$host_cpu" in + i386) + AC_DEFINE([SILC_I386], [], [SILC_I386]) + ;; + i?86) + AC_DEFINE([SILC_I486], [], [SILC_I486]) + ;; + x86_64) + AC_DEFINE([SILC_X86_64], [], [SILC_X86_64]) + ;; + powerpc*) + AC_DEFINE([SILC_POWERPC], [], [SILC_POWERPC]) + ;; + ia64) + AC_DEFINE([SILC_IA64], [], [SILC_IA64]) + ;; +esac + # Control compiler optimizations CFLAGS=`echo $CFLAGS | sed 's/-O[ 0123456789s]*//g'` @@ -277,6 +296,109 @@ AC_ARG_ENABLE(asm, want_asm=true ]) +## +## va_copy checks +## +va_copy=false +AC_MSG_CHECKING(for va_copy) +AC_TRY_COMPILE( + [ + #include + #include + ], + [ + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + va_copy(cp, va); + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [ + AC_DEFINE([HAVE_VA_COPY], [], [HAVE_VA_COPY]) + AC_MSG_RESULT(yes) + va_copy=true + ], + [ + AC_MSG_RESULT(no) + va_copy=false + ] +) + +if test x$va_copy = xfalse; then + AC_MSG_CHECKING(for __va_copy) + AC_TRY_COMPILE( + [ + #include + #include + ], + [ + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + __va_copy(cp, va); + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [ + AC_DEFINE([HAVE___VA_COPY], [], [HAVE___VA_COPY]) + AC_MSG_RESULT(yes) + va_copy=true + ], + [ + AC_MSG_RESULT(no) + va_copy=false + ] + ) +fi + +if test x$va_copy = xfalse; then + AC_RUN_IFELSE( + [ + #include + #include + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + cp = va; + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [va_copy=false], + [ + AC_DEFINE([SILC_VA_COPY_ARRAY], [], [SILC_VA_COPY_ARRAY]) + ], + [va=copy=false] + ) +fi + ## ## Compiler and compiler flag checks ##