Bug 757637: Rollup makesystem changes for webrtc r=khuey r=ted f=glandium

This commit is contained in:
Randell Jesup 2012-06-20 07:27:43 -04:00
parent 9f2035f2a4
commit 04cb98a9a8
19 changed files with 686 additions and 31 deletions

View File

@ -26,9 +26,13 @@ namespace std {
template ostream& ostream::_M_insert(unsigned long); template ostream& ostream::_M_insert(unsigned long);
template ostream& ostream::_M_insert(long long); template ostream& ostream::_M_insert(long long);
template ostream& ostream::_M_insert(unsigned long long); template ostream& ostream::_M_insert(unsigned long long);
template ostream& ostream::_M_insert(bool);
template ostream& ostream::_M_insert(const void*); template ostream& ostream::_M_insert(const void*);
template ostream& __ostream_insert(ostream&, const char*, streamsize); template ostream& __ostream_insert(ostream&, const char*, streamsize);
template istream& istream::_M_extract(double&); template istream& istream::_M_extract(double&);
template istream& istream::_M_extract(float&);
template istream& istream::_M_extract(unsigned int&);
template istream& istream::_M_extract(unsigned long&);
#endif #endif
#if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 14) #if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 14)
/* Instantiate these templates to avoid GLIBCXX_3.4.14 symbol versions /* Instantiate these templates to avoid GLIBCXX_3.4.14 symbol versions
@ -42,6 +46,7 @@ namespace std {
template string& string::operator=(string&&); template string& string::operator=(string&&);
template wstring::basic_string(wstring&&); template wstring::basic_string(wstring&&);
template wstring& wstring::operator=(wstring&&); template wstring& wstring::operator=(wstring&&);
template string& string::assign(string&&);
template wstring& wstring::assign(wstring&&); template wstring& wstring::assign(wstring&&);
#endif /* __GXX_EXPERIMENTAL_CXX0X__ */ #endif /* __GXX_EXPERIMENTAL_CXX0X__ */
#endif /* (__GNUC__ == 4) && (__GNUC_MINOR__ >= 5) */ #endif /* (__GNUC__ == 4) && (__GNUC_MINOR__ >= 5) */

View File

@ -137,6 +137,7 @@ MOZ_WEBM = @MOZ_WEBM@
MOZ_MEDIA_PLUGINS = @MOZ_MEDIA_PLUGINS@ MOZ_MEDIA_PLUGINS = @MOZ_MEDIA_PLUGINS@
MOZ_OMX_PLUGIN = @MOZ_OMX_PLUGIN@ MOZ_OMX_PLUGIN = @MOZ_OMX_PLUGIN@
MOZ_GSTREAMER = @MOZ_GSTREAMER@ MOZ_GSTREAMER = @MOZ_GSTREAMER@
MOZ_VP8 = @MOZ_VP8@
MOZ_VP8_ERROR_CONCEALMENT = @MOZ_VP8_ERROR_CONCEALMENT@ MOZ_VP8_ERROR_CONCEALMENT = @MOZ_VP8_ERROR_CONCEALMENT@
MOZ_VP8_ENCODER = @MOZ_VP8_ENCODER@ MOZ_VP8_ENCODER = @MOZ_VP8_ENCODER@
VPX_AS = @VPX_AS@ VPX_AS = @VPX_AS@
@ -170,6 +171,7 @@ MOZ_D3DX9_DLL = @MOZ_D3DX9_DLL@
MOZ_D3DCOMPILER_DLL = @MOZ_D3DCOMPILER_DLL@ MOZ_D3DCOMPILER_DLL = @MOZ_D3DCOMPILER_DLL@
MOZ_GL_PROVIDER = @MOZ_GL_PROVIDER@ MOZ_GL_PROVIDER = @MOZ_GL_PROVIDER@
MOZ_GL_DEFAULT_PROVIDER = @MOZ_GL_DEFAULT_PROVIDER@ MOZ_GL_DEFAULT_PROVIDER = @MOZ_GL_DEFAULT_PROVIDER@
MOZ_WEBRTC = @MOZ_WEBRTC@
JAVA=@JAVA@ JAVA=@JAVA@

View File

@ -633,7 +633,10 @@ endif
HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX),$(HOST_LIBS)) HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX),$(HOST_LIBS))
# Dependencies which, if modified, should cause everything to rebuild # Dependencies which, if modified, should cause everything to rebuild
GLOBAL_DEPS += Makefile Makefile.in $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk GLOBAL_DEPS += Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk
ifndef NO_MAKEFILE_RULE
GLOBAL_DEPS += Makefile.in
endif
############################################## ##############################################
include $(topsrcdir)/config/makefiles/target_libs.mk include $(topsrcdir)/config/makefiles/target_libs.mk
@ -1147,16 +1150,20 @@ GARBAGE_DIRS += $(_JAVA_DIR)
# Update Makefiles # Update Makefiles
############################################################################### ###############################################################################
ifndef NO_MAKEFILE_RULE
# Note: Passing depth to make-makefile is optional. # Note: Passing depth to make-makefile is optional.
# It saves the script some work, though. # It saves the script some work, though.
Makefile: Makefile.in Makefile: Makefile.in
@$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) @$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH)
endif
ifndef NO_SUBMAKEFILES_RULE
ifdef SUBMAKEFILES ifdef SUBMAKEFILES
# VPATH does not work on some machines in this case, so add $(srcdir) # VPATH does not work on some machines in this case, so add $(srcdir)
$(SUBMAKEFILES): % : $(srcdir)/%.in $(SUBMAKEFILES): % : $(srcdir)/%.in
$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $@ $(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $@
endif endif
endif
ifdef AUTOUPDATE_CONFIGURE ifdef AUTOUPDATE_CONFIGURE
$(topsrcdir)/configure: $(topsrcdir)/configure.in $(topsrcdir)/configure: $(topsrcdir)/configure.in

View File

@ -1059,3 +1059,5 @@ gst/gst.h
gst/app/gstappsink.h gst/app/gstappsink.h
gst/app/gstappsrc.h gst/app/gstappsrc.h
gst/video/video.h gst/video/video.h
sys/msg.h
sys/ipc.h

View File

@ -522,18 +522,22 @@ case "$target" in
fi fi
_CC_SUITE=8 _CC_SUITE=8
_MSVS_VERSION=2005
AC_DEFINE(_CRT_SECURE_NO_DEPRECATE) AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE) AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
elif test "$_CC_MAJOR_VERSION" = "15"; then elif test "$_CC_MAJOR_VERSION" = "15"; then
_CC_SUITE=9 _CC_SUITE=9
_MSVS_VERSION=2008
AC_DEFINE(_CRT_SECURE_NO_WARNINGS) AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
elif test "$_CC_MAJOR_VERSION" = "16"; then elif test "$_CC_MAJOR_VERSION" = "16"; then
_CC_SUITE=10 _CC_SUITE=10
_MSVS_VERSION=2010
AC_DEFINE(_CRT_SECURE_NO_WARNINGS) AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
elif test "$_CC_MAJOR_VERSION" = "17"; then elif test "$_CC_MAJOR_VERSION" = "17"; then
_CC_SUITE=11 _CC_SUITE=11
_MSVS_VERSION=2011
AC_DEFINE(_CRT_SECURE_NO_WARNINGS) AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS) AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
else else
@ -4250,9 +4254,12 @@ MOZ_WAVE=1
MOZ_MEDIA= MOZ_MEDIA=
MOZ_OPUS=1 MOZ_OPUS=1
MOZ_WEBM=1 MOZ_WEBM=1
MOZ_WEBRTC=
MOZ_WEBRTC_SIGNALING=
MOZ_MEDIA_PLUGINS= MOZ_MEDIA_PLUGINS=
MOZ_MEDIA_NAVIGATOR= MOZ_MEDIA_NAVIGATOR=
MOZ_OMX_PLUGIN= MOZ_OMX_PLUGIN=
MOZ_VP8=
MOZ_VP8_ERROR_CONCEALMENT= MOZ_VP8_ERROR_CONCEALMENT=
MOZ_VP8_ENCODER= MOZ_VP8_ENCODER=
VPX_AS= VPX_AS=
@ -5271,6 +5278,25 @@ if test "$NS_PRINTING"; then
AC_DEFINE(NS_PRINT_PREVIEW) AC_DEFINE(NS_PRINT_PREVIEW)
fi fi
dnl ========================================================
dnl = Enable WebRTC code
dnl ========================================================
MOZ_ARG_ENABLE_BOOL(webrtc,
[ --enable-webrtc Enable support for WebRTC],
MOZ_WEBRTC=1,
MOZ_WEBRTC=)
if test -n "$MOZ_WEBRTC"; then
AC_DEFINE(MOZ_WEBRTC)
MOZ_MEDIA=1
MOZ_RAW=1
MOZ_VP8=1
MOZ_VP8_ENCODER=1
MOZ_VP8_ERROR_CONCEALMENT=1
fi
AC_SUBST(MOZ_WEBRTC)
dnl ======================================================== dnl ========================================================
dnl = Enable Raw Codecs dnl = Enable Raw Codecs
dnl ======================================================== dnl ========================================================
@ -5346,6 +5372,11 @@ MOZ_ARG_DISABLE_BOOL(webm,
MOZ_WEBM=, MOZ_WEBM=,
MOZ_WEBM=1) MOZ_WEBM=1)
if test -n "$MOZ_WEBM"; then
AC_DEFINE(MOZ_WEBM)
MOZ_VP8=1
fi;
dnl ======================================================== dnl ========================================================
dnl = Disable media plugin support dnl = Disable media plugin support
dnl ======================================================== dnl ========================================================
@ -5397,8 +5428,8 @@ MOZ_ARG_WITH_BOOL(system-libvpx,
MOZ_LIBVPX_INCLUDES= MOZ_LIBVPX_INCLUDES=
MOZ_LIBVPX_LIBS= MOZ_LIBVPX_LIBS=
if test -n "$MOZ_WEBM"; then if test -n "$MOZ_VP8"; then
AC_DEFINE(MOZ_WEBM) AC_DEFINE(MOZ_VP8)
if test -n "$MOZ_VP8_ERROR_CONCEALMENT" ; then if test -n "$MOZ_VP8_ERROR_CONCEALMENT" ; then
AC_DEFINE(MOZ_VP8_ERROR_CONCEALMENT) AC_DEFINE(MOZ_VP8_ERROR_CONCEALMENT)
fi fi
@ -5425,7 +5456,7 @@ AC_SUBST(MOZ_NATIVE_LIBVPX)
AC_SUBST(MOZ_LIBVPX_INCLUDES) AC_SUBST(MOZ_LIBVPX_INCLUDES)
AC_SUBST(MOZ_LIBVPX_LIBS) AC_SUBST(MOZ_LIBVPX_LIBS)
if test -n "$MOZ_WEBM" -a -z "$MOZ_NATIVE_LIBVPX"; then if test "$MOZ_WEBM"; then
MOZ_SYDNEYAUDIO=1 MOZ_SYDNEYAUDIO=1
MOZ_CUBEB=1 MOZ_CUBEB=1
MOZ_MEDIA=1 MOZ_MEDIA=1
@ -5437,7 +5468,9 @@ if test -n "$MOZ_WEBM" -a -z "$MOZ_NATIVE_LIBVPX"; then
MOZ_VORBIS=1 MOZ_VORBIS=1
;; ;;
esac esac
fi
if test -n "$MOZ_VP8" -a -z "$MOZ_NATIVE_LIBVPX"; then
dnl Detect if we can use an assembler to compile optimized assembly for libvpx. dnl Detect if we can use an assembler to compile optimized assembly for libvpx.
dnl We currently require yasm on all x86 platforms and require yasm 1.1.0 on Win32. dnl We currently require yasm on all x86 platforms and require yasm 1.1.0 on Win32.
@ -8588,6 +8621,7 @@ AC_SUBST(MOZ_MEDIA_PLUGINS)
AC_SUBST(MOZ_OMX_PLUGIN) AC_SUBST(MOZ_OMX_PLUGIN)
AC_SUBST(MOZ_VP8_ERROR_CONCEALMENT) AC_SUBST(MOZ_VP8_ERROR_CONCEALMENT)
AC_SUBST(MOZ_VP8_ENCODER) AC_SUBST(MOZ_VP8_ENCODER)
AC_SUBST(MOZ_VP8)
AC_SUBST(MOZ_OGG) AC_SUBST(MOZ_OGG)
AC_SUBST(MOZ_ALSA_LIBS) AC_SUBST(MOZ_ALSA_LIBS)
AC_SUBST(MOZ_ALSA_CFLAGS) AC_SUBST(MOZ_ALSA_CFLAGS)
@ -8865,6 +8899,52 @@ mv -f config/autoconf.mk config/autoconf.mk.orig 2> /dev/null
AC_OUTPUT($MAKEFILES) AC_OUTPUT($MAKEFILES)
# Generate Makefiles for WebRTC directly from .gyp files
if test "${OS_TARGET}" = "WINNT"; then
if test "$HAVE_64BIT_OS"; then
OS_BITS=64
else
OS_BITS=32
fi
EXTRA_GYP_DEFINES="-D MSVS_VERSION=${_MSVS_VERSION} -D MSVS_OS_BITS=${OS_BITS}"
fi
if test -n "$MOZ_WEBRTC"; then
AC_MSG_RESULT("generating WebRTC Makefiles...")
GYP_WEBRTC_OPTIONS="--format=mozmake -D build_with_mozilla=1 -D enable_protobuf=0 -D include_internal_video_render=0 ${EXTRA_GYP_DEFINES} --depth=${srcdir}/media/webrtc/trunk --toplevel-dir=${srcdir} -G OBJDIR=${_objdir}"
$PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
$GYP_WEBRTC_OPTIONS \
--generator-output=${_objdir}/media/webrtc/trunk \
${srcdir}/media/webrtc/trunk/peerconnection.gyp
if test "$?" != 0; then
AC_MSG_ERROR([failed to generate WebRTC Makefiles])
fi
# XXX disable until we land the tranche with signaling
if test -n "$MOZ_WEBRTC_SIGNALING"; then
AC_MSG_RESULT("generating WebRTC/Signaling Makefiles...")
$PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
$GYP_WEBRTC_OPTIONS \
--generator-output=${_objdir}/media/webrtc/signaling \
${srcdir}/media/webrtc/signaling/signaling.gyp
if test "$?" != 0; then
AC_MSG_ERROR([failed to generate WebRTC/Signaling Makefiles])
fi
fi
AC_MSG_RESULT("generating gtest Makefiles...")
# Ok to pass some extra -D's that are ignored here
$PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
$GYP_WEBRTC_OPTIONS \
--generator-output=${_objdir}/media/webrtc/trunk/testing/ \
${srcdir}/media/webrtc/trunk/testing/gtest.gyp
if test "$?" != 0; then
AC_MSG_ERROR([failed to generate gtest Makefiles])
fi
fi
# Populate the virtualenv # Populate the virtualenv
AC_MSG_RESULT([Populating Python virtualenv]) AC_MSG_RESULT([Populating Python virtualenv])
$MAKE -C build/virtualenv MACOSX_DEPLOYMENT_TARGET= || exit 1 $MAKE -C build/virtualenv MACOSX_DEPLOYMENT_TARGET= || exit 1

View File

@ -633,7 +633,10 @@ endif
HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX),$(HOST_LIBS)) HOST_LIBS_DEPS = $(filter %.$(LIB_SUFFIX),$(HOST_LIBS))
# Dependencies which, if modified, should cause everything to rebuild # Dependencies which, if modified, should cause everything to rebuild
GLOBAL_DEPS += Makefile Makefile.in $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk GLOBAL_DEPS += Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk
ifndef NO_MAKEFILE_RULE
GLOBAL_DEPS += Makefile.in
endif
############################################## ##############################################
include $(topsrcdir)/config/makefiles/target_libs.mk include $(topsrcdir)/config/makefiles/target_libs.mk
@ -1147,16 +1150,20 @@ GARBAGE_DIRS += $(_JAVA_DIR)
# Update Makefiles # Update Makefiles
############################################################################### ###############################################################################
ifndef NO_MAKEFILE_RULE
# Note: Passing depth to make-makefile is optional. # Note: Passing depth to make-makefile is optional.
# It saves the script some work, though. # It saves the script some work, though.
Makefile: Makefile.in Makefile: Makefile.in
@$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) @$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH)
endif
ifndef NO_SUBMAKEFILES_RULE
ifdef SUBMAKEFILES ifdef SUBMAKEFILES
# VPATH does not work on some machines in this case, so add $(srcdir) # VPATH does not work on some machines in this case, so add $(srcdir)
$(SUBMAKEFILES): % : $(srcdir)/%.in $(SUBMAKEFILES): % : $(srcdir)/%.in
$(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $@ $(PERL) $(AUTOCONF_TOOLS)/make-makefile -t $(topsrcdir) -d $(DEPTH) $@
endif endif
endif
ifdef AUTOUPDATE_CONFIGURE ifdef AUTOUPDATE_CONFIGURE
$(topsrcdir)/configure: $(topsrcdir)/configure.in $(topsrcdir)/configure: $(topsrcdir)/configure.in

View File

@ -1059,3 +1059,5 @@ gst/gst.h
gst/app/gstappsink.h gst/app/gstappsink.h
gst/app/gstappsrc.h gst/app/gstappsrc.h
gst/video/video.h gst/video/video.h
sys/msg.h
sys/ipc.h

View File

@ -65,8 +65,13 @@ ifdef MOZ_WEBM
SHARED_LIBRARY_LIBS += \ SHARED_LIBRARY_LIBS += \
$(DEPTH)/media/libnestegg/src/$(LIB_PREFIX)nestegg.$(LIB_SUFFIX) \ $(DEPTH)/media/libnestegg/src/$(LIB_PREFIX)nestegg.$(LIB_SUFFIX) \
$(NULL) $(NULL)
endif
ifdef MOZ_VP8
ifndef MOZ_NATIVE_LIBVPX ifndef MOZ_NATIVE_LIBVPX
SHARED_LIBRARY_LIBS += $(DEPTH)/media/libvpx/$(LIB_PREFIX)vpx.$(LIB_SUFFIX) SHARED_LIBRARY_LIBS += \
$(DEPTH)/media/libvpx/$(LIB_PREFIX)vpx.$(LIB_SUFFIX) \
$(NULL)
endif endif
endif endif
@ -109,6 +114,10 @@ SHARED_LIBRARY_LIBS += \
$(DEPTH)/gfx/2d/$(LIB_PREFIX)gfx2d.$(LIB_SUFFIX) \ $(DEPTH)/gfx/2d/$(LIB_PREFIX)gfx2d.$(LIB_SUFFIX) \
$(NULL) $(NULL)
ifdef MOZ_WEBRTC
include $(topsrcdir)/media/webrtc/shared_libs.mk
endif
ifdef MOZ_ENABLE_SKIA ifdef MOZ_ENABLE_SKIA
SHARED_LIBRARY_LIBS += $(MOZ_SKIA_LIBS) SHARED_LIBRARY_LIBS += $(MOZ_SKIA_LIBS)
endif endif
@ -120,6 +129,13 @@ OS_LIBS += $(call EXPAND_LIBNAME,usp10 ole32)
# OTS uses uncompress2() from libz, so we need to link with this # OTS uses uncompress2() from libz, so we need to link with this
EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS) EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS)
ifdef MOZ_WEBRTC
EXTRA_DSO_LDOPTS += \
-LIBPATH:"$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)" \
$(NULL)
OS_LIBS += $(call EXPAND_LIBNAME,secur32 crypt32 iphlpapi strmiids dmoguids wmcodecdspuuid amstrmid msdmo wininet)
endif
DEFFILE = symbols.def DEFFILE = symbols.def
endif endif

