From 319b53dd1c177891990d7436fd89f987abe0d1bc Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Wed, 18 Aug 2010 19:34:46 +0200 Subject: [PATCH] [build] Fix sed portability bug: Don't use '\n' in sed script. Regression introduced 2010-07-22, "[build] Overhaul , cpp symbol extraction/checking". See: * libguile/Makefile.am (.syms.c): Convert one-liner sed script to while-read-echo loop. --- libguile/Makefile.am | 11 ++++++++--- 1 file 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