0
I have the Android.Mk configuration file for the compilation of zlib for Android, but it contains the compilation options, Shared, Static and host, I only need to compile a Static library, BUILD_STATIC_LIBRARY
.
I don’t know what to keep or remove from Android.Mk, as I could compile correctly by removing the unnecessary options?
Android.Mk file:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# measurements show that the ARM version of ZLib is about x1.17 faster
# than the thumb one...
LOCAL_ARM_MODE := arm
zlib_files := \
src/adler32.c \
src/compress.c \
src/crc32.c \
src/deflate.c \
src/gzclose.c \
src/gzlib.c \
src/gzread.c \
src/gzwrite.c \
src/infback.c \
src/inflate.c \
src/inftrees.c \
src/inffast.c \
src/trees.c \
src/uncompr.c \
src/zutil.c
LOCAL_MODULE := libz
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -O3 -DUSE_MMAP
# TODO: This is to work around b/24465209. Remove after root cause is fixed
LOCAL_LDFLAGS_arm := -Wl,--hash-style=both
LOCAL_SRC_FILES := $(zlib_files)
ifneq ($(TARGET_BUILD_APPS),)
LOCAL_SDK_VERSION := 9
else
LOCAL_CXX_STL := none
endif
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libz
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -O3 -DUSE_MMAP
LOCAL_SRC_FILES := $(zlib_files)
ifneq ($(TARGET_BUILD_APPS),)
LOCAL_SDK_VERSION := 9
else
LOCAL_CXX_STL := none
endif
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libz
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -O3 -DUSE_MMAP
LOCAL_SRC_FILES := $(zlib_files)
LOCAL_MULTILIB := both
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
LOCAL_MODULE_HOST_OS := darwin linux windows
LOCAL_CXX_STL := none
include $(BUILD_HOST_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libz-host
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += -O3 -DUSE_MMAP
LOCAL_SRC_FILES := $(zlib_files)
LOCAL_MULTILIB := both
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
LOCAL_CXX_STL := none
include $(BUILD_HOST_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
src/test/minigzip.c
LOCAL_MODULE:= gzip
LOCAL_SHARED_LIBRARIES := libz
LOCAL_CXX_STL := none
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
src/test/minigzip.c
LOCAL_MODULE:= minigzip
LOCAL_STATIC_LIBRARIES := libz
LOCAL_CXX_STL := none
include $(BUILD_HOST_EXECUTABLE)
$(TARGET_OUT_COMMON_GEN)/zlib_fingerprint : $(wildcard $(LOCAL_PATH)/src/*.[ch])
printf '%s\n' $^ | LC_ALL=C sort | xargs cat | shasum -a 256 | \
awk '{printf $$1}' > $@
When trying to compile with the command ndk-build
I get the following error:
[root@localhost platform_external_zlib-master]# /run/media/root/linux/Workspace/android-ndk-r11c/ndk-build TARGET_PLATFORM=android-14 TARGET_ARCH_ABI=x86 NDK_PROJECT_PATH=.
Android NDK: Trying to define local module 'z' in /run/media/root/Volume/platform_external_zlib-master/Android.Mk.
Android NDK: But this module was already defined by /run/media/root/Volume/platform_external_zlib-master/Android.Mk.
/run/media/root/Volume/android-ndk-r11c/build/core/build-module.Mk:34: *** Android NDK: Aborting. . Stop.
[root@localhost platform_external_zlib-master]#