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

TOOLSET := target
TARGET := voe_auto_test
DEFS_Debug := '-DNO_HEAPCHECKER' \
	'-DCHROMIUM_BUILD' \
	'-DUSE_NSS=1' \
	'-DTOOLKIT_USES_GTK=1' \
	'-DGTK_DISABLE_SINGLE_INCLUDES=1' \
	'-DWEBUI_TASK_MANAGER=1' \
	'-DENABLE_REMOTING=1' \
	'-DENABLE_P2P_APIS=1' \
	'-DENABLE_CONFIGURATION_POLICY' \
	'-DENABLE_INPUT_SPEECH' \
	'-DENABLE_NOTIFICATIONS' \
	'-DENABLE_GPU=1' \
	'-DENABLE_EGLIMAGE=1' \
	'-DUSE_SKIA=1' \
	'-DENABLE_REGISTER_PROTOCOL_HANDLER=1' \
	'-DWEBRTC_TARGET_PC' \
	'-DWEBRTC_LINUX' \
	'-DWEBRTC_THREAD_RR' \
	'-DUNIT_TEST' \
	'-DGTEST_HAS_RTTI=0' \
	'-D__STDC_FORMAT_MACROS' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
	'-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
	'-D_DEBUG'

# Flags passed to all source files.
CFLAGS_Debug := -Werror \
	-pthread \
	-fno-exceptions \
	-Wall \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-D_FILE_OFFSET_BITS=64 \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-fno-strict-aliasing \
	-Wextra \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-O0 \
	-g

# Flags passed to only C files.
CFLAGS_C_Debug := 

# Flags passed to only C++ files.
CFLAGS_CC_Debug := -fno-rtti \
	-fno-threadsafe-statics \
	-fvisibility-inlines-hidden \
	-Wsign-compare

INCS_Debug := -Isrc \
	-I. \
	-Isrc/voice_engine/main/test/auto_test \
	-Isrc/voice_engine/main/test/auto_test/fixtures \
	-Isrc/modules/interface \
	-Isrc/voice_engine/main/source \
	-Isrc/modules/audio_device/main/interface \
	-Itest \
	-Isrc/voice_engine/main/interface \
	-Isrc/system_wrappers/interface \
	-Itesting/gtest/include \
	-Itesting/gmock/include

DEFS_Release := '-DNO_HEAPCHECKER' \
	'-DCHROMIUM_BUILD' \
	'-DUSE_NSS=1' \
	'-DTOOLKIT_USES_GTK=1' \
	'-DGTK_DISABLE_SINGLE_INCLUDES=1' \
	'-DWEBUI_TASK_MANAGER=1' \
	'-DENABLE_REMOTING=1' \
	'-DENABLE_P2P_APIS=1' \
	'-DENABLE_CONFIGURATION_POLICY' \
	'-DENABLE_INPUT_SPEECH' \
	'-DENABLE_NOTIFICATIONS' \
	'-DENABLE_GPU=1' \
	'-DENABLE_EGLIMAGE=1' \
	'-DUSE_SKIA=1' \
	'-DENABLE_REGISTER_PROTOCOL_HANDLER=1' \
	'-DWEBRTC_TARGET_PC' \
	'-DWEBRTC_LINUX' \
	'-DWEBRTC_THREAD_RR' \
	'-DUNIT_TEST' \
	'-DGTEST_HAS_RTTI=0' \
	'-D__STDC_FORMAT_MACROS' \
	'-DNDEBUG' \
	'-DNVALGRIND' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=0'

# Flags passed to all source files.
CFLAGS_Release := -Werror \
	-pthread \
	-fno-exceptions \
	-Wall \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-D_FILE_OFFSET_BITS=64 \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-fno-strict-aliasing \
	-Wextra \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-O2 \
	-fno-ident \
	-fdata-sections \
	-ffunction-sections

# Flags passed to only C files.
CFLAGS_C_Release := 

# Flags passed to only C++ files.
CFLAGS_CC_Release := -fno-rtti \
	-fno-threadsafe-statics \
	-fvisibility-inlines-hidden \
	-Wsign-compare

