summaryrefslogtreecommitdiff
path: root/m4/Makefile.am
blob: 7b6e0d574304e8bf1a3b858c1bc3e5b536a944fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
## Process this file with automake to produce Makefile.in -*-Makefile-*-

##m4-files-begin
EXTRA_DIST = README jm-glibc-io.m4n Makefile.am.in \
afs.m4 \
assert.m4 \
bison.m4 \
c-bs-a.m4 \
check-decl.m4 \
chown.m4 \
codeset.m4 \
d-ino.m4 \
d-type.m4 \
dos.m4 \
error.m4 \
fnmatch.m4 \
fpending.m4 \
fstypename.m4 \
fsusage.m4 \
ftruncate.m4 \
getgroups.m4 \
getline.m4 \
getloadavg.m4 \
glibc.m4 \
glibc21.m4 \
gnu-source.m4 \
group-member.m4 \
iconv.m4 \
inttypes_h.m4 \
isc-posix.m4 \
jm-glibc-io.m4 \
jm-macros.m4 \
jm-mktime.m4 \
jm-winsz1.m4 \
jm-winsz2.m4 \
lchown.m4 \
lcmessage.m4 \
lib-check.m4 \
libintl.m4 \
link-follow.m4 \
ls-mntd-fs.m4 \
lstat.m4 \
malloc.m4 \
mbrtowc.m4 \
mbstate_t.m4 \
mbswidth.m4 \
memcmp.m4 \
nanosleep.m4 \
perl.m4 \
prereq.m4 \
progtest.m4 \
putenv.m4 \
readdir.m4 \
realloc.m4 \
regex.m4 \
rename.m4 \
rmdir-errno.m4 \
search-libs.m4 \
st_dm_mode.m4 \
st_mtim.m4 \
stat.m4 \
strerror_r.m4 \
strftime.m4 \
timespec.m4 \
uintmax_t.m4 \
ulonglong.m4 \
unlink-busy.m4 \
uptime.m4 \
utimbuf.m4 \
utime.m4 \
utimes.m4 \
xstrtoumax.m4
##m4-files-end

Makefile.am: Makefile.am.in
	rm -f $@ $@t
	sed -n '1,/^##m4-files-begin/p' $< > $@t
	((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 $@

all-local: jm-glibc-io.m4