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)
@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 > \
#!/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.