Newer
Older
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib)
AC_CONFIG_SRCDIR(ucnid.h)
AC_CANONICAL_SYSTEM
# Checks for programs.
AC_PROG_CXX
Ian Lance Taylor
committed
AC_USE_SYSTEM_EXTENSIONS
Paolo Bonzini
committed
MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal])
AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
if test -z "$ETAGS"; then
ETAGS=etags
fi
AC_SUBST([ETAGS])
# Figure out what compiler warnings we can enable.
# See config/warnings.m4 for details.
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])
Michael Matz
committed
# 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])
Joern Rennecke
committed
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [],
Joern Rennecke
committed
[AC_MSG_ERROR([C++ compiler missing or inoperational])])
AC_LANG_POP([C++])
ZW_PROG_COMPILER_DEPENDENCIES([CXX])
# Checks for header files.
AC_HEADER_TIME
ACX_HEADER_STRING
Ian Lance Taylor
committed
AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
stdlib.h strings.h string.h sys/file.h unistd.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_FUNC_OBSTACK
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINTPTR_T
AC_CHECK_TYPE(ptrdiff_t, int)
AC_TYPE_UINT64_T
if test x"$ac_cv_c_uint64_t" = x"no"; then
AC_MSG_ERROR([uint64_t not found])
fi
AC_STRUCT_TM
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
define(libcpp_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
putchar_unlocked putc_unlocked)
AC_CHECK_FUNCS(libcpp_UNLOCKED_FUNCS)
Ralf Wildenhues
committed
AC_CHECK_DECLS([abort, asprintf, basename(char *), errno, getopt, vasprintf])
AC_CHECK_DECLS(m4_split(m4_normalize(libcpp_UNLOCKED_FUNCS)))
# Checks for library functions.
AC_FUNC_ALLOCA
AC_HEADER_STDC
AM_LANGINFO_CODESET
ZW_GNU_GETTEXT_SISTER_DIR
AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
[AC_TRY_COMPILE([
#include <sys/types.h>
],
[if ((uchar *)0) return 0;
if (sizeof(uchar)) return 0;],
ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
if test $ac_cv_type_uchar = yes; then
AC_DEFINE(HAVE_UCHAR, 1,
[Define if <sys/types.h> defines \`uchar'.])
fi
AC_CHECK_SIZEOF(ino_t)
AC_CHECK_SIZEOF(dev_t)
# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different
# iconv() prototype.
Diego Novillo
committed
AC_LANG_PUSH([C++])
AM_ICONV
AC_LANG_POP([C++])
Paolo Bonzini
committed
# More defines and substitutions.
Paolo Bonzini
committed
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define to the name of this package.])
AC_SUBST(PACKAGE)
if test "x$enable_nls" != xno; then
USED_CATALOGS='$(CATALOGS)'
else
USED_CATALOGS=
fi
AC_SUBST(USED_CATALOGS)
AC_ARG_ENABLE(maintainer-mode,
[ --enable-maintainer-mode enable rules only needed by maintainers],,
enable_maintainer_mode=no)
if test "x$enable_maintainer_mode" = xno; then
MAINT='#'
else
MAINT=
fi
AC_SUBST(MAINT)
Jakub Jelinek
committed
# Enable expensive internal checks
is_release=
if test -f $srcdir/../gcc/DEV-PHASE \
&& test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
is_release=yes
fi
Jakub Jelinek
committed
AC_ARG_ENABLE(checking,
[AS_HELP_STRING([[--enable-checking[=LIST]]],
[enable expensive run-time checks. With LIST,
enable only specific categories of checks.
Categories are: yes,no,all,none,release.
Flags are: misc,valgrind or other strings])],
[ac_checking_flags="${enableval}"],[
# Determine the default checks.
if test x$is_release = x ; then
ac_checking_flags=yes
else
ac_checking_flags=release
fi])
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
for check in release $ac_checking_flags
do
case $check in
# these set all the flags to specific states
yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
Jakub Jelinek
committed
# these enable particular checks
assert) ac_assert_checking=1 ;;
Jakub Jelinek
committed
misc) ac_checking=1 ;;
valgrind) ac_valgrind_checking=1 ;;
# accept
*) ;;
esac
done
IFS="$ac_save_IFS"
if test x$ac_checking != x ; then
AC_DEFINE(CHECKING_P, 1,
[Define to 1 if you want more run-time sanity checks.])
else
AC_DEFINE(CHECKING_P, 0)
if test x$ac_assert_checking != x ; then
AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
[Define if you want assertions enabled. This is a cheap check.])
fi
Jakub Jelinek
committed
if test x$ac_valgrind_checking != x ; then
AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
[Define if you want to workaround valgrind (a memory checker) warnings about
possible memory leaks because of libcpp use of interior pointers.])
fi
AC_ARG_ENABLE(canonical-system-headers,
[ --enable-canonical-system-headers
enable or disable system headers canonicalization],
[],
enable_canonical_system_headers=yes)
if test $enable_canonical_system_headers != no; then
AC_DEFINE(ENABLE_CANONICAL_SYSTEM_HEADERS,
1, [Define to enable system headers canonicalization.])
fi
Richard Henderson
committed
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
# Enable --enable-host-shared.
AC_ARG_ENABLE(host-shared,
[AS_HELP_STRING([--enable-host-shared],
[build host code as shared libraries])],
[PICFLAG=-fPIC], [PICFLAG=])
# Enable Intel CET on Intel CET enabled host if jit is enabled.
GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
case x$enable_languages in
*jit*)
;;
*)
CET_HOST_FLAGS=
;;
esac
AC_SUBST(CET_HOST_FLAGS)
Bernhard Reutner-Fischer
committed
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
dnl # an if statement. This was the source of very frustrating bugs
dnl # in converting to autoconf 2.5x!
AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
# It is certainly possible that there's valgrind but no valgrind.h.
# GCC relies on making annotations so we must have both.
AC_MSG_CHECKING(for VALGRIND_DISCARD in <valgrind/memcheck.h>)
AC_PREPROC_IFELSE([AC_LANG_SOURCE(
[[#include <valgrind/memcheck.h>
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#endif]])],
[gcc_cv_header_valgrind_memcheck_h=yes],
[gcc_cv_header_valgrind_memcheck_h=no])
AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
AC_PREPROC_IFELSE([AC_LANG_SOURCE(
[[#include <memcheck.h>
#ifndef VALGRIND_DISCARD
#error VALGRIND_DISCARD not defined
#endif]])],
[gcc_cv_header_memcheck_h=yes],
[gcc_cv_header_memcheck_h=no])
AC_MSG_RESULT($gcc_cv_header_memcheck_h)
if test $gcc_cv_header_valgrind_memcheck_h = yes; then
AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
[Define if valgrind's valgrind/memcheck.h header is installed.])
fi
if test $gcc_cv_header_memcheck_h = yes; then
AC_DEFINE(HAVE_MEMCHECK_H, 1,
[Define if valgrind's memcheck.h header is installed.])
fi
AC_ARG_ENABLE(valgrind-annotations,
[AS_HELP_STRING([--enable-valgrind-annotations],
[enable valgrind runtime interaction])], [],
[enable_valgrind_annotations=no])
if test x$enable_valgrind_annotations != xno \
|| test x$ac_valgrind_checking != x; then
if (test $have_valgrind_h = no \
&& test $gcc_cv_header_memcheck_h = no \
&& test $gcc_cv_header_valgrind_memcheck_h = no); then
Bernhard Reutner-Fischer
committed
AC_MSG_ERROR([*** valgrind annotations requested, but])
AC_MSG_ERROR([*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h])
fi
AC_DEFINE(ENABLE_VALGRIND_ANNOTATIONS, 1,
[Define to get calls to the valgrind runtime enabled.])
fi
Paolo Bonzini
committed
# Output.
AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
AC_CONFIG_FILES(Makefile)
AC_OUTPUT