bug 452504 - port
bug 97954,
bug 394901,
bug 451466, and
bug 450194 changes to comm-central, r=Standard8
--- a/client.mk
+++ b/client.mk
@@ -156,16 +156,17 @@ ifdef MOZ_OBJDIR
MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)
else
OBJDIR := $(TOPSRCDIR)
MOZ_MAKE := $(MAKE) $(MOZ_MAKE_FLAGS)
endif
endif # MOZ_BUILD_PROJECTS
+# 'configure' scripts generated by autoconf.
CONFIGURES := $(TOPSRCDIR)/configure $(TOPSRCDIR)/mozilla/configure
#######################################################################
# Rules
# The default rule is build
build::
@@ -243,46 +244,43 @@ CONFIG_STATUS = $(wildcard $(OBJDIR)/con
CONFIG_CACHE = $(wildcard $(OBJDIR)/config.cache)
EXTRA_CONFIG_DEPS := \
$(TOPSRCDIR)/aclocal.m4 \
$(TOPSRCDIR)/mozilla/aclocal.m4 \
$(wildcard $(TOPSRCDIR)/mozilla/build/autoconf/*.m4) \
$(NULL)
-$(TOPSRCDIR)/configure: $(TOPSRCDIR)/configure.in $(EXTRA_CONFIG_DEPS)
+$(CONFIGURES): %: %.in $(EXTRA_CONFIG_DEPS)
@echo Generating $@ using autoconf
- cd $(TOPSRCDIR); $(AUTOCONF)
-
-$(TOPSRCDIR)/mozilla/configure: $(TOPSRCDIR)/mozilla/configure.in $(EXTRA_CONFIG_DEPS)
- @echo Generating $@ using autoconf
- cd $(TOPSRCDIR)/mozilla; $(AUTOCONF)
+ cd $(@D); $(AUTOCONF)
CONFIG_STATUS_DEPS := \
- $(TOPSRCDIR)/configure \
+ $(wildcard $(CONFIGURES)) \
$(TOPSRCDIR)/allmakefiles.sh \
$(TOPSRCDIR)/.mozconfig.mk \
- $(TOPSRCDIR)/mozilla/configure \
$(TOPSRCDIR)/mozilla/allmakefiles.sh \
$(wildcard $(TOPSRCDIR)/mozilla/nsprpub/configure) \
$(wildcard $(TOPSRCDIR)/mozilla/config/milestone.txt) \
$(wildcard $(TOPSRCDIR)/directory/c-sdk/configure) \
$(wildcard $(addsuffix confvars.sh,$(wildcard $(TOPSRCDIR)/*/))) \
$(NULL)
# configure uses the program name to determine @srcdir@. Calling it without
# $(TOPSRCDIR) will set @srcdir@ to "."; otherwise, it is set to the full
# path of $(TOPSRCDIR).
ifeq ($(TOPSRCDIR),$(OBJDIR))
CONFIGURE = ./configure
else
CONFIGURE = $(TOPSRCDIR)/configure
endif
-configure:: $(CONFIGURES)
+configure-files: $(CONFIGURES)
+
+configure:: configure-files
ifdef MOZ_BUILD_PROJECTS
@if test ! -d $(MOZ_OBJDIR); then $(MKDIR) $(MOZ_OBJDIR); else true; fi
export MOZ_CURRENT_PROJECT
endif
@if test ! -d $(OBJDIR); then $(MKDIR) $(OBJDIR); else true; fi
@echo cd $(OBJDIR);
@echo $(CONFIGURE) $(CONFIGURE_ARGS)
@cd $(OBJDIR) && $(BUILD_PROJECT_ARG) $(CONFIGURE_ENV_ARGS) $(CONFIGURE) $(CONFIGURE_ARGS) \
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -368,16 +368,17 @@ UNZIP = @UNZIP@
ZIP = @ZIP@
XARGS = @XARGS@
STRIP = @STRIP@
DOXYGEN = @DOXYGEN@
MAKE = @MAKE@
PBBUILD_BIN = @PBBUILD@
SDP = @SDP@
NSINSTALL_BIN = @NSINSTALL_BIN@
+WGET = @WGET@
ifdef MOZ_NATIVE_JPEG
JPEG_CFLAGS = @JPEG_CFLAGS@
JPEG_LIBS = @JPEG_LIBS@
JPEG_REQUIRES =
else
JPEG_CFLAGS = @MOZ_JPEG_CFLAGS@
JPEG_LIBS = @MOZ_JPEG_LIBS@
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -1128,17 +1128,17 @@ ifeq ($(OS_ARCH),OpenVMS)
fi; \
fi
ifdef IS_COMPONENT
@if test ! -f $(VMS_SYMVEC_FILE); then \
echo Creating generic component options file $(VMS_SYMVEC_FILE); \
cp $(VMS_SYMVEC_FILE_COMP) $(VMS_SYMVEC_FILE); \
fi
endif
-endif
+endif # OpenVMS
ifdef NO_LD_ARCHIVE_FLAGS
ifdef SHARED_LIBRARY_LIBS
@rm -f $(SUB_SHLOBJS)
@for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
ifeq ($(OS_ARCH),Darwin)
@echo Making symlinks to the original object files in the archive libraries $(SHARED_LIBRARY_LIBS)
@for lib in $(SHARED_LIBRARY_LIBS); do \
libdir=`echo $$lib|sed -e 's,/[^/]*\.a,,'`; \
@@ -1166,17 +1166,17 @@ endif
$(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(PROBE_LOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
@rm -f $(PROBE_LOBJS)
@rm -f $(DTRACE_PROBE_OBJ)
@for lib in $(MOZILLA_PROBE_LIBS); do \
if [ -L $${lib} ]; then rm -f `readlink $${lib}`; fi; \
done
@rm -f $(MOZILLA_PROBE_LIBS)
-else
+else # ! DTRACE_LIB_DEPENDENT
$(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(DTRACE_PROBE_OBJ) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
endif # DTRACE_LIB_DEPENDENT
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
ifdef MSMANIFEST_TOOL
ifdef EMBED_MANIFEST_AT
@if test -f $@.manifest; then \
mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;$(EMBED_MANIFEST_AT); \
--- a/configure.in
+++ b/configure.in
@@ -1380,16 +1380,33 @@ if test "$GNU_CXX"; then
*)
_WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
;;
esac
fi
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
_USE_CPP_INCLUDE_FLAG=1
+
+ AC_CACHE_CHECK(whether the compiler supports -Wno-invalid-offsetof,
+ ac_has_wno_invalid_offsetof,
+ [
+ AC_LANG_SAVE
+ _SAVE_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
+ AC_TRY_COMPILE([],
+ [return(0);],
+ ac_has_wno_invalid_offsetof="yes",
+ ac_has_wno_invalid_offsetof="no")
+ CXXFLAGS="$_SAVE_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+ if test "$ac_has_wno_invalid_offsetof" = "yes"; then
+ _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
+ fi
else
_DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
fi
dnl gcc can come with its own linker so it is better to use the pass-thru calls
dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
dnl normal behavior.
@@ -1464,17 +1481,16 @@ AC_CACHE_VAL(ac_cv_static_assertion_macr
ac_cv_static_assertion_macros_work="no",
)
AC_LANG_RESTORE
])
AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
if test "$ac_cv_static_assertion_macros_work" = "no"; then
AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
fi
-
fi # COMPILE_ENVIRONMENT
dnl ========================================================
dnl Checking for 64-bit OS
dnl ========================================================
if test "$COMPILE_ENVIRONMENT"; then
AC_LANG_SAVE
AC_LANG_C
@@ -4731,17 +4747,17 @@ cairo-mac|cairo-cocoa)
else
MOZ_WIDGET_TOOLKIT=mac
fi
MOZ_GFX_TOOLKIT=cairo
MOZ_USER_DIR="Mozilla"
AC_DEFINE(XP_MACOSX)
AC_DEFINE(TARGET_CARBON)
AC_DEFINE(TARGET_API_MAC_CARBON)
- TK_LIBS='-framework Carbon'
+ TK_LIBS='-framework Carbon -framework AddressBook'
TK_CFLAGS="-I${MACOS_SDK_DIR}/Developer/Headers/FlatCarbon"
CFLAGS="$CFLAGS $TK_CFLAGS"
CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
;;
esac
if test "$MOZ_ENABLE_XREMOTE"; then
AC_DEFINE(MOZ_ENABLE_XREMOTE)
@@ -5411,16 +5427,21 @@ AC_SUBST(MOZ_INSTALLER)
AC_MSG_CHECKING([for tar archiver])
AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
if test -z "$TAR"; then
AC_MSG_ERROR([no tar archiver found in \$PATH])
fi
AC_MSG_RESULT([$TAR])
AC_SUBST(TAR)
+AC_MSG_CHECKING([for wget])
+AC_CHECK_PROGS(WGET, wget, "")
+AC_MSG_RESULT([$WGET])
+AC_SUBST(WGET)
+
dnl ========================================================
dnl Updater
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(updater,
[ --disable-updater Disable building of updater],
MOZ_UPDATER=,
MOZ_UPDATER=1 )
--- a/mail/app/Makefile.in
+++ b/mail/app/Makefile.in
@@ -223,17 +223,17 @@ DEFINES += -DIMPL_XREAPI
endif
APP_VERSION = $(shell cat $(srcdir)/../config/version.txt)
APP_UA_NAME = $(shell echo $(MOZ_APP_DISPLAYNAME) | sed -e's/[^A-Za-z]//g')
DEFINES += -DAPP_VERSION="$(APP_VERSION)" -DAPP_UA_NAME="$(APP_UA_NAME)"
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
ifdef BUILD_STATIC_LIBS
-LIBS += -lcups -framework AddressBook
+LIBS += -lcups
endif
LIBS += -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon
endif
ifeq ($(OS_ARCH),WINNT)
#
# Control the default heap size.
# This is the heap returned by GetProcessHeap().
--- a/mail/locales/Makefile.in
+++ b/mail/locales/Makefile.in
@@ -249,8 +249,28 @@ ifeq ($(OS_ARCH),WINNT)
cat $< $(srcdir)/updater_append.ini $(srcdir)/../installer/windows/nsis/updater_append.ini | \
sed -e "s/%AB_CD%/$(AB_CD)/" | \
iconv -f UTF-8 -t $(WIN_INSTALLER_CHARSET) > $(FINAL_TARGET)/updater.ini
else
cat $< $(srcdir)/updater_append.ini | \
sed -e "s/%AB_CD%/$(AB_CD)/" > $(FINAL_TARGET)/updater.ini
endif
endif
+
+# This variable is to allow the wget-en-US target to know which ftp server to download from
+ifndef EN_US_BINARY_URL
+EN_US_BINARY_URL = $(error You must set EN_US_BINARY_URL)
+endif
+
+# This make target allows us to wget the latest en-US binary from a specified website
+# The make installers-% target needs the en-US binary in dist/
+# and for the windows repackages we need the .installer.exe in dist/sea
+wget-en-US:
+ifndef WGET
+ $(error Wget not installed)
+endif
+ @$(WGET) -nv --output-document $(_ABS_DIST)/$(PACKAGE) $(EN_US_BINARY_URL)/$(PACKAGE)
+ @echo "Downloaded $(EN_US_BINARY_URL)/$(PACKAGE) to $(_ABS_DIST)/$(PACKAGE)"
+ifeq ($(OS_ARCH), WINNT)
+ $(NSINSTALL) -D $(_ABS_DIST)/install/sea
+ @$(WGET) -nv --output-document $(_ABS_DIST)/install/sea/$(PKG_BASENAME).installer.exe $(EN_US_BINARY_URL)/$(PKG_BASENAME).installer.exe
+ @echo "Downloaded $(EN_US_BINARY_URL)/$(PKG_BASENAME).installer.exe to $(_ABS_DIST)/install/sea/$(PKG_BASENAME)"
+endif
--- a/mailnews/Makefile.in
+++ b/mailnews/Makefile.in
@@ -56,17 +56,16 @@ ifndef GNU_CC
DIRS += mapi
endif
endif
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
EXTRA_DSO_LDOPTS += \
$(TK_LIBS) \
-framework Cocoa \
- -framework AddressBook \
$(NULL)
endif
ifdef MOZ_STATIC_MAIL_BUILD
DIRS += build
endif
--- a/mailnews/addrbook/build/Makefile.in
+++ b/mailnews/addrbook/build/Makefile.in
@@ -98,13 +98,12 @@ EXTRA_DSO_LDOPTS = \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(NULL)
ifeq ($(OS_ARCH),Darwin)
EXTRA_DSO_LDOPTS += \
$(TK_LIBS) \
-framework Cocoa \
- -framework AddressBook \
$(NULL)
endif
include $(topsrcdir)/config/rules.mk
--- a/mailnews/build/Makefile.in
+++ b/mailnews/build/Makefile.in
@@ -131,17 +131,16 @@ EXTRA_DSO_LDOPTS = \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(NULL)
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
EXTRA_DSO_LDOPTS += \
$(TK_LIBS) \
-framework Cocoa \
- -framework AddressBook \
$(NULL)
endif
LOCAL_INCLUDES = -I$(srcdir) \
-I$(srcdir)/../base/src \
-I$(srcdir)/../base/util \
-I$(srcdir)/../local/src \
-I$(srcdir)/../addrbook/src \
--- a/suite/locales/Makefile.in
+++ b/suite/locales/Makefile.in
@@ -272,8 +272,28 @@ ifeq ($(OS_ARCH),WINNT)
cat $< $(srcdir)/updater_append.ini $(srcdir)/../installer/windows/nsis/updater_append.ini | \
sed -e "s/%AB_CD%/$(AB_CD)/" | \
iconv -f UTF-8 -t $(WIN_INSTALLER_CHARSET) > $(FINAL_TARGET)/updater.ini
else
cat $< $(srcdir)/updater_append.ini | \
sed -e "s/%AB_CD%/$(AB_CD)/" > $(FINAL_TARGET)/updater.ini
endif
endif
+
+# This variable is to allow the wget-en-US target to know which ftp server to download from
+ifndef EN_US_BINARY_URL
+EN_US_BINARY_URL = $(error You must set EN_US_BINARY_URL)
+endif
+
+# This make target allows us to wget the latest en-US binary from a specified website
+# The make installers-% target needs the en-US binary in dist/
+# and for the windows repackages we need the .installer.exe in dist/sea
+wget-en-US:
+ifndef WGET
+ $(error Wget not installed)
+endif
+ @$(WGET) -nv --output-document $(_ABS_DIST)/$(PACKAGE) $(EN_US_BINARY_URL)/$(PACKAGE)
+ @echo "Downloaded $(EN_US_BINARY_URL)/$(PACKAGE) to $(_ABS_DIST)/$(PACKAGE)"
+ifeq ($(OS_ARCH), WINNT)
+ $(NSINSTALL) -D $(_ABS_DIST)/install/sea
+ @$(WGET) -nv --output-document $(_ABS_DIST)/install/sea/$(PKG_BASENAME).installer.exe $(EN_US_BINARY_URL)/$(PKG_BASENAME).installer.exe
+ @echo "Downloaded $(EN_US_BINARY_URL)/$(PKG_BASENAME).installer.exe to $(_ABS_DIST)/install/sea/$(PKG_BASENAME)"
+endif