View File

@ -143,6 +143,21 @@ ShGetInfoLog
ShCompile ShCompile
ShGetInfo ShGetInfo
ShConstructCompiler ShConstructCompiler
#ifdef MOZ_WEBRTC
#ifdef HAVE_64BIT_OS
?GetInterface@ViERender@webrtc@@SAPEAV12@PEAVVideoEngine@2@@Z
?GetInterface@ViECapture@webrtc@@SAPEAV12@PEAVVideoEngine@2@@Z
?GetInterface@ViEBase@webrtc@@SAPEAV12@PEAVVideoEngine@2@@Z
?Create@VideoEngine@webrtc@@SAPEAV12@XZ
?Delete@VideoEngine@webrtc@@SA_NAEAPEAV12@@Z
#else
?GetInterface@ViERender@webrtc@@SAPAV12@PAVVideoEngine@2@@Z
?GetInterface@ViECapture@webrtc@@SAPAV12@PAVVideoEngine@2@@Z
?GetInterface@ViEBase@webrtc@@SAPAV12@PAVVideoEngine@2@@Z
?Create@VideoEngine@webrtc@@SAPAV12@XZ
?Delete@VideoEngine@webrtc@@SA_NAAPAV12@@Z
#endif
#endif
ShGetActiveAttrib ShGetActiveAttrib
ShGetActiveUniform ShGetActiveUniform
#ifndef MOZ_NATIVE_PNG #ifndef MOZ_NATIVE_PNG

