# This file is generated by gyp; do not edit.

include $(CLEAR_VARS)

LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := third_party_opus_opus_gyp
LOCAL_MODULE_SUFFIX := .a
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_TARGET_ARCH := $(TARGET_$(GYP_VAR_PREFIX)ARCH)
gyp_intermediate_dir := $(call local-intermediates-dir,,$(GYP_VAR_PREFIX))
gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared,,,$(GYP_VAR_PREFIX))

# Make sure our deps are built first.
GYP_TARGET_DEPENDENCIES :=

GYP_GENERATED_OUTPUTS :=

# Make sure our deps and generated files are built first.
LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)

LOCAL_GENERATED_SOURCES :=

GYP_COPIED_SOURCE_ORIGIN_DIRS :=

LOCAL_SRC_FILES := \
	third_party/opus/src/celt/bands.c \
	third_party/opus/src/celt/celt.c \
	third_party/opus/src/celt/celt_decoder.c \
	third_party/opus/src/celt/celt_encoder.c \
	third_party/opus/src/celt/celt_lpc.c \
	third_party/opus/src/celt/cwrs.c \
	third_party/opus/src/celt/entcode.c \
	third_party/opus/src/celt/entdec.c \
	third_party/opus/src/celt/entenc.c \
	third_party/opus/src/celt/kiss_fft.c \
	third_party/opus/src/celt/laplace.c \
	third_party/opus/src/celt/mathops.c \
	third_party/opus/src/celt/mdct.c \
	third_party/opus/src/celt/modes.c \
	third_party/opus/src/celt/pitch.c \
	third_party/opus/src/celt/quant_bands.c \
	third_party/opus/src/celt/rate.c \
	third_party/opus/src/celt/vq.c \
	third_party/opus/src/silk/A2NLSF.c \
	third_party/opus/src/silk/ana_filt_bank_1.c \
	third_party/opus/src/silk/biquad_alt.c \
	third_party/opus/src/silk/bwexpander.c \
	third_party/opus/src/silk/bwexpander_32.c \
	third_party/opus/src/silk/check_control_input.c \
	third_party/opus/src/silk/CNG.c \
	third_party/opus/src/silk/code_signs.c \
	third_party/opus/src/silk/control_audio_bandwidth.c \
	third_party/opus/src/silk/control_codec.c \
	third_party/opus/src/silk/control_SNR.c \
	third_party/opus/src/silk/debug.c \
	third_party/opus/src/silk/dec_API.c \
	third_party/opus/src/silk/decode_core.c \
	third_party/opus/src/silk/decode_frame.c \
	third_party/opus/src/silk/decode_indices.c \
	third_party/opus/src/silk/decode_parameters.c \
	third_party/opus/src/silk/decode_pitch.c \
	third_party/opus/src/silk/decode_pulses.c \
	third_party/opus/src/silk/decoder_set_fs.c \
	third_party/opus/src/silk/enc_API.c \
	third_party/opus/src/silk/encode_indices.c \
	third_party/opus/src/silk/encode_pulses.c \
	third_party/opus/src/silk/gain_quant.c \
	third_party/opus/src/silk/HP_variable_cutoff.c \
	third_party/opus/src/silk/init_decoder.c \
	third_party/opus/src/silk/init_encoder.c \
	third_party/opus/src/silk/inner_prod_aligned.c \
	third_party/opus/src/silk/interpolate.c \
	third_party/opus/src/silk/lin2log.c \
	third_party/opus/src/silk/log2lin.c \
	third_party/opus/src/silk/LP_variable_cutoff.c \
	third_party/opus/src/silk/LPC_analysis_filter.c \
	third_party/opus/src/silk/LPC_inv_pred_gain.c \
	third_party/opus/src/silk/NLSF2A.c \
	third_party/opus/src/silk/NLSF_decode.c \
	third_party/opus/src/silk/NLSF_del_dec_quant.c \
	third_party/opus/src/silk/NLSF_encode.c \
	third_party/opus/src/silk/NLSF_stabilize.c \
	third_party/opus/src/silk/NLSF_unpack.c \
	third_party/opus/src/silk/NLSF_VQ.c \
	third_party/opus/src/silk/NLSF_VQ_weights_laroia.c \
	third_party/opus/src/silk/NSQ.c \
	third_party/opus/src/silk/NSQ_del_dec.c \
	third_party/opus/src/silk/pitch_est_tables.c \
	third_party/opus/src/silk/PLC.c \
	third_party/opus/src/silk/process_NLSFs.c \
	third_party/opus/src/silk/quant_LTP_gains.c \
	third_party/opus/src/silk/resampler.c \
	third_party/opus/src/silk/resampler_down2.c \
	third_party/opus/src/silk/resampler_down2_3.c \
	third_party/opus/src/silk/resampler_private_AR2.c \
	third_party/opus/src/silk/resampler_private_down_FIR.c \
	third_party/opus/src/silk/resampler_private_IIR_FIR.c \
	third_party/opus/src/silk/resampler_private_up2_HQ.c \
	third_party/opus/src/silk/resampler_rom.c \
	third_party/opus/src/silk/shell_coder.c \
	third_party/opus/src/silk/sigm_Q15.c \
	third_party/opus/src/silk/sort.c \
	third_party/opus/src/silk/stereo_decode_pred.c \
	third_party/opus/src/silk/stereo_encode_pred.c \
	third_party/opus/src/silk/stereo_find_predictor.c \
	third_party/opus/src/silk/stereo_LR_to_MS.c \
	third_party/opus/src/silk/stereo_MS_to_LR.c \
	third_party/opus/src/silk/stereo_quant_pred.c \
	third_party/opus/src/silk/sum_sqr_shift.c \
	third_party/opus/src/silk/table_LSF_cos.c \
	third_party/opus/src/silk/tables_gain.c \
	third_party/opus/src/silk/tables_LTP.c \
	third_party/opus/src/silk/tables_NLSF_CB_NB_MB.c \
	third_party/opus/src/silk/tables_NLSF_CB_WB.c \
	third_party/opus/src/silk/tables_other.c \
	third_party/opus/src/silk/tables_pitch_lag.c \
	third_party/opus/src/silk/tables_pulses_per_block.c \
	third_party/opus/src/silk/VAD.c \
	third_party/opus/src/silk/VQ_WMat_EC.c \
	third_party/opus/src/src/analysis.c \
	third_party/opus/src/src/mlp.c \
	third_party/opus/src/src/mlp_data.c \
	third_party/opus/src/src/opus.c \
	third_party/opus/src/src/opus_decoder.c \
	third_party/opus/src/src/opus_encoder.c \
	third_party/opus/src/src/opus_multistream.c \
	third_party/opus/src/src/opus_multistream_decoder.c \
	third_party/opus/src/src/opus_multistream_encoder.c \
	third_party/opus/src/src/repacketizer.c \
	third_party/opus/src/silk/float/apply_sine_window_FLP.c \
	third_party/opus/src/silk/float/autocorrelation_FLP.c \
	third_party/opus/src/silk/float/burg_modified_FLP.c \
	third_party/opus/src/silk/float/bwexpander_FLP.c \
	third_party/opus/src/silk/float/corrMatrix_FLP.c \
	third_party/opus/src/silk/float/encode_frame_FLP.c \
	third_party/opus/src/silk/float/energy_FLP.c \
	third_party/opus/src/silk/float/find_LPC_FLP.c \
	third_party/opus/src/silk/float/find_LTP_FLP.c \
	third_party/opus/src/silk/float/find_pitch_lags_FLP.c \
	third_party/opus/src/silk/float/find_pred_coefs_FLP.c \
	third_party/opus/src/silk/float/inner_product_FLP.c \
	third_party/opus/src/silk/float/k2a_FLP.c \
	third_party/opus/src/silk/float/levinsondurbin_FLP.c \
	third_party/opus/src/silk/float/LPC_analysis_filter_FLP.c \
	third_party/opus/src/silk/float/LPC_inv_pred_gain_FLP.c \
	third_party/opus/src/silk/float/LTP_analysis_filter_FLP.c \
	third_party/opus/src/silk/float/LTP_scale_ctrl_FLP.c \
	third_party/opus/src/silk/float/noise_shape_analysis_FLP.c \
	third_party/opus/src/silk/float/pitch_analysis_core_FLP.c \
	third_party/opus/src/silk/float/prefilter_FLP.c \
	third_party/opus/src/silk/float/process_gains_FLP.c \
	third_party/opus/src/silk/float/regularize_correlations_FLP.c \
	third_party/opus/src/silk/float/residual_energy_FLP.c \
	third_party/opus/src/silk/float/scale_copy_vector_FLP.c \
	third_party/opus/src/silk/float/scale_vector_FLP.c \
	third_party/opus/src/silk/float/schur_FLP.c \
	third_party/opus/src/silk/float/solve_LS_FLP.c \
	third_party/opus/src/silk/float/sort_FLP.c \
	third_party/opus/src/silk/float/warped_autocorrelation_FLP.c \
	third_party/opus/src/silk/float/wrappers_FLP.c


# Flags passed to both C and C++ files.
MY_CFLAGS_Debug := \
	-fstack-protector \
	--param=ssp-buffer-size=4 \
	-fno-exceptions \
	-fno-strict-aliasing \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-Wno-unused-local-typedefs \
	-Wno-format \
	-m64 \
	-march=x86-64 \
	-ffunction-sections \
	-funwind-tables \
	-g \
	-fstack-protector \
	-fno-short-enums \
	-finline-limit=64 \
	-Wa,--noexecstack \
	-U_FORTIFY_SOURCE \
	-Wno-extra \
	-Wno-ignored-qualifiers \
	-Wno-type-limits \
	-Wno-unused-but-set-variable \
	-Wno-address \
	-Wno-format-security \
	-Wno-return-type \
	-Wno-sequence-point \
	-Os \
	-g \
	-fdata-sections \
	-ffunction-sections \
	-fomit-frame-pointer \
	-funwind-tables

MY_DEFS_Debug := \
	'-DV8_DEPRECATION_WARNINGS' \
	'-DBLINK_SCALE_FILTERS_AT_RECORD_TIME' \
	'-D_FILE_OFFSET_BITS=64' \
	'-DNO_TCMALLOC' \
	'-DDISABLE_NACL' \
	'-DCHROMIUM_BUILD' \
	'-DUSE_LIBJPEG_TURBO=1' \
	'-DENABLE_WEBRTC=1' \
	'-DUSE_PROPRIETARY_CODECS' \
	'-DENABLE_BROWSER_CDMS' \
	'-DENABLE_CONFIGURATION_POLICY' \
	'-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
	'-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
	'-DENABLE_EGLIMAGE=1' \
	'-DCLD_VERSION=1' \
	'-DCLD_DATA_FROM_STATIC' \
	'-DENABLE_PRINTING=1' \
	'-DENABLE_MANAGED_USERS=1' \
	'-DDATA_REDUCTION_FALLBACK_HOST="http://compress.googlezip.net:80/"' \
	'-DDATA_REDUCTION_DEV_HOST="http://proxy-dev.googlezip.net:80/"' \
	'-DSPDY_PROXY_AUTH_ORIGIN="https://proxy.googlezip.net:443/"' \
	'-DDATA_REDUCTION_PROXY_PROBE_URL="http://check.googlezip.net/connect"' \
	'-DDATA_REDUCTION_PROXY_WARMUP_URL="http://www.gstatic.com/generate_204"' \
	'-DVIDEO_HOLE=1' \
	'-DOPUS_BUILD' \
	'-DOPUS_EXPORT=' \
	'-DHAVE_LRINT' \
	'-DHAVE_LRINTF' \
	'-DVAR_ARRAYS' \
	'-DUSE_OPENSSL=1' \
	'-DUSE_OPENSSL_CERTS=1' \
	'-DANDROID' \
	'-D__GNU_SOURCE=1' \
	'-DUSE_STLPORT=1' \
	'-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
	'-DCHROME_BUILD_ID=""' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
	'-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
	'-D_DEBUG'


# Include paths placed before CFLAGS/CPPFLAGS
LOCAL_C_INCLUDES_Debug := \
	$(gyp_shared_intermediate_dir) \
	$(LOCAL_PATH)/third_party/opus/src/celt \
	$(LOCAL_PATH)/third_party/opus/src/include \
	$(LOCAL_PATH)/third_party/opus/src/silk \
	$(LOCAL_PATH)/third_party/opus/src/silk/float \
	$(PWD)/frameworks/wilhelm/include \
	$(PWD)/bionic \
	$(PWD)/external/stlport/stlport


# Flags passed to only C++ (and not C) files.
LOCAL_CPPFLAGS_Debug := \
	-fno-rtti \
	-fno-threadsafe-statics \
	-fvisibility-inlines-hidden \
	-Wno-deprecated \
	-std=gnu++11 \
	-Wno-narrowing \
	-Wno-literal-suffix \
	-Wno-non-virtual-dtor \
	-Wno-sign-promo \
	-Wno-non-virtual-dtor


# Flags passed to both C and C++ files.
MY_CFLAGS_Release := \
	-fstack-protector \
	--param=ssp-buffer-size=4 \
	-fno-exceptions \
	-fno-strict-aliasing \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-Wno-unused-local-typedefs \
	-Wno-format \
	-m64 \
	-march=x86-64 \
	-ffunction-sections \
	-funwind-tables \
	-g \
	-fstack-protector \
	-fno-short-enums \
	-finline-limit=64 \
	-Wa,--noexecstack \
	-U_FORTIFY_SOURCE \
	-Wno-extra \
	-Wno-ignored-qualifiers \
	-Wno-type-limits \
	-Wno-unused-but-set-variable \
	-Wno-address \
	-Wno-format-security \
	-Wno-return-type \
	-Wno-sequence-point \
	-Os \
	-fno-ident \
	-fdata-sections \
	-ffunction-sections \
	-fomit-frame-pointer \
	-funwind-tables

MY_DEFS_Release := \
	'-DV8_DEPRECATION_WARNINGS' \
	'-DBLINK_SCALE_FILTERS_AT_RECORD_TIME' \
	'-D_FILE_OFFSET_BITS=64' \
	'-DNO_TCMALLOC' \
	'-DDISABLE_NACL' \
	'-DCHROMIUM_BUILD' \
	'-DUSE_LIBJPEG_TURBO=1' \
	'-DENABLE_WEBRTC=1' \
	'-DUSE_PROPRIETARY_CODECS' \
	'-DENABLE_BROWSER_CDMS' \
	'-DENABLE_CONFIGURATION_POLICY' \
	'-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
	'-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
	'-DENABLE_EGLIMAGE=1' \
	'-DCLD_VERSION=1' \
	'-DCLD_DATA_FROM_STATIC' \
	'-DENABLE_PRINTING=1' \
	'-DENABLE_MANAGED_USERS=1' \
	'-DDATA_REDUCTION_FALLBACK_HOST="http://compress.googlezip.net:80/"' \
	'-DDATA_REDUCTION_DEV_HOST="http://proxy-dev.googlezip.net:80/"' \
	'-DSPDY_PROXY_AUTH_ORIGIN="https://proxy.googlezip.net:443/"' \
	'-DDATA_REDUCTION_PROXY_PROBE_URL="http://check.googlezip.net/connect"' \
	'-DDATA_REDUCTION_PROXY_WARMUP_URL="http://www.gstatic.com/generate_204"' \
	'-DVIDEO_HOLE=1' \
	'-DOPUS_BUILD' \
	'-DOPUS_EXPORT=' \
	'-DHAVE_LRINT' \
	'-DHAVE_LRINTF' \
	'-DVAR_ARRAYS' \
	'-DUSE_OPENSSL=1' \
	'-DUSE_OPENSSL_CERTS=1' \
	'-DANDROID' \
	'-D__GNU_SOURCE=1' \
	'-DUSE_STLPORT=1' \
	'-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
	'-DCHROME_BUILD_ID=""' \
	'-DNDEBUG' \
	'-DNVALGRIND' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=0'


# Include paths placed before CFLAGS/CPPFLAGS
LOCAL_C_INCLUDES_Release := \
	$(gyp_shared_intermediate_dir) \
	$(LOCAL_PATH)/third_party/opus/src/celt \
	$(LOCAL_PATH)/third_party/opus/src/include \
	$(LOCAL_PATH)/third_party/opus/src/silk \
	$(LOCAL_PATH)/third_party/opus/src/silk/float \
	$(PWD)/frameworks/wilhelm/include \
	$(PWD)/bionic \
	$(PWD)/external/stlport/stlport


# Flags passed to only C++ (and not C) files.
LOCAL_CPPFLAGS_Release := \
	-fno-rtti \
	-fno-threadsafe-statics \
	-fvisibility-inlines-hidden \
	-Wno-deprecated \
	-std=gnu++11 \
	-Wno-narrowing \
	-Wno-literal-suffix \
	-Wno-non-virtual-dtor \
	-Wno-sign-promo \
	-Wno-non-virtual-dtor


LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
LOCAL_ASFLAGS := $(LOCAL_CFLAGS)
### Rules for final target.

LOCAL_LDFLAGS_Debug := \
	-Wl,-z,now \
	-Wl,-z,relro \
	-Wl,--fatal-warnings \
	-Wl,-z,noexecstack \
	-fPIC \
	-m64 \
	-fuse-ld=gold \
	-nostdlib \
	-Wl,--no-undefined \
	-Wl,--exclude-libs=ALL \
	-Wl,--warn-shared-textrel \
	-Wl,-O1 \
	-Wl,--as-needed


LOCAL_LDFLAGS_Release := \
	-Wl,-z,now \
	-Wl,-z,relro \
	-Wl,--fatal-warnings \
	-Wl,-z,noexecstack \
	-fPIC \
	-m64 \
	-fuse-ld=gold \
	-nostdlib \
	-Wl,--no-undefined \
	-Wl,--exclude-libs=ALL \
	-Wl,-O1 \
	-Wl,--as-needed \
	-Wl,--gc-sections \
	-Wl,--warn-shared-textrel


LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))

LOCAL_STATIC_LIBRARIES :=

# Enable grouping to fix circular references
LOCAL_GROUP_STATIC_LIBRARIES := true

LOCAL_SHARED_LIBRARIES := \
	libstlport \
	libdl

# Add target alias to "gyp_all_modules" target.
.PHONY: gyp_all_modules
gyp_all_modules: third_party_opus_opus_gyp

# Alias gyp target name.
.PHONY: opus
opus: third_party_opus_opus_gyp

include $(BUILD_STATIC_LIBRARY)
