configure.ac 5.7 KB

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