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