go-libwebp

Experimental translation from libwebp to Go source.
Log | Files | Refs | README | LICENSE

Android.mk (7557B)


      1 # Ignore this file during non-NDK builds.
      2 ifdef NDK_ROOT
      3 LOCAL_PATH := $(call my-dir)
      4 
      5 WEBP_CFLAGS := -Wall -DANDROID -DHAVE_MALLOC_H -DHAVE_PTHREAD -DWEBP_USE_THREAD
      6 WEBP_CFLAGS += -fvisibility=hidden
      7 
      8 ifeq ($(APP_OPTIM),release)
      9   WEBP_CFLAGS += -finline-functions -ffast-math \
     10                  -ffunction-sections -fdata-sections
     11   ifeq ($(findstring clang,$(NDK_TOOLCHAIN_VERSION)),)
     12     WEBP_CFLAGS += -frename-registers -s
     13   endif
     14 endif
     15 
     16 # mips32 fails to build with clang from r14b
     17 # https://bugs.chromium.org/p/webp/issues/detail?id=343
     18 ifeq ($(findstring clang,$(NDK_TOOLCHAIN_VERSION)),clang)
     19   ifeq ($(TARGET_ARCH),mips)
     20     clang_version := $(shell $(TARGET_CC) --version)
     21     ifneq ($(findstring clang version 3,$(clang_version)),)
     22       WEBP_CFLAGS += -no-integrated-as
     23     endif
     24   endif
     25 endif
     26 
     27 ifneq ($(findstring armeabi-v7a, $(TARGET_ARCH_ABI)),)
     28   # Setting LOCAL_ARM_NEON will enable -mfpu=neon which may cause illegal
     29   # instructions to be generated for armv7a code. Instead target the neon code
     30   # specifically.
     31   NEON := c.neon
     32   USE_CPUFEATURES := yes
     33   WEBP_CFLAGS += -DHAVE_CPU_FEATURES_H
     34 else
     35   NEON := c
     36 endif
     37 
     38 sharpyuv_srcs := \
     39     sharpyuv/sharpyuv.c \
     40     sharpyuv/sharpyuv_cpu.c \
     41     sharpyuv/sharpyuv_csp.c \
     42     sharpyuv/sharpyuv_dsp.c \
     43     sharpyuv/sharpyuv_gamma.c \
     44     sharpyuv/sharpyuv_neon.$(NEON) \
     45     sharpyuv/sharpyuv_sse2.c \
     46 
     47 dec_srcs := \
     48     src/dec/alpha_dec.c \
     49     src/dec/buffer_dec.c \
     50     src/dec/frame_dec.c \
     51     src/dec/idec_dec.c \
     52     src/dec/io_dec.c \
     53     src/dec/quant_dec.c \
     54     src/dec/tree_dec.c \
     55     src/dec/vp8_dec.c \
     56     src/dec/vp8l_dec.c \
     57     src/dec/webp_dec.c \
     58 
     59 demux_srcs := \
     60     src/demux/anim_decode.c \
     61     src/demux/demux.c \
     62 
     63 dsp_dec_srcs := \
     64     src/dsp/alpha_processing.c \
     65     src/dsp/alpha_processing_mips_dsp_r2.c \
     66     src/dsp/alpha_processing_neon.$(NEON) \
     67     src/dsp/alpha_processing_sse2.c \
     68     src/dsp/alpha_processing_sse41.c \
     69     src/dsp/cpu.c \
     70     src/dsp/dec.c \
     71     src/dsp/dec_clip_tables.c \
     72     src/dsp/dec_mips32.c \
     73     src/dsp/dec_mips_dsp_r2.c \
     74     src/dsp/dec_msa.c \
     75     src/dsp/dec_neon.$(NEON) \
     76     src/dsp/dec_sse2.c \
     77     src/dsp/dec_sse41.c \
     78     src/dsp/filters.c \
     79     src/dsp/filters_mips_dsp_r2.c \
     80     src/dsp/filters_msa.c \
     81     src/dsp/filters_neon.$(NEON) \
     82     src/dsp/filters_sse2.c \
     83     src/dsp/lossless.c \
     84     src/dsp/lossless_mips_dsp_r2.c \
     85     src/dsp/lossless_msa.c \
     86     src/dsp/lossless_neon.$(NEON) \
     87     src/dsp/lossless_sse2.c \
     88     src/dsp/lossless_sse41.c \
     89     src/dsp/rescaler.c \
     90     src/dsp/rescaler_mips32.c \
     91     src/dsp/rescaler_mips_dsp_r2.c \
     92     src/dsp/rescaler_msa.c \
     93     src/dsp/rescaler_neon.$(NEON) \
     94     src/dsp/rescaler_sse2.c \
     95     src/dsp/upsampling.c \
     96     src/dsp/upsampling_mips_dsp_r2.c \
     97     src/dsp/upsampling_msa.c \
     98     src/dsp/upsampling_neon.$(NEON) \
     99     src/dsp/upsampling_sse2.c \
    100     src/dsp/upsampling_sse41.c \
    101     src/dsp/yuv.c \
    102     src/dsp/yuv_mips32.c \
    103     src/dsp/yuv_mips_dsp_r2.c \
    104     src/dsp/yuv_neon.$(NEON) \
    105     src/dsp/yuv_sse2.c \
    106     src/dsp/yuv_sse41.c \
    107 
    108 dsp_enc_srcs := \
    109     src/dsp/cost.c \
    110     src/dsp/cost_mips32.c \
    111     src/dsp/cost_mips_dsp_r2.c \
    112     src/dsp/cost_neon.$(NEON) \
    113     src/dsp/cost_sse2.c \
    114     src/dsp/enc.c \
    115     src/dsp/enc_mips32.c \
    116     src/dsp/enc_mips_dsp_r2.c \
    117     src/dsp/enc_msa.c \
    118     src/dsp/enc_neon.$(NEON) \
    119     src/dsp/enc_sse2.c \
    120     src/dsp/enc_sse41.c \
    121     src/dsp/lossless_enc.c \
    122     src/dsp/lossless_enc_mips32.c \
    123     src/dsp/lossless_enc_mips_dsp_r2.c \
    124     src/dsp/lossless_enc_msa.c \
    125     src/dsp/lossless_enc_neon.$(NEON) \
    126     src/dsp/lossless_enc_sse2.c \
    127     src/dsp/lossless_enc_sse41.c \
    128     src/dsp/ssim.c \
    129     src/dsp/ssim_sse2.c \
    130 
    131 enc_srcs := \
    132     src/enc/alpha_enc.c \
    133     src/enc/analysis_enc.c \
    134     src/enc/backward_references_cost_enc.c \
    135     src/enc/backward_references_enc.c \
    136     src/enc/config_enc.c \
    137     src/enc/cost_enc.c \
    138     src/enc/filter_enc.c \
    139     src/enc/frame_enc.c \
    140     src/enc/histogram_enc.c \
    141     src/enc/iterator_enc.c \
    142     src/enc/near_lossless_enc.c \
    143     src/enc/picture_enc.c \
    144     src/enc/picture_csp_enc.c \
    145     src/enc/picture_psnr_enc.c \
    146     src/enc/picture_rescale_enc.c \
    147     src/enc/picture_tools_enc.c \
    148     src/enc/predictor_enc.c \
    149     src/enc/quant_enc.c \
    150     src/enc/syntax_enc.c \
    151     src/enc/token_enc.c \
    152     src/enc/tree_enc.c \
    153     src/enc/vp8l_enc.c \
    154     src/enc/webp_enc.c \
    155 
    156 mux_srcs := \
    157     src/mux/anim_encode.c \
    158     src/mux/muxedit.c \
    159     src/mux/muxinternal.c \
    160     src/mux/muxread.c \
    161 
    162 utils_dec_srcs := \
    163     src/utils/bit_reader_utils.c \
    164     src/utils/color_cache_utils.c \
    165     src/utils/filters_utils.c \
    166     src/utils/huffman_utils.c \
    167     src/utils/palette.c \
    168     src/utils/quant_levels_dec_utils.c \
    169     src/utils/random_utils.c \
    170     src/utils/rescaler_utils.c \
    171     src/utils/thread_utils.c \
    172     src/utils/utils.c \
    173 
    174 utils_enc_srcs := \
    175     src/utils/bit_writer_utils.c \
    176     src/utils/huffman_encode_utils.c \
    177     src/utils/quant_levels_utils.c \
    178 
    179 ################################################################################
    180 # libwebpdecoder
    181 
    182 include $(CLEAR_VARS)
    183 
    184 LOCAL_SRC_FILES := \
    185     $(dec_srcs) \
    186     $(dsp_dec_srcs) \
    187     $(utils_dec_srcs) \
    188 
    189 LOCAL_CFLAGS := $(WEBP_CFLAGS)
    190 LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/src
    191 
    192 # prefer arm over thumb mode for performance gains
    193 LOCAL_ARM_MODE := arm
    194 
    195 ifeq ($(USE_CPUFEATURES),yes)
    196   LOCAL_STATIC_LIBRARIES := cpufeatures
    197 endif
    198 
    199 LOCAL_MODULE := webpdecoder_static
    200 
    201 include $(BUILD_STATIC_LIBRARY)
    202 
    203 ifeq ($(ENABLE_SHARED),1)
    204 include $(CLEAR_VARS)
    205 
    206 LOCAL_WHOLE_STATIC_LIBRARIES := webpdecoder_static
    207 
    208 LOCAL_MODULE := webpdecoder
    209 
    210 include $(BUILD_SHARED_LIBRARY)
    211 endif  # ENABLE_SHARED=1
    212 
    213 ################################################################################
    214 # libwebp
    215 
    216 include $(CLEAR_VARS)
    217 
    218 LOCAL_SRC_FILES := \
    219     $(sharpyuv_srcs) \
    220     $(dsp_enc_srcs) \
    221     $(enc_srcs) \
    222     $(utils_enc_srcs) \
    223 
    224 LOCAL_CFLAGS := $(WEBP_CFLAGS)
    225 LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/src $(LOCAL_PATH)
    226 
    227 # prefer arm over thumb mode for performance gains
    228 LOCAL_ARM_MODE := arm
    229 
    230 LOCAL_WHOLE_STATIC_LIBRARIES := webpdecoder_static
    231 
    232 LOCAL_MODULE := webp
    233 
    234 ifeq ($(ENABLE_SHARED),1)
    235   include $(BUILD_SHARED_LIBRARY)
    236 else
    237   include $(BUILD_STATIC_LIBRARY)
    238 endif
    239 
    240 ################################################################################
    241 # libwebpdemux
    242 
    243 include $(CLEAR_VARS)
    244 
    245 LOCAL_SRC_FILES := $(demux_srcs)
    246 
    247 LOCAL_CFLAGS := $(WEBP_CFLAGS)
    248 LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/src
    249 
    250 # prefer arm over thumb mode for performance gains
    251 LOCAL_ARM_MODE := arm
    252 
    253 LOCAL_MODULE := webpdemux
    254 
    255 ifeq ($(ENABLE_SHARED),1)
    256   LOCAL_SHARED_LIBRARIES := webp
    257   include $(BUILD_SHARED_LIBRARY)
    258 else
    259   LOCAL_STATIC_LIBRARIES := webp
    260   include $(BUILD_STATIC_LIBRARY)
    261 endif
    262 
    263 ################################################################################
    264 # libwebpmux
    265 
    266 include $(CLEAR_VARS)
    267 
    268 LOCAL_SRC_FILES := $(mux_srcs)
    269 
    270 LOCAL_CFLAGS := $(WEBP_CFLAGS)
    271 LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH)/src
    272 
    273 # prefer arm over thumb mode for performance gains
    274 LOCAL_ARM_MODE := arm
    275 
    276 LOCAL_MODULE := webpmux
    277 
    278 ifeq ($(ENABLE_SHARED),1)
    279   LOCAL_SHARED_LIBRARIES := webp
    280   include $(BUILD_SHARED_LIBRARY)
    281 else
    282   LOCAL_STATIC_LIBRARIES := webp
    283   include $(BUILD_STATIC_LIBRARY)
    284 endif
    285 
    286 ################################################################################
    287 
    288 WEBP_SRC_PATH := $(LOCAL_PATH)
    289 include $(WEBP_SRC_PATH)/imageio/Android.mk
    290 include $(WEBP_SRC_PATH)/examples/Android.mk
    291 
    292 ifeq ($(USE_CPUFEATURES),yes)
    293   $(call import-module,android/cpufeatures)
    294 endif
    295 endif  # NDK_ROOT