Merge change 5635 into donut

* changes:
  Fix several typos in the NDK build system that caused quite a few bugs:
This commit is contained in:
Android (Google) Code Review
2009-06-29 08:12:36 -07:00
9 changed files with 89 additions and 93 deletions

View File

@@ -53,7 +53,7 @@ ifeq ($(LOCAL_CPP_EXTENSION),)
LOCAL_CPP_EXTENSION := .cpp LOCAL_CPP_EXTENSION := .cpp
else else
ifneq ($(words $(LOCAL_CPP_EXTENSION)),1) 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) $(call __ndk_error, Aborting)
endif endif
endif endif
@@ -79,12 +79,12 @@ ifeq ($(LOCAL_ARM_MODE),)
LOCAL_ARM_MODE := thumb LOCAL_ARM_MODE := thumb
else else
ifneq ($(words $(LOCAL_ARM_MODE)),1) 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) $(call __ndk_error, Aborting)
endif endif
# check that LOCAL_ARM_MODE is defined to either 'arm' or 'thumb' # check that LOCAL_ARM_MODE is defined to either 'arm' or 'thumb'
$(if $(filter-out thumb arm, $(LOCAL_ARM_MODE)),\ $(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)\ $(call __ndk_error, Aborting)\
) )
endif endif
@@ -134,3 +134,32 @@ $(foreach src,$(cpp_sources), $(call compile-cpp-source,$(src)))
ALL_DEPENDENCY_DIRS += $(sort $(LOCAL_DEPENDENCY_DIRS)) ALL_DEPENDENCY_DIRS += $(sort $(LOCAL_DEPENDENCY_DIRS))
CLEAN_OBJS_DIRS += $(LOCAL_OBJS_DIR) 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))

View File

@@ -35,38 +35,13 @@ LOCAL_OBJS_DIR := $(TARGET_OBJS)/$(LOCAL_MODULE)
include $(BUILD_SYSTEM)/build-binary.mk 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) $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
@ mkdir -p $(dir $@) @ mkdir -p $(dir $@)
@ echo "Executable : $(PRIVATE_NAME)" @ echo "Executable : $(PRIVATE_NAME)"
$(hide) $(cmd-build-executable) $(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) ALL_EXECUTABLES += $(LOCAL_BUILT_MODULE)
include $(BUILD_SYSTEM)/install-binary.mk
endif # filter LOCAL_MODULE in NDK_APP_MODULES endif # filter LOCAL_MODULE in NDK_APP_MODULES

View File

@@ -41,12 +41,12 @@ intermediates := $($(my)OBJS)
# #
LOCAL_INTERMEDIATES := $(LOCAL_BUILT_MODULE) 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),) ifneq ($(NDK_APP_OPTIM),)
LOCAL_BUILD_MODE := $(NDK_APP_OPTIM) LOCAL_BUILD_MODE := $(NDK_APP_OPTIM)
else else
LOCAL_BUILD_MODE := thumb LOCAL_BUILD_MODE := release
endif endif
# #

View File

@@ -14,7 +14,7 @@
# #
# this file is included from Android.mk files to build a target-specific # this file is included from Android.mk files to build a target-specific
# executable program # shared library
# #
LOCAL_BUILD_SCRIPT := BUILD_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 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) $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
@ mkdir -p $(dir $@) @ mkdir -p $(dir $@)
@ echo "SharedLibrary : $(PRIVATE_NAME)" @ echo "SharedLibrary : $(PRIVATE_NAME)"
@@ -62,21 +42,6 @@ $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
ALL_SHARED_LIBRARIES += $(LOCAL_BUILT_MODULE) ALL_SHARED_LIBRARIES += $(LOCAL_BUILT_MODULE)
# Installed module handling include $(BUILD_SYSTEM)/install-binary.mk
#
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)
endif # filter LOCAL_MODULE in NDK_APP_MODULES endif # filter LOCAL_MODULE in NDK_APP_MODULES

View File

@@ -14,7 +14,7 @@
# #
# this file is included from Android.mk files to build a target-specific # this file is included from Android.mk files to build a target-specific
# executable program # static library
# #
LOCAL_BUILD_SCRIPT := BUILD_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 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) $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
@ mkdir -p $(dir $@) @ mkdir -p $(dir $@)
@ echo "StaticLibrary : $(PRIVATE_NAME)" @ echo "StaticLibrary : $(PRIVATE_NAME)"

View File

@@ -20,6 +20,8 @@ NDK_LOCAL_VARS := \
LOCAL_MODULE \ LOCAL_MODULE \
LOCAL_SRC_FILES \ LOCAL_SRC_FILES \
LOCAL_CFLAGS \ LOCAL_CFLAGS \
LOCAL_CXXFLAGS \
LOCAL_CPPFLAGS \
LOCAL_LDFLAGS \ LOCAL_LDFLAGS \
LOCAL_ARFLAGS \ LOCAL_ARFLAGS \
LOCAL_CPP_EXTENSION \ LOCAL_CPP_EXTENSION \

View File

@@ -368,12 +368,11 @@ $$(_OBJ): PRIVATE_ARM_MODE := $$(LOCAL_ARM_MODE)
$$(_OBJ): PRIVATE_ARM_TEXT := $$(LOCAL_ARM_TEXT) $$(_OBJ): PRIVATE_ARM_TEXT := $$(LOCAL_ARM_TEXT)
$$(_OBJ): PRIVATE_CC := $$($$(my)CC) $$(_OBJ): PRIVATE_CC := $$($$(my)CC)
$$(_OBJ): PRIVATE_CFLAGS := $$($$(my)CFLAGS) \ $$(_OBJ): PRIVATE_CFLAGS := $$($$(my)CFLAGS) \
$$($$(my)_$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \ $$($$(my)$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
-I$$(LOCAL_PATH) \ -I$$(LOCAL_PATH) \
$$(LOCAL_CFLAGS) \ $$(LOCAL_CFLAGS) \
$$(NDK_APP_CPPFLAGS) \ $$(NDK_APP_CPPFLAGS) \
$$(NDK_APP_CFLAGS) \ $$(NDK_APP_CFLAGS)
$$(LOCAL_ARM_CFLAGS)
$$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK) $$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK)
@mkdir -p $$(dir $$(PRIVATE_OBJ)) @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_ARM_TEXT := $$(LOCAL_ARM_TEXT)
$$(_OBJ): PRIVATE_CXX := $$($$(my)CXX) $$(_OBJ): PRIVATE_CXX := $$($$(my)CXX)
$$(_OBJ): PRIVATE_CXXFLAGS := $$($$(my)CXXFLAGS) \ $$(_OBJ): PRIVATE_CXXFLAGS := $$($$(my)CXXFLAGS) \
$$($$(my)_$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \ $$($$(my)$(LOCAL_ARM_MODE)_$(LOCAL_BUILD_MODE)_CFLAGS) \
-I$$(LOCAL_PATH) \ -I$$(LOCAL_PATH) \
$$(LOCAL_CFLAGS) \ $$(LOCAL_CFLAGS) \
$$(NDK_APP_CPPFLAGS) \ $$(NDK_APP_CPPFLAGS) \
$$(NDK_APP_CXXFLAGS) \ $$(NDK_APP_CXXFLAGS) \
$$(LOCAL_ARM_CFLAGS)
$$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK) $$(_OBJ): $$(_SRC) $$(LOCAL_MAKEFILE) $$(NDK_APP_APPLICATION_MK)
@mkdir -p $$(dir $$(PRIVATE_OBJ)) @mkdir -p $$(dir $$(PRIVATE_OBJ))

View 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)

View File

@@ -11,5 +11,18 @@ current version
* ensure that the script is run from $NDKROOT as build/host-setup.sh * ensure that the script is run from $NDKROOT as build/host-setup.sh
* add --help, --verbose and --no-make-check options * 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. android-1.5_r1 released.