projects
/
libc-test
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1d2a593
)
Makefile clean up and static linking support
author
Szabolcs Nagy
<nsz@port70.net>
Fri, 5 Jul 2013 20:20:54 +0000
(20:20 +0000)
committer
Szabolcs Nagy
<nsz@port70.net>
Fri, 5 Jul 2013 20:20:54 +0000
(20:20 +0000)
src/functional/Makefile
patch
|
blob
|
history
diff --git
a/src/functional/Makefile
b/src/functional/Makefile
index
642a485
..
6b8d61f
100644
(file)
--- 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+=
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))
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=)
DSO=$(DSOOBJ:.o=.so)
BIN=$(BINOBJ:.o=)
+BIN_STATIC=$(NO_DL_OBJ:.o=-static)
+ALL=$(BIN) $(BIN_STATIC) $(DSO)
-include ../../config.mak
-include ../../config.mak
-all: $(
BIN) $(DSO
)
+all: $(
ALL
)
run: 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:
clean:
- rm -f $(OBJ) $(
DSO) $(BIN
)
+ rm -f $(OBJ) $(
ALL
)
$(OBJ): test.h
$(OBJ): test.h
-$(DSOOBJ): CFLAGS
+=
-fPIC
+$(DSOOBJ): CFLAGS
+=
-fPIC
%.o: %.c
%.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $< ||
true
+ $(CC) $(CFLAGS) -c -o $@ $< ||
echo BUILDERROR $@
%.so: %.o
%.so: %.o
- $(CC) $(LDFLAGS) -shared -o $@ $< || true
+ $(CC) -shared $(LDFLAGS) -o $@ $< $(LDLIBS) || echo BUILDERROR $@
+%-static: %.o
+ $(CC) -static $(LDFLAGS) -o $@ $< $(LDLIBS) || echo BUILDERROR $@
%: %.o
%: %.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: 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
+