case "$host_cpu" in
# All following Intels are considered 32-bit CPUs.
i?86)
+ # All CPUs of today are considered i386 and i486 compatible */
AC_DEFINE([SILC_I386], [], [SILC_I386])
AC_DEFINE([SILC_I486], [], [SILC_I486])
cpu_i386=true
fi
# Check for specific CPU features
+ SILC_CPU_FLAG(mmx, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
SILC_CPU_FLAG(sse2, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
- SILC_CPU_FLAG(sse3, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(pni, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
;;
# Intel IA-64, 64-bit CPU (not x86_64 compatible)
cpu_ia64=true
# Check for specific CPU features
+ SILC_CPU_FLAG(mmx, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
SILC_CPU_FLAG(sse2, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
- SILC_CPU_FLAG(sse3, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(pni, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
;;
# AMD/Intel x86_64, 64-bit CPU
cpu_x86_64=true
# Check for specific CPU features
+ SILC_CPU_FLAG(mmx, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
SILC_CPU_FLAG(sse2, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
- SILC_CPU_FLAG(sse3, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
+ SILC_CPU_FLAG(pni, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
+ SILC_CPU_FLAG(sse4, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
;;
# PowerPC, 32-bit and 64-bit CPUs
AC_C_CONST
# Set some compiler options based on CPU
-if test x$x_have_cpu_sse2 = xtrue; then
- SILC_ADD_CFLAGS(-msse2)
-fi
-if test x$x_have_cpu_sse3 = xtrue; then
- SILC_ADD_CFLAGS(-msse3)
-fi
-if test x$x_have_cpu_ssse3 = xtrue; then
- SILC_ADD_CFLAGS(-mssse3)
+if test "x$CC" = "xicc"; then
+ # ICC flags
+ if test x$x_have_cpu_sse2 = xtrue; then
+ SILC_ADD_CFLAGS(-axW)
+ fi
+ if test x$x_have_cpu_sse3 = xtrue; then
+ SILC_ADD_CFLAGS(-axP)
+ fi
+ if test x$x_have_cpu_ssse3 = xtrue; then
+ SILC_ADD_CFLAGS(-axT)
+ fi
+ if test x$x_have_cpu_sse4 = xtrue; then
+ SILC_ADD_CFLAGS(-axS)
+ fi
+else
+ # Other compilers
+ if test x$x_have_cpu_sse2 = xtrue; then
+ SILC_ADD_CFLAGS(-msse2)
+ fi
+ if test x$x_have_cpu_pni = xtrue; then
+ SILC_ADD_CFLAGS(-msse3)
+ fi
+ if test x$x_have_cpu_ssse3 = xtrue; then
+ SILC_ADD_CFLAGS(-mssse3)
+ fi
+ if test x$x_have_cpu_sse4 = xtrue; then
+ SILC_ADD_CFLAGS(-msse3)
+ fi
fi
__SILC_HAVE_PTHREAD=""
# More header checking
#
-AC_CHECK_HEADERS(unistd.h string.h getopt.h errno.h fcntl.h assert.h)
+AC_CHECK_HEADERS(unistd.h string.h errno.h fcntl.h assert.h)
AC_CHECK_HEADERS(sys/types.h sys/stat.h sys/time.h stddef.h)
AC_CHECK_HEADERS(netinet/in.h netinet/tcp.h xti.h netdb.h sys/resource.h)
AC_CHECK_HEADERS(pwd.h grp.h termcap.h paths.h)
AC_CHECK_FUNC(socket, [],
AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket")
)
+AC_CHECK_FUNC(clock_gettime, [],
+ [
+ AC_CHECK_LIB(rt, clock_gettime,
+ [ LIBS="$LIBS -lrt"
+ AC_DEFINE([HAVE_CLOCK_GETTIME], [], [HAVE_CLOCK_GETTIME])])
+ ])
AC_CHECK_FUNCS(gethostname gethostbyaddr getservbyname getservbyport)
AC_CHECK_FUNCS(poll select listen bind shutdown close connect setsockopt)
AC_CHECK_FUNCS(setrlimit time ctime utime gettimeofday getrusage)
# lib/contrib conditionals
#
-AC_CHECK_HEADER(regex.h,
- [
- AC_DEFINE([HAVE_REGEX_H], [], [HAVE_REGEX_H])
- have_regex=1
- ], have_regex=0
-)
-AM_CONDITIONAL(HAVE_REGEX, test x$have_regex = x1)
-
AC_CHECK_FUNC(getopt_long,
[
AC_DEFINE([HAVE_GETOPT_LONG], [], [HAVE_GETOPT_LONG])
], have_getopt_long=0
)
-AC_CHECK_FUNC(getopt,
- [
- AC_DEFINE([HAVE_GETOPT], [], [HAVE_GETOPT])
- have_getopt=1
- ], have_getopt=0
-)
-
##
## Enable/disable checking
##
if test x$want_asm = xtrue; then
AC_PATH_PROG([NASM], [nasm], [no])
if test "x$NASM" != "xno"; then
- SILC_ASSEMBLER="$NASM -O2 -felf"
+ if test x$cpu_x86_64 = xtrue; then
+ SILC_ASSEMBLER="$NASM -O2 -felf64"
+ else
+ SILC_ASSEMBLER="$NASM -O2 -felf"
+ fi
have_assembler=true
fi
AC_PATH_PROG([YASM], [yasm], [no])
if test "x$YASM" != "xno"; then
- SILC_ASSEMBLER="$YASM -Xgnu -felf"
+ if test x$cpu_x86_64 = xtrue; then
+ SILC_ASSEMBLER="$YASM -Xgnu -felf64"
+ else
+ SILC_ASSEMBLER="$YASM -Xgnu -felf"
+ fi
have_assembler=true
fi
fi
;;
esac
- # Intel C++ Compiler needs -restrict
+ # Intel C++ Compiler flags
if test "x$CC" = "xicc"; then
SILC_ADD_CFLAGS(-restrict)
+ SILC_ADD_CFLAGS(-finline-functions)
+
+ # Don't define __GNUC__ except for system includes
+ SILC_ADD_CFLAGS(-gcc-sys)
fi
fi
LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
fi
fi
+
#else SILC_DIST_TOOLKIT
LDFLAGS="-L\$(silc_top_srcdir)/lib $LDFLAGS"
#endif SILC_DIST_TOOLKIT
esac
# Check for threads
- AC_CHECK_FUNC(pthread_create)
+ AC_CHECK_FUNCS(pthread_create pthread_key_create pthread_once)
# Check for read/write locks
AC_CHECK_FUNC(pthread_rwlock_init,