11
11
# * Neither the name of the Linaro nor the
12
12
# names of its contributors may be used to endorse or promote products
13
13
# derived from this software without specific prior written permission.
15
15
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
16
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
17
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
18
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
19
19
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
20
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
21
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
22
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
27
# Top level Makefile for cortex-strings
29
29
# Used to record the compiler version in the executables
30
30
COMPILER = $(shell $(CC) --version 2>&1 | head -n1)
33
# Pull in the NEON specific files
35
src/linaro-a9/memcpy-hybrid.S
36
neon_bionic_sources = \
37
reference/bionic/memcpy.S
38
neon_cppflags = -mfpu=neon
42
src/linaro-a9/memcpy.S
46
33
lib_LTLIBRARIES = \
47
34
libcortex-strings.la
51
38
tests/test-memchr \
52
40
tests/test-memcpy \
53
42
tests/test-memset \
54
43
tests/test-strchr \
55
44
tests/test-strcmp \
56
45
tests/test-strcpy \
59
# Benchmarks and example programs
50
# Options for the tests
51
tests_cflags = -I$(srcdir)/tests $(AM_CFLAGS)
52
tests_ldadd = libcortex-strings.la
53
tests_test_memchr_LDADD = $(tests_ldadd)
54
tests_test_memchr_CFLAGS = $(tests_cflags)
55
tests_test_memcmp_LDADD = $(tests_ldadd)
56
tests_test_memcmp_CFLAGS = $(tests_cflags)
57
tests_test_memcpy_LDADD = $(tests_ldadd)
58
tests_test_memcpy_CFLAGS = $(tests_cflags)
59
tests_test_memmove_LDADD = $(tests_ldadd)
60
tests_test_memmove_CFLAGS = $(tests_cflags)
61
tests_test_memset_LDADD = $(tests_ldadd)
62
tests_test_memset_CFLAGS = $(tests_cflags)
63
tests_test_strchr_LDADD = $(tests_ldadd)
64
tests_test_strchr_CFLAGS = $(tests_cflags)
65
tests_test_strcmp_LDADD = $(tests_ldadd)
66
tests_test_strcmp_CFLAGS = $(tests_cflags)
67
tests_test_strcpy_LDADD = $(tests_ldadd)
68
tests_test_strcpy_CFLAGS = $(tests_cflags)
69
tests_test_strlen_LDADD = $(tests_ldadd)
70
tests_test_strlen_CFLAGS = $(tests_cflags)
71
tests_test_strncmp_LDADD = $(tests_ldadd)
72
tests_test_strncmp_CFLAGS = $(tests_cflags)
74
TESTS = $(check_PROGRAMS)
60
77
noinst_PROGRAMS = \
89
benchmarks/dhry/dhry_1.c \
90
benchmarks/dhry/dhry_2.c \
91
benchmarks/dhry/dhry.h
93
dhry_CFLAGS = -Dcompiler="\"$(COMPILER)\"" -Doptions="\"$(CFLAGS)\""
94
dhry_LDADD = libcortex-strings.la
96
dhry_native_SOURCES = $(dhry_SOURCES)
97
dhry_native_CFLAGS = $(dhry_CFLAGS)
107
libmulti_a_SOURCES = \
108
benchmarks/multi/harness.c
110
libmulti_a_CFLAGS = -DVERSION=\"$(VERSION)\" $(AM_CFLAGS)
112
## Other architecture independant implementaions
113
libbionic_c_a_SOURCES = \
114
reference/bionic-c/bcopy.c \
115
reference/bionic-c/memchr.c \
116
reference/bionic-c/memcmp.c \
117
reference/bionic-c/memcpy.c \
118
reference/bionic-c/memset.c \
119
reference/bionic-c/strchr.c \
120
reference/bionic-c/strcmp.c \
121
reference/bionic-c/strcpy.c \
122
reference/bionic-c/strlen.c
124
libglibc_c_a_SOURCES = \
125
reference/glibc-c/memchr.c \
126
reference/glibc-c/memcmp.c \
127
reference/glibc-c/memcpy.c \
128
reference/glibc-c/memset.c \
129
reference/glibc-c/strchr.c \
130
reference/glibc-c/strcmp.c \
131
reference/glibc-c/strcpy.c \
132
reference/glibc-c/strlen.c \
133
reference/glibc-c/wordcopy.c \
134
reference/glibc-c/bp-checks.h \
135
reference/glibc-c/memcopy.h \
136
reference/glibc-c/pagecopy.h
138
libnewlib_c_a_SOURCES = \
139
reference/newlib-c/memchr.c \
140
reference/newlib-c/memcmp.c \
141
reference/newlib-c/memcpy.c \
142
reference/newlib-c/memset.c \
143
reference/newlib-c/strchr.c \
144
reference/newlib-c/strcmp.c \
145
reference/newlib-c/strcpy.c \
146
reference/newlib-c/strlen.c \
147
reference/newlib-c/shim.h
149
libplain_a_SOURCES = \
150
reference/plain/memset.c \
151
reference/plain/memcpy.c \
152
reference/plain/strcmp.c \
153
reference/plain/strcpy.c
156
try_none_LDADD = libmulti.a -lrt
158
try_this_LDADD = libmulti.a libcortex-strings.la -lrt
159
try_bionic_c_SOURCES =
160
try_bionic_c_LDADD = libmulti.a libbionic-c.a -lrt
161
try_glibc_c_SOURCES =
162
try_glibc_c_LDADD = libmulti.a libglibc-c.a -lrt
163
try_newlib_c_SOURCES =
164
try_newlib_c_LDADD = libmulti.a libnewlib-c.a -lrt
166
try_plain_LDADD = libmulti.a libplain.a -lrt
168
# Architecture specific
173
# Pull in the NEON specific files
174
neon_bionic_a9_sources = \
175
reference/bionic-a9/memcpy.S \
176
reference/bionic-a9/memset.S
177
neon_bionic_a15_sources = \
178
reference/bionic-a15/memcpy.S \
179
reference/bionic-a15/memset.S
180
fpu_flags = -mfpu=neon
183
fpu_flags = -mfpu=vfp
185
fpu_flags = -msoft-float
189
# Benchmarks and example programs
72
198
# Libraries used in the benchmarks and examples
199
noinst_LIBRARIES += \
83
208
libcortex_strings_la_SOURCES = \
85
$(alternate_sources) \
86
src/thumb-2/strcmp.c \
87
209
src/thumb-2/strcpy.c \
88
src/linaro-a9/memchr.s \
89
src/linaro-a9/strchr.s \
90
src/linaro-a9/strlen.s \
91
src/linaro-a9/memset.S
93
# Options for the tests
94
tests_cflags = -I$(srcdir)/tests $(AM_CFLAGS)
95
tests_ldadd = libcortex-strings.la
96
tests_test_memcpy_LDADD = $(tests_ldadd)
97
tests_test_memcpy_CFLAGS = $(tests_cflags)
98
tests_test_memset_LDADD = $(tests_ldadd)
99
tests_test_memset_CFLAGS = $(tests_cflags)
100
tests_test_strcmp_LDADD = $(tests_ldadd)
101
tests_test_strcmp_CFLAGS = $(tests_cflags)
102
tests_test_strcpy_LDADD = $(tests_ldadd)
103
tests_test_strcpy_CFLAGS = $(tests_cflags)
104
tests_test_strlen_LDADD = $(tests_ldadd)
105
tests_test_strlen_CFLAGS = $(tests_cflags)
107
TESTS = $(check_PROGRAMS)
210
src/linaro-a9/memchr.S \
211
src/linaro-a9/strchr.S \
212
src/thumb-2/strlen.S \
213
src/linaro-a9/memset.S \
214
src/linaro-a9/memcpy.S
109
216
# Libraries containing the difference reference versions
110
libbionic_a_SOURCES = \
111
$(neon_bionic_sources) \
112
reference/bionic/memchr.c \
113
reference/bionic/memset.S \
114
reference/bionic/strchr.c \
115
reference/bionic/strcmp.c \
116
reference/bionic/strcpy.c \
117
reference/bionic/strlen.c
119
libbionic_a_CFLAGS = -Wa,-mimplicit-it=thumb
217
libbionic_a9_a_SOURCES = \
218
$(neon_bionic_a9_sources) \
219
reference/bionic-a9/memcmp.S \
220
reference/bionic-a9/strcmp.S \
221
reference/bionic-a9/strcpy.S \
222
reference/bionic-a9/strlen.c
224
libbionic_a9_a_CFLAGS = -Wa,-mimplicit-it=thumb
226
libbionic_a15_a_SOURCES = \
227
$(neon_bionic_a15_sources) \
228
reference/bionic-a15/memcmp.S \
229
reference/bionic-a15/strcmp.S \
230
reference/bionic-a15/strcpy.S \
231
reference/bionic-a15/strlen.c
233
libbionic_a15_a_CFLAGS = -Wa,-mimplicit-it=thumb
121
235
libcsl_a_SOURCES = \
122
236
reference/csl/memcpy.c \
179
273
try_newlib_LDADD = libmulti.a libnewlib.a -lrt
180
274
try_newlib_xscale_SOURCES =
181
275
try_newlib_xscale_LDADD = libmulti.a libnewlib-xscale.a -lrt
183
try_plain_LDADD = libmulti.a libplain.a -lrt
187
benchmarks/dhry/dhry_1.c \
188
benchmarks/dhry/dhry_2.c \
189
benchmarks/dhry/dhry.h
191
dhry_CFLAGS = -Dcompiler="\"$(COMPILER)\"" -Doptions="\"$(CFLAGS)\""
192
dhry_LDADD = libcortex-strings.la
194
dhry_native_SOURCES = $(dhry_SOURCES)
195
dhry_native_CFLAGS = $(dhry_CFLAGS)
197
AM_CPPFLAGS = $(neon_cppflags)
198
AM_CFLAGS = -std=gnu99 -Wall \
277
AM_CPPFLAGS = $(fpu_flags)
278
AM_LDFLAGS = $(fpu_flags)
285
libcortex_strings_la_SOURCES = \
286
src/aarch64/memcmp.S \
287
src/aarch64/memcpy.S \
288
src/aarch64/memmove.S \
289
src/aarch64/memset.S \
290
src/aarch64/strcmp.S \
291
src/aarch64/strlen.S \
292
src/aarch64/strncmp.S \
293
src/aarch64/strnlen.S
297
libcortex_strings_la_LDFLAGS = -version-info 1:0:0
199
301
-fno-builtin -fno-stack-protector -U_FORTIFY_SOURCE \
200
-mtune=$(submachine) $(AM_CPPFLAGS)
203
310
tests/hp-timing.h \
204
311
tests/test-string.h \
205
312
tests/test-skeleton.c \
313
scripts/add-license.sh \
317
scripts/plot-align.py \
319
scripts/plot-sizes.py \
320
scripts/plot-top.py \
208
add_on_dist = add-on-dist
209
add_on_dest = $(add_on_dist)/$(PACKAGE)/sysdeps/arm/eabi/arm/$(submachine)
210
add_on_dirs = thumb-2 $(submachine) $(neon_dirs)
213
$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.c)) \
214
$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.S)) \
215
$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.h))
218
rm -rf $(add_on_dist)
219
mkdir -p $(add_on_dest)
220
cp -f $(add_on_src) $(add_on_dest)
221
python $(srcdir)/scripts/fixup.py GLIBC $(add_on_dest)/*
222
tar cf $(PACKAGE).tar -C $(add_on_dist) .