]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(unlocked-io.h): New rule.
authorJim Meyering <jim@meyering.net>
Sun, 15 Jul 2001 14:37:50 +0000 (14:37 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 15 Jul 2001 14:37:50 +0000 (14:37 +0000)
($(srcdir)/m4/jm-glibc-io.m4): New rule.

Makefile.cfg

index 9400a350242465c96fe8cff149e71c316cdcf3d1..4a002d5440757a66b9d1f9c6f014291faae64454 100644 (file)
@@ -1,3 +1,4 @@
+# -*- makefile -*-
 ## Customize Makefile.maint.
 
 move_if_change = move-if-change
@@ -19,3 +20,45 @@ wget_files = \
   $(srcdir)/config.sub \
   $(srcdir)/doc/texinfo.tex \
   $(srcdir)/src/ansi2knr.c
+
+###############################################
+
+io_functions = \
+  clearerr feof ferror fflush fgets fputc fputs \
+  fread fwrite getc getchar putc putchar
+unlocked_io_functions = $(patsubst %,%_unlocked,$(io_functions))
+
+comma_separated = $(shell echo $(unlocked_io_functions)|tr -s ' ' ,)
+base_functions = $(patsubst %_unlocked,%,$(unlocked_io_functions))
+
+# This temp file may not be e.g., $@t, since that may be in a read-only
+# directory.  Instead, use a file in the current directory.
+t_io = $(notdir $@)t
+
+# This rule requires GNU make.
+$(srcdir)/m4/jm-glibc-io.m4: $(srcdir)/m4/jm-glibc-io.m4n Makefile.am
+       echo dnl This file is automatically generated from $(notdir $<). \
+         > $(t_io)
+       echo >> $(t_io)
+       sed                                                     \
+         -e 's/@space_separated@/$(unlocked_io_functions)/g'   \
+         -e 's/@comma_separated@/$(comma_separated)/g'         \
+         $< >> $(t_io)
+       move-if-change $(t_io) $@
+
+# This rule requires GNU make.
+unlocked-io.h: unlocked-io.hin Makefile.cfg
+       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 $@