19
media/webrtc/Makefile.in Normal file
View File

@ -0,0 +1,19 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = \
trunk \
trunk/testing \
$(NULL)
# These Makefiles don't have corresponding Makefile.ins
NO_SUBMAKEFILES_RULE = 1
include $(topsrcdir)/config/rules.mk

View File

@ -0,0 +1,58 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# shared libs for webrtc
SHARED_LIBRARY_LIBS += \
$(call EXPAND_LIBNAME_PATH,jingle,$(DEPTH)/media/webrtc/trunk/third_party/libjingle/libjingle_libjingle) \
$(call EXPAND_LIBNAME_PATH,srtp,$(DEPTH)/media/webrtc/trunk/third_party/libsrtp/libsrtp_libsrtp) \
$(call EXPAND_LIBNAME_PATH,jingle_p2p,$(DEPTH)/media/webrtc/trunk/third_party/libjingle/libjingle_libjingle_p2p) \
$(call EXPAND_LIBNAME_PATH,jingle_app,$(DEPTH)/media/webrtc/trunk/third_party/libjingle/libjingle_libjingle_app) \
$(call EXPAND_LIBNAME_PATH,jsoncpp,$(DEPTH)/media/webrtc/trunk/third_party/jsoncpp/jsoncpp_jsoncpp) \
$(call EXPAND_LIBNAME_PATH,video_capture_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_capture_module) \
$(call EXPAND_LIBNAME_PATH,webrtc_utility,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_utility) \
$(call EXPAND_LIBNAME_PATH,audio_coding_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_coding_module) \
$(call EXPAND_LIBNAME_PATH,CNG,$(DEPTH)/media/webrtc/trunk/src/modules/modules_CNG) \
$(call EXPAND_LIBNAME_PATH,signal_processing,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_signal_processing) \
$(call EXPAND_LIBNAME_PATH,G711,$(DEPTH)/media/webrtc/trunk/src/modules/modules_G711) \
$(call EXPAND_LIBNAME_PATH,G722,$(DEPTH)/media/webrtc/trunk/src/modules/modules_G722) \
$(call EXPAND_LIBNAME_PATH,iLBC,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iLBC) \
$(call EXPAND_LIBNAME_PATH,iSAC,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iSAC) \
$(call EXPAND_LIBNAME_PATH,iSACFix,$(DEPTH)/media/webrtc/trunk/src/modules/modules_iSACFix) \
$(call EXPAND_LIBNAME_PATH,PCM16B,$(DEPTH)/media/webrtc/trunk/src/modules/modules_PCM16B) \
$(call EXPAND_LIBNAME_PATH,NetEq,$(DEPTH)/media/webrtc/trunk/src/modules/modules_NetEq) \
$(call EXPAND_LIBNAME_PATH,resampler,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_resampler) \
$(call EXPAND_LIBNAME_PATH,vad,$(DEPTH)/media/webrtc/trunk/src/common_audio/common_audio_vad) \
$(call EXPAND_LIBNAME_PATH,system_wrappers,$(DEPTH)/media/webrtc/trunk/src/system_wrappers/source/system_wrappers_system_wrappers) \
$(call EXPAND_LIBNAME_PATH,webrtc_video_coding,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_video_coding) \
$(call EXPAND_LIBNAME_PATH,webrtc_i420,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_i420) \
$(call EXPAND_LIBNAME_PATH,webrtc_vp8,$(DEPTH)/media/webrtc/trunk/src/modules/modules_webrtc_vp8) \
$(call EXPAND_LIBNAME_PATH,webrtc_libyuv,$(DEPTH)/media/webrtc/trunk/src/common_video/common_video_webrtc_libyuv) \
$(call EXPAND_LIBNAME_PATH,video_render_module,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_render_module) \
$(call EXPAND_LIBNAME_PATH,video_engine_core,$(DEPTH)/media/webrtc/trunk/src/video_engine/video_engine_video_engine_core) \
$(call EXPAND_LIBNAME_PATH,media_file,$(DEPTH)/media/webrtc/trunk/src/modules/modules_media_file) \
$(call EXPAND_LIBNAME_PATH,rtp_rtcp,$(DEPTH)/media/webrtc/trunk/src/modules/modules_rtp_rtcp) \
$(call EXPAND_LIBNAME_PATH,udp_transport,$(DEPTH)/media/webrtc/trunk/src/modules/modules_udp_transport) \
$(call EXPAND_LIBNAME_PATH,video_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing) \
$(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \
$(call EXPAND_LIBNAME_PATH,voice_engine_core,$(DEPTH)/media/webrtc/trunk/src/voice_engine/voice_engine_voice_engine_core) \
$(call EXPAND_LIBNAME_PATH,audio_conference_mixer,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_conference_mixer) \
$(call EXPAND_LIBNAME_PATH,audio_device,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_device) \
$(call EXPAND_LIBNAME_PATH,audio_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_processing) \
$(call EXPAND_LIBNAME_PATH,aec,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec) \
$(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \
$(call EXPAND_LIBNAME_PATH,apm_util,$(DEPTH)/media/webrtc/trunk/src/modules/modules_apm_util) \
$(call EXPAND_LIBNAME_PATH,aecm,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aecm) \
$(call EXPAND_LIBNAME_PATH,agc,$(DEPTH)/media/webrtc/trunk/src/modules/modules_agc) \
$(call EXPAND_LIBNAME_PATH,ns,$(DEPTH)/media/webrtc/trunk/src/modules/modules_ns) \
$(call EXPAND_LIBNAME_PATH,yuv,$(DEPTH)/media/webrtc/trunk/third_party/libyuv/libyuv_libyuv) \
$(call EXPAND_LIBNAME_PATH,expat,$(DEPTH)/media/webrtc/trunk/third_party/expat/expat_expat) \
$(call EXPAND_LIBNAME_PATH,webrtc_jpeg,$(DEPTH)/media/webrtc/trunk/src/common_video/common_video_webrtc_jpeg) \
$(NULL)
ifneq ($(OS_TARGET),WINNT)
SHARED_LIBRARY_LIBS += \
$(call EXPAND_LIBNAME_PATH,sipcc,$(DEPTH)/media/webrtc/signaling/signaling_sipcc) \
$(call EXPAND_LIBNAME_PATH,ecc,$(DEPTH)/media/webrtc/signaling/signaling_ecc) \
$(NULL)
endif

View File

@ -138,6 +138,7 @@
['OS=="win"', { ['OS=="win"', {
'defines': [ 'defines': [
'WEBRTC_WIN', 'WEBRTC_WIN',
'WEBRTC_EXPORT',
], ],
# TODO(andrew): enable all warnings when possible. # TODO(andrew): enable all warnings when possible.
# 4389: Signed/unsigned mismatch. # 4389: Signed/unsigned mismatch.

View File

@ -1,17 +0,0 @@
import sys
import _winreg
def main():
for version in ["7.1", "7.0"]:
try:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Microsoft SDKs\Windows\v%s\WinSDKSamples" % version)
path, typ = _winreg.QueryValueEx(key, "InstallationFolder")
print path.replace("\\", "/")
return 0
except:
pass
print >>sys.stderr, "Could not locate Windows SDK Samples directory via the registry"
return 1
if __name__ == '__main__':
sys.exit(main())

View File

@ -214,7 +214,6 @@ MAKEFLAGS=-r
# The source directory tree. # The source directory tree.
srcdir := %(srcdir)s srcdir := %(srcdir)s
abs_srcdir := $(abspath $(srcdir)) abs_srcdir := $(abspath $(srcdir))
os_sep := %(os_sep)s
# The name of the builddir. # The name of the builddir.
builddir_name ?= %(builddir)s builddir_name ?= %(builddir)s
@ -610,7 +609,6 @@ def StringToMakefileVariable(string):
return re.sub('[ {}$]', '_', string) return re.sub('[ {}$]', '_', string)
os_sep = os.sep
srcdir_prefix = '' srcdir_prefix = ''
def Sourceify(path): def Sourceify(path):
"""Convert a path to its source directory form.""" """Convert a path to its source directory form."""
@ -1970,15 +1968,13 @@ def GenerateOutput(target_list, target_dicts, data, params):
default_configuration = 'Default' default_configuration = 'Default'
srcdir = '.' srcdir = '.'
global os_sep
os_sep = os.sep
makefile_name = 'Makefile' + options.suffix makefile_name = 'Makefile' + options.suffix
makefile_path = os.path.join(options.toplevel_dir, makefile_name) makefile_path = os.path.join(options.toplevel_dir, makefile_name)
if options.generator_output: if options.generator_output:
global srcdir_prefix global srcdir_prefix
makefile_path = os.path.join(options.generator_output, makefile_path) makefile_path = os.path.join(options.generator_output, makefile_path)
srcdir = gyp.common.RelativePath(srcdir, options.generator_output) srcdir = gyp.common.RelativePath(srcdir, options.generator_output)
srcdir_prefix = '$(srcdir)' + os.sep srcdir_prefix = '$(srcdir)/'
flock_command= 'flock' flock_command= 'flock'
header_params = { header_params = {
@ -1990,7 +1986,6 @@ def GenerateOutput(target_list, target_dicts, data, params):
'link_commands': LINK_COMMANDS_LINUX, 'link_commands': LINK_COMMANDS_LINUX,
'extra_commands': '', 'extra_commands': '',
'srcdir': srcdir, 'srcdir': srcdir,
'os_sep': os.sep,
} }
if flavor == 'mac': if flavor == 'mac':
flock_command = './gyp-mac-tool flock' flock_command = './gyp-mac-tool flock'

View File

@ -0,0 +1,445 @@
# Copyright (c) 2012 Mozilla Foundation. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Python 2.5 needs this for the with statement.
from __future__ import with_statement
import collections
import gyp
import gyp.common
import sys
import os
import re
import shlex
generator_wants_sorted_dependencies = True
generator_default_variables = {
}
for dirname in ['INTERMEDIATE_DIR', 'SHARED_INTERMEDIATE_DIR', 'PRODUCT_DIR',
'LIB_DIR', 'SHARED_LIB_DIR']:
# Some gyp steps fail if these are empty(!).
generator_default_variables[dirname] = 'dir'
for unused in ['RULE_INPUT_PATH', 'RULE_INPUT_ROOT', 'RULE_INPUT_NAME',
'RULE_INPUT_DIRNAME', 'RULE_INPUT_EXT',
'EXECUTABLE_PREFIX', 'EXECUTABLE_SUFFIX',
'STATIC_LIB_PREFIX', 'STATIC_LIB_SUFFIX',
'SHARED_LIB_PREFIX', 'SHARED_LIB_SUFFIX',
'LINKER_SUPPORTS_ICF']:
generator_default_variables[unused] = ''
COMMON_HEADER = """# This makefile was automatically generated from %(buildfile)s. Please do not edit it directly.
DEPTH = %(depth)s
topsrcdir = %(topsrcdir)s
srcdir = %(srcdir)s
VPATH = %(srcdir)s
"""
COMMON_FOOTER = """
# Skip rules that deal with regenerating Makefiles from Makefile.in files.
NO_MAKEFILE_RULE = 1
NO_SUBMAKEFILES_RULE = 1
include $(topsrcdir)/config/rules.mk
include $(DEPTH)/%(relative_path)s/common.mk
"""
COMMON_MK = """# This file was generated by mozmake.py. Do not edit it directly.
ifndef COMMON_MK_INCLUDED
COMMON_MK_INCLUDED := 1
ifdef MOZ_DEBUG
CFLAGS += $(CPPFLAGS_Debug) $(CFLAGS_Debug)
CXXFLAGS += $(CPPFLAGS_Debug) $(CXXFLAGS_Debug)
DEFINES += $(DEFINES_Debug)
LOCAL_INCLUDES += $(INCLUDES_Debug)
else # non-MOZ_DEBUG
CFLAGS += $(CPPFLAGS_Release) $(CFLAGS_Release)
CXXFLAGS += $(CPPFLAGS_Release) $(CXXFLAGS_Release)
DEFINES += $(DEFINES_Release)
LOCAL_INCLUDES += $(INCLUDES_Release)
endif
ifeq (WINNT,$(OS_TARGET))
# These get set via VC project file settings for normal GYP builds.
DEFINES += -DUNICODE -D_UNICODE
LOCAL_INCLUDES += -I"$(MOZ_DIRECTX_SDK_PATH)/include"
endif
# Don't use STL wrappers when compiling Google code.
STL_FLAGS =
# Work around the fact that Google codebases don't compile cleanly
# with -pedantic.
OS_CFLAGS := $(filter-out -pedantic,$(OS_CFLAGS))
OS_CXXFLAGS := $(filter-out -pedantic,$(OS_CXXFLAGS))
# Skip Mozilla-specific include locations.
# Specific GYP files can add them back by adding
# $(DIST)/include to their includes.
INCLUDES = -I. $(LOCAL_INCLUDES)
# Ensure that subdirs for sources get created before compiling
ifdef OBJS
SUB_SRCDIRS := $(addsuffix .dirstamp,$(addprefix $(CURDIR)/,$(sort $(dir $(OBJS)))))
$(OBJS): $(SUB_SRCDIRS)
$(SUB_SRCDIRS):
$(MKDIR) -p $(dir $@)
touch $@
endif
# COPY_SRCS get copied to the current directory to be compiled
define COPY_SRC
$(notdir $(1)): $(1)
$$(INSTALL) $$(IFLAGS1) "$$<" .
endef # COPY_SRC
ifdef COPY_SRCS
GARBAGE += $(notdir $(COPY_SRCS))
$(foreach s,$(COPY_SRCS), $(eval $(call COPY_SRC,$(s))))
endif
# Rules for regenerating Makefiles from GYP files.
Makefile: %(input_gypfiles)s %(generator)s
$(PYTHON) %(commandline)s
endif
"""
def ensure_directory_exists(path):
dir = os.path.dirname(path)
if dir and not os.path.exists(dir):
os.makedirs(dir)
def GetFlavor(params):
"""Returns |params.flavor| if it's set, the system's default flavor else."""
flavors = {
'win32': 'win',
'darwin': 'mac',
'sunos5': 'solaris',
'freebsd7': 'freebsd',
'freebsd8': 'freebsd',
}
flavor = flavors.get(sys.platform, 'linux')
return params.get('flavor', flavor)
def CalculateVariables(default_variables, params):
generator_flags = params.get('generator_flags', {})
default_variables['OS'] = generator_flags.get('os', GetFlavor(params))
def CalculateGeneratorInputInfo(params):
"""Calculate the generator specific info that gets fed to input (called by
gyp)."""
generator_flags = params.get('generator_flags', {})
if generator_flags.get('adjust_static_libraries', False):
global generator_wants_static_library_dependencies_adjusted
generator_wants_static_library_dependencies_adjusted = True
def WriteMakefile(filename, data, build_file, depth, topsrcdir, srcdir, relative_path, extra_data=None):
if not os.path.isabs(topsrcdir):
topsrcdir = depth + "/" + topsrcdir
if not os.path.isabs(srcdir):
srcdir = depth + "/" + srcdir
#TODO: should compare with the existing file and not overwrite it if the
# contents are the same!
ensure_directory_exists(filename)
with open(filename, "w") as f:
f.write(COMMON_HEADER % {'buildfile': build_file,
'depth': depth,
'topsrcdir': topsrcdir,
'srcdir': srcdir})
for k, v in data.iteritems():
f.write("%s = %s\n" % (k, " \\\n ".join([''] + v) if isinstance(v, list) else v))
f.write(COMMON_FOOTER % {'relative_path': relative_path})
if extra_data:
f.write(extra_data)
def WriteCommonMk(path, build_files, scriptname, commandline):
with open(path, "w") as f:
f.write(COMMON_MK % {'input_gypfiles': ' '.join(build_files),
'generator': scriptname,
'commandline': ' '.join(commandline)})
def striplib(name):
"Strip lib prefixes from library names."
if name[:3] == 'lib':
return name[3:]
return name
CPLUSPLUS_EXTENSIONS = set([
'.cc',
'.cpp',
'.cxx'
])
COMPILABLE_EXTENSIONS = set([
'.c',
'.s',
'.S',
'.m',
'.mm'
])
COMPILABLE_EXTENSIONS.update(CPLUSPLUS_EXTENSIONS)
def swapslashes(p):
"Swap backslashes for forward slashes in a path."
return p.replace('\\', '/')
def getdepth(s):
"""Given a relative path, return a relative path consisting
of .. segments that would lead to the parent directory."""
return "/".join(".." for x in swapslashes(s).split("/") if x)
def Compilable(filename):
return os.path.splitext(filename)[1] in COMPILABLE_EXTENSIONS
class MakefileGenerator(object):
def __init__(self, target_dicts, data, options, depth, topsrcdir, relative_topsrcdir, relative_srcdir, output_dir):
self.target_dicts = target_dicts
self.data = data
self.options = options
self.depth = depth
self.relative_srcdir = swapslashes(relative_srcdir)
self.topsrcdir = swapslashes(topsrcdir)
self.relative_topsrcdir = swapslashes(relative_topsrcdir)
self.srcdir = swapslashes(os.path.join(topsrcdir, relative_srcdir))
self.output_dir = output_dir
# Directories to be built in order.
self.dirs = []
# Directories that can be built in any order, but before |dirs|.
self.parallel_dirs = []
# Targets that have been processed.
self.visited = set()
# Link dependencies.
self.target_link_deps = {}
def CalculateMakefilePath(self, build_file, target_name):
"""Determine where to write a Makefile for a given gyp file."""
rel_path = gyp.common.RelativePath(os.path.dirname(build_file),
self.srcdir)
# Add a subdir using the build_file name and the target_name.
rel_path = os.path.join(rel_path,
os.path.splitext(os.path.basename(build_file))[0]
+ "_" + target_name)
output_file = os.path.join(self.output_dir, rel_path, "Makefile")
return swapslashes(rel_path), swapslashes(output_file)
def ProcessTargets(self, needed_targets):
"""
Put all targets in proper order so that dependencies get built before
the targets that need them. Targets that have no dependencies
can get built in parallel_dirs. Targets with dependencies must be in
dirs, and must also be listed after any of their dependencies.
"""
for qualified_target in needed_targets:
if qualified_target in self.visited:
continue
self.ProcessTarget(qualified_target)
def ProcessTarget(self, qualified_target):
"""
Write a Makefile.in for |qualified_target| and add it to |dirs| or
|parallel_dirs| as appropriate, after processing all of its
dependencies.
"""
spec = self.target_dicts[qualified_target]
if 'dependencies' in spec and spec['dependencies']:
for dep in spec['dependencies']:
if dep not in self.visited:
self.ProcessTarget(dep)
dirs = self.dirs
else:
# no dependencies
dirs = self.parallel_dirs
# Now write a Makefile for this target
build_file, target, toolset = gyp.common.ParseQualifiedTarget(
qualified_target)
build_file = os.path.abspath(build_file)
rel_path, output_file = self.CalculateMakefilePath(build_file, target)
subdepth = self.depth + "/" + getdepth(rel_path)
if self.WriteTargetMakefile(output_file, rel_path, qualified_target, spec, build_file, subdepth):
# If WriteTargetMakefile returns True, then this is a useful target
dirs.append(rel_path)
self.visited.add(qualified_target)
def WriteTargetMakefile(self, output_file, rel_path, qualified_target, spec, build_file, depth):
configs = spec['configurations']
# Update global list of link dependencies.
if spec['type'] in ('static_library', 'shared_library'):
self.target_link_deps[qualified_target] = "$(call EXPAND_LIBNAME_PATH,%s,$(DEPTH)/%s/%s)" % (striplib(spec['target_name']), self.relative_srcdir, rel_path)
data = {}
#TODO: handle actions/rules/copies
if 'actions' in spec:
pass
if 'rules' in spec:
pass
if 'copies' in spec:
pass
libs = []
if 'dependencies' in spec:
for dep in spec['dependencies']:
if dep in self.target_link_deps:
libs.append(self.target_link_deps[dep])
if libs:
data['EXTRA_LIBS'] = libs
# Get DEFINES/INCLUDES
for configname in sorted(configs.keys()):
config = configs[configname]
#XXX: this sucks
defines = config.get('defines')
if defines:
data['DEFINES_%s' % configname] = ["-D%s" % d for d in defines]
includes = []
for i in config.get('include_dirs', []):
# Make regular paths into srcdir-relative paths, leave
# variable-specified paths alone.
if i.startswith("$(") or os.path.isabs(i):
if ' ' in i:
includes.append('"%s"' % i)
else:
includes.append(i)
else:
includes.append("$(srcdir)/" + i)
if includes:
data['INCLUDES_%s' % configname] = ["-I%s" %i for i in includes]
#XXX: handle mac stuff?
# we want to use our compiler options in general
# cflags = config.get('cflags')
# if cflags:
# data['CPPFLAGS_%s' % configname] = cflags
# cflags_c = config.get('cflags_c')
# if cflags_c:
# data['CFLAGS_%s' % configname] = cflags_c
# cflags_cc = config.get('cflags_cc')
# if cflags_cc:
# data['CXXFLAGS_%s' % configname] = cflags_cc
# we need to keep pkg-config flags however
cflags_mozilla = config.get('cflags_mozilla')
if cflags_mozilla:
data['CPPFLAGS_%s' % configname] = cflags_mozilla
sources = {
'CPPSRCS': {'exts': CPLUSPLUS_EXTENSIONS, 'files': []},
'CSRCS': {'exts': ['.c'], 'files': []},
'CMSRCS': {'exts': ['.m'], 'files': []},
'CMMSRCS': {'exts': ['.mm'], 'files': []},
'ASFILES': {'exts': ['.s'], 'files': []},
}
copy_srcs = []
for s in spec.get('sources', []):
if not Compilable(s):
continue
# Special-case absolute paths, they'll get copied into the objdir
# for compiling.
if os.path.isabs(s):
# GNU Make falls down pretty badly with spaces in filenames.
# Conveniently, using a single-character ? as a wildcard
# works fairly well.
copy_srcs.append(s.replace(' ', '?'))
s = os.path.basename(s)
ext = os.path.splitext(s)[1]
for source_type, d in sources.iteritems():
if ext in d['exts']:
d['files'].append(s)
break
for source_type, d in sources.iteritems():
if d['files']:
data[source_type] = d['files']
if copy_srcs:
data['COPY_SRCS'] = copy_srcs
if spec['type'] == 'executable':
data['PROGRAM'] = spec['target_name']
elif spec['type'] == 'static_library':
data['LIBRARY_NAME'] = striplib(spec['target_name'])
data['FORCE_STATIC_LIB'] = 1
elif spec['type'] in ('loadable_module', 'shared_library'):
data['LIBRARY_NAME'] = striplib(spec['target_name'])
data['FORCE_SHARED_LIB'] = 1
else:
# Maybe nothing?
return False
WriteMakefile(output_file, data, build_file, depth, self.relative_topsrcdir,
# we set srcdir up one directory, since the subdir
# doesn't actually exist in the source directory
swapslashes(os.path.join(self.relative_topsrcdir, self.relative_srcdir, os.path.split(rel_path)[0])),
self.relative_srcdir)
return True
def GenerateOutput(target_list, target_dicts, data, params):
options = params['options']
flavor = GetFlavor(params)
generator_flags = params.get('generator_flags', {})
# Get a few directories into Mozilla-common naming conventions
# The root of the source repository.
topsrcdir = os.path.abspath(options.toplevel_dir)
# The object directory (root of the build).
objdir = os.path.abspath(generator_flags['OBJDIR'] if 'OBJDIR' in generator_flags else '.')
# A relative path from the objdir to the topsrcdir
relative_topsrcdir = gyp.common.RelativePath(topsrcdir, objdir)
# The directory containing the gyp file on which gyp was invoked.
gyp_file_dir = os.path.abspath(os.path.dirname(params['build_files'][0]) or '.')
# The relative path from topsrcdir to gyp_file_dir
relative_srcdir = gyp.common.RelativePath(gyp_file_dir, topsrcdir)
# The relative path from objdir to gyp_file_dir
srcdir = gyp.common.RelativePath(gyp_file_dir, objdir)
# The path to get up to the root of the objdir from the output dir.
depth = getdepth(relative_srcdir)
# The output directory.
output_dir = os.path.abspath(options.generator_output or '.')
# The path to the root Makefile
makefile_path = os.path.join(output_dir, "Makefile")
def topsrcdir_path(path):
return "$(topsrcdir)/" + swapslashes(gyp.common.RelativePath(path, topsrcdir))
def objdir_path(path):
return "$(DEPTH)/" + swapslashes(gyp.common.RelativePath(path, objdir))
# Find the list of targets that derive from the gyp file(s) being built.
needed_targets = set()
build_files = set()
for build_file in params['build_files']:
build_file = os.path.normpath(build_file)
for target in gyp.common.AllTargets(target_list, target_dicts, build_file):
needed_targets.add(target)
build_file_, _, _ = gyp.common.ParseQualifiedTarget(target)
build_files.add(topsrcdir_path(build_file_))
generator = MakefileGenerator(target_dicts, data, options, depth, topsrcdir, relative_topsrcdir, relative_srcdir, output_dir)
generator.ProcessTargets(needed_targets)
# Write the top-level makefile, which simply calls the other makefiles
topdata = {'DIRS': generator.dirs}
if generator.parallel_dirs:
topdata['PARALLEL_DIRS'] = generator.parallel_dirs
WriteMakefile(makefile_path, topdata, params['build_files'][0],
depth,
swapslashes(relative_topsrcdir),
swapslashes(srcdir),
swapslashes(relative_srcdir))
scriptname = topsrcdir_path(__file__)
# Reassemble a commandline from parts so that all the paths are correct
commandline = [topsrcdir_path(sys.argv[0]),
"--format=mozmake",
"--depth=%s" % topsrcdir_path(options.depth),
"--generator-output=%s" % objdir_path(options.generator_output),
"--toplevel-dir=$(topsrcdir)",
#XXX: handle other generator_flags gracefully?
"-G OBJDIR=$(DEPTH)"] + \
['-D%s' % d for d in options.defines] + \
[topsrcdir_path(b) for b in params['build_files']]
WriteCommonMk(os.path.join(output_dir, "common.mk"),
build_files,
scriptname,
commandline)

View File

@ -130,12 +130,17 @@ typedef char XML_LChar;
/* xmltok.h */ /* xmltok.h */
#define XmlParseXmlDecl MOZ_XmlParseXmlDecl #define XmlParseXmlDecl MOZ_XmlParseXmlDecl
#define XmlParseXmlDeclNS MOZ_XmlParseXmlDeclNS
#define XmlInitEncoding MOZ_XmlInitEncoding #define XmlInitEncoding MOZ_XmlInitEncoding
#define XmlInitEncodingNS MOZ_XmlInitEncodingNS
#define XmlGetUtf8InternalEncoding MOZ_XmlGetUtf8InternalEncoding #define XmlGetUtf8InternalEncoding MOZ_XmlGetUtf8InternalEncoding
#define XmlGetUtf16InternalEncoding MOZ_XmlGetUtf16InternalEncoding #define XmlGetUtf16InternalEncoding MOZ_XmlGetUtf16InternalEncoding
#define XmlGetUtf8InternalEncodingNS MOZ_XmlGetUtf8InternalEncodingNS
#define XmlGetUtf16InternalEncodingNS MOZ_XmlGetUtf16InternalEncodingNS
#define XmlUtf8Encode MOZ_XmlUtf8Encode #define XmlUtf8Encode MOZ_XmlUtf8Encode
#define XmlUtf16Encode MOZ_XmlUtf16Encode #define XmlUtf16Encode MOZ_XmlUtf16Encode
#define XmlSizeOfUnknownEncoding MOZ_XmlSizeOfUnknownEncoding #define XmlSizeOfUnknownEncoding MOZ_XmlSizeOfUnknownEncoding
#define XmlInitUnknownEncoding MOZ_XmlInitUnknownEncoding #define XmlInitUnknownEncoding MOZ_XmlInitUnknownEncoding
#define XmlInitUnknownEncodingNS MOZ_XmlInitUnknownEncodingNS
#endif /* __expat_config_h__ */ #endif /* __expat_config_h__ */

View File

@ -453,7 +453,7 @@ ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
CXXFLAGS += $(TK_CFLAGS) CXXFLAGS += $(TK_CFLAGS)
OS_LIBS += \ OS_LIBS += \
-framework SystemConfiguration \ -framework SystemConfiguration \
-framework QuickTime \ -framework QTKit \
-framework IOKit \ -framework IOKit \
-F/System/Library/PrivateFrameworks -framework CoreUI \ -F/System/Library/PrivateFrameworks -framework CoreUI \
$(TK_LIBS) \ $(TK_LIBS) \
@ -470,6 +470,7 @@ OS_LIBS += \
-framework IOKit \ -framework IOKit \
-framework Foundation \ -framework Foundation \
-framework AppKit \ -framework AppKit \
-framework Security \
$(NULL) $(NULL)
endif endif
endif endif

View File

@ -1615,6 +1615,12 @@ if [ "$MOZ_SYDNEYAUDIO" ]; then
" "
fi fi
if [ "$MOZ_WEBRTC" ]; then
add_makefiles "
media/webrtc/Makefile
"
fi
if [ "$MOZ_SPEEX_RESAMPLER" ]; then if [ "$MOZ_SPEEX_RESAMPLER" ]; then
add_makefiles " add_makefiles "
media/libspeex_resampler/Makefile media/libspeex_resampler/Makefile

View File

@ -126,6 +126,12 @@ tier_platform_dirs += \
$(NULL) $(NULL)
endif endif
ifdef MOZ_WEBRTC
tier_platform_dirs += \
media/webrtc \
$(NULL)
endif
ifdef MOZ_SPEEX_RESAMPLER ifdef MOZ_SPEEX_RESAMPLER
tier_platform_dirs += \ tier_platform_dirs += \
media/libspeex_resampler \ media/libspeex_resampler \