INCS_Release := -Isrc \
	-I. \
	-Isrc/voice_engine/main/test/auto_test \
	-Isrc/voice_engine/main/test/auto_test/fixtures \
	-Isrc/modules/interface \
	-Isrc/voice_engine/main/source \
	-Isrc/modules/audio_device/main/interface \
	-Itest \
	-Isrc/voice_engine/main/interface \
	-Isrc/system_wrappers/interface \
	-Itesting/gtest/include \
	-Itesting/gmock/include

OBJS := $(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/automated_mode.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/fixtures/after_initialization_fixture.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/fixtures/after_streaming_fixture.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/fixtures/before_initialization_fixture.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/codec_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/dtmf_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/hardware_before_initializing_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/hardware_before_streaming_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/hardware_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/manual_hold_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/neteq_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/network_before_streaming_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/rtp_rtcp_before_streaming_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/rtp_rtcp_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/voe_base_misc_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/standard/volume_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/resource_manager.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/voe_cpu_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/voe_extended_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/voe_standard_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/voe_stress_test.o \
	$(obj).target/$(TARGET)/src/voice_engine/main/test/auto_test/voe_unit_test.o

# Add to the list of files we specially track dependencies for.
all_deps += $(OBJS)

# Make sure our dependencies are built before any of us.
$(OBJS): | $(obj).target/src/voice_engine/libvoice_engine_core.a $(obj).target/src/system_wrappers/source/libsystem_wrappers.a $(obj).target/test/libtest_support.a $(obj).target/testing/libgtest.a $(obj).target/testing/libgmock.a $(obj).target/src/common_audio/libresampler.a $(obj).target/src/common_audio/libsignal_processing.a $(obj).target/src/modules/libaudio_coding_module.a $(obj).target/src/modules/libCNG.a $(obj).target/src/modules/libG711.a $(obj).target/src/modules/libG722.a $(obj).target/src/modules/libiLBC.a $(obj).target/src/modules/libiSAC.a $(obj).target/src/modules/libiSACFix.a $(obj).target/src/modules/libPCM16B.a $(obj).target/src/modules/libNetEq.a $(obj).target/src/common_audio/libvad.a $(obj).target/src/modules/libaudio_conference_mixer.a $(obj).target/src/modules/libaudio_processing.a $(obj).target/src/modules/libaec.a $(obj).target/src/modules/libapm_util.a $(obj).target/src/modules/libaec_sse2.a $(obj).target/src/modules/libaecm.a $(obj).target/src/modules/libagc.a $(obj).target/src/modules/libns.a $(obj).target/src/modules/libaudioproc_debug_proto.a $(obj).target/third_party/protobuf/libprotobuf_lite.a $(obj).target/src/modules/libaudio_device.a $(obj).target/src/modules/libmedia_file.a $(obj).target/src/modules/libwebrtc_utility.a $(obj).target/src/modules/libwebrtc_video_coding.a $(obj).target/src/modules/libwebrtc_i420.a $(obj).target/src/modules/libwebrtc_vp8.a $(obj).target/src/common_video/libwebrtc_libyuv.a $(obj).target/third_party/libyuv/libyuv.a $(obj).target/third_party/libvpx/libvpx.a $(obj).target/src/modules/librtp_rtcp.a $(obj).target/src/modules/libudp_transport.a $(obj).target/testing/gtest_prod.stamp

# CFLAGS et al overrides must be target-local.
# See "Target-specific Variable Values" in the GNU Make manual.
$(OBJS): TOOLSET := $(TOOLSET)
$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))

# Suffix rules, putting all outputs into $(obj).

$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
	@$(call do_cmd,cxx,1)

# Try building from generated source, too.

$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
	@$(call do_cmd,cxx,1)

$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cc FORCE_DO_CMD
	@$(call do_cmd,cxx,1)

# End of this set of suffix rules
### Rules for final target.
LDFLAGS_Debug := -pthread \
	-Wl,-z,noexecstack \
	-fPIC

LDFLAGS_Release := -pthread \
	-Wl,-z,noexecstack \
	-fPIC \
	-Wl,-O1 \
	-Wl,--as-needed \
	-Wl,--gc-sections

LIBS := -lrt \
	-ldl \
	-lasound \
	-lpulse

$(builddir)/voe_auto_test: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
$(builddir)/voe_auto_test: LIBS := $(LIBS)
$(builddir)/voe_auto_test: LD_INPUTS := $(OBJS) $(obj).target/src/voice_engine/libvoice_engine_core.a $(obj).target/src/system_wrappers/source/libsystem_wrappers.a $(obj).target/test/libtest_support.a $(obj).target/testing/libgtest.a $(obj).target/testing/libgmock.a $(obj).target/src/common_audio/libresampler.a $(obj).target/src/common_audio/libsignal_processing.a $(obj).target/src/modules/libaudio_coding_module.a $(obj).target/src/modules/libCNG.a $(obj).target/src/modules/libG711.a $(obj).target/src/modules/libG722.a $(obj).target/src/modules/libiLBC.a $(obj).target/src/modules/libiSAC.a $(obj).target/src/modules/libiSACFix.a $(obj).target/src/modules/libPCM16B.a $(obj).target/src/modules/libNetEq.a $(obj).target/src/common_audio/libvad.a $(obj).target/src/modules/libaudio_conference_mixer.a $(obj).target/src/modules/libaudio_processing.a $(obj).target/src/modules/libaec.a $(obj).target/src/modules/libapm_util.a $(obj).target/src/modules/libaec_sse2.a $(obj).target/src/modules/libaecm.a $(obj).target/src/modules/libagc.a $(obj).target/src/modules/libns.a $(obj).target/src/modules/libaudioproc_debug_proto.a $(obj).target/third_party/protobuf/libprotobuf_lite.a $(obj).target/src/modules/libaudio_device.a $(obj).target/src/modules/libmedia_file.a $(obj).target/src/modules/libwebrtc_utility.a $(obj).target/src/modules/libwebrtc_video_coding.a $(obj).target/src/modules/libwebrtc_i420.a $(obj).target/src/modules/libwebrtc_vp8.a $(obj).target/src/common_video/libwebrtc_libyuv.a $(obj).target/third_party/libyuv/libyuv.a $(obj).target/third_party/libvpx/libvpx.a $(obj).target/src/modules/librtp_rtcp.a $(obj).target/src/modules/libudp_transport.a
$(builddir)/voe_auto_test: TOOLSET := $(TOOLSET)
$(builddir)/voe_auto_test: $(OBJS) $(obj).target/src/voice_engine/libvoice_engine_core.a $(obj).target/src/system_wrappers/source/libsystem_wrappers.a $(obj).target/test/libtest_support.a $(obj).target/testing/libgtest.a $(obj).target/testing/libgmock.a $(obj).target/src/common_audio/libresampler.a $(obj).target/src/common_audio/libsignal_processing.a $(obj).target/src/modules/libaudio_coding_module.a $(obj).target/src/modules/libCNG.a $(obj).target/src/modules/libG711.a $(obj).target/src/modules/libG722.a $(obj).target/src/modules/libiLBC.a $(obj).target/src/modules/libiSAC.a $(obj).target/src/modules/libiSACFix.a $(obj).target/src/modules/libPCM16B.a $(obj).target/src/modules/libNetEq.a $(obj).target/src/common_audio/libvad.a $(obj).target/src/modules/libaudio_conference_mixer.a $(obj).target/src/modules/libaudio_processing.a $(obj).target/src/modules/libaec.a $(obj).target/src/modules/libapm_util.a $(obj).target/src/modules/libaec_sse2.a $(obj).target/src/modules/libaecm.a $(obj).target/src/modules/libagc.a $(obj).target/src/modules/libns.a $(obj).target/src/modules/libaudioproc_debug_proto.a $(obj).target/third_party/protobuf/libprotobuf_lite.a $(obj).target/src/modules/libaudio_device.a $(obj).target/src/modules/libmedia_file.a $(obj).target/src/modules/libwebrtc_utility.a $(obj).target/src/modules/libwebrtc_video_coding.a $(obj).target/src/modules/libwebrtc_i420.a $(obj).target/src/modules/libwebrtc_vp8.a $(obj).target/src/common_video/libwebrtc_libyuv.a $(obj).target/third_party/libyuv/libyuv.a $(obj).target/third_party/libvpx/libvpx.a $(obj).target/src/modules/librtp_rtcp.a $(obj).target/src/modules/libudp_transport.a FORCE_DO_CMD
	$(call do_cmd,link)

all_deps += $(builddir)/voe_auto_test
# Add target alias
.PHONY: voe_auto_test
voe_auto_test: $(builddir)/voe_auto_test

# Add executable to "all" target.
.PHONY: all
all: $(builddir)/voe_auto_test

