~linaro-toolchain-dev/cortex-strings/trunk

14 by Michael Hope
Changed all occurances of cortexcpu to cortex-strings
1
# Top level Makefile for cortex-strings
9 by Michael Hope
Added comments. General tidy up.
2
3
# Used to record the compiler version in the executables
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
4
COMPILER = $(shell $(CC) --version 2>&1 | head -n1)
5
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
6
if WITH_NEON
7
# Pull in the NEON specific files
8
neon_sources = \
9
	src/neon/memcpy.S \
10
	src/neon/memset.S
11
neon_bionic_sources = \
12
	reference/bionic/memcpy.S
13
neon_cppflags = -mfpu=neon
14
neon_dirs = neon
15
endif
16
9 by Michael Hope
Added comments. General tidy up.
17
# The main library
7 by Michael Hope
Pulled in the routines and packaged them up.
18
lib_LTLIBRARIES = \
14 by Michael Hope
Changed all occurances of cortexcpu to cortex-strings
19
	libcortex-strings.la
7 by Michael Hope
Pulled in the routines and packaged them up.
20
9 by Michael Hope
Added comments. General tidy up.
21
# Test suite
22
check_PROGRAMS = \
22 by Michael Hope
Added tests for memchr and strchr from GLIBC. Added a note on the routines and where they come from.
23
	tests/test-memchr \
9 by Michael Hope
Added comments. General tidy up.
24
	tests/test-memcpy \
25
	tests/test-memset \
22 by Michael Hope
Added tests for memchr and strchr from GLIBC. Added a note on the routines and where they come from.
26
	tests/test-strchr \
9 by Michael Hope
Added comments. General tidy up.
27
	tests/test-strcmp \
28
	tests/test-strcpy \
29
	tests/test-strlen
30
31
# Benchmarks and example programs
32
noinst_PROGRAMS = \
33
	dhry \
10 by Michael Hope
Added a native version of dhry to show the difference.
34
	dhry-native \
12 by Michael Hope
Added a rule to build the GLIBC add-on.
35
	try-none \
27 by Michael Hope
Changed 'all' to 'this' in the Makefile names for the cortex-string routines. More natural...
36
	try-this \
9 by Michael Hope
Added comments. General tidy up.
37
	try-bionic \
38
	try-csl \
39
	try-glibc \
40
	try-newlib \
41
	try-plain
42
43
# Libraries used in the benchmarks and examples
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
44
noinst_LIBRARIES = \
45
	libbionic.a \
46
	libcsl.a \
47
	libglibc.a \
48
	libnewlib.a \
49
	libplain.a \
50
	libmulti.a
51
9 by Michael Hope
Added comments. General tidy up.
52
# Main library
14 by Michael Hope
Changed all occurances of cortexcpu to cortex-strings
53
libcortex_strings_la_SOURCES = \
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
54
	$(neon_sources) \
9 by Michael Hope
Added comments. General tidy up.
55
	src/thumb-2/strcmp.c \
56
	src/thumb-2/strcpy.c \
18 by Michael Hope
Added the new routines into the Makefile.
57
	src/linaro-a9/memchr.s \
58
	src/linaro-a9/strchr.s \
59
	src/linaro-a9/strlen.s
9 by Michael Hope
Added comments. General tidy up.
60
61
# Options for the tests
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
62
tests_cflags = -I$(srcdir)/tests $(AM_CFLAGS)
63
tests_ldadd = libcortex-strings.la
64
tests_test_memcpy_LDADD = $(tests_ldadd)
65
tests_test_memcpy_CFLAGS = $(tests_cflags)
66
tests_test_memset_LDADD = $(tests_ldadd)
67
tests_test_memset_CFLAGS = $(tests_cflags)
68
tests_test_strcmp_LDADD = $(tests_ldadd)
69
tests_test_strcmp_CFLAGS = $(tests_cflags)
70
tests_test_strcpy_LDADD = $(tests_ldadd)
71
tests_test_strcpy_CFLAGS = $(tests_cflags)
72
tests_test_strlen_LDADD = $(tests_ldadd)
73
tests_test_strlen_CFLAGS = $(tests_cflags)
9 by Michael Hope
Added comments. General tidy up.
74
75
TESTS = $(check_PROGRAMS)
76
77
# Libraries containing the difference reference versions
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
78
libbionic_a_SOURCES = \
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
79
	$(neon_bionic_sources) \
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
80
	reference/bionic/memcmp16.S \
81
	reference/bionic/strlen.c \
82
	reference/bionic/memset.S \
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
83
	reference/bionic/memcmp.S
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
84
20 by Michael Hope
Merged Dave's build issue fixes. Shifted the implicit-it to just the library that needs it.
85
libbionic_a_CFLAGS = -Wa,-mimplicit-it=thumb
86
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
87
libcsl_a_SOURCES = \
88
	reference/csl/memcpy.c \
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
89
	reference/csl/memset.c \
90
	reference/csl/arm_asm.h
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
91
92
libglibc_a_SOURCES = \
93
	reference/glibc/memmove.S \
94
	reference/glibc/memset.S \
95
	reference/glibc/strlen.S \
27 by Michael Hope
Changed 'all' to 'this' in the Makefile names for the cortex-string routines. More natural...
96
	reference/glibc/memcpy.S \
97
	reference/glibc/memchr.c \
98
	reference/glibc/strchr.c
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
99
100
libnewlib_a_SOURCES = \
101
	reference/newlib/strcmp.c \
102
	reference/newlib/strlen.c \
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
103
	reference/newlib/strcpy.c \
104
	reference/newlib/arm_asm.h
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
105
106
libplain_a_SOURCES = \
107
	reference/plain/memset.c \
108
	reference/plain/memcpy.c \
109
	reference/plain/strcmp.c \
110
	reference/plain/strcpy.c
111
112
libmulti_a_SOURCES = \
113
	benchmarks/multi/harness.c
114
12 by Michael Hope
Added a rule to build the GLIBC add-on.
115
libmulti_a_CFLAGS = -DVERSION=\"$(VERSION)\" $(AM_CFLAGS)
9 by Michael Hope
Added comments. General tidy up.
116
117
# Flags for the benchmark helpers
12 by Michael Hope
Added a rule to build the GLIBC add-on.
118
try_none_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
119
try_none_LDADD = libmulti.a -lrt
27 by Michael Hope
Changed 'all' to 'this' in the Makefile names for the cortex-string routines. More natural...
120
try_this_SOURCES =
121
try_this_LDADD = libmulti.a libcortex-strings.la -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
122
try_bionic_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
123
try_bionic_LDADD = libmulti.a libbionic.a -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
124
try_csl_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
125
try_csl_LDADD = libmulti.a libcsl.a -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
126
try_glibc_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
127
try_glibc_LDADD = libmulti.a libglibc.a -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
128
try_newlib_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
129
try_newlib_LDADD = libmulti.a libnewlib.a -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
130
try_plain_SOURCES =
17.1.1 by Dr. David Alan Gilbert
Fix link (-l at end of line) and assembly (implicit it in bionic code)
131
try_plain_LDADD = libmulti.a libplain.a -lrt
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
132
9 by Michael Hope
Added comments. General tidy up.
133
# Good 'ol Dhrystone
134
dhry_SOURCES = \
135
	benchmarks/dhry/dhry_1.c \
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
136
	benchmarks/dhry/dhry_2.c \
137
	benchmarks/dhry/dhry.h
9 by Michael Hope
Added comments. General tidy up.
138
8 by Michael Hope
Added a README. Re-factored the build into a top level Makefile.
139
dhry_CFLAGS = -Dcompiler="\"$(COMPILER)\"" -Doptions="\"$(CFLAGS)\""
14 by Michael Hope
Changed all occurances of cortexcpu to cortex-strings
140
dhry_LDADD = libcortex-strings.la
10 by Michael Hope
Added a native version of dhry to show the difference.
141
142
dhry_native_SOURCES = $(dhry_SOURCES)
143
dhry_native_CFLAGS = $(dhry_CFLAGS)
7 by Michael Hope
Pulled in the routines and packaged them up.
144
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
145
AM_CPPFLAGS = $(neon_cppflags)
23 by Michael Hope
Bump the version number to show that its from bzr. Change the default CPU to the A9. Tune for the given CPU.
146
AM_CFLAGS = -std=gnu99 -Wall -mtune=$(submachine) $(AM_CPPFLAGS)
11 by Michael Hope
Added GLIBC add-on support
147
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
148
EXTRA_DIST = \
149
	tests/hp-timing.h \
150
	tests/test-string.h \
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
151
	tests/test-skeleton.c \
152
	autogen.sh
14.1.1 by Michael Hope
Fixed up the Makefile so a 'make dist' includes everything required.
153
11 by Michael Hope
Added GLIBC add-on support
154
add_on_dist = add-on-dist
155
add_on_dest = $(add_on_dist)/$(PACKAGE)/sysdeps/arm/eabi/arm/$(submachine)
16 by Michael Hope
Added autogen.sh. Tidied up the NEON configure rules using AM_CONDITIONAL. Made make distcheck pass.
156
add_on_dirs = thumb-2 $(submachine) $(neon_dirs)
157
11 by Michael Hope
Added GLIBC add-on support
158
add_on_src = \
159
	$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.c)) \
160
	$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.S)) \
161
	$(wildcard $(add_on_dirs:%=$(srcdir)/src/%/*.h))
162
163
add-on:
164
	rm -rf $(add_on_dist)
165
	mkdir -p $(add_on_dest)
166
	cp -f $(add_on_src) $(add_on_dest)
167
	python $(srcdir)/scripts/fixup.py GLIBC $(add_on_dest)/*
168
	tar cf $(PACKAGE).tar -C $(add_on_dist) .