configure.ac 6.9 KB

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