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
-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' \
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$$$$; \
+ echo > $$tmp; \
+ for b in $(io_functions); do \
+ f=$${b}_unlocked; \
+ u=`echo $$f|tr $(a_z) $(A_Z)`; \
+ echo "# if HAVE_$${u}_UNLOCKED" >> $$tmp; \
+ echo "# undef $$f" >> $$tmp; \
+ echo "# define $$f(S) $${f}_unlocked (S)" >> $$tmp; \
+ echo '#endif' >> $$tmp; \
+ done; \
+ sed "/^@replace_this@$$/r$$tmp" $(srcdir)/unlocked-io.hin \
+ | sed "/^@replace_this@$$/d" \
+ > $@t; \
+ rm -f $$tmp; \
+ mv $@t $@