fix math test gen script
[libc-test] / Makefile.inc
index 69de079..f23381b 100644 (file)
@@ -1,55 +1,26 @@
-# gnu makefile
-# when included in a Makefile it builds *.c unless SRCS are overridden
-
-# default TROOT works from src/*/Makefile
-TROOT ?= ../..
-SRCS ?= $(sort $(wildcard *.c))
-OBJS = $(SRCS:.c=.o)
-
-AR=ar
-RANLIB=ranlib
-
-CFLAGS += -g -D_POSIX_C_SOURCE=200809L -std=c99 -pipe -Wall -Wno-unused-function -Wno-missing-braces
-LDFLAGS += -g -lpthread -lrt -lm
-
--include $(TROOT)/config.mak
-
-CFLAGS += -I$(TROOT)/common
-
-all: test
-
-test: t b
-       ./t
-
+CFLAGS+=-g -pipe -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wno-unused-function -Wno-missing-braces
+LDFLAGS+=-g
+
+SRC=$(sort $(wildcard *.c))
+OBJ=$(SRC:.c=.o)
+DSOOBJ=$(filter %_dso.o,$(OBJ))
+# TODO: fix this hack
+BINOBJ=$(filter-out $(NONBIN),$(filter-out %_dso.o,$(OBJ)))
+DSO=$(DSOOBJ:.o=.so)
+BIN=$(BINOBJ:.o=)
+
+ROOT=../..
+include $(ROOT)/config.mak
+
+all: $(BIN) $(DSO)
+run: all
+       @N=0; for i in $(BIN);do ./$$i || N=$$((N+1)); done; [ "$$N" = 0 ] && echo PASS || echo FAILS: $$N
 clean:
-       rm -f $(OBJS) t t_.o b b_.o tests.a tests.h
-
-.c.o:
-       $(CC) $(CFLAGS) -c -o $@ $<
-
-$(OBJS): $(TROOT)/common/test.h
-
-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,$+)