diff options
author | Jim Meyering <jim@meyering.net> | 2001-11-17 08:54:26 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-11-17 08:54:26 +0000 |
commit | 6dc7d3dea2243d19361bfad40cb5a29279dd69a0 (patch) | |
tree | bc45493cf0bf2e6623049798e2b5afc5bd73547b /m4 | |
parent | e7389b6a8fffa45a71bc366f05e570d8253f717f (diff) | |
download | coreutils-6dc7d3dea2243d19361bfad40cb5a29279dd69a0.tar.xz |
(UTILS_FUNC_MKSTEMP): New file and macro.
Prompted by a report from Bob Proulx.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/mkstemp.m4 | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/m4/mkstemp.m4 b/m4/mkstemp.m4 new file mode 100644 index 000000000..21bcc381d --- /dev/null +++ b/m4/mkstemp.m4 @@ -0,0 +1,51 @@ +#serial 1 + +# On some systems (e.g., HPUX-10.20), mkstemp has the silly limit that it +# can create no more than 26 files from a given template. Other systems +# lack mkstemp altogether. On either type of system, arrange to use the +# replacement function. +AC_DEFUN([UTILS_FUNC_MKSTEMP], +[dnl + AC_REPLACE_FUNCS(mkstemp) + if test $ac_cv_func_mkstemp = no; then + utils_cv_func_mkstemp_limitations=yes + else + AC_CACHE_CHECK([for mkstemp limitations], + utils_cv_func_mkstemp_limitations, + [ + utils_tmpdir_mkstemp=mkst-$$$$ + # Arrange for deletion-upon-exception of this temporary directory. + ac_clean_files="$ac_clean_files $utils_tmpdir_mkstemp" + mkdir $utils_tmpdir_mkstemp + + AC_TRY_RUN([ +# include <stdlib.h> + int main () + { + int i; + for (i = 0; i < 30; i++) + { + char template[] = "$utils_tmpdir_mkstemp/aXXXXXX"; + if (mkstemp (template) == -1) + exit (1); + } + exit (0); + } + ], + utils_cv_func_mkstemp_limitations=no, + utils_cv_func_mkstemp_limitations=yes, + utils_cv_func_mkstemp_limitations=yes + ) + + rm -rf $utils_tmpdir_mkstemp + ] + ) + fi + + if test $utils_cv_func_mkstemp_limitations = yes; then + AC_LIBOBJ(mkstemp) + AC_LIBOBJ(tempname) + AC_DEFINE(mkstemp, rpl_mkstemp, + [Define to rpl_mkstemp if the replacement function should be used.]) + fi +]) |