7088N/A#
7088N/A# CDDL HEADER START
7088N/A#
7088N/A# The contents of this file are subject to the terms of the
7088N/A# Common Development and Distribution License (the "License").
7088N/A# You may not use this file except in compliance with the License.
7088N/A#
7088N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7088N/A# or http://www.opensolaris.org/os/licensing.
7088N/A# See the License for the specific language governing permissions
7088N/A# and limitations under the License.
7088N/A#
7088N/A# When distributing Covered Code, include this CDDL HEADER in each
7088N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7088N/A# If applicable, add the following below this CDDL HEADER, with the
7088N/A# fields enclosed by brackets "[]" replaced with your own identifying
7088N/A# information: Portions Copyright [yyyy] [name of copyright owner]
7088N/A#
7088N/A# CDDL HEADER END
7088N/A#
7088N/A
7088N/A#
7088N/A# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
7088N/A#
7088N/A
7088N/A# parfait is a bit unhappy (22527218)
7088N/Aexport PARFAIT_BUILD=no
7088N/A
7088N/ACOMPILER = gcc
7088N/AGCC_ROOT = /usr/gcc/4.8
7088N/A
7088N/Ainclude ../../../make-rules/shared-macros.mk
7088N/A
7088N/ACOMPONENT_NAME= thunderbird
7088N/ACOMPONENT_VERSION= 45.3.0
7088N/ACOMPONENT_PROJECT_URL= http://www.mozilla.com/thunderbird
7088N/ACOMPONENT_SRC_NAME = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
7088N/ACOMPONENT_SRC = $(COMPONENT_SRC_NAME)
7088N/ACOMPONENT_ARCHIVE = $(COMPONENT_SRC).source.tar.xz
7088N/ACOMPONENT_ARCHIVE_HASH= \
7088N/A sha256:231f6a7a073344659e436a2b1ae58004c3a29e74375af2c8d0de13f3bc79fac7
7088N/AMOZILLA_FTP = http://ftp.mozilla.org/pub/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)
7088N/ACOMPONENT_ARCHIVE_URL= $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE)
7088N/ACOMPONENT_BUGDB= tbird/mailer
7088N/A
7088N/ATPNO= 31787
7088N/A
7088N/ALIGHTNING_VERSION= 4.7.1
7088N/A
7088N/A# There are a set of .xpi files (as given in the LANG_LIST definition below)
7088N/A# that we need. These are available under:
7088N/A# http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/linux-i686/xpi/
7088N/A# https://ftp.mozilla.org/pub/calendar/lightning/candidates/4.0.5-candidates/build1/linux-i686/
7088N/A# We could download and unpack them individually, but instead I've created
7088N/A# a compressed tarball of them, and made them available from the internal
7088N/A# Userland mirror. So these need to be re-created by hand each time we rev.
7088N/A# Downloading them individually can be a problem because firefox/thunderbird
7088N/A# collide due to different files with identical .xpi names.
7088N/ACOMPONENT_ARCHIVE_1 = $(COMPONENT_SRC)-xpi.tar.gz
7088N/ACOMPONENT_ARCHIVE_HASH_1 = \
7088N/A sha256:6b170356db3c345e4704de93ed41f5d16afac9460345f6675b02193ad41a128f
7088N/ACOMPONENT_ARCHIVE_URL_1 = $(INTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE_1)
7088N/A
7088N/ACOMPONENT_ARCHIVE_2 = lightning-$(LIGHTNING_VERSION)-xpi.tar.gz
7088N/ACOMPONENT_ARCHIVE_HASH_2 = \
7088N/A sha256:5bab9f0f879bdae9a312c5612b089c932c0400db89346c9c38b5c41623410e75
7088N/ACOMPONENT_ARCHIVE_URL_2 = $(INTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE_2)
7088N/A
7088N/ALANG_LIST = ar bg ca cs da de el es-AR es-ES et eu fi \
7088N/A fr gl he hu id is it ja ko lt nb-NO nl nn-NO pa-IN pl \
7088N/A pt-BR pt-PT ro ru sk sl sq sv-SE tr uk zh-CN zh-TW
7088N/A
7088N/ACLEAN_PATHS += $(COMPONENT_DIR)/xpi
7088N/ACLEAN_PATHS += $(COMPONENT_DIR)/xpi-lightning
7088N/A
7088N/A# Firefox and Thunderbird share the same firefox*.patch patches. Copy these
7088N/A# patches from the Firefox patches directory and the Thunderbird patches to a
7088N/A# directory of all files (patches-all), except for Firefox patches 42 and 46,
7088N/A# which don't get applied in Thunderbird. (libxul and dtrace patches)
7088N/APATCH_DIR=patches-all
7088N/ACLEAN_PATHS += $(PATCH_DIR)
7088N/ACOPY_COMMON_FILES_1:= $(shell mkdir -p $(PATCH_DIR))
7088N/ACOPY_COMMON_FILES_2:= \
7088N/A $(shell /usr/bin/rsync -ac patches/* ../firefox/patches/* $(PATCH_DIR))
7088N/ACOPY_COMMON_FILES_3:= \
7088N/A $(shell /usr/bin/rm -f $(PATCH_DIR)/firefox*42*.patch $(PATCH_DIR)/firefox*46*.patch)
7088N/A
7088N/Ainclude $(WS_MAKE_RULES)/prep.mk
7088N/Ainclude $(WS_MAKE_RULES)/configure.mk
7088N/Ainclude $(WS_MAKE_RULES)/ips.mk
7088N/A
7088N/A# /usr/sbin for dtrace, SPRO for python modules, PERL as well.
7088N/APATH = $(dirname $(CC)):/usr/gnu/bin:/usr/bin:/usr/sbin:$(dirname $(PERL)):$(SPRO_VROOT)/bin
7088N/A
7088N/AMOZCONFIG = $(BUILD_DIR_32)/mozconfig
7088N/A
7088N/ACOMPONENT_PRE_CONFIGURE_ACTION += \
7088N/A echo "mk_add_options BUILD_OFFICIAL=1" > $(MOZCONFIG) ; \
7088N/A echo "mk_add_options MOZILLA_OFFICIAL=1" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-application=mail" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --prefix=/usr" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --libdir=/usr/lib" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --mandir=/usr/share/man" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --disable-debug" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-optimize" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --with-system-bz2" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-system-ffi" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-libxul" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-official-branding" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-update-packaging" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-ipc" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-gstreamer" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --without-intl-api" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-debug-symbols=no" >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-calendar" >> $(MOZCONFIG) ; \
7088N/A echo 'ac_add_options --with-rpath="\\\\\\$$\\$$ORIGIN"' >> $(MOZCONFIG) ; \
7088N/A echo "ac_add_options --enable-startup-notification" >> $(MOZCONFIG) ;
7088N/A
7088N/ACXXFLAGS += -Wno-invalid-offsetof -fpermissive
7088N/ACC += $(CC_BITS)
7088N/ACXX += $(CC_BITS)
7088N/A
7088N/A# enable ctime_r with just two arguments (S11 only)
7088N/ACFLAGS += -D_POSIX_PTHREAD_SEMANTICS
7088N/A
7088N/A# avoid bus error from libxul (S11 only)
7088N/ALD_MAP_NOEXDATA.sparc=
7088N/A
7088N/ACONFIGURE_ENV += YASM=$(COMPONENT_DIR)/../../yasm/build/$(MACH32)/yasm
7088N/A# strip utility dumps core while processing libxul.so (24809759) (S11 only)
7088N/Aifeq ($(MACH), sparc)
7088N/ACONFIGURE_ENV += STRIP_FLAGS=-x
7088N/Aendif
7088N/ACONFIGURE_ENV += PKG_CONFIG_PATH=$(CONFIGURE_LIBDIR.$(BITS))/pkgconfig
7088N/ACONFIGURE_ENV += OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__"
7088N/A# -L.../dist/bin needs to be set otherwise it will report missing libnss3.so,
7088N/A# libssl3.so, etc, while linking.
7088N/A# plugin-container calls sendfile -lsendfile (S11 only)
7088N/ACONFIGURE_ENV += LDFLAGS="$(LD_Z_IGNORE) -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib -L$(BUILD_DIR_32)/dist/bin -lsendfile"
7088N/A
7088N/ACONFIGURE_ENV += MOZCONFIG=$(MOZCONFIG)
7088N/ACONFIGURE_ENV += "CC=$(CC)"
7088N/ACONFIGURE_ENV += "CXX=$(CXX)"
7088N/ACONFIGURE_ENV += "CFLAGS=$(CFLAGS)"
7088N/ACONFIGURE_ENV += "CXXFLAGS=$(CXXFLAGS)"
7088N/A
7088N/A# If the configure options are not explicitly set, then configure fails with:
7088N/A# configure: warning: CC=/usr/gcc/4.8/bin/gcc: invalid host type
7088N/A# invalid host type
7088N/A# configure: warning: CXX=/usr/gcc/4.8/bin/gcc: invalid host type
7088N/A# invalid host type
7088N/A# configure: error: can only configure for one host and one target at a time
7088N/ACONFIGURE_OPTIONS = --prefix=$(CONFIGURE_PREFIX)
7088N/ACONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR)
7088N/A
7088N/ACOMPONENT_POST_CONFIGURE_ACTION += \
7088N/A $(CP) $(MOZCONFIG) $(COMPONENT_SRC)/mozconfig
7088N/A
7088N/ACOMPONENT_POST_BUILD_ACTION = \
7088N/A (cd $(@D)/mail/installer ; $(ENV) $(COMPONENT_BUILD_ENV) \
7088N/A $(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
7088N/A
7088N/A# Path to lightning extension directory
7088N/ALIGHTNING_EXT_DIR = \
7088N/A $(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}
7088N/A
7088N/ACOMPONENT_POST_INSTALL_ACTION += \
7088N/A $(CP) -r $(BUILD_DIR_32)/dist/bin/distribution/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}/* \
7088N/A $(LIGHTNING_EXT_DIR) ;
7088N/A
7088N/ACOMPONENT_POST_INSTALL_ACTION += \
7088N/A $(RM) -rf xpi ; \
7088N/A $(TAR) xvf $(COMPONENT_ARCHIVE_1) > /dev/null 2>&1 ; \
7088N/A $(TAR) xvf $(COMPONENT_ARCHIVE_2) > /dev/null 2>&1 ; \
7088N/A list1='$(LANG_LIST)' ; for f in $$list1 ; do \
7088N/A $(CP) xpi/$$f.xpi \
7088N/A $(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/distribution/extensions/langpack-$$f@thunderbird.mozilla.org.xpi ; \
7088N/A unzip xpi-lightning/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi \
7088N/A chrome/calendar-$$f/\* chrome/lightning-$$f/\* -d \
7088N/A $(LIGHTNING_EXT_DIR)/ ; \
7088N/A echo 'locale calendar '$$f' chrome/calendar-'$$f'/locale/'$$f'/calendar/' >> $(LIGHTNING_EXT_DIR)/chrome.manifest ; \
7088N/A echo 'locale lightning '$$f' chrome/lightning-'$$f'/locale/'$$f'/lightning/' >> $(LIGHTNING_EXT_DIR)/chrome.manifest ; \
7088N/A done ;
7088N/A
7088N/Adownload-xpis:
7088N/A @echo "download-xpis"
7088N/A $(RM) -r $(COMPONENT_DIR)/xpi $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1)
7088N/A $(MKDIR) $(COMPONENT_DIR)/xpi
7088N/A @echo "downloading thunderbird xpis"
7088N/A list1='$(LANG_LIST)' ; for f in $$list1 ; do \
7088N/A echo $$f; \
7088N/A /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi/$$f.xpi \
7088N/A $(TB_XPI)/$$f.xpi ;\
7088N/A done
7088N/A (cd $(COMPONENT_DIR); \
7088N/A $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1) xpi )
7088N/A /usr/bin/sha256sum $(COMPONENT_ARCHIVE_1)
7088N/A
7088N/Adownload-lightning-xpis:
7088N/A @echo "download-lightning-xpis"
7088N/A $(RM) $(COMPONENT_DIR)/xpi-lightning $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_2)
7088N/A $(MKDIR) $(COMPONENT_DIR)/xpi-lightning
7088N/A @echo "downloading lightning xpis"
7088N/A list1='$(LANG_LIST)' ; for f in $$list1 ; do \
7088N/A echo $$f; \
7088N/A /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi-lightning/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi \
7088N/A $(LN_XPI)/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi ;\
7088N/A done
7088N/A (cd $(COMPONENT_DIR); \
7088N/A $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_2) xpi-lightning )
7088N/A /usr/bin/sha256sum $(COMPONENT_ARCHIVE_2)
7088N/A
7088N/ALIB_LIST.i386 =
7088N/ALIB_LIST.sparc = $(PROTOUSRLIBDIR)/thunderbird-devel-$(COMPONENT_VERSION)/sdk/lib/cpu/sparcv8plus/libnspr_flt4.so
7088N/ALIB_LIST = $(LIB_LIST.$(MACH))
7088N/A
7088N/ACOMPONENT_POST_INSTALL_ACTION += \
7088N/A slist='$(LIB_LIST)' ; for f in $$slist ; do \
7088N/A $(MKDIR) $(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/cpu/sparcv8plus ; \
7088N/A $(CP) $$f $(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/cpu/sparcv8plus/libnspr_flt4.so ; \
7088N/A done ;
7088N/A
7088N/AASLR_MODE = $(ASLR_ENABLE)
7088N/A
7088N/ACOMPONENT_TEST_DIR = $(@D)/js/src
7088N/ACOMPONENT_TEST_TARGETS=check-jit-test
7088N/A
7088N/Aconfigure: $(CONFIGURE_32)
7088N/A
7088N/Abuild: $(BUILD_32)
7088N/A
7088N/Ainstall: $(INSTALL_32)
7088N/A
7088N/Atest: $(BUILD_32)
7088N/A (cd $(BUILD_DIR_32)/$(COMPONENT_TEST_DIR); $(GMAKE) $(COMPONENT_TEST_TARGETS))
7088N/A
7088N/A$(SOURCE_DIR)/.firefox-%patched: GPATCH_FLAGS += -d $(@D)/mozilla
7088N/A$(SOURCE_DIR)/.S11.patched: GPATCH_FLAGS += -d $(@D)/mozilla
7088N/A
7088N/AREQUIRED_PACKAGES += compress/bzip2
7088N/AREQUIRED_PACKAGES += library/desktop/atk
7088N/AREQUIRED_PACKAGES += library/desktop/cairo
7088N/AREQUIRED_PACKAGES += library/desktop/gdk-pixbuf
7088N/AREQUIRED_PACKAGES += library/desktop/gtk2
7088N/AREQUIRED_PACKAGES += library/desktop/pango
7088N/AREQUIRED_PACKAGES += library/glib2
7088N/AREQUIRED_PACKAGES += library/gnome/gnome-libs
7088N/AREQUIRED_PACKAGES += library/graphics/pixman
7088N/AREQUIRED_PACKAGES += library/libffi
7088N/AREQUIRED_PACKAGES += library/zlib
7088N/AREQUIRED_PACKAGES += system/library
7088N/AREQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
7088N/AREQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
7088N/AREQUIRED_PACKAGES += system/library/fontconfig
7088N/AREQUIRED_PACKAGES += system/library/freetype-2
7088N/AREQUIRED_PACKAGES += system/library/libdbus
7088N/AREQUIRED_PACKAGES += system/library/libdbus-glib
7088N/AREQUIRED_PACKAGES += system/library/math
7088N/AREQUIRED_PACKAGES += system/linker
7088N/AREQUIRED_PACKAGES += x11/library/libx11
7088N/AREQUIRED_PACKAGES += x11/library/libxext
7088N/AREQUIRED_PACKAGES += x11/library/libxrender
7088N/AREQUIRED_PACKAGES += x11/library/toolkit/libxt