Libffi.mk revision 3d97a06be8d204ed5df2c5609e1990bc038d9408
1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Copyright 2007 The Android Open Source Project
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Licensed under the Apache License, Version 2.0 (the "License");
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# you may not use this file except in compliance with the License.
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# You may obtain a copy of the License at
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#      http://www.apache.org/licenses/LICENSE-2.0
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# Unless required by applicable law or agreed to in writing, software
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# distributed under the License is distributed on an "AS IS" BASIS,
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# See the License for the specific language governing permissions and
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# limitations under the License.
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# The libffi code is organized primarily by architecture, but at some
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# point OS-specific issues started to creep in. In some cases there
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# are OS-specific source files, in others there are just #ifdefs in
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# the code. We need to generate the appropriate defines and select the
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown# right set of source files for the OS and architecture.
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownLOCAL_C_INCLUDES := \
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	external/libffi/include \
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	external/libffi/$(ffi_os)-$(ffi_arch)
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownifeq ($(ffi_os)-$(ffi_arch),linux-arm)
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  LOCAL_SRC_FILES := src/arm/sysv.S src/arm/ffi.c
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownendif
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownifeq ($(ffi_os)-$(ffi_arch),linux-x86)
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  LOCAL_SRC_FILES := src/x86/ffi.c src/x86/sysv.S
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownendif
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownifeq ($(ffi_os)-$(ffi_arch),darwin-x86)
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  LOCAL_SRC_FILES := src/x86/ffi.c src/x86/darwin.S
35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownendif
36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownifeq ($(LOCAL_SRC_FILES),)
38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  $(info The os/architecture $(ffi_os)-$(ffi_arch) is not supported by libffi.)
39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  LOCAL_SRC_FILES := your-architecture-not-supported-by-ffi-makefile.c
40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownendif
41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownLOCAL_SRC_FILES += \
43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	src/debug.c \
44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	src/java_raw_api.c \
45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	src/prep_cif.c \
46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown        src/raw_api.c \
47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown	src/types.c
48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown