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