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
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
33
46
lib_LTLIBRARIES = \
34
47
libcortex-strings.la
38
51
tests/test-memchr \
40
52
tests/test-memcpy \
42
53
tests/test-memset \
43
54
tests/test-strchr \
44
55
tests/test-strcmp \
45
56
tests/test-strcpy \
59
# Benchmarks and example programs
75
# Libraries used in the benchmarks and examples
89
libcortex_strings_la_SOURCES = \
91
$(alternate_sources) \
92
src/thumb-2/strcpy.c \
93
src/linaro-a9/memchr.s \
94
src/linaro-a9/strchr.s \
95
src/linaro-a9/strlen.s \
96
src/linaro-a9/memset.S
98
libcortex_strings_la_LDFLAGS = -version-info 1:0:0
49
100
# Options for the tests
50
101
tests_cflags = -I$(srcdir)/tests $(AM_CFLAGS)
51
102
tests_ldadd = libcortex-strings.la
52
tests_test_memchr_LDADD = $(tests_ldadd)
53
tests_test_memchr_CFLAGS = $(tests_cflags)
54
tests_test_memcmp_LDADD = $(tests_ldadd)
55
tests_test_memcmp_CFLAGS = $(tests_cflags)
56
103
tests_test_memcpy_LDADD = $(tests_ldadd)
57
104
tests_test_memcpy_CFLAGS = $(tests_cflags)
58
tests_test_memmove_LDADD = $(tests_ldadd)
59
tests_test_memmove_CFLAGS = $(tests_cflags)
60
105
tests_test_memset_LDADD = $(tests_ldadd)
61
106
tests_test_memset_CFLAGS = $(tests_cflags)
62
tests_test_strchr_LDADD = $(tests_ldadd)
63
tests_test_strchr_CFLAGS = $(tests_cflags)
64
107
tests_test_strcmp_LDADD = $(tests_ldadd)
65
108
tests_test_strcmp_CFLAGS = $(tests_cflags)
66
109
tests_test_strcpy_LDADD = $(tests_ldadd)
67
110
tests_test_strcpy_CFLAGS = $(tests_cflags)
68
111
tests_test_strlen_LDADD = $(tests_ldadd)
69
112
tests_test_strlen_CFLAGS = $(tests_cflags)
70
tests_test_strncmp_LDADD = $(tests_ldadd)
71
tests_test_strncmp_CFLAGS = $(tests_cflags)
73
114
TESTS = $(check_PROGRAMS)
88
benchmarks/dhry/dhry_1.c \
89
benchmarks/dhry/dhry_2.c \
90
benchmarks/dhry/dhry.h
92
dhry_CFLAGS = -Dcompiler="\"$(COMPILER)\"" -Doptions="\"$(CFLAGS)\""
93
dhry_LDADD = libcortex-strings.la
95
dhry_native_SOURCES = $(dhry_SOURCES)
96
dhry_native_CFLAGS = $(dhry_CFLAGS)
106
libmulti_a_SOURCES = \
107
benchmarks/multi/harness.c
109
libmulti_a_CFLAGS = -DVERSION=\"$(VERSION)\" $(AM_CFLAGS)
111
## Other architecture independant implementaions
116
# Libraries containing the difference reference versions
117
libbionic_a_SOURCES = \
118
$(neon_bionic_sources) \
119
reference/bionic/memcmp.S \
120
reference/bionic/memset.S \
121
reference/bionic/strcmp.S \
122
reference/bionic/strcpy.S \
123
reference/bionic/strlen.c
125
libbionic_a_CFLAGS = -Wa,-mimplicit-it=thumb
112
127
libbionic_c_a_SOURCES = \
113
128
reference/bionic-c/bcopy.c \
114
129
reference/bionic-c/memchr.c \
134
159
reference/glibc-c/memcopy.h \
135
160
reference/glibc-c/pagecopy.h
162
libnewlib_a_SOURCES = \
163
reference/newlib/memcpy.S \
164
reference/newlib/strcmp.S \
165
reference/newlib/strcpy.c \
166
reference/newlib/strlen.c \
167
reference/newlib/arm_asm.h \
168
reference/newlib/shim.h
137
170
libnewlib_c_a_SOURCES = \
138
171
reference/newlib-c/memchr.c \
139
172
reference/newlib-c/memcmp.c \
145
178
reference/newlib-c/strlen.c \
146
179
reference/newlib-c/shim.h
148
libplain_a_SOURCES = \
149
reference/plain/memset.c \
150
reference/plain/memcpy.c \
151
reference/plain/strcmp.c \
152
reference/plain/strcpy.c
155
try_none_LDADD = libmulti.a -lrt
157
try_this_LDADD = libmulti.a libcortex-strings.la -lrt
158
try_bionic_c_SOURCES =
159
try_bionic_c_LDADD = libmulti.a libbionic-c.a -lrt
160
try_glibc_c_SOURCES =
161
try_glibc_c_LDADD = libmulti.a libglibc-c.a -lrt
162
try_newlib_c_SOURCES =
163
try_newlib_c_LDADD = libmulti.a libnewlib-c.a -lrt
165
try_plain_LDADD = libmulti.a libplain.a -lrt
167
# Architecture specific
172
# Pull in the NEON specific files
174
src/linaro-a9/memcpy-hybrid.S
175
neon_bionic_sources = \
176
reference/bionic/memcpy.S
177
neon_cppflags = -mfpu=neon
180
alternate_sources = \
181
src/linaro-a9/memcpy.S
184
# Benchmarks and example programs
192
# Libraries used in the benchmarks and examples
193
noinst_LIBRARIES += \
201
libcortex_strings_la_SOURCES = \
203
$(alternate_sources) \
204
src/thumb-2/strcpy.c \
205
src/linaro-a9/memchr.S \
206
src/linaro-a9/strchr.S \
207
src/linaro-a9/strlen.S \
208
src/linaro-a9/memset.S
210
# Libraries containing the difference reference versions
211
libbionic_a_SOURCES = \
212
$(neon_bionic_sources) \
213
reference/bionic/memcmp.S \
214
reference/bionic/memset.S \
215
reference/bionic/strcmp.S \
216
reference/bionic/strcpy.S \
217
reference/bionic/strlen.c
219
libbionic_a_CFLAGS = -Wa,-mimplicit-it=thumb
222
reference/csl/memcpy.c \
223
reference/csl/memset.c \
224
reference/csl/arm_asm.h
226
libglibc_a_SOURCES = \
227
reference/glibc/memcpy.S \
228
reference/glibc/memset.S \
229
reference/glibc/strlen.S
231
libnewlib_a_SOURCES = \
232
reference/newlib/memcpy.S \
233
reference/newlib/strcmp.S \
234
reference/newlib/strcpy.c \
235
reference/newlib/strlen.c \
236
reference/newlib/arm_asm.h \
237
reference/newlib/shim.h
239
181
libnewlib_xscale_a_SOURCES = \
240
182
reference/newlib-xscale/memchr.c \
241
183
reference/newlib-xscale/memcpy.c \
246
188
reference/newlib-xscale/strlen.c \
247
189
reference/newlib-xscale/xscale.h
191
libplain_a_SOURCES = \
192
reference/plain/memset.c \
193
reference/plain/memcpy.c \
194
reference/plain/strcmp.c \
195
reference/plain/strcpy.c
197
libmulti_a_SOURCES = \
198
benchmarks/multi/harness.c
200
libmulti_a_CFLAGS = -DVERSION=\"$(VERSION)\" $(AM_CFLAGS)
249
202
# Flags for the benchmark helpers
204
try_none_LDADD = libmulti.a -lrt
206
try_this_LDADD = libmulti.a libcortex-strings.la -lrt
250
207
try_bionic_SOURCES =
251
208
try_bionic_LDADD = libmulti.a libbionic.a -lrt
209
try_bionic_c_SOURCES =
210
try_bionic_c_LDADD = libmulti.a libbionic-c.a -lrt
252
211
try_csl_SOURCES =
253
212
try_csl_LDADD = libmulti.a libcsl.a -lrt
254
213
try_glibc_SOURCES =
255
214
try_glibc_LDADD = libmulti.a libglibc.a -lrt
215
try_glibc_c_SOURCES =
216
try_glibc_c_LDADD = libmulti.a libglibc-c.a -lrt
256
217
try_newlib_SOURCES =
257
218
try_newlib_LDADD = libmulti.a libnewlib.a -lrt
219
try_newlib_c_SOURCES =
220
try_newlib_c_LDADD = libmulti.a libnewlib-c.a -lrt
258
221
try_newlib_xscale_SOURCES =
259
222
try_newlib_xscale_LDADD = libmulti.a libnewlib-xscale.a -lrt
224
try_plain_LDADD = libmulti.a libplain.a -lrt
228
benchmarks/dhry/dhry_1.c \
229
benchmarks/dhry/dhry_2.c \
230
benchmarks/dhry/dhry.h
232
dhry_CFLAGS = -Dcompiler="\"$(COMPILER)\"" -Doptions="\"$(CFLAGS)\""
233
dhry_LDADD = libcortex-strings.la
235
dhry_native_SOURCES = $(dhry_SOURCES)
236
dhry_native_CFLAGS = $(dhry_CFLAGS)
261
238
AM_CPPFLAGS = $(neon_cppflags)
268
libcortex_strings_la_SOURCES = \
269
src/aarch64/memcpy.S \
270
src/aarch64/memmove.S \
271
src/aarch64/memset.S \
276
libcortex_strings_la_LDFLAGS = -version-info 1:0:0
239
AM_CFLAGS = -std=gnu99 -Wall \
280
240
-fno-builtin -fno-stack-protector -U_FORTIFY_SOURCE \
241
-mtune=$(submachine) $(AM_CPPFLAGS)
289
244
tests/hp-timing.h \
290
245
tests/test-string.h \
291
246
tests/test-skeleton.c \
292
scripts/add-license.sh \
296
scripts/plot-align.py \
298
scripts/plot-sizes.py \
299
scripts/plot-top.py \
249
AM_DISTCHECK_CONFIGURE_FLAGS = --host=arm-linux-gnueabi