changeset 3285:704658ef821b

(Makefile.am): Include jm-glibc-io.m4n in emitted definition of EXTRA_DIST. (Makefile.am): Emit the dependency, `all-local: jm-glibc-io.m4' to ensure that the generated file is created/updated whenever the list of $(unlocked_functions) is changed. (jm-glibc-io.m4): New rule. (unlocked-io.h): New rule -- currently unused.
author Jim Meyering <jim@meyering.net>
date Mon, 02 Jul 2001 07:39:33 +0000
parents c2336d671238
children e711acc10c3f
files m4/Makefile.am.in
diffstat 1 files changed, 36 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/m4/Makefile.am.in
+++ b/m4/Makefile.am.in
@@ -6,10 +6,45 @@
 Makefile.am: Makefile.am.in
 	rm -f $@ $@t
 	sed -n '1,/^##m4-files-begin/p' $< > $@t
-	( (echo EXTRA_DIST = README Makefile.am.in | tr '\012' @); \
+	((echo EXTRA_DIST = README jm-glibc-io.m4n Makefile.am.in|tr '\012' @);\
 	  (echo *.m4|tr ' ' @) ) \
 	  |sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \
 	  >> $@t
 	sed -n '/^##m4-files-end/,$$p' $< >> $@t
+	echo >> $@t
+	echo all-local: jm-glibc-io.m4 >> $@t
 	chmod a-w $@t
 	mv $@t $@
+
+unlocked_functions = \
+  clearerr_unlocked feof_unlocked ferror_unlocked \
+  fflush_unlocked fgets_unlocked fputc_unlocked fputs_unlocked \
+  fread_unlocked fwrite_unlocked getc_unlocked getchar_unlocked \
+  putc_unlocked putchar_unlocked
+
+comma_separated = $(shell echo $(unlocked_functions)|tr -s ' ' ,)
+base_functions = $(patsubst %_unlocked,%,$(unlocked_functions))
+jm-glibc-io.m4: jm-glibc-io.m4n Makefile
+	echo 'dnl This file is automatically generated from $<' > $@t
+	echo '' >> $@t
+	sed							\
+	  -e 's/@space_separated@/$(unlocked_functions)/g'	\
+	  -e 's/@comma_separated@/$(comma_separated)/g'		\
+	  $< >> $@t
+	move-if-change $@t $@
+
+unlocked-io.h: unlocked-io.hin Makefile.am.in
+	tmp=t$$$$;							\
+	echo ''						> $$tmp;	\
+	for f in $(base_functions); do					\
+	  u=`echo $$f|tr '[:lower:]' '[:upper:]'`;			\
+	  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" $<				\
+	  | sed "/^@replace_this@$$/d"					\
+	  $< > $@t;							\
+	rm -f $$tmp;							\
+	mv $@t $@