I need to build a shared library based on a prebuilt static library. My makefile src/android/external/mycode/Android.mk:
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := libMyStatic LOCAL_SRC_FILES := libStatic.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := eng LOCAL_ARM_MODE := arm LOCAL_PRELINK_MODULE := false LOCAL_MODULE := libMyShared LOCAL_WHOLE_STATIC_LIBRARIES := libMyStatic include $(BUILD_SHARED_LIBRARY)
I build it by doing: mmm external/mycode
and get the error:
make: *** No rule to make target `out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libMyShared_intermediates/LINKED/libMyShared.so'. Stop. make: Leaving directory `/home/test/src/android'
If I do the following manually and run mmm again it works:
cp external/mycode/libStatic.a out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a
If I make an NDK project and use this Android.mk file I think it works right away when calling the ndk-build script. So the problem has something to do with that the libMyStatic.a file is not created and copied to the intermediate folder when I use the Android Build system. Can anyone tell me what I need to setup to make the build system copy the static library to the intermediate folder?