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 106# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different 107# iconv() prototype. 108AC_LANG_PUSH([C++]) 109AM_ICONV 110AC_LANG_POP([C++]) 111 112# More defines and substitutions. 113PACKAGE="$PACKAGE_TARNAME" 114AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define to the name of this package.]) 115AC_SUBST(PACKAGE) 116 117if test "x$enable_nls" != xno; then 118 USED_CATALOGS='$(CATALOGS)' 119else 120 USED_CATALOGS= 121fi 122AC_SUBST(USED_CATALOGS) 123 124AC_ARG_ENABLE(maintainer-mode, 125[ --enable-maintainer-mode enable rules only needed by maintainers],, 126enable_maintainer_mode=no) 127 128if test "x$enable_maintainer_mode" = xno; then 129 MAINT='#' 130else 131 MAINT= 132fi 133AC_SUBST(MAINT) 134 135# Enable expensive internal checks 136is_release= 137if test -f $srcdir/../gcc/DEV-PHASE \ 138 && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then 139 is_release=yes 140fi 141 142AC_ARG_ENABLE(checking, 143[AS_HELP_STRING([[--enable-checking[=LIST]]], 144 [enable expensive run-time checks. With LIST, 145 enable only specific categories of checks. 146 Categories are: yes,no,all,none,release. 147 Flags are: misc,valgrind or other strings])], 148[ac_checking_flags="${enableval}"],[ 149# Determine the default checks. 150if test x$is_release = x ; then 151 ac_checking_flags=yes 152else 153 ac_checking_flags=release 154fi]) 155IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," 156for check in release $ac_checking_flags 157do 158 case $check in 159 # these set all the flags to specific states 160 yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;; 161 no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;; 162 release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;; 163 # these enable particular checks 164 assert) ac_assert_checking=1 ;; 165 misc) ac_checking=1 ;; 166 valgrind) ac_valgrind_checking=1 ;; 167 # accept 168 *) ;; 169 esac 170done 171IFS="$ac_save_IFS" 172 173if test x$ac_checking != x ; then 174 AC_DEFINE(CHECKING_P, 1, 175[Define to 1 if you want more run-time sanity checks.]) 176else 177 AC_DEFINE(CHECKING_P, 0) 178fi 179 180if test x$ac_assert_checking != x ; then 181 AC_DEFINE(ENABLE_ASSERT_CHECKING, 1, 182[Define if you want assertions enabled. This is a cheap check.]) 183fi 184 185if test x$ac_valgrind_checking != x ; then 186 AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1, 187[Define if you want to workaround valgrind (a memory checker) warnings about 188 possible memory leaks because of libcpp use of interior pointers.]) 189fi 190 191AC_ARG_ENABLE(canonical-system-headers, 192[ --enable-canonical-system-headers 193 enable or disable system headers canonicalization], 194[], 195enable_canonical_system_headers=yes) 196if test $enable_canonical_system_headers != no; then 197 AC_DEFINE(ENABLE_CANONICAL_SYSTEM_HEADERS, 198 1, [Define to enable system headers canonicalization.]) 199fi 200 201case $target in 202 i?86-* | x86_64-*) 203 AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))], 204 [AC_DEFINE([HAVE_SSE4], [1], 205 [Define to 1 if you can assemble SSE4 insns.])]) 206esac 207 208# Enable --enable-host-shared. 209AC_ARG_ENABLE(host-shared, 210[AS_HELP_STRING([--enable-host-shared], 211 [build host code as shared libraries])], 212[PICFLAG=-fPIC], [PICFLAG=]) 213AC_SUBST(PICFLAG) 214 215# Enable Intel CET on Intel CET enabled host if jit is enabled. 216GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) 217case x$enable_languages in 218*jit*) 219 ;; 220*) 221 CET_HOST_FLAGS= 222 ;; 223esac 224AC_SUBST(CET_HOST_FLAGS) 225 226AC_ARG_ENABLE(valgrind-annotations, 227[AS_HELP_STRING([--enable-valgrind-annotations], 228 [enable valgrind runtime interaction])], [], 229[enable_valgrind_annotations=no]) 230if test x$enable_valgrind_annotations != xno \ 231 || test x$ac_valgrind_checking != x; then 232 if (test $have_valgrind_h = no \ 233 && test $gcc_cv_header_memcheck_h = no \ 234 && test $gcc_cv_header_valgrind_memcheck_h = no); then 235 AC_MSG_ERROR([*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h]) 236 fi 237 AC_DEFINE(ENABLE_VALGRIND_ANNOTATIONS, 1, 238[Define to get calls to the valgrind runtime enabled.]) 239fi 240 241# Output. 242 243AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1]) 244AC_CONFIG_FILES(Makefile) 245AC_OUTPUT 246