OSDN Git Service

Remove host build rules for libffi, and no longer build it for x86
authorDan Bornstein <danfuzz@android.com>
Tue, 20 Oct 2009 20:15:08 +0000 (13:15 -0700)
committerDan Bornstein <danfuzz@android.com>
Tue, 20 Oct 2009 20:15:08 +0000 (13:15 -0700)
device targets.

The new recommendation for libffi usage is: Libffi is fine to use as a
means of bootstrapping your device build for a new architecture, but
you probably want to replace it with custom code before you ship. As
for a host build, if you need it (which isn't actually that likely),
you should use the libffi that comes with your platform or build it as
a normal library (e.g., download it and then "./configure; make
install").

Change-Id: I710daa136a2cacc4f95cdf6b5fd60a3d3c072df5

Android.mk
Libffi.mk
testsuite/Android.mk

index 773023f..2352581 100644 (file)
@@ -23,43 +23,25 @@ LOCAL_PATH:= $(call my-dir)
 # Build rules for the target.
 #
 
-# We only build ffi for non-arm targets.
+# We only build ffi at all for non-arm, non-x86 targets.
 ifneq ($(TARGET_ARCH),arm)
+    ifneq ($(TARGET_ARCH),x86)
 
-    include $(CLEAR_VARS)
+       include $(CLEAR_VARS)
 
-    ffi_arch := $(TARGET_ARCH)
-    ffi_os := $(TARGET_OS)
+       ffi_arch := $(TARGET_ARCH)
+       ffi_os := $(TARGET_OS)
 
-    include $(LOCAL_PATH)/Libffi.mk
+       # This include just keeps the nesting a bit saner.
+       include $(LOCAL_PATH)/Libffi.mk
 
-    LOCAL_MODULE := libffi
+       LOCAL_MODULE := libffi
 
-    include $(BUILD_SHARED_LIBRARY)
+       include $(BUILD_SHARED_LIBRARY)
 
+    endif
 endif
 
-
-#
-# Build rules for the host.
-#
-
-ifeq ($(WITH_HOST_DALVIK),true)
-
-    include $(CLEAR_VARS)
-
-    ffi_arch := $(HOST_ARCH)
-    ffi_os := $(HOST_OS)
-
-    include $(LOCAL_PATH)/Libffi.mk
-
-    LOCAL_MODULE := libffi-host
-
-    include $(BUILD_HOST_STATIC_LIBRARY)
-
-endif
-
-
 # Also include the rules for the test suite.
 include external/libffi/testsuite/Android.mk
 
index dbcf736..32478a6 100644 (file)
--- a/Libffi.mk
+++ b/Libffi.mk
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#
-# Common definitions for host or target builds of libffi
-#
-
 # The libffi code is organized primarily by architecture, but at some
 # point OS-specific issues started to creep in. In some cases there
 # are OS-specific source files, in others there are just #ifdefs in
@@ -43,6 +39,9 @@ ifeq ($(LOCAL_SRC_FILES),)
   LOCAL_SRC_FILES := your-architecture-not-supported-by-ffi-makefile.c
 endif
 
-LOCAL_SRC_FILES += src/debug.c src/prep_cif.c src/types.c \
-        src/raw_api.c src/java_raw_api.c
-
+LOCAL_SRC_FILES += \
+       src/debug.c \
+       src/java_raw_api.c \
+       src/prep_cif.c \
+        src/raw_api.c \
+       src/types.c
index 6135f73..d7f53de 100644 (file)
@@ -16,53 +16,23 @@ LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
 
-#
-# Common definitions for host and target
-#
-
-# Single test file to use when doing default build. For the target
-# (device), this is the only way to build and run tests, but for the
-# host you can use the "run-ffi-tests" script in this directory to
-# run all the tests.
+# Single test file to use when doing a default build.
 FFI_SINGLE_TEST_FILE := libffi.call/struct5.c
 
-
-#
-# Build rules for the target.
-#
-
-# We only build ffi at all for non-arm targets.
+# We only build ffi at all for non-arm, non-x86 targets.
 ifneq ($(TARGET_ARCH),arm)
+    ifneq ($(TARGET_ARCH),x86)
 
-    include $(CLEAR_VARS)
-
-    LOCAL_SRC_FILES := $(FFI_SINGLE_TEST_FILE)
-    LOCAL_C_INCLUDES := external/libffi/$(TARGET_OS)-$(TARGET_ARCH)
-    LOCAL_SHARED_LIBRARIES := libffi
-
-    LOCAL_MODULE := ffi-test
-    LOCAL_MODULE_TAGS := tests
-
-    include $(BUILD_EXECUTABLE)
-
-endif
-
-
-#
-# Build rules for the host.
-#
-
-ifeq ($(WITH_HOST_DALVIK),true)
-
-    include $(CLEAR_VARS)
+        include $(CLEAR_VARS)
 
-    LOCAL_SRC_FILES := $(FFI_SINGLE_TEST_FILE)
-    LOCAL_C_INCLUDES := external/libffi/$(HOST_OS)-$(HOST_ARCH)
-    LOCAL_SHARED_LIBRARIES := libffi-host
+        LOCAL_SRC_FILES := $(FFI_SINGLE_TEST_FILE)
+        LOCAL_C_INCLUDES := external/libffi/$(TARGET_OS)-$(TARGET_ARCH)
+        LOCAL_SHARED_LIBRARIES := libffi
 
-    LOCAL_MODULE := ffi-test-host
-    LOCAL_MODULE_TAGS := tests
+        LOCAL_MODULE := ffi-test
+        LOCAL_MODULE_TAGS := tests
 
-    include $(BUILD_HOST_EXECUTABLE)
+        include $(BUILD_EXECUTABLE)
 
+    endif
 endif