xref: /isa-l/erasure_code/Makefile.am (revision 22ec5c7469da5a39d3178e79b20df5f3eb450d7c)
1########################################################################
2#  Copyright(c) 2011-2017 Intel Corporation All rights reserved.
3#
4#  Redistribution and use in source and binary forms, with or without
5#  modification, are permitted provided that the following conditions
6#  are met:
7#    * Redistributions of source code must retain the above copyright
8#      notice, this list of conditions and the following disclaimer.
9#    * Redistributions in binary form must reproduce the above copyright
10#      notice, this list of conditions and the following disclaimer in
11#      the documentation and/or other materials provided with the
12#      distribution.
13#    * Neither the name of Intel Corporation nor the names of its
14#      contributors may be used to endorse or promote products derived
15#      from this software without specific prior written permission.
16#
17#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28########################################################################
29
30lsrc         += erasure_code/ec_base.c
31
32lsrc_base_aliases += erasure_code/ec_base_aliases.c
33
34lsrc_x86_64  += \
35		erasure_code/ec_highlevel_func.c \
36		erasure_code/gf_vect_mul_sse.asm \
37		erasure_code/gf_vect_mul_avx.asm \
38		erasure_code/gf_vect_dot_prod_sse.asm  \
39		erasure_code/gf_vect_dot_prod_avx.asm \
40		erasure_code/gf_vect_dot_prod_avx2.asm \
41		erasure_code/gf_2vect_dot_prod_sse.asm \
42		erasure_code/gf_3vect_dot_prod_sse.asm \
43		erasure_code/gf_4vect_dot_prod_sse.asm \
44		erasure_code/gf_5vect_dot_prod_sse.asm \
45		erasure_code/gf_6vect_dot_prod_sse.asm \
46		erasure_code/gf_2vect_dot_prod_avx.asm \
47		erasure_code/gf_3vect_dot_prod_avx.asm \
48		erasure_code/gf_4vect_dot_prod_avx.asm \
49		erasure_code/gf_5vect_dot_prod_avx.asm \
50		erasure_code/gf_6vect_dot_prod_avx.asm \
51		erasure_code/gf_2vect_dot_prod_avx2.asm \
52		erasure_code/gf_3vect_dot_prod_avx2.asm \
53		erasure_code/gf_4vect_dot_prod_avx2.asm \
54		erasure_code/gf_5vect_dot_prod_avx2.asm \
55		erasure_code/gf_6vect_dot_prod_avx2.asm \
56		erasure_code/gf_vect_mad_sse.asm \
57		erasure_code/gf_2vect_mad_sse.asm \
58		erasure_code/gf_3vect_mad_sse.asm \
59		erasure_code/gf_4vect_mad_sse.asm \
60		erasure_code/gf_5vect_mad_sse.asm \
61		erasure_code/gf_6vect_mad_sse.asm \
62		erasure_code/gf_vect_mad_avx.asm \
63		erasure_code/gf_2vect_mad_avx.asm \
64		erasure_code/gf_3vect_mad_avx.asm \
65		erasure_code/gf_4vect_mad_avx.asm \
66		erasure_code/gf_5vect_mad_avx.asm \
67		erasure_code/gf_6vect_mad_avx.asm \
68		erasure_code/gf_vect_mad_avx2.asm \
69		erasure_code/gf_2vect_mad_avx2.asm \
70		erasure_code/gf_3vect_mad_avx2.asm \
71		erasure_code/gf_4vect_mad_avx2.asm \
72		erasure_code/gf_5vect_mad_avx2.asm \
73		erasure_code/gf_6vect_mad_avx2.asm \
74		erasure_code/ec_multibinary.asm
75
76#if HAVE_AVX512
77lsrc_x86_64  += \
78		erasure_code/gf_vect_dot_prod_avx512.asm \
79		erasure_code/gf_2vect_dot_prod_avx512.asm \
80		erasure_code/gf_3vect_dot_prod_avx512.asm \
81		erasure_code/gf_4vect_dot_prod_avx512.asm \
82		erasure_code/gf_vect_mad_avx512.asm \
83		erasure_code/gf_2vect_mad_avx512.asm \
84		erasure_code/gf_3vect_mad_avx512.asm \
85		erasure_code/gf_4vect_mad_avx512.asm
86
87lsrc_x86_32  += \
88		erasure_code/ec_highlevel_func.c \
89		erasure_code/ec_multibinary.asm \
90		erasure_code/gf_vect_dot_prod_avx.asm \
91		erasure_code/gf_2vect_dot_prod_avx.asm \
92		erasure_code/gf_3vect_dot_prod_avx.asm \
93		erasure_code/gf_4vect_dot_prod_avx.asm \
94		erasure_code/gf_vect_dot_prod_sse.asm \
95		erasure_code/gf_2vect_dot_prod_sse.asm \
96		erasure_code/gf_3vect_dot_prod_sse.asm \
97		erasure_code/gf_4vect_dot_prod_sse.asm \
98		erasure_code/gf_vect_dot_prod_avx2.asm \
99		erasure_code/gf_2vect_dot_prod_avx2.asm \
100		erasure_code/gf_3vect_dot_prod_avx2.asm \
101		erasure_code/gf_4vect_dot_prod_avx2.asm
102
103unit_tests32 += erasure_code/erasure_code_base_test \
104		erasure_code/erasure_code_test \
105		erasure_code/gf_vect_mul_test \
106		erasure_code/gf_vect_mul_base_test \
107		erasure_code/gf_vect_dot_prod_base_test \
108		erasure_code/gf_vect_dot_prod_test
109
110perf_tests32 += erasure_code/gf_vect_mul_perf \
111		erasure_code/gf_vect_dot_prod_perf \
112		erasure_code/erasure_code_perf \
113		erasure_code/erasure_code_base_perf \
114		erasure_code/gf_vect_dot_prod_1tbl
115
116src_include += -I $(srcdir)/erasure_code
117extern_hdrs  += include/erasure_code.h \
118		include/gf_vect_mul.h
119
120other_src    += erasure_code/ec_base.h \
121		include/multibinary.asm \
122		include/reg_sizes.asm
123
124check_tests  += erasure_code/gf_vect_mul_test \
125		erasure_code/erasure_code_test \
126		erasure_code/gf_inverse_test \
127		erasure_code/erasure_code_update_test
128
129unit_tests   += \
130		erasure_code/gf_vect_mul_base_test \
131		erasure_code/gf_vect_dot_prod_base_test \
132		erasure_code/gf_vect_dot_prod_test \
133		erasure_code/gf_vect_mad_test \
134		erasure_code/erasure_code_base_test
135
136perf_tests   += erasure_code/gf_vect_mul_perf \
137		erasure_code/gf_vect_dot_prod_perf \
138		erasure_code/gf_vect_dot_prod_1tbl \
139		erasure_code/gf_vect_mad_perf \
140		erasure_code/erasure_code_perf \
141		erasure_code/erasure_code_base_perf \
142		erasure_code/erasure_code_update_perf
143
144other_tests  += \
145		erasure_code/gen_rs_matrix_limits \
146		erasure_code/gf_2vect_dot_prod_sse_test \
147		erasure_code/gf_3vect_dot_prod_sse_test \
148		erasure_code/gf_4vect_dot_prod_sse_test \
149		erasure_code/gf_5vect_dot_prod_sse_test \
150		erasure_code/gf_6vect_dot_prod_sse_test
151
152other_src    += include/test.h \
153		include/types.h
154