[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
proper use of AC_LIBOBJ, fflush and fseeko
From: |
Bruno Haible |
Subject: |
proper use of AC_LIBOBJ, fflush and fseeko |
Date: |
Fri, 6 May 2011 00:25:03 +0200 |
User-agent: |
KMail/1.9.9 |
We learned in [1] that it doesn't generally work to use AC_LIBOBJ of a
file in module X from within the m4 macros of module Y.
Eric agreed [2] that this is "sane".
The first fix in this direction: fflush vs. fseeko. In the mentioned
situation, where 'fclose' and 'fseeko' are imported in lib/ but 'fflush'
is only imported in tests/, it will fix the error message
"missing file gnulib/tests/fseeko.c".
[1] http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00174.html
[2] http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00176.html
2011-05-05 Bruno Haible <address@hidden>
fflush, fseeko: Respect rules for use of AC_LIBOBJ.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): New macro, extracted from
gl_FUNC_FFLUSH.
(gl_FUNC_FFLUSH): Use it.
(gl_REPLACE_FFLUSH): Don't invoke gl_REPLACE_FSEEKO.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Invoke gl_FUNC_FFLUSH_STDIN and
gl_REPLACE_FSEEKO here.
--- m4/fflush.m4.orig Fri May 6 00:20:18 2011
+++ m4/fflush.m4 Fri May 6 00:12:31 2011
@@ -1,4 +1,4 @@
-# fflush.m4 serial 9
+# fflush.m4 serial 10
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
@@ -12,6 +12,18 @@
AC_DEFUN([gl_FUNC_FFLUSH],
[
+ gl_FUNC_FFLUSH_STDIN
+ if test $gl_cv_func_fflush_stdin = no; then
+ gl_REPLACE_FFLUSH
+ gl_REPLACE_FCLOSE
+ fi
+])
+
+dnl Determine whether fflush works on input streams.
+dnl Sets gl_cv_func_fflush_stdin.
+
+AC_DEFUN([gl_FUNC_FFLUSH_STDIN],
+[
AC_CACHE_CHECK([whether fflush works on input streams],
[gl_cv_func_fflush_stdin],
[echo hello world > conftest.txt
@@ -59,10 +71,6 @@
gl_cv_func_fflush_stdin=no])
rm conftest.txt
])
- if test $gl_cv_func_fflush_stdin = no; then
- gl_REPLACE_FFLUSH
- gl_REPLACE_FCLOSE
- fi
])
AC_DEFUN([gl_REPLACE_FFLUSH],
@@ -71,7 +79,6 @@
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
REPLACE_FFLUSH=1
gl_PREREQ_FFLUSH
- gl_REPLACE_FSEEKO
])
# Prerequisites of lib/fflush.c.
--- m4/fseeko.m4.orig Fri May 6 00:20:18 2011
+++ m4/fseeko.m4 Fri May 6 00:12:49 2011
@@ -1,4 +1,4 @@
-# fseeko.m4 serial 11
+# fseeko.m4 serial 12
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -23,6 +23,12 @@
gl_REPLACE_FSEEKO
fi
fi
+ m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+ gl_FUNC_FFLUSH_STDIN
+ if test $gl_cv_func_fflush_stdin = no; then
+ gl_REPLACE_FSEEKO
+ fi
+ ])
])
dnl Tests whether fseeko is available.
--
In memoriam Peter van Pels <http://en.wikipedia.org/wiki/Peter_van_Pels>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- proper use of AC_LIBOBJ, fflush and fseeko,
Bruno Haible <=