rename
[libc-test] / src / functional / Makefile
diff --git a/src/functional/Makefile b/src/functional/Makefile
new file mode 100644 (file)
index 0000000..642a485
--- /dev/null
@@ -0,0 +1,34 @@
+CFLAGS+=-pipe -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wno-unused-function -Wno-missing-braces
+LDFLAGS+=
+
+SRC=$(sort $(wildcard *.c))
+OBJ=$(SRC:.c=.o)
+DSOOBJ=$(filter %_dso.o,$(OBJ))
+BINOBJ=$(filter-out %_dso.o,$(OBJ))
+DSO=$(DSOOBJ:.o=.so)
+BIN=$(BINOBJ:.o=)
+
+-include ../../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 $(OBJ) $(DSO) $(BIN)
+
+$(OBJ): test.h
+$(DSOOBJ): CFLAGS += -fPIC
+%.o: %.c
+       $(CC) $(CFLAGS) -c -o $@ $< || true
+%.so: %.o
+       $(CC) $(LDFLAGS) -shared -o $@ $< || true
+%: %.o
+       $(CC) $(LDFLAGS) -o $@ $(patsubst %.so,./%.so,$+) || true
+
+dlopen: LDFLAGS+=-ldl -rdynamic
+pthread: LDFLAGS+=-lpthread
+sem: LDFLAGS+=-lpthread -lrt
+strtod_simple: LDFLAGS+=-lm
+tls_align: tls_align_dso.so
+tls_align_dlopen: LDFLAGS+=-ldl
+tls_init: LDFLAGS+=-lpthread