LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo.c foo2.c include $(BUILD_STATIC_LIBRARY) # The GNU linker will strip un-needed object files from executables even whe # --whole-archive is used. However, it won't do it for shared libraries, so # create an intermediate one, called 'bar' that includes 'foo' as a whole # static library. include $(CLEAR_VARS) LOCAL_MODULE := bar LOCAL_WHOLE_STATIC_LIBRARIES := foo include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := test_whole_static_libs LOCAL_SRC_FILES := main.c LOCAL_LDLIBS := -ldl include $(BUILD_EXECUTABLE)