aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Naidis <alex.naidis@linux.com>2016-10-26 12:40:20 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-10-26 12:40:20 +0000
commit4b9d015ed112421bc7dabfe10410d0df06cb03ef (patch)
treea676625ad4539d64fd66aa2b92f144281fbcfc8b
parent53c89b3c9826ed4a0e848e0005dc34d8ef7fa474 (diff)
parent86d2d2cf2d5070bce9b0541ca69fd98dac85eb6a (diff)
downloadlibjpeg-turbo-4b9d015ed112421bc7dabfe10410d0df06cb03ef.tar.gz
libjpeg-turbo: Simplify and Commonize Makefile am: d98b35771f
am: 86d2d2cf2d Change-Id: I249d360a4f784ffe61547cbef848b48ccde45bbd
-rw-r--r--Android.mk145
1 files changed, 68 insertions, 77 deletions
diff --git a/Android.mk b/Android.mk
index dabf3eb8..19f54e33 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,6 @@
LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
+# Set up common variables for usage across the libjpeg-turbo modules
# By default, the build system generates ARM target binaries in thumb mode,
# where each instruction is 16 bits wide. Defining this variable as arm
@@ -8,9 +8,20 @@ include $(CLEAR_VARS)
# is the same setting previously used by libjpeg.
# TODO (msarett): Run performance tests to determine whether arm mode is still
# preferred to thumb mode for libjpeg-turbo.
-LOCAL_ARM_MODE := arm
+libjpeg_turbo_common_arm_mode := arm
+
+libjpeg_turbo_common_cflags := -O3 -fstrict-aliasing
+libjpeg_turbo_common_cflags += -Wno-unused-parameter
+
+# If we are certain that the ARM v7 device has NEON (and there is no need for
+# a runtime check), we can indicate that with a flag.
+ifeq ($(strip $(TARGET_ARCH)),arm)
+ ifeq ($(ARCH_ARM_HAVE_NEON),true)
+ libjpeg_turbo_common_cflags += -D__ARM_HAVE_NEON__
+ endif
+endif
-LOCAL_SRC_FILES := \
+libjpeg_turbo_common_src_files := \
jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \
jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \
jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \
@@ -21,21 +32,13 @@ LOCAL_SRC_FILES := \
jmemnobs.c jquant1.c jquant2.c jutils.c
# ARM v7 NEON
-LOCAL_SRC_FILES_arm += simd/jsimd_arm_neon.S simd/jsimd_arm.c
-
-# If we are certain that the ARM v7 device has NEON (and there is no need for
-# a runtime check), we can indicate that with a flag.
-ifeq ($(strip $(TARGET_ARCH)),arm)
- ifeq ($(ARCH_ARM_HAVE_NEON),true)
- LOCAL_CFLAGS += -D__ARM_HAVE_NEON__
- endif
-endif
+libjpeg_turbo_common_src_files_arm := simd/jsimd_arm_neon.S simd/jsimd_arm.c
# ARM v8 64-bit NEON
-LOCAL_SRC_FILES_arm64 += simd/jsimd_arm64_neon.S simd/jsimd_arm64.c
+libjpeg_turbo_common_src_files_arm64 := simd/jsimd_arm64_neon.S simd/jsimd_arm64.c
# x86 MMX and SSE2
-LOCAL_SRC_FILES_x86 += \
+libjpeg_turbo_common_src_files_x86 := \
simd/jsimd_i386.c simd/jccolor-mmx.asm simd/jccolor-sse2.asm \
simd/jcgray-mmx.asm simd/jcgray-sse2.asm simd/jchuff-sse2.asm \
simd/jcsample-mmx.asm simd/jcsample-sse2.asm simd/jdcolor-mmx.asm \
@@ -48,25 +51,45 @@ LOCAL_SRC_FILES_x86 += \
simd/jidctred-mmx.asm simd/jidctred-sse2.asm simd/jquant-3dn.asm \
simd/jquantf-sse2.asm simd/jquanti-sse2.asm simd/jquant-mmx.asm \
simd/jquant-sse.asm simd/jsimdcpu.asm
-LOCAL_ASFLAGS_x86 += -DPIC -DELF
-LOCAL_C_INCLUDES_x86 += $(LOCAL_PATH)/simd
# x86-64 SSE2
-LOCAL_SRC_FILES_x86_64 += \
+libjpeg_turbo_common_src_files_x86_64 := \
simd/jsimd_x86_64.c simd/jccolor-sse2-64.asm simd/jcgray-sse2-64.asm \
simd/jchuff-sse2-64.asm simd/jcsample-sse2-64.asm simd/jdcolor-sse2-64.asm \
simd/jdmerge-sse2-64.asm simd/jdsample-sse2-64.asm simd/jfdctflt-sse-64.asm \
simd/jfdctfst-sse2-64.asm simd/jfdctint-sse2-64.asm simd/jidctflt-sse2-64.asm \
simd/jidctfst-sse2-64.asm simd/jidctint-sse2-64.asm simd/jidctred-sse2-64.asm \
simd/jquantf-sse2-64.asm simd/jquanti-sse2-64.asm
-LOCAL_ASFLAGS_x86_64 += -D__x86_64__ -DPIC -DELF
+
+# MIPS and MIPS64
+libjpeg_turbo_common_src_files_mips := jsimd_none.c
+
+# Common ASFLAGS for x86/x86_64
+libjpeg_turbo_common_asflags := -DPIC -DELF
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := $(libjpeg_turbo_common_arm_mode)
+
+LOCAL_SRC_FILES := $(libjpeg_turbo_common_src_files)
+
+LOCAL_SRC_FILES_arm += $(libjpeg_turbo_common_src_files_arm)
+
+LOCAL_SRC_FILES_arm64 += $(libjpeg_turbo_common_src_files_arm64)
+
+LOCAL_SRC_FILES_x86 += $(libjpeg_turbo_common_src_files_x86)
+LOCAL_ASFLAGS_x86 += $(libjpeg_turbo_common_asflags)
+LOCAL_C_INCLUDES_x86 += $(LOCAL_PATH)/simd
+
+# x86-64 SSE2
+LOCAL_SRC_FILES_x86_64 += $(libjpeg_turbo_common_src_files_x86_64)
+LOCAL_ASFLAGS_x86_64 += -D__x86_64__ $(libjpeg_turbo_common_asflags)
LOCAL_C_INCLUDES_x86_64 += $(LOCAL_PATH)/simd
-LOCAL_SRC_FILES_mips += jsimd_none.c
-LOCAL_SRC_FILES_mips64 += jsimd_none.c
+LOCAL_SRC_FILES_mips += $(libjpeg_turbo_common_src_files_mips)
+LOCAL_SRC_FILES_mips64 += $(libjpeg_turbo_common_src_files_mips)
-LOCAL_CFLAGS += -O3 -fstrict-aliasing
-LOCAL_CFLAGS += -Wno-unused-parameter
+LOCAL_CFLAGS += $(libjpeg_turbo_common_cflags)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
ifneq (,$(TARGET_BUILD_APPS))
@@ -94,71 +117,27 @@ include $(BUILD_SHARED_LIBRARY)
# Build static library against the NDK
include $(CLEAR_VARS)
-# By default, the build system generates ARM target binaries in thumb mode,
-# where each instruction is 16 bits wide. Defining this variable as arm
-# forces the build system to generate object files in 32-bit arm mode. This
-# is the same setting previously used by libjpeg.
-# TODO (msarett): Run performance tests to determine whether arm mode is still
-# preferred to thumb mode for libjpeg-turbo.
-LOCAL_ARM_MODE := arm
+LOCAL_ARM_MODE := $(libjpeg_turbo_common_arm_mode)
-LOCAL_SRC_FILES := \
- jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \
- jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \
- jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \
- jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c \
- jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \
- jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \
- jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jmemmgr.c \
- jmemnobs.c jquant1.c jquant2.c jutils.c
+LOCAL_SRC_FILES := $(libjpeg_turbo_common_src_files)
-# ARM v7 NEON
-LOCAL_SRC_FILES_arm += simd/jsimd_arm_neon.S simd/jsimd_arm.c
+LOCAL_SRC_FILES_arm += $(libjpeg_turbo_common_src_files_arm)
-# If we are certain that the ARM v7 device has NEON (and there is no need for
-# a runtime check), we can indicate that with a flag.
-ifeq ($(strip $(TARGET_ARCH)),arm)
- ifeq ($(ARCH_ARM_HAVE_NEON),true)
- LOCAL_CFLAGS += -D__ARM_HAVE_NEON__
- endif
-endif
+LOCAL_SRC_FILES_arm64 += $(libjpeg_turbo_common_src_files_arm64)
-# ARM v8 64-bit NEON
-LOCAL_SRC_FILES_arm64 += simd/jsimd_arm64_neon.S simd/jsimd_arm64.c
+LOCAL_SRC_FILES_x86 += $(libjpeg_turbo_common_src_files_x86)
-# x86 MMX and SSE2
-LOCAL_SRC_FILES_x86 += \
- simd/jsimd_i386.c simd/jccolor-mmx.asm simd/jccolor-sse2.asm \
- simd/jcgray-mmx.asm simd/jcgray-sse2.asm simd/jchuff-sse2.asm \
- simd/jcsample-mmx.asm simd/jcsample-sse2.asm simd/jdcolor-mmx.asm \
- simd/jdcolor-sse2.asm simd/jdmerge-mmx.asm simd/jdmerge-sse2.asm \
- simd/jdsample-mmx.asm simd/jdsample-sse2.asm simd/jfdctflt-3dn.asm \
- simd/jfdctflt-sse.asm simd/jfdctfst-mmx.asm simd/jfdctfst-sse2.asm \
- simd/jfdctint-mmx.asm simd/jfdctint-sse2.asm simd/jidctflt-3dn.asm \
- simd/jidctflt-sse2.asm simd/jidctflt-sse.asm simd/jidctfst-mmx.asm \
- simd/jidctfst-sse2.asm simd/jidctint-mmx.asm simd/jidctint-sse2.asm \
- simd/jidctred-mmx.asm simd/jidctred-sse2.asm simd/jquant-3dn.asm \
- simd/jquantf-sse2.asm simd/jquanti-sse2.asm simd/jquant-mmx.asm \
- simd/jquant-sse.asm simd/jsimdcpu.asm
-LOCAL_ASFLAGS_x86 += -DPIC -DELF
+LOCAL_ASFLAGS_x86 += $(libjpeg_turbo_common_asflags)
LOCAL_C_INCLUDES_x86 += $(LOCAL_PATH)/simd
-# x86-64 SSE2
-LOCAL_SRC_FILES_x86_64 += \
- simd/jsimd_x86_64.c simd/jccolor-sse2-64.asm simd/jcgray-sse2-64.asm \
- simd/jchuff-sse2-64.asm simd/jcsample-sse2-64.asm simd/jdcolor-sse2-64.asm \
- simd/jdmerge-sse2-64.asm simd/jdsample-sse2-64.asm simd/jfdctflt-sse-64.asm \
- simd/jfdctfst-sse2-64.asm simd/jfdctint-sse2-64.asm simd/jidctflt-sse2-64.asm \
- simd/jidctfst-sse2-64.asm simd/jidctint-sse2-64.asm simd/jidctred-sse2-64.asm \
- simd/jquantf-sse2-64.asm simd/jquanti-sse2-64.asm
-LOCAL_ASFLAGS_x86_64 += -D__x86_64__ -DPIC -DELF
+LOCAL_SRC_FILES_x86_64 += $(libjpeg_turbo_common_src_files_x86_64)
+LOCAL_ASFLAGS_x86_64 += -D__x86_64__ $(libjpeg_turbo_common_asflags)
LOCAL_C_INCLUDES_x86_64 += $(LOCAL_PATH)/simd
-LOCAL_SRC_FILES_mips += jsimd_none.c
-LOCAL_SRC_FILES_mips64 += jsimd_none.c
+LOCAL_SRC_FILES_mips += $(libjpeg_turbo_common_src_files_mips)
+LOCAL_SRC_FILES_mips64 += $(libjpeg_turbo_common_src_files_mips)
-LOCAL_CFLAGS += -O3 -fstrict-aliasing
-LOCAL_CFLAGS += -Wno-unused-parameter
+LOCAL_CFLAGS += $(libjpeg_turbo_common_cflags)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
LOCAL_SDK_VERSION := 17
@@ -166,3 +145,15 @@ LOCAL_SDK_VERSION := 17
# Build as a static library.
LOCAL_MODULE := libjpeg_static_ndk
include $(BUILD_STATIC_LIBRARY)
+
+# Unset all created common variables
+libjpeg_turbo_common_arm_mode :=
+libjpeg_turbo_common_src_files :=
+libjpeg_turbo_common_src_files_arm :=
+libjpeg_turbo_common_src_files_arm64 :=
+libjpeg_turbo_common_src_files_x86 :=
+libjpeg_turbo_common_src_files_x86_64 :=
+libjpeg_turbo_common_asflags :=
+libjpeg_turbo_common_src_files_mips :=
+libjpeg_turbo_common_cflags :=
+