From: Szabolcs Nagy Date: Fri, 5 Jul 2013 20:20:54 +0000 (+0000) Subject: Makefile clean up and static linking support X-Git-Url: http://nsz.repo.hu/git/?p=libc-test;a=commitdiff_plain;h=054f472f08451a54dc68b0b96ac12bcd3d37a33c Makefile clean up and static linking support --- diff --git a/src/functional/Makefile b/src/functional/Makefile index 642a485..6b8d61f 100644 --- a/src/functional/Makefile +++ b/src/functional/Makefile @@ -1,34 +1,50 @@ CFLAGS+=-pipe -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wno-unused-function -Wno-missing-braces LDFLAGS+= +LDLIBS+= SRC=$(sort $(wildcard *.c)) OBJ=$(SRC:.c=.o) DSOOBJ=$(filter %_dso.o,$(OBJ)) BINOBJ=$(filter-out %_dso.o,$(OBJ)) +NO_DL_OBJ=$(filter-out %dlopen.o,$(BINOBJ)) DSO=$(DSOOBJ:.o=.so) BIN=$(BINOBJ:.o=) +BIN_STATIC=$(NO_DL_OBJ:.o=-static) +ALL=$(BIN) $(BIN_STATIC) $(DSO) -include ../../config.mak -all: $(BIN) $(DSO) +all: $(ALL) run: all - @N=0; for i in $(BIN);do ./$$i || N=$$((N+1)); done; [ "$$N" = 0 ] && echo PASS || echo FAILS: $$N + @N=0; A=0; for i in $(BIN) $(BIN_STATIC);do \ + A=$$((A+1)); ./$$i || { N=$$((N+1)); echo FAIL $$i; } \ + done; \ + [ "$$N" = 0 ] && echo PASS || echo FAILS: $$N/$$A clean: - rm -f $(OBJ) $(DSO) $(BIN) + rm -f $(OBJ) $(ALL) $(OBJ): test.h -$(DSOOBJ): CFLAGS += -fPIC +$(DSOOBJ): CFLAGS+=-fPIC %.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< || true + $(CC) $(CFLAGS) -c -o $@ $< || echo BUILDERROR $@ %.so: %.o - $(CC) $(LDFLAGS) -shared -o $@ $< || true + $(CC) -shared $(LDFLAGS) -o $@ $< $(LDLIBS) || echo BUILDERROR $@ +%-static: %.o + $(CC) -static $(LDFLAGS) -o $@ $< $(LDLIBS) || echo BUILDERROR $@ %: %.o - $(CC) $(LDFLAGS) -o $@ $(patsubst %.so,./%.so,$+) || true + $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) || echo BUILDERROR $@ -dlopen: LDFLAGS+=-ldl -rdynamic -pthread: LDFLAGS+=-lpthread -sem: LDFLAGS+=-lpthread -lrt -strtod_simple: LDFLAGS+=-lm +dlopen: LDLIBS+=-ldl -rdynamic +pthread pthread-static: LDLIBS+=-lpthread +sem sem-static: LDLIBS+=-lpthread -lrt +strtod_simple strtod_simple-static: LDLIBS+=-lm +tgmath tgmath-static: LDLIBS+=-lm +tls_align: LDLIBS+=./tls_align_dso.so tls_align: tls_align_dso.so -tls_align_dlopen: LDFLAGS+=-ldl -tls_init: LDFLAGS+=-lpthread +# make bug: tls_align target specific flags are also set for tls_align_dso.so when both target is built +tls_align_dso.so: LDLIBS= +tls_align-static: LDLIBS+=tls_align_dso.o +tls_align-static: tls_align_dso.o +tls_align_dlopen: LDLIBS+=-ldl +tls_init tls_init-static: LDLIBS+=-lpthread +