2016/1/13

ALL_PREBUILT is deprecated

android 5.0
用以前的
ALL_PREBUILT += ..
 $(transform-prebuilt-to-target)
出現了 error

所以參考 external/srec/tests/Android.mk
最後是:
#####################################################################
# Run "make srec_test_files" to install the above files.            #
# By default they are not copied to /system/usr/srec since they are #
# only required by the SREC and UAPI tests.                         #
#####################################################################
srec_test_files : $(copy_to) $(copy_to_scripts) $(copy_to_pcm) srec_grammars
這個 "make srec_test_file" 是在 android root path 下的。

因為 Android 的 build 系統是一個整個 Makefile
所以最後的 rule , target 就是在 root 的 Makefile 中。



所以 follow 這個做一個 Android.mk:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

copy_from_scripts += \
        otgdev.sh

copy_to_scripts := $(addprefix $(TARGET_OUT)/bin/,$(copy_from_scripts))

$(copy_to_scripts) : $(TARGET_OUT)/bin/% : $(LOCAL_PATH)/% | $(ACP)
        $(transform-prebuilt-to-target)


#####################################################################
# Run "make helptool" to install the above files.            #
#####################################################################

helptool : $(copy_to_scripts)
這樣的作法,make 時不會自動build, 要而外下 make helptool 才會做。

如果是要 make 時自動會做,還是要用 BUILD_PREBUILT:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := otgdev.sh
LOCAL_SRC_FILES := $(LOCAL_MODULE)
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)

include $(BUILD_PREBUILT)

沒有留言:

張貼留言