stdio_h.m4 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. # stdio_h.m4 serial 16
  2. dnl Copyright (C) 2007-2009 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. AC_DEFUN([gl_STDIO_H],
  7. [
  8. AC_REQUIRE([gl_STDIO_H_DEFAULTS])
  9. gl_CHECK_NEXT_HEADERS([stdio.h])
  10. dnl No need to create extra modules for these functions. Everyone who uses
  11. dnl <stdio.h> likely needs them.
  12. GNULIB_FPRINTF=1
  13. GNULIB_PRINTF=1
  14. GNULIB_VFPRINTF=1
  15. GNULIB_VPRINTF=1
  16. GNULIB_FPUTC=1
  17. GNULIB_PUTC=1
  18. GNULIB_PUTCHAR=1
  19. GNULIB_FPUTS=1
  20. GNULIB_PUTS=1
  21. GNULIB_FWRITE=1
  22. dnl This ifdef is just an optimization, to avoid performing a configure
  23. dnl check whose result is not used. It does not make the test of
  24. dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant.
  25. m4_ifdef([gl_SIGNAL_SIGPIPE], [
  26. gl_SIGNAL_SIGPIPE
  27. if test $gl_cv_header_signal_h_SIGPIPE != yes; then
  28. REPLACE_STDIO_WRITE_FUNCS=1
  29. AC_LIBOBJ([stdio-write])
  30. fi
  31. ])
  32. ])
  33. AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
  34. [
  35. dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
  36. AC_REQUIRE([gl_STDIO_H_DEFAULTS])
  37. GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
  38. ])
  39. AC_DEFUN([gl_STDIO_H_DEFAULTS],
  40. [
  41. GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
  42. GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
  43. GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
  44. GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX])
  45. GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
  46. GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
  47. GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
  48. GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
  49. GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
  50. GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
  51. GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
  52. GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
  53. GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
  54. GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF])
  55. GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
  56. GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
  57. GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
  58. GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
  59. GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
  60. GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
  61. GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
  62. GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
  63. GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
  64. GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
  65. GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
  66. GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
  67. GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
  68. GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
  69. GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
  70. GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
  71. GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
  72. GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
  73. GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
  74. GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
  75. GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
  76. GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
  77. dnl Assume proper GNU behavior unless another module says otherwise.
  78. REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
  79. REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
  80. REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
  81. REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
  82. REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
  83. REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
  84. HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
  85. REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
  86. HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
  87. REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
  88. REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
  89. HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
  90. REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
  91. HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
  92. REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
  93. HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
  94. REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
  95. HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
  96. REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
  97. REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
  98. REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
  99. HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
  100. REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
  101. REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
  102. HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
  103. REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
  104. REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
  105. REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
  106. REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
  107. HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
  108. REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
  109. HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
  110. HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
  111. REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
  112. REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
  113. ])
  114. dnl Code shared by fseeko and ftello. Determine if large files are supported,
  115. dnl but stdin does not start as a large file by default.
  116. AC_DEFUN([gl_STDIN_LARGE_OFFSET],
  117. [
  118. AC_CACHE_CHECK([whether stdin defaults to large file offsets],
  119. [gl_cv_var_stdin_large_offset],
  120. [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
  121. [[#if defined __SL64 && defined __SCLE /* cygwin */
  122. /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
  123. fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
  124. it is easier to do a version check than building a runtime test. */
  125. # include <cygwin/version.h>
  126. # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
  127. choke me
  128. # endif
  129. #endif]])],
  130. [gl_cv_var_stdin_large_offset=yes],
  131. [gl_cv_var_stdin_large_offset=no])])
  132. ])