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

TOOLSET := target
TARGET := libjingle_p2p
DEFS_Debug := '-DFEATURE_ENABLE_SSL' \
	'-DFEATURE_ENABLE_VOICEMAIL' \
	'-D_USE_32BIT_TIME_T' \
	'-DSAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS' \
	'-DEXPAT_RELATIVE_PATH' \
	'-DJSONCPP_RELATIVE_PATH' \
	'-DWEBRTC_RELATIVE_PATH' \
	'-DHAVE_WEBRTC' \
	'-DHAVE_WEBRTC_VIDEO' \
	'-DHAVE_WEBRTC_VOICE' \
	'-DNO_HEAPCHECKER' \
	'-DLINUX' \
	'-DPOSIX' \
	'-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' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
	'-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
	'-D_DEBUG'

# Flags passed to all source files.
CFLAGS_Debug := -pthread \
	-fno-exceptions \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-D_FILE_OFFSET_BITS=64 \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-fno-strict-aliasing \
	-pthread \
	-D_REENTRANT \
	-I/usr/include/gtk-2.0 \
	-I/usr/lib/gtk-2.0/include \
	-I/usr/include/atk-1.0 \
	-I/usr/include/cairo \
	-I/usr/include/pango-1.0 \
	-I/usr/include/gio-unix-2.0/ \
	-I/usr/include/glib-2.0 \
	-I/usr/lib/glib-2.0/include \
	-I/usr/include/pixman-1 \
	-I/usr/include/freetype2 \
	-I/usr/include/directfb \
	-I/usr/include/libpng12 \
	-Wno-format \
	-Wno-unused-result \
	-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 \
	-Wno-deprecated

INCS_Debug := -Ithird_party/libyuv/include \
	-Isrc \
	-Ithird_party/libjingle/source \
	-Ithird_party/expat/files \
	-Ithird_party/libjingle/source/talk/third_party/libudev \
	-Isrc \
	-Isrc/modules/interface \
	-Isrc/modules/audio_device/main/interface \
	-Isrc/modules/video_capture/main/interface \
	-Isrc/common_video/libyuv/include \
	-Isrc/modules/video_render/main/interface \
	-Isrc/system_wrappers/interface \
	-Isrc/video_engine/include \
	-Isrc/voice_engine/main/interface

DEFS_Release := '-DFEATURE_ENABLE_SSL' \
	'-DFEATURE_ENABLE_VOICEMAIL' \
	'-D_USE_32BIT_TIME_T' \
	'-DSAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS' \
	'-DEXPAT_RELATIVE_PATH' \
	'-DJSONCPP_RELATIVE_PATH' \
	'-DWEBRTC_RELATIVE_PATH' \
	'-DHAVE_WEBRTC' \
	'-DHAVE_WEBRTC_VIDEO' \
	'-DHAVE_WEBRTC_VOICE' \
	'-DNO_HEAPCHECKER' \
	'-DLINUX' \
	'-DPOSIX' \
	'-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' \
	'-DNDEBUG' \
	'-DNVALGRIND' \
	'-DDYNAMIC_ANNOTATIONS_ENABLED=0'

# Flags passed to all source files.
CFLAGS_Release := -pthread \
	-fno-exceptions \
	-Wno-unused-parameter \
	-Wno-missing-field-initializers \
	-D_FILE_OFFSET_BITS=64 \
	-fvisibility=hidden \
	-pipe \
	-fPIC \
	-fno-strict-aliasing \
	-pthread \
	-D_REENTRANT \
	-I/usr/include/gtk-2.0 \
	-I/usr/lib/gtk-2.0/include \
	-I/usr/include/atk-1.0 \
	-I/usr/include/cairo \
	-I/usr/include/pango-1.0 \
	-I/usr/include/gio-unix-2.0/ \
	-I/usr/include/glib-2.0 \
	-I/usr/lib/glib-2.0/include \
	-I/usr/include/pixman-1 \
	-I/usr/include/freetype2 \
	-I/usr/include/directfb \
	-I/usr/include/libpng12 \
	-Wno-format \
	-Wno-unused-result \
	-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 \
	-Wno-deprecated

INCS_Release := -Ithird_party/libyuv/include \
	-Isrc \
	-Ithird_party/libjingle/source \
	-Ithird_party/expat/files \
	-Ithird_party/libjingle/source/talk/third_party/libudev \
	-Isrc \
	-Isrc/modules/interface \
	-Isrc/modules/audio_device/main/interface \
	-Isrc/modules/video_capture/main/interface \
	-Isrc/common_video/libyuv/include \
	-Isrc/modules/video_render/main/interface \
	-Isrc/system_wrappers/interface \
	-Isrc/video_engine/include \
	-Isrc/voice_engine/main/interface

OBJS := $(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/constants.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/p2ptransport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/p2ptransportchannel.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/port.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/pseudotcp.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/rawtransport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/rawtransportchannel.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/relayport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/session.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/sessiondescription.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/sessionmanager.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/sessionmessages.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/parsing.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/stun.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/stunport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/stunrequest.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/tcpport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/transport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/transportchannel.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/transportchannelproxy.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/base/udpport.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/client/basicportallocator.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/client/httpportallocator.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/p2p/client/socketmonitor.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/audiomonitor.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/call.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/channel.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/channelmanager.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/codec.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/currentspeakermonitor.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/devicemanager.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/filemediaengine.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/mediaengine.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/mediamessages.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/mediamonitor.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/mediasession.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/mediasessionclient.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/rtcpmuxfilter.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/rtpdump.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/rtputils.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/soundclip.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/srtpfilter.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/ssrcmuxfilter.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/videocapturer.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/videocommon.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/videoframe.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/webrtcpassthroughrender.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/webrtcvideocapturer.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/webrtcvideoengine.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/webrtcvideoframe.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/webrtcvoiceengine.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/tunnel/pseudotcpchannel.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/tunnel/tunnelsessionclient.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/gtkvideorenderer.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/libudevsymboltable.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/linuxdevicemanager.o \
	$(obj).target/$(TARGET)/third_party/libjingle/source/talk/session/phone/v4llookup.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/third_party/expat/expat.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 := 

$(obj).target/third_party_mods/libjingle/libjingle_p2p.a: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
$(obj).target/third_party_mods/libjingle/libjingle_p2p.a: LIBS := $(LIBS)
$(obj).target/third_party_mods/libjingle/libjingle_p2p.a: TOOLSET := $(TOOLSET)
$(obj).target/third_party_mods/libjingle/libjingle_p2p.a: $(OBJS) FORCE_DO_CMD
	$(call do_cmd,alink)

all_deps += $(obj).target/third_party_mods/libjingle/libjingle_p2p.a
# Add target alias
.PHONY: libjingle_p2p
libjingle_p2p: $(obj).target/third_party_mods/libjingle/libjingle_p2p.a

# Add target alias to "all" target.
.PHONY: all
all: libjingle_p2p

