am 90fc9799: Merge change 5635 into donut
Merge commit '90fc97997727e094f07921486072090d33025d5b' * commit '90fc97997727e094f07921486072090d33025d5b': Fix several typos in the NDK build system that caused quite a few bugs:
This commit is contained in:
committed by
The Android Open Source Project
commit
a11fdd05d7
@@ -53,7 +53,7 @@ ifeq ($(LOCAL_CPP_EXTENSION),)
|
||||
LOCAL_CPP_EXTENSION := .cpp
|
||||
else
|
||||
ifneq ($(words $(LOCAL_CPP_EXTENSION)),1)
|
||||
$(call __ndk_log, LOCAL_CPP_EXTENSION in $(LOCAL_MAKEFILE) must be one word only, not '$(LOCAL_CPP_EXTENSION)')
|
||||
$(call __ndk_info, LOCAL_CPP_EXTENSION in $(LOCAL_MAKEFILE) must be one word only, not '$(LOCAL_CPP_EXTENSION)')
|
||||
$(call __ndk_error, Aborting)
|
||||
endif
|
||||
endif
|
||||
@@ -79,12 +79,12 @@ ifeq ($(LOCAL_ARM_MODE),)
|
||||
LOCAL_ARM_MODE := thumb
|
||||
else
|
||||
ifneq ($(words $(LOCAL_ARM_MODE)),1)
|
||||
$(call __ndk_log, LOCAL_ARM_MODE in $(LOCAL_MAKEFILE) must be one word, not '$(LOCAL_ARM_MODE)')
|
||||
$(call __ndk_info, LOCAL_ARM_MODE in $(LOCAL_MAKEFILE) must be one word, not '$(LOCAL_ARM_MODE)')
|
||||
$(call __ndk_error, Aborting)
|
||||
endif
|
||||
# check that LOCAL_ARM_MODE is defined to either 'arm' or 'thumb'
|
||||
$(if $(filter-out thumb arm, $(LOCAL_ARM_MODE)),\
|
||||
$(call __ndk_log, LOCAL_ARM_MODE must be defined to either 'arm' or 'thumb' in $(LOCAL_MAKEFILE), not '$(LOCAL_ARM_MODE)')\
|
||||
$(call __ndk_info, LOCAL_ARM_MODE must be defined to either 'arm' or 'thumb' in $(LOCAL_MAKEFILE) not '$(LOCAL_ARM_MODE)')\
|
||||
$(call __ndk_error, Aborting)\
|
||||
)
|
||||
endif
|
||||
@@ -134,3 +134,32 @@ $(foreach src,$(cpp_sources), $(call compile-cpp-source,$(src)))
|
||||
|
||||
ALL_DEPENDENCY_DIRS += $(sort $(LOCAL_DEPENDENCY_DIRS))
|
||||
CLEAN_OBJS_DIRS += $(LOCAL_OBJS_DIR)
|
||||
|
||||
#
|
||||
# Handle the static and shared libraries this module depends on
|
||||
#
|
||||
LOCAL_STATIC_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_STATIC_LIBRARIES))
|
||||
LOCAL_SHARED_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_SHARED_LIBRARIES))
|
||||
|
||||
static_libraries := $(call map,static-library-path,$(LOCAL_STATIC_LIBRARIES))
|
||||
shared_libraries := $(call map,shared-library-path,$(LOCAL_SHARED_LIBRARIES)) \
|
||||
$(TARGET_PREBUILT_SHARED_LIBRARIES)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(static_libraries) $(shared_libraries)
|
||||
|
||||
# If LOCAL_LDLIBS contains anything like -l<library> then
|
||||
# prepend a -L$(SYSROOT)/usr/lib to it to ensure that the linker
|
||||
# looks in the right location
|
||||
#
|
||||
ifneq ($(filter -l%,$(LOCAL_LDLIBS)),)
|
||||
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib $(LOCAL_LDLIBS)
|
||||
endif
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_STATIC_LIBRARIES := $(static_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SHARED_LIBRARIES := $(shared_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_OBJECTS := $(LOCAL_OBJECTS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
|
||||
@@ -35,38 +35,13 @@ LOCAL_OBJS_DIR := $(TARGET_OBJS)/$(LOCAL_MODULE)
|
||||
|
||||
include $(BUILD_SYSTEM)/build-binary.mk
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_STATIC_LIBRARIES))
|
||||
LOCAL_SHARED_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_SHARED_LIBRARIES))
|
||||
|
||||
static_libraries := $(call map,static-library-path,$(LOCAL_STATIC_LIBRARIES))
|
||||
shared_libraries := $(call map,shared-library-path,$(LOCAL_SHARED_LIBRARIES)) \
|
||||
$(TARGET_PREBUILT_SHARED_LIBRARIES)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(static_libraries) $(shared_libraries)
|
||||
|
||||
LOCAL_LDLIBS := $(_module_libs) $(LOCAL_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_STATIC_LIBRARIES := $(static_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SHARED_LIBRARIES := $(shared_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_OBJECTS := $(LOCAL_OBJECTS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_DEST := $(NDK_APP_DEST)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_DST := $(PRIVATE_DEST)/$(PRIVATE_NAME)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
|
||||
@ mkdir -p $(dir $@)
|
||||
@ echo "Executable : $(PRIVATE_NAME)"
|
||||
$(hide) $(cmd-build-executable)
|
||||
@ echo "Install : $(PRIVATE_NAME) => $(PRIVATE_DEST)"
|
||||
$(hide) mkdir -p $(PRIVATE_DEST)
|
||||
$(hide) install -p $(PRIVATE_SRC) $(PRIVATE_DST)
|
||||
$(hide) $(call cmd-strip, $(PRIVATE_DST))
|
||||
|
||||
ALL_EXECUTABLES += $(LOCAL_BUILT_MODULE)
|
||||
|
||||
include $(BUILD_SYSTEM)/install-binary.mk
|
||||
|
||||
endif # filter LOCAL_MODULE in NDK_APP_MODULES
|
||||
|
||||
@@ -41,12 +41,12 @@ intermediates := $($(my)OBJS)
|
||||
#
|
||||
LOCAL_INTERMEDIATES := $(LOCAL_BUILT_MODULE)
|
||||
|
||||
# LOCAL_BUILD_MODE will be either arm or thumb
|
||||
# LOCAL_BUILD_MODE will be either release or debug
|
||||
#
|
||||
ifneq ($(NDK_APP_OPTIM),)
|
||||
LOCAL_BUILD_MODE := $(NDK_APP_OPTIM)
|
||||
else
|
||||
LOCAL_BUILD_MODE := thumb
|
||||
LOCAL_BUILD_MODE := release
|
||||
endif
|
||||
|
||||
#
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#
|
||||
|
||||
# this file is included from Android.mk files to build a target-specific
|
||||
# executable program
|
||||
# shared library
|
||||
#
|
||||
|
||||
LOCAL_BUILD_SCRIPT := BUILD_SHARED_LIBRARY
|
||||
@@ -35,26 +35,6 @@ LOCAL_OBJS_DIR := $(TARGET_OBJS)/$(LOCAL_MODULE)
|
||||
|
||||
include $(BUILD_SYSTEM)/build-binary.mk
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_STATIC_LIBRARIES))
|
||||
LOCAL_SHARED_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_SHARED_LIBRARIES))
|
||||
|
||||
static_libraries := $(call map,static-library-path,$(LOCAL_STATIC_LIBRARIES))
|
||||
shared_libraries := $(call map,shared-library-path,$(LOCAL_SHARED_LIBRARIES)) \
|
||||
$(TARGET_PREBUILT_SHARED_LIBRARIES)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(static_libraries) $(shared_libraries)
|
||||
|
||||
LOCAL_LDLIBS := $(_module_libs) $(LOCAL_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_STATIC_LIBRARIES := $(static_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SHARED_LIBRARIES := $(shared_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_OBJECTS := $(LOCAL_OBJECTS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
|
||||
@ mkdir -p $(dir $@)
|
||||
@ echo "SharedLibrary : $(PRIVATE_NAME)"
|
||||
@@ -62,21 +42,6 @@ $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
|
||||
|
||||
ALL_SHARED_LIBRARIES += $(LOCAL_BUILT_MODULE)
|
||||
|
||||
# Installed module handling
|
||||
#
|
||||
LOCAL_INSTALLED_MODULE := $(NDK_APP_DEST)/$(notdir $(LOCAL_BUILT_MODULE))
|
||||
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_DEST := $(NDK_APP_DEST)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_DST := $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE)
|
||||
@ echo "Install : $(PRIVATE_NAME) => $(PRIVATE_DEST)"
|
||||
$(hide) mkdir -p $(PRIVATE_DEST)
|
||||
$(hide) install -p $(PRIVATE_SRC) $(PRIVATE_DST)
|
||||
$(hide) $(call cmd-strip, $(PRIVATE_DST))
|
||||
|
||||
ALL_INSTALLED_MODULES += $(LOCAL_INSTALLED_MODULE)
|
||||
include $(BUILD_SYSTEM)/install-binary.mk
|
||||
|
||||
endif # filter LOCAL_MODULE in NDK_APP_MODULES
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#
|
||||
|
||||
# this file is included from Android.mk files to build a target-specific
|
||||
# executable program
|
||||
# static library
|
||||
#
|
||||
|
||||
LOCAL_BUILD_SCRIPT := BUILD_STATIC_LIBRARY
|
||||
@@ -35,24 +35,6 @@ LOCAL_OBJS_DIR := $(TARGET_OBJS)/$(LOCAL_MODULE)
|
||||
|
||||
include $(BUILD_SYSTEM)/build-binary.mk
|
||||
|
||||
static_libraries := $(call map,static-library-path,$(LOCAL_STATIC_LIBRARIES))
|
||||
shared_libraries := $(call map,shared-library-path,$(LOCAL_SHARED_LIBRARIES)) \
|
||||
$(TARGET_PREBUILT_SHARED_LIBRARIES)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(static_libraries) $(shared_libraries)
|
||||
|
||||
LOCAL_LDLIBS := $(_module_libs) $(LOCAL_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_STATIC_LIBRARIES := $(static_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SHARED_LIBRARIES := $(shared_libraries)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_OBJECTS := $(LOCAL_OBJECTS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
|
||||
@ mkdir -p $(dir $@)
|
||||
@ echo "StaticLibrary : $(PRIVATE_NAME)"
|
||||
|
||||
@@ -20,6 +20,8 @@ NDK_LOCAL_VARS := \
|
||||
LOCAL_MODULE \
|
||||
LOCAL_SRC_FILES \
|
||||
LOCAL_CFLAGS \
|
||||
LOCAL_CXXFLAGS \
|
||||
LOCAL_CPPFLAGS \
|
||||
LOCAL_LDFLAGS \
|
||||
LOCAL_ARFLAGS \
|
||||
LOCAL_CPP_EXTENSION \
|
||||
|
||||
@@ -368,12 +368,11 @@ $$(_OBJ): PRIVATE_ARM_MODE := $$(LOCAL_ARM_MODE)
|
||||
$$(_OBJ): PRIVATE_ARM_TEXT := $$(LOCAL_ARM_TEXT)
|
||||
$$(_OBJ): PRIVATE_CC := $$($$(my)CC)
|
||||
$$(_OBJ): PRIVATE_CFLAGS := $$($$(my)CFLAGS) \
|
||||
$$($$(my)_$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
|
||||
$$($$(my)$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
|
||||
-I$$(LOCAL_PATH) \
|
||||
$$(LOCAL_CFLAGS) \
|
||||
$$(NDK_APP_CPPFLAGS) \
|
||||
$$(NDK_APP_CFLAGS) \
|
||||
$$(LOCAL_ARM_CFLAGS)
|
||||
$$(NDK_APP_CFLAGS)
|
||||
|
||||
$$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK)
|
||||
@mkdir -p $$(dir $$(PRIVATE_OBJ))
|
||||
@@ -427,12 +426,11 @@ $$(_OBJ): PRIVATE_ARM_MODE := $$(LOCAL_ARM_MODE)
|
||||
$$(_OBJ): PRIVATE_ARM_TEXT := $$(LOCAL_ARM_TEXT)
|
||||
$$(_OBJ): PRIVATE_CXX := $$($$(my)CXX)
|
||||
$$(_OBJ): PRIVATE_CXXFLAGS := $$($$(my)CXXFLAGS) \
|
||||
$$($$(my)_$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
|
||||
$$($$(my)$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
|
||||
-I$$(LOCAL_PATH) \
|
||||
$$(LOCAL_CFLAGS) \
|
||||
$$(NDK_APP_CPPFLAGS) \
|
||||
$$(NDK_APP_CXXFLAGS) \
|
||||
$$(LOCAL_ARM_CFLAGS)
|
||||
|
||||
$$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK)
|
||||
@mkdir -p $$(dir $$(PRIVATE_OBJ))
|
||||
|
||||
32
ndk/build/core/install-binary.mk
Normal file
32
ndk/build/core/install-binary.mk
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright (C) 2009 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Installed module handling
|
||||
#
|
||||
LOCAL_INSTALLED_MODULE := $(NDK_APP_DEST)/$(notdir $(LOCAL_BUILT_MODULE))
|
||||
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE))
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_DEST := $(NDK_APP_DEST)
|
||||
$(LOCAL_INSTALLED_MODULE): PRIVATE_DST := $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE)
|
||||
@ echo "Install : $(PRIVATE_NAME) => $(PRIVATE_DEST)"
|
||||
$(hide) mkdir -p $(PRIVATE_DEST)
|
||||
$(hide) install -p $(PRIVATE_SRC) $(PRIVATE_DST)
|
||||
$(hide) $(call cmd-strip, $(PRIVATE_DST))
|
||||
|
||||
ALL_INSTALLED_MODULES += $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
@@ -11,5 +11,18 @@ current version
|
||||
* ensure that the script is run from $NDKROOT as build/host-setup.sh
|
||||
* add --help, --verbose and --no-make-check options
|
||||
|
||||
- Properly add sysroot library search path at build time. This makes a line
|
||||
in Android.mk like:
|
||||
|
||||
LOCAL_LDLIBS := -lz
|
||||
|
||||
Actually work correctly, instead of having the linker complaining that it
|
||||
could not find the corresponding libz.so library.
|
||||
|
||||
- Generate thumb binaries by default.
|
||||
|
||||
- Generate proper unoptimized versions of binaries when APP_OPTIM := debug
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
android-1.5_r1 released.
|
||||
|
||||
Reference in New Issue
Block a user