1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib) 5AC_CONFIG_SRCDIR(ucnid.h) 6AC_CONFIG_MACRO_DIR(../config) 7AC_CANONICAL_SYSTEM 8 9# Checks for programs. 10AC_PROG_MAKE_SET 11AC_PROG_INSTALL 12AC_PROG_CC 13AC_PROG_CXX 14AC_PROG_RANLIB 15AC_CHECK_TOOL(AR, ar) 16 17AC_USE_SYSTEM_EXTENSIONS 18AC_SYS_LARGEFILE 19 20MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing 21AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal]) 22AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf]) 23AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader]) 24 25if test -z "$ETAGS"; then 26 ETAGS=etags 27fi 28AC_SUBST([ETAGS]) 29 30# Figure out what compiler warnings we can enable. 31# See config/warnings.m4 for details. 32 33ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wno-narrowing -Wwrite-strings \ 34 -Wmissing-format-attribute], [warn]) 35ACX_PROG_CC_WARNING_OPTS([-Wstrict-prototypes -Wmissing-prototypes \ 36 -Wold-style-definition -Wc++-compat], [c_warn]) 37ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long]) 38 39# Disable exceptions and RTTI if building with g++ 40ACX_PROG_CC_WARNING_OPTS( 41 m4_quote(m4_do([-fno-exceptions -fno-rtti])), [noexception_flags]) 42 43# Only enable with --enable-werror-always until existing warnings are 44# corrected. 45ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual]) 46 47# Dependency checking. 48ZW_CREATE_DEPDIR 49AC_LANG_PUSH([C++]) 50AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [], 51 [AC_MSG_ERROR([C++ compiler missing or inoperational])]) 52AC_LANG_POP([C++]) 53ZW_PROG_COMPILER_DEPENDENCIES([CXX]) 54 55# Checks for header files. 56AC_HEADER_TIME 57ACX_HEADER_STRING 58 59AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \ 60 stdlib.h strings.h string.h sys/file.h unistd.h) 61 62# Checks for typedefs, structures, and compiler characteristics. 63AC_C_BIGENDIAN 64AC_C_CONST 65AC_C_INLINE 66AC_FUNC_OBSTACK 67AC_TYPE_OFF_T 68AC_TYPE_SIZE_T 69AC_TYPE_SSIZE_T 70AC_TYPE_UINTPTR_T 71AC_CHECK_TYPE(ptrdiff_t, int) 72AC_TYPE_UINT64_T 73if test x"$ac_cv_c_uint64_t" = x"no"; then 74 AC_MSG_ERROR([uint64_t not found]) 75fi 76AC_STRUCT_TM 77AC_CHECK_SIZEOF(int) 78AC_CHECK_SIZEOF(long) 79define(libcpp_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl 80 ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl 81 fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl 82 fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl 83 putchar_unlocked putc_unlocked) 84AC_CHECK_FUNCS(libcpp_UNLOCKED_FUNCS) 85AC_CHECK_DECLS([abort, asprintf, basename(char *), errno, getopt, vasprintf]) 86AC_CHECK_DECLS(m4_split(m4_normalize(libcpp_UNLOCKED_FUNCS))) 87 88# Checks for library functions. 89AC_FUNC_ALLOCA 90AC_HEADER_STDC 91AM_LANGINFO_CODESET 92ZW_GNU_GETTEXT_SISTER_DIR 93 94AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar, 95[AC_TRY_COMPILE([ 96#include <sys/types.h> 97], 98[if ((uchar *)0) return 0; 99 if (sizeof(uchar)) return 0;], 100ac_cv_type_uchar=yes, ac_cv_type_uchar=no)]) 101if test $ac_cv_type_uchar = yes; then 102 AC_DEFINE(HAVE_UCHAR, 1, 103 [Define if <sys/types.h> defines \`uchar'.]) 104fi 105 106AC_CHECK_SIZEOF(ino_t) 107AC_CHECK_SIZEOF(dev_t) 108 109# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different 110# iconv() prototype. 111AC_LANG_PUSH([C++]) 112AM_ICONV 113AC_LANG_POP([C++]) 114 115# More defines and substitutions. 116PACKAGE="$PACKAGE_TARNAME" 117AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define to the name of this package.]) 118AC_SUBST(PACKAGE) 119 120if test "x$enable_nls" != xno; then 121 USED_CATALOGS='$(CATALOGS)' 122else 123 USED_CATALOGS= 124fi 125AC_SUBST(USED_CATALOGS) 126 127AC_ARG_ENABLE(maintainer-mode, 128[ --enable-maintainer-mode enable rules only needed by maintainers],, 129enable_maintainer_mode=no) 130 131if test "x$enable_maintainer_mode" = xno; then 132 MAINT='#' 133else 134 MAINT= 135fi 136AC_SUBST(MAINT) 137 138# Enable expensive internal checks 139is_release= 140if test -f $srcdir/../gcc/DEV-PHASE \ 141 && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then 142 is_release=yes 143fi 144 145AC_ARG_ENABLE(checking, 146[AS_HELP_STRING([[--enable-checking[=LIST]]], 147 [enable expensive run-time checks. With LIST, 148 enable only specific categories of checks. 149 Categories are: yes,no,all,none,release. 150 Flags are: misc,valgrind or other strings])], 151[ac_checking_flags="${enableval}"],[ 152# Determine the default checks. 153if test x$is_release = x ; then 154 ac_checking_flags=yes 155else 156 ac_checking_flags=release 157fi]) 158IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," 159for check in release $ac_checking_flags 160do 161 case $check in 162 # these set all the flags to specific states 163 yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;; 164 no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;; 165 release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;; 166 # these enable particular checks 167 assert) ac_assert_checking=1 ;; 168 misc) ac_checking=1 ;; 169 valgrind) ac_valgrind_checking=1 ;; 170 # accept 171 *) ;; 172 esac 173done 174IFS="$ac_save_IFS" 175 176if test x$ac_checking != x ; then 177 AC_DEFINE(CHECKING_P, 1, 178[Define to 1 if you want more run-time sanity checks.]) 179else 180 AC_DEFINE(CHECKING_P, 0) 181fi 182 183if test x$ac_assert_checking != x ; then 184 AC_DEFINE(ENABLE_ASSERT_CHECKING, 1, 185[Define if you want assertions enabled. This is a cheap check.]) 186fi 187 188if test x$ac_valgrind_checking != x ; then 189 AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1, 190[Define if you want to workaround valgrind (a memory checker) warnings about 191 possible memory leaks because of libcpp use of interior pointers.]) 192fi 193 194AC_ARG_ENABLE(canonical-system-headers, 195[ --enable-canonical-system-headers 196 enable or disable system headers canonicalization], 197[], 198enable_canonical_system_headers=yes) 199if test $enable_canonical_system_headers != no; then 200 AC_DEFINE(ENABLE_CANONICAL_SYSTEM_HEADERS, 201 1, [Define to enable system headers canonicalization.]) 202fi 203 204case $target in 205 i?86-* | x86_64-*) 206 AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))], 207 [AC_DEFINE([HAVE_SSE4], [1], 208 [Define to 1 if you can assemble SSE4 insns.])]) 209esac 210 211# Enable --enable-host-shared. 212AC_ARG_ENABLE(host-shared, 213[AS_HELP_STRING([--enable-host-shared], 214 [build host code as shared libraries])], 215[PICFLAG=-fPIC], [PICFLAG=]) 216AC_SUBST(PICFLAG) 217 218# Enable Intel CET on Intel CET enabled host if jit is enabled. 219GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) 220case x$enable_languages in 221*jit*) 222 ;; 223*) 224 CET_HOST_FLAGS= 225 ;; 226esac 227AC_SUBST(CET_HOST_FLAGS) 228 229AC_ARG_ENABLE(valgrind-annotations, 230[AS_HELP_STRING([--enable-valgrind-annotations], 231 [enable valgrind runtime interaction])], [], 232[enable_valgrind_annotations=no]) 233if test x$enable_valgrind_annotations != xno \ 234 || test x$ac_valgrind_checking != x; then 235 if (test $have_valgrind_h = no \ 236 && test $gcc_cv_header_memcheck_h = no \ 237 && test $gcc_cv_header_valgrind_memcheck_h = no); then 238 AC_MSG_ERROR([*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h]) 239 fi 240 AC_DEFINE(ENABLE_VALGRIND_ANNOTATIONS, 1, 241[Define to get calls to the valgrind runtime enabled.]) 242fi 243 244# Output. 245 246AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1]) 247AC_CONFIG_FILES(Makefile) 248AC_OUTPUT 249