Lines Matching +full:- +full:- +full:build
1 # Makefile fragment - requires GNU make
3 # Copyright (c) 2019-2021, Arm Limited.
4 # SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
7 B := build/string
10 all-string bench-string check-string install-string clean-string:
15 string-lib-srcs := $(wildcard $(S)/$(ARCH)/*.[cS])
16 string-lib-srcs += $(wildcard $(S)/$(ARCH)/experimental/*.[cS])
17 string-test-srcs := $(wildcard $(S)/test/*.c)
18 string-bench-srcs := $(wildcard $(S)/bench/*.c)
20 string-arch-include-dir := $(wildcard $(S)/$(ARCH))
21 string-arch-includes := $(wildcard $(S)/$(ARCH)/*.h)
22 string-includes := $(patsubst $(S)/%,build/%,$(wildcard $(S)/include/*.h))
24 string-libs := \
25 build/lib/libstringlib.so \
26 build/lib/libstringlib.a \
28 string-tests := \
29 build/bin/test/memcpy \
30 build/bin/test/memmove \
31 build/bin/test/memset \
32 build/bin/test/memchr \
33 build/bin/test/memrchr \
34 build/bin/test/memcmp \
35 build/bin/test/__mtag_tag_region \
36 build/bin/test/__mtag_tag_zero_region \
37 build/bin/test/strcpy \
38 build/bin/test/stpcpy \
39 build/bin/test/strcmp \
40 build/bin/test/strchr \
41 build/bin/test/strrchr \
42 build/bin/test/strchrnul \
43 build/bin/test/strlen \
44 build/bin/test/strnlen \
45 build/bin/test/strncmp
47 string-benches := \
48 build/bin/bench/memcpy \
49 build/bin/bench/memset \
50 build/bin/bench/strlen
52 string-lib-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(string-lib-srcs)))
53 string-test-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(string-test-srcs)))
54 string-bench-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(string-bench-srcs)))
56 string-objs := \
57 $(string-lib-objs) \
58 $(string-lib-objs:%.o=%.os) \
59 $(string-test-objs) \
60 $(string-bench-objs)
62 string-files := \
63 $(string-objs) \
64 $(string-libs) \
65 $(string-tests) \
66 $(string-benches) \
67 $(string-includes) \
69 all-string: $(string-libs) $(string-tests) $(string-benches) $(string-includes)
71 $(string-objs): $(string-includes) $(string-arch-includes)
72 $(string-objs): CFLAGS_ALL += $(string-cflags) -I$(string-arch-include-dir)
74 $(string-test-objs): CFLAGS_ALL += -D_GNU_SOURCE
76 build/lib/libstringlib.so: $(string-lib-objs:%.o=%.os)
77 $(CC) $(CFLAGS_ALL) $(LDFLAGS) -shared -o $@ $^
79 build/lib/libstringlib.a: $(string-lib-objs)
80 rm -f $@
84 build/bin/test/%: $(B)/test/%.o build/lib/libstringlib.a
85 $(CC) $(CFLAGS_ALL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS)
87 build/bin/bench/%: $(B)/bench/%.o build/lib/libstringlib.a
88 $(CC) $(CFLAGS_ALL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS)
90 build/include/%.h: $(S)/include/%.h
93 build/bin/%.sh: $(S)/test/%.sh
96 string-tests-out = $(string-tests:build/bin/test/%=build/string/test/%.out)
98 build/string/test/%.out: build/bin/test/%
102 check-string: $(string-tests-out)
105 bench-string: $(string-benches)
106 $(EMULATOR) build/bin/bench/strlen
107 $(EMULATOR) build/bin/bench/memcpy
108 $(EMULATOR) build/bin/bench/memset
110 install-string: \
111 $(string-libs:build/lib/%=$(DESTDIR)$(libdir)/%) \
112 $(string-includes:build/include/%=$(DESTDIR)$(includedir)/%)
114 clean-string:
115 rm -f $(string-files)
118 .PHONY: all-string bench-string check-string install-string clean-string