1#
2# SPDX-License-Identifier: BSD-3-Clause
3#
4# Copyright © 2022 Keith Packard
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# 1. Redistributions of source code must retain the above copyright
11#    notice, this list of conditions and the following disclaimer.
12#
13# 2. Redistributions in binary form must reproduce the above
14#    copyright notice, this list of conditions and the following
15#    disclaimer in the documentation and/or other materials provided
16#    with the distribution.
17#
18# 3. Neither the name of the copyright holder nor the names of its
19#    contributors may be used to endorse or promote products derived
20#    from this software without specific prior written permission.
21#
22# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
27# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
33# OF THE POSSIBILITY OF SUCH DAMAGE.
34#
35
36arc64 = cc.get_define('__ARC64__')
37
38srcs_arc32 = [
39    'memcmp-bs-norm.S',
40    'memcmp.S',
41    'memcmp-stub.c',
42    'memcpy-archs.S',
43    'memcpy-bs.S',
44    'memcpy.S',
45    'memcpy-stub.c',
46    'memset-archs.S',
47    'memset-bs.S',
48    'memset.S',
49    'memset-stub.c',
50    'strchr-bs-norm.S',
51    'strchr-bs.S',
52    'strchr.S',
53    'strchr-stub.c',
54    'strcmp-archs.S',
55    'strcmp.S',
56    'strcmp-stub.c',
57    'strcpy-bs-arc600.S',
58    'strcpy-bs.S',
59    'strcpy.S',
60    'strcpy-stub.c',
61    'strlen-bs-norm.S',
62    'strlen-bs.S',
63    'strlen.S',
64    'strlen-stub.c',
65    'strncpy-bs.S',
66    'strncpy.S',
67    'strncpy-stub.c',
68]
69
70srcs_machine = [
71  'setjmp.S',
72]
73
74if arc64 == ''
75  srcs_machine += srcs_arc32
76endif
77
78foreach target : targets
79  value = get_variable('target_' + target)
80  set_variable('lib_machine' + target,
81	       static_library('machine' + target,
82			      srcs_machine,
83			      pic: false,
84			      include_directories: inc,
85			      c_args: value[1] + c_args + arg_fnobuiltin))
86endforeach
87