build-shared-library.mk revision ae38562d764e4c3541b2c07732274f0c1115fe48
1# Copyright (C) 2009 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# 15 16# this file is included from Android.mk files to build a target-specific 17# executable program 18# 19 20LOCAL_BUILD_SCRIPT := BUILD_SHARED_LIBRARY 21LOCAL_MODULE_CLASS := SHARED_LIBRARY 22LOCAL_MAKEFILE := $(local-makefile) 23 24$(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT)) 25$(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE)) 26 27# only adjust the build if this module is needed by the current app 28ifneq ($(filter $(LOCAL_MODULE),$(NDK_APP_MODULES)),) 29 30# we are building target objects 31my := TARGET_ 32 33LOCAL_BUILT_MODULE := $(call shared-library-path,$(LOCAL_MODULE)) 34LOCAL_OBJS_DIR := $(TARGET_OBJS)/$(LOCAL_MODULE) 35 36include $(BUILD_SYSTEM)/build-binary.mk 37 38LOCAL_STATIC_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_STATIC_LIBRARIES)) 39LOCAL_SHARED_LIBRARIES := $(call strip-lib-prefix,$(LOCAL_SHARED_LIBRARIES)) 40 41static_libraries := $(call map,static-library-path,$(LOCAL_STATIC_LIBRARIES)) 42shared_libraries := $(call map,shared-library-path,$(LOCAL_SHARED_LIBRARIES)) \ 43 $(TARGET_PREBUILT_SHARED_LIBRARIES) 44 45$(LOCAL_BUILT_MODULE): $(static_libraries) $(shared_libraries) 46 47LOCAL_LDLIBS := $(_module_libs) $(LOCAL_LDLIBS) 48 49$(LOCAL_BUILT_MODULE): PRIVATE_STATIC_LIBRARIES := $(static_libraries) 50$(LOCAL_BUILT_MODULE): PRIVATE_SHARED_LIBRARIES := $(shared_libraries) 51$(LOCAL_BUILT_MODULE): PRIVATE_OBJECTS := $(LOCAL_OBJECTS) 52 53$(LOCAL_BUILT_MODULE): PRIVATE_LDFLAGS := $(TARGET_LDFLAGS) $(LOCAL_LDFLAGS) 54$(LOCAL_BUILT_MODULE): PRIVATE_LDLIBS := $(LOCAL_LDLIBS) $(TARGET_LDLIBS) 55 56$(LOCAL_BUILT_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE)) 57 58$(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS) 59 @ mkdir -p $(dir $@) 60 @ echo "SharedLibrary : $(PRIVATE_NAME)" 61 $(hide) $(cmd-build-shared-library) 62 63ALL_SHARED_LIBRARIES += $(LOCAL_BUILT_MODULE) 64 65# Installed module handling 66# 67LOCAL_INSTALLED_MODULE := $(NDK_APP_DEST)/$(notdir $(LOCAL_BUILT_MODULE)) 68 69$(LOCAL_INSTALLED_MODULE): PRIVATE_NAME := $(notdir $(LOCAL_BUILT_MODULE)) 70$(LOCAL_INSTALLED_MODULE): PRIVATE_SRC := $(LOCAL_BUILT_MODULE) 71$(LOCAL_INSTALLED_MODULE): PRIVATE_DEST := $(NDK_APP_DEST) 72$(LOCAL_INSTALLED_MODULE): PRIVATE_DST := $(LOCAL_INSTALLED_MODULE) 73 74$(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) 75 @ echo "Install : $(PRIVATE_NAME) => $(PRIVATE_DEST)" 76 $(hide) mkdir -p $(PRIVATE_DEST) 77 $(hide) install -p $(PRIVATE_SRC) $(PRIVATE_DST) 78 $(hide) $(call cmd-strip, $(PRIVATE_DST)) 79 80ALL_INSTALLED_MODULES += $(LOCAL_INSTALLED_MODULE) 81 82endif # filter LOCAL_MODULE in NDK_APP_MODULES 83