X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=Makefile.inc;h=f23381b45893a795423be4037ce9917958be0f94;hb=4282b03a8c212b0e38af1876364be5f332673ce6;hp=05d868936e38d05c1e79bf24078f724f5c0fd1da;hpb=e08536f1d89384f1cda546202bac60d57fc8aba7;p=libc-test diff --git a/Makefile.inc b/Makefile.inc index 05d8689..f23381b 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -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 -D_GNU_SOURCE -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 $(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,$+)