getstr.c getstr.h \
getugroups.c \
group-member.h \
+ gtod.h \
hard-locale.c hard-locale.h \
human.c human.h \
idcache.c \
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
-BUILT_SOURCES = getdate.c lstat.c stat.c
+BUILT_SOURCES = getdate.c lstat.c stat.c unlocked-io.h
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
-DISTCLEANFILES = lstat.c stat.c
+DISTCLEANFILES = lstat.c stat.c unlocked-io.h
-EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin
+EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin unlocked-io.hin
lstat.c: xstat.in
sed \
-e '/@IGNORE@/d' \
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
# avoid installing it.
-all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c
+all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c unlocked-io.h
charset_alias = $(DESTDIR)$(libdir)/charset.alias
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
mv $@-t $@
CLEANFILES = charset.alias ref-add.sed ref-del.sed
+
+###############################################
+
+# FIXME: CAUTION this list is a duplicate of one in ../Makefile.cfg.
+io_functions = \
+ clearerr feof ferror fflush fgets fputc fputs \
+ fread fwrite getc getchar putc putchar
+
+a_z=abcdefghijklmnopqrstuvwxyz
+A_Z=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+unlocked-io.h: $(srcdir)/unlocked-io.hin Makefile.am
+ tmp=t$$$$; \
+ for f in $(io_functions); do \
+ u=`echo $$f|tr $(a_z) $(A_Z)`; \
+ echo "# if HAVE_$${u}_UNLOCKED" ; \
+ echo "# undef $$f" ; \
+ echo "# define $$f(S) $${f}_unlocked (S)" ; \
+ echo '# endif' ; \
+ done > $$tmp; \
+ sed '/^@replace_this@$$/r '$$tmp $(srcdir)/unlocked-io.hin \
+ | sed '/^@replace_this@$$/d' \
+ > $@t; \
+ rm -f $$tmp; \
+ mv $@t $@