summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThien-Thi Nguyen <ttn@gnuvola.org>2010-08-18 19:34:46 +0200
committerThien-Thi Nguyen <ttn@gnuvola.org>2010-08-18 19:48:12 +0200
commit319b53dd1c177891990d7436fd89f987abe0d1bc (patch)
tree644fdb3cb4fb10ffa5e5ec9369ba42522845a71b
parentb405cdb4c5ad31888a0a54b6fd98b466bf711a66 (diff)
downloadguile-319b53dd1c177891990d7436fd89f987abe0d1bc.tar.gz
[build] Fix sed portability bug: Don't use '\n' in sed script.
Regression introduced 2010-07-22, "[build] Overhaul <errno.h>, <signal.h> cpp symbol extraction/checking". See: <http://autobuild.josefsson.org/guile/log-201008181002653292000.txt> * libguile/Makefile.am (.syms.c): Convert one-liner sed script to while-read-echo loop.
-rw-r--r--libguile/Makefile.am11
1 files changed, 8 insertions, 3 deletions
diff --git a/libguile/Makefile.am b/libguile/Makefile.am
index f12c11b56..fbc1efd04 100644
--- a/libguile/Makefile.am
+++ b/libguile/Makefile.am
@@ -721,10 +721,15 @@ MKDEP = gcc -M -MG $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS)
# #ifdef SYMBOL
# scm_c_define ("SYMBOL", scm_from_int (SYMBOL));
# #endif
-# writing output to foo.c.
+# writing output to foo.c. We use a while-read loop instead of a
+# one-line sed script because some seds (e.g., FreeBSD) don't read
+# '\n' as a newline (like GNU sed does). Sad, but true.
.syms.c:
- sed 's/.*/#ifdef &\nscm_c_define ("&", scm_from_int (&));\n#endif/' \
- $< > $@T
+ cat $< | while read sym ; do \
+ echo "#ifdef $$sym" ; \
+ echo "scm_c_define (\"$$sym\", scm_from_int ($$sym));" ; \
+ echo "#endif" ; \
+ done > $@T
mv $@T $@
# Write $(srcdir)/cpp-{E,SIG}.syms.NEW if there are any not-yet-seen