- rm -f $(OBJS) t t_.o b b_.o tests.a tests.h
-
-.c.o:
- $(CC) $(CFLAGS) -c -o $@ $<
-
-$(OBJS): $(TROOT)/common/test.h $(TROOT)/config.mak
-
-tests.h: $(OBJS)
- nm -f posix $+ |awk ' \
- /^test/ && $$2=="T"{print "T(" $$1 ")"} \
- /^bench/ && $$2=="T"{print "B(" $$1 ")"} \
- ' >tests.h
-
-tests.a: $(OBJS)
- $(AR) rc $@ $+
- $(RANLIB) $@
-
-# TODO: /tmp/t.o ?
-t_.o: $(TROOT)/common/t.c $(TROOT)/common/test.h tests.h
- $(CC) $(CFLAGS) -I. -c -o $@ $<
-
-t: t_.o tests.a
- $(CC) $+ $(LDFLAGS) -o $@
-
-b_.o: $(TROOT)/common/b.c $(TROOT)/common/test.h tests.h
- $(CC) $(CFLAGS) -I. -c -o $@ $<
-
-b: b_.o tests.a
- $(CC) $+ $(LDFLAGS) -lrt -o $@
-
-.PHONY: all clean test
+ rm -f $(OBJ) $(DSO) $(BIN)
+
+$(OBJ): test.h
+$(DSOOBJ): CFLAGS += -fPIC
+%.so: %.o
+ $(CC) $(LDFLAGS) -shared -o $@ $<
+%: %.o
+ $(CC) $(LDFLAGS) -o $@ $(patsubst %.so,./%.so,$+)