fgetwc may clobber errno when the result is not WEOF
[libc-test] / Makefile
index 822fb52..e786499 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ LOBJS:=$(SRCS:src/%.c=$(B)/%.lo)
 DIRS:=$(patsubst src/%/,%,$(sort $(dir $(SRCS))))
 BDIRS:=$(DIRS:%=$(B)/%)
 NAMES:=$(SRCS:src/%.c=%)
-CFLAGS:=-Isrc/common -I$(B)/common
+CFLAGS:=-I$(B)/common -Isrc/common
 LDLIBS:=$(B)/common/libtest.a
 AR = $(CROSS_COMPILE)ar
 RANLIB = $(CROSS_COMPILE)ranlib
@@ -102,7 +102,12 @@ $(BDIRS):
        mkdir -p $@
 
 $(B)/common/options.h: src/common/options.h.in
-       $(CC) -E - <$< | sed -e '1,/optiongroups_unistd_end/d' -e '/^#/d' -e '/^[[:space:]]*$$/d' -e 's/^/#define /' >$@
+       $(CC) -E - <$< | awk ' \
+               /optiongroups_unistd_end/ {s=1; next} \
+               !s || !NF || /^#/ {next} \
+               !a {a=$$1; if(NF==1)next} \
+               {print "#define "a" "$$NF; a=""}' >$@.tmp
+       mv $@.tmp $@
 
 $(B)/common/mtest.o: src/common/mtest.h
 $(math.OBJS): src/common/mtest.h
@@ -122,17 +127,17 @@ $(B)/REPORT:
        cat $^ |tee $@
 
 $(B)/%.o:: src/%.c
-       $(CC) $(CFLAGS) $($*.CFLAGS) -c -o $@ $< 2>$@.err || echo BUILDERROR $@
+       $(CC) $(CFLAGS) $($*.CFLAGS) -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err
 $(B)/%.s:: src/%.c
-       $(CC) $(CFLAGS) $($*.CFLAGS) -S -o $@ $< || echo BUILDERROR $@
+       $(CC) $(CFLAGS) $($*.CFLAGS) -S -o $@ $< || echo BUILDERROR $@; cat $@.err
 $(B)/%.lo:: src/%.c
-       $(CC) $(CFLAGS) $($*.CFLAGS) -fPIC -DSHARED -c -o $@ $< 2>$@.err || echo BUILDERROR $@
+       $(CC) $(CFLAGS) $($*.CFLAGS) -fPIC -DSHARED -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err
 $(B)/%.so: $(B)/%.lo
-       $(CC) -shared $(LDFLAGS) $($*.so.LDFLAGS) -o $@ $< $($*.so.LOBJS) $(LDLIBS) $($*.so.LDLIBS) 2>$@.err || echo BUILDERROR $@
+       $(CC) -shared $(LDFLAGS) $($*.so.LDFLAGS) -o $@ $< $($*.so.LOBJS) $(LDLIBS) $($*.so.LDLIBS) 2>$@.err || echo BUILDERROR $@; cat $@.err
 $(B)/%-static.exe: $(B)/%.o
-       $(CC) -static $(LDFLAGS) $($*-static.LDFLAGS) -o $@ $< $($*-static.OBJS) $(LDLIBS) $($*-static.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@
+       $(CC) -static $(LDFLAGS) $($*-static.LDFLAGS) -o $@ $< $($*-static.OBJS) $(LDLIBS) $($*-static.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
 $(B)/%.exe: $(B)/%.o
-       $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $< $($*.OBJS) $(LDLIBS) $($*.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@
+       $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $< $($*.OBJS) $(LDLIBS) $($*.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
 
 %.o.err: %.o
        touch $@
@@ -143,7 +148,7 @@ $(B)/%.exe: $(B)/%.o
 %.ld.err: %.exe
        touch $@
 %.err: %.exe
-       $(RUN_TEST) ./$< >$@ || true
+       $(RUN_TEST) $< >$@ || true
 
 .PHONY: all run clean cleanall