-src/common/libtest.a: $(filter src/common/%,$(OBJS))
- rm -f $@
- $(AR) rc $@ $^
- $(RANLIB) $@
-
-$(BINS) $(LIBS): src/common/libtest.a
-$(OBJS): src/common/test.h
-
-src/common/mtest.o: src/common/mtest.h
-$(MBINS:%=%.o): src/common/mtest.h
-
-IOBJS:=$(filter src/api/%,$(OBJS))
-src/api/main: $(IOBJS)
-src/api/main.OBJS:=$(IOBJS)
-$(IOBJS):CFLAGS+=-pedantic-errors -Werror -Wno-unused -D_XOPEN_SOURCE=700
-$(IOBJS):CFLAGS+=-DX_PS -DX_TPS -DX_SS
-
-%.o: %.c
- $(CC) $(CFLAGS) $($*.CFLAGS) -c -o $@ $< 2>$@.err || echo BUILDERROR $@
-%.s: %.c
- $(CC) $(CFLAGS) $($*.CFLAGS) -S -o $@ $< || echo BUILDERROR $@
-%.lo: %.c
- $(CC) $(CFLAGS) $($*.CFLAGS) -fPIC -DSHARED -c -o $@ $< 2>$@.err || echo BUILDERROR $@
-%.so: %.lo
- $(CC) -shared $(LDFLAGS) $($@.LDFLAGS) -o $@ $< $($*.LOBJS) $(LDLIBS) $($@.LDLIBS) 2>$@.err || echo BUILDERROR $@
-%-static: %.o
- $(CC) -static $(LDFLAGS) $($@.LDFLAGS) -o $@ $< $($*.OBJS) $(LDLIBS) $($@.LDLIBS) 2>$@.err || echo BUILDERROR $@
-%: %.o
- $(CC) $(LDFLAGS) $($@.LDFLAGS) -o $@ $< $($@.OBJS) $(LDLIBS) $($@.LDLIBS) 2>$@.err || echo BUILDERROR $@
+$(B)/%.o:: src/%.c
+ $(CC) $(CFLAGS) $($*.CFLAGS) -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err
+$(B)/%.s:: src/%.c
+ $(CC) $(CFLAGS) $($*.CFLAGS) -S -o $@ $< || echo BUILDERROR $@; cat $@.err
+$(B)/%.lo:: src/%.c
+ $(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 $@; cat $@.err
+$(B)/%-static.exe: $(B)/%.o
+ $(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 $@; cat $@.ld.err