AC_PROG_CXX
AC_PROG_RANLIB
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+
# See if we are building gcc with C++.
# Do this early so setting lang to C++ affects following tests
AC_ARG_ENABLE(build-with-cxx,
# Figure out what compiler warnings we can enable.
# See config/warnings.m4 for details.
-ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings \
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wno-narrowing -Wwrite-strings \
-Wmissing-format-attribute], [warn])
ACX_PROG_CC_WARNING_OPTS([-Wstrict-prototypes -Wmissing-prototypes \
-Wold-style-definition -Wc++-compat], [c_warn])
ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
+# Disable exceptions and RTTI if building with g++
+ACX_PROG_CC_WARNING_OPTS(
+ m4_quote(m4_do([-fno-exceptions -fno-rtti])), [noexception_flags])
+
# Only enable with --enable-werror-always until existing warnings are
# corrected.
ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
if test "$ENABLE_BUILD_WITH_CXX" = "no"; then
ZW_PROG_COMPILER_DEPENDENCIES([CC])
else
+AC_LANG_PUSH([C++])
+AC_COMPILE_IFELSE([[int i;]], [],
+ [AC_MSG_ERROR([C++ compiler missing or inoperational])])
+AC_LANG_POP([C++])
ZW_PROG_COMPILER_DEPENDENCIES([CXX])
fi
AC_HEADER_TIME
ACX_HEADER_STRING
-# AC_CHECK_HEADERS is repeated to work around apparent autoconf 2.59 bug. If
-# AC_CHECK_HEADERS comes after the if clause, the last AC_LANG call gets used,
-# no matter which branch is taken.
-if test "$ENABLE_BUILD_WITH_CXX" = "no"; then
- AC_LANG(C)
- AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
+AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
stdlib.h strings.h string.h sys/file.h unistd.h)
-else
- AC_LANG(C++)
- AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
- stdlib.h strings.h string.h sys/stat.h sys/file.h unistd.h)
-fi
# Checks for typedefs, structures, and compiler characteristics.
+AC_C_BIGENDIAN
AC_C_CONST
AC_C_INLINE
AC_FUNC_OBSTACK
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
-AC_CHECK_TYPE(ssize_t, int)
+AC_TYPE_SSIZE_T
+AC_TYPE_UINTPTR_T
+AC_CHECK_TYPE(ptrdiff_t, int)
AC_STRUCT_TM
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
[Define if <sys/types.h> defines \`uchar'.])
fi
-AM_ICONV
+# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different
+# iconv() prototype.
+AS_IF([test "$ENABLE_BUILD_WITH_CXX" = "yes"],
+ [AC_LANG_PUSH([C++])
+ AM_ICONV
+ AC_LANG_POP([C++])],
+ [AM_ICONV])
# More defines and substitutions.
PACKAGE="$PACKAGE_TARNAME"
x86_64-*-* | \
ia64-*-* | \
hppa*64*-*-* | \
- i[34567]86-*-darwin* | \
- i[34567]86-*-solaris2.1[0-9]* | \
- i[34567]86-w64-mingw* | \
+ i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
mips*-*-* | \
mmix-*-* | \
powerpc*-*-* | \
spu-*-* | \
sh[123456789lbe]*-*-* | sh-*-*)
need_64bit_hwint=yes ;;
- i[34567]86-*-linux*)
- if test "x$enable_targets" = xall; then
- need_64bit_hwint=yes
- else
- need_64bit_hwint=no
- fi
- ;;
*)
need_64bit_hwint=no ;;
esac
[Define to the widest efficient host integer type at least
as wide as the target's size_t type.])
+case $target in
+ i?86-* | x86_64-*)
+ AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))],
+ [AC_DEFINE([HAVE_SSE4], [1],
+ [Define to 1 if you can assemble SSE4 insns.])])
+esac
+
# Output.
AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])