* guile-snarf.in: Be sure to exit with an error if CPP does.
authorJim Blandy <jimb@red-bean.com>
Sun, 5 Sep 1999 13:47:23 +0000 (13:47 +0000)
committerJim Blandy <jimb@red-bean.com>
Sun, 5 Sep 1999 13:47:23 +0000 (13:47 +0000)
* Makefile.am (.c.x): Delete the .x file and exit with an error
status if guile-snarf exits with an error status.
* Makefile.in: Regenerated.

libguile/Makefile.am
libguile/Makefile.in
libguile/guile-snarf.in

index b945106..609d093 100644 (file)
@@ -155,7 +155,8 @@ libpath.h: $(srcdir)/Makefile.in  $(top_builddir)/config.status
 
 SUFFIXES = .x
 .c.x:
-       ./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
+       ./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@ \
+       || (rm $@; false)
 
 ## Add -MG to make the .x magic work with auto-dep code.
 MKDEP = gcc -M -MG $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
index 6d4445c..70a804b 100644 (file)
@@ -691,7 +691,8 @@ libpath.h: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        @echo '}' >> libpath.tmp
        @mv libpath.tmp libpath.h
 .c.x:
-       ./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
+       ./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@ \
+       || (rm $@; false)
 
 cpp_err_symbols.c: cpp_err_symbols.in
        $(AWK) -f $(srcdir)/cpp_cnvt.awk < $(srcdir)/cpp_err_symbols.in > \
index b9a9a0c..0a776df 100644 (file)
@@ -1,9 +1,16 @@
 #!/bin/sh
 # Extract the initialization actions for builtin things.
 
+temp="/tmp/snarf.$$"
+trap "rm -f $temp" 0 1 2 15
+
 ## Let the user override the preprocessor autoconf found.
 test -n "${CPP+set}" || CPP="@CPP@"
-${CPP} -DSCM_MAGIC_SNARFER "$@" | grep "^ *% *% *%" | sed -e "s/^ *% *% *%//"
+
+## We must use a temporary file here, instead of a pipe, because we
+## need to know if CPP exits with a non-zero status.
+${CPP} -DSCM_MAGIC_SNARFER "$@" > ${temp} || exit $?
+< ${temp} grep "^ *% *% *%" | sed -e "s/^ *% *% *%//"
 
 ## Apparently, AIX's preprocessor is unhappy if you try to #include an
 ## empty file.