1c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# Copyright 2007 The Android Open Source Project
2c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein#
3c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# Licensed under the Apache License, Version 2.0 (the "License");
4c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# you may not use this file except in compliance with the License.
5c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# You may obtain a copy of the License at
6c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein#
7c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein#      http://www.apache.org/licenses/LICENSE-2.0
8c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein#
9c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# Unless required by applicable law or agreed to in writing, software
10c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# distributed under the License is distributed on an "AS IS" BASIS,
11c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# See the License for the specific language governing permissions and
13c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# limitations under the License.
14c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
15c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# The libffi code is organized primarily by architecture, but at some
16c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# point OS-specific issues started to creep in. In some cases there
17c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# are OS-specific source files, in others there are just #ifdefs in
18c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# the code. We need to generate the appropriate defines and select the
19c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein# right set of source files for the OS and architecture.
20c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
21c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan BornsteinLOCAL_C_INCLUDES := \
22c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein	external/libffi/include \
23c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein	external/libffi/$(ffi_os)-$(ffi_arch)
24c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
25c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinifeq ($(ffi_os)-$(ffi_arch),linux-arm)
26c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein  LOCAL_SRC_FILES := src/arm/sysv.S src/arm/ffi.c
27c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinendif
28c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
2958578f9d73af6adf65ca0e46fb6116cfb395c98fElliott Hughesifeq ($(ffi_os)-$(ffi_arch),linux-mips)
3058578f9d73af6adf65ca0e46fb6116cfb395c98fElliott Hughes  LOCAL_SRC_FILES += src/mips/ffi.c src/mips/o32.S
31c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinendif
32c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
3358578f9d73af6adf65ca0e46fb6116cfb395c98fElliott Hughesifeq ($(ffi_os)-$(ffi_arch),linux-x86)
3458578f9d73af6adf65ca0e46fb6116cfb395c98fElliott Hughes  LOCAL_SRC_FILES := src/x86/ffi.c src/x86/sysv.S
355dea54fd57265ce037ac94055b9f94a45558b39eThe Android Open Source Projectendif
365dea54fd57265ce037ac94055b9f94a45558b39eThe Android Open Source Project
37c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinifeq ($(ffi_os)-$(ffi_arch),darwin-x86)
38c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein  LOCAL_SRC_FILES := src/x86/ffi.c src/x86/darwin.S
39c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinendif
40c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
41c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinifeq ($(LOCAL_SRC_FILES),)
42c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein  $(info The os/architecture $(ffi_os)-$(ffi_arch) is not supported by libffi.)
43c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein  LOCAL_SRC_FILES := your-architecture-not-supported-by-ffi-makefile.c
44c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornsteinendif
45c2b1dd7a596d1accbc3fa0cfea5f96062ec44606Dan Bornstein
463d97a06be8d204ed5df2c5609e1990bc038d9408Dan BornsteinLOCAL_SRC_FILES += \
473d97a06be8d204ed5df2c5609e1990bc038d9408Dan Bornstein	src/debug.c \
483d97a06be8d204ed5df2c5609e1990bc038d9408Dan Bornstein	src/java_raw_api.c \
493d97a06be8d204ed5df2c5609e1990bc038d9408Dan Bornstein	src/prep_cif.c \
503d97a06be8d204ed5df2c5609e1990bc038d9408Dan Bornstein        src/raw_api.c \
513d97a06be8d204ed5df2c5609e1990bc038d9408Dan Bornstein	src/types.c
52