components/desktop/firefox/Makefile
changeset 6919 7972aae0fb03
parent 6740 b9a930b724d2
child 6920 1581d303b9b3
equal deleted inserted replaced
6918:5fc9b45c15e5 6919:7972aae0fb03
    24 #
    24 #
    25 
    25 
    26 # parfait is a bit unhappy (22527218)
    26 # parfait is a bit unhappy (22527218)
    27 export PARFAIT_BUILD=no
    27 export PARFAIT_BUILD=no
    28 
    28 
    29 COMPILER =	gcc
    29 BUILD_BITS= 32
    30 
    30 COMPILER= gcc
    31 include ../../../make-rules/shared-macros.mk
    31 include ../../../make-rules/shared-macros.mk
    32 
    32 
    33 # gcc 5.3 can't compile this version of firefox yet, so keep using 4.8 for now.
    33 # gcc 5.3 can't compile this version of firefox yet, so keep using 4.9 for now.
    34 GCC_ROOT = /usr/gcc/4.8
    34 GCC_ROOT = /usr/gcc/4.9
    35 
    35 
    36 COMPONENT_NAME =		firefox
    36 COMPONENT_NAME =		firefox
    37 COMPONENT_VERSION =		38.5.0esr
    37 COMPONENT_VERSION =		45.1.1esr
    38 COMPONENT_PROJECT_URL =		http://www.mozilla.com/firefox
    38 COMPONENT_PROJECT_URL =		http://www.mozilla.com/firefox
    39 COMPONENT_SRC =			mozilla-esr38
       
    40 COMPONENT_SRC_NAME =		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
    39 COMPONENT_SRC_NAME =		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
    41 COMPONENT_ARCHIVE =		$(COMPONENT_SRC_NAME).source.tar.bz2
    40 COMPONENT_SRC = 		$(COMPONENT_SRC_NAME)
       
    41 COMPONENT_ARCHIVE =		$(COMPONENT_SRC_NAME).source.tar.xz
    42 COMPONENT_ARCHIVE_HASH = \
    42 COMPONENT_ARCHIVE_HASH = \
    43 	sha256:2a1f90cfe390ab20be88fed38cb9f61a18281cfbee47505c67e0254d339cdb20
    43     sha256:a27e36aa1ccebddfe5a113f7f15b09a61e35644be58029b00b0d996a00d04562
    44 MOZILLA_FTP = 		        http://ftp.mozilla.org/pub/mozilla.org/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)
    44 MOZILLA_FTP = 		        http://ftp.mozilla.org/pub/mozilla.org/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)
    45 COMPONENT_ARCHIVE_URL =		$(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE)
    45 COMPONENT_ARCHIVE_URL =		$(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE)
    46 COMPONENT_BUGDB =		firefox/browser
    46 COMPONENT_BUGDB =		firefox/browser
    47 
    47 
    48 TPNO=				26828	
    48 TPNO=				28419	
    49 
    49 
    50 IPS_COMPONENT_VERSION =		38.5.0
    50 IPS_COMPONENT_VERSION =		45.1.1
    51 
    51 
    52 # There are a set of .xpi files (as given in the LANG_LIST definition below)
    52 # There are a set of .xpi files (as given in the LANG_LIST definition below)
    53 # that we need. These are available under:
    53 # that we need. These are available under:
    54 # http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.8.0esr/linux-i686/xpi/
    54 # http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.8.0esr/linux-i686/xpi/
    55 # We could download and unpack them individually, but instead I've created
    55 # We could download and unpack them individually, but instead I've created
    56 # a compressed tarball of them, and made that available locally for download.
    56 # a compressed tarball of them, and made that available locally for download.
    57 # Downloading them individually can be a problem because firefox/thunderbird 
    57 # Downloading them individually can be a problem because firefox/thunderbird 
    58 # collide due to different files with identical .xpi names.
    58 # collide due to different files with identical .xpi names.
    59 COMPONENT_ARCHIVE_1 =           $(COMPONENT_SRC_NAME)-xpi.tar.gz
    59 COMPONENT_ARCHIVE_1 =           $(COMPONENT_SRC_NAME)-xpi.tar.gz
    60 COMPONENT_ARCHIVE_HASH_1 = \
    60 COMPONENT_ARCHIVE_HASH_1 = \
    61 	sha256:1fe09d5540167cbda3029f4e02640498fbb98ad7b47cdb6b8872e6dcf522a3e1
    61 	sha256:d80142e7b64b3b61baaf7631e6ad0bf7c4a44d962dc3611bf6dba2dde33aacea
    62 COMPONENT_ARCHIVE_URL_1 =       $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_1)
    62 COMPONENT_ARCHIVE_URL_1 =       $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_1)
    63 
    63 
    64 LANG_LIST = ar be bg ca cs da de el es-AR es-CL es-ES et fi \
    64 LANG_LIST = ar be bg ca cs da de el es-AR es-CL es-ES et fi \
    65 	fr he hi-IN hr hu id is it ja kk ko lt lv mk nb-NO nl nn-NO \
    65 	fr he hi-IN hr hu id is it ja kk ko lt lv mk nb-NO nl nn-NO \
    66 	pl pt-BR pt-PT ro ru sk sl sq sr sv-SE th tr uk vi zh-CN zh-TW
    66 	pl pt-BR pt-PT ro ru sk sl sq sr sv-SE th tr uk vi zh-CN zh-TW
    67 
    67 
    68 include $(WS_MAKE_RULES)/prep.mk
       
    69 include $(WS_MAKE_RULES)/configure.mk
       
    70 
       
    71 # Alignment issues on sparc: do not publish until resolved.
    68 # Alignment issues on sparc: do not publish until resolved.
    72 ifeq ($(BUILD_TYPE), evaluation)
    69 include $(WS_MAKE_RULES)/no-evaluation.mk
    73 BUILD_32=
    70 
    74 INSTALL_32=
    71 include $(WS_MAKE_RULES)/common.mk
    75 PUBLISH_STAMP=
       
    76 endif
       
    77 
       
    78 include $(WS_MAKE_RULES)/ips.mk
       
    79 
    72 
    80 # /usr/gnu/bin needed to pick up the GNU version of tail and readelf.
    73 # /usr/gnu/bin needed to pick up the GNU version of tail and readelf.
    81 # /usr/sbin needed for dtrace.
    74 # /usr/sbin needed for dtrace.
    82 PATH =			$(dirname $(CC)):/usr/gnu/bin:/usr/bin:/usr/sbin
    75 PATH =			$(dirname $(CC)):/usr/gnu/bin:/usr/bin:/usr/sbin
    83 
    76 
    84 CLEAN_PATHS +=		$(COMPONENT_SRC)
    77 CLEAN_PATHS +=		$(COMPONENT_SRC)
       
    78 CLEAN_PATHS +=		$(COMPONENT_DIR)/xpi
    85 
    79 
    86 MOZCONFIG = 		$(BUILD_DIR_32)/mozconfig
    80 MOZCONFIG = 		$(BUILD_DIR_32)/mozconfig
    87 
    81 
    88 COMPONENT_PRE_CONFIGURE_ACTION += \
    82 COMPONENT_PRE_CONFIGURE_ACTION += \
    89 	echo "mk_add_options BUILD_OFFICIAL=1" > $(MOZCONFIG) ; \
    83 	echo "mk_add_options BUILD_OFFICIAL=1" > $(MOZCONFIG) ; \
    95 	echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \
    89 	echo "ac_add_options --disable-updater" >> $(MOZCONFIG) ; \
    96 	echo "ac_add_options --enable-debug-symbols=no" >> $(MOZCONFIG) ; \
    90 	echo "ac_add_options --enable-debug-symbols=no" >> $(MOZCONFIG) ; \
    97 	echo "ac_add_options --enable-update-packaging" >> $(MOZCONFIG) ; \
    91 	echo "ac_add_options --enable-update-packaging" >> $(MOZCONFIG) ; \
    98 	echo "ac_add_options --enable-update-channel=esr" >> $(MOZCONFIG) ; \
    92 	echo "ac_add_options --enable-update-channel=esr" >> $(MOZCONFIG) ; \
    99 	echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \
    93 	echo "ac_add_options --disable-tests" >> $(MOZCONFIG) ; \
   100 	echo "ac_add_options --with-system-libevent" >> $(MOZCONFIG) ; \
       
   101 	echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \
    94 	echo "ac_add_options --with-system-zlib" >> $(MOZCONFIG) ; \
   102 	echo "ac_add_options --with-system-bz2" >> $(MOZCONFIG) ; \
    95 	echo "ac_add_options --with-system-bz2" >> $(MOZCONFIG) ; \
       
    96 	echo "ac_add_options --with-system-libevent" >> $(MOZCONFIG) ; \
   103 	echo "ac_add_options --enable-system-ffi" >> $(MOZCONFIG) ; \
    97 	echo "ac_add_options --enable-system-ffi" >> $(MOZCONFIG) ; \
   104 	echo "ac_add_options --enable-system-sqlite" >> $(MOZCONFIG) ; \
       
   105 	echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \
    98 	echo "ac_add_options --enable-jemalloc" >> $(MOZCONFIG) ; \
   106 	echo "ac_add_options --enable-xinerama" >> $(MOZCONFIG) ; \
    99 	echo "ac_add_options --enable-xinerama" >> $(MOZCONFIG) ; \
   107 	echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \
   100 	echo "ac_add_options --disable-crashreporter" >> $(MOZCONFIG) ; \
   108 	echo "ac_add_options --disable-pulseaudio" >> $(MOZCONFIG) ; \
   101 	echo "ac_add_options --disable-pulseaudio" >> $(MOZCONFIG) ; \
   109 	echo "ac_add_options --enable-gstreamer" >> $(MOZCONFIG) ; \
   102 	echo "ac_add_options --enable-gstreamer" >> $(MOZCONFIG) ; \
   110 	echo "ac_add_options --without-intl-api" >> $(MOZCONFIG) ; \
   103 	echo "ac_add_options --with-intl-api" >> $(MOZCONFIG) ; \
   111 	echo "ac_add_options --enable-system-libffi" >> $(MOZCONFIG) ; \
   104 	echo "ac_add_options --enable-system-libffi" >> $(MOZCONFIG) ; \
       
   105 	echo "ac_add_options --enable-system-sqlite" >> $(MOZCONFIG) ; \
   112 	echo "ac_add_options --enable-ipc" >> $(MOZCONFIG) ; \
   106 	echo "ac_add_options --enable-ipc" >> $(MOZCONFIG) ; \
   113 	echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \
   107 	echo "ac_add_options --enable-system-pixman" >> $(MOZCONFIG) ; \
   114 	echo "ac_add_options --enable-startup-notification" >> $(MOZCONFIG) ; \
   108 	echo "ac_add_options --enable-startup-notification" >> $(MOZCONFIG) ; \
   115 	echo "ac_add_options --enable-dtrace" >> $(MOZCONFIG) ; \
   109 	echo "ac_add_options --enable-dtrace" >> $(MOZCONFIG) ; \
   116 	echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ;
   110 	echo "ac_add_options --enable-replace-malloc" >> $(MOZCONFIG) ;
   117 
   111 
   118 CXXFLAGS +=     -Wno-invalid-offsetof -fpermissive
   112 CXXFLAGS +=     -Wno-invalid-offsetof -fpermissive
   119 CC +=           $(CC_BITS)
   113 CC +=           $(CC_BITS)
   120 CXX +=          $(CC_BITS)
   114 CXX +=          $(CC_BITS)
   121 
   115 
       
   116 # Currently, GCC 4.9 incorrectly forces all 32-bit compilation to use lf64(7) 
       
   117 # interfaces.  
       
   118 CFLAGS += -U_FILE_OFFSET_BITS
       
   119 CXXFLAGS += -U_FILE_OFFSET_BITS
       
   120 
   122 CONFIGURE_ENV +=	PKG_CONFIG_PATH=$(CONFIGURE_LIBDIR.$(BITS))/pkgconfig
   121 CONFIGURE_ENV +=	PKG_CONFIG_PATH=$(CONFIGURE_LIBDIR.$(BITS))/pkgconfig
   123 CONFIGURE_ENV +=	OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__"
   122 CONFIGURE_ENV +=	OS_DEFINES="-D__USE_LEGACY_PROTOTYPES__"
   124 CONFIGURE_ENV +=        CXXFLAGS='-xlibmil -xlibmopt -lCrun -lCstd -features=tmplrefstatic,no%except -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -template=no%extdef'
       
   125 # -L.../dist/lib needs to be set otherwise it will report missing libnss3.so, 
   123 # -L.../dist/lib needs to be set otherwise it will report missing libnss3.so, 
   126 # libssl3.so, etc, while linking.
   124 # libssl3.so, etc, while linking.
   127 CONFIGURE_ENV +=        LDFLAGS="$(LD_Z_IGNORE) -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib"
   125 CONFIGURE_ENV +=        LDFLAGS="-z ignore -z interpose -B nodirect -L$(BUILD_DIR_32)/dist/lib -L$(BUILD_DIR_32)/dist/bin"
   128 
   126 
   129 
   127 
   130 CONFIGURE_ENV +=	MOZCONFIG=$(MOZCONFIG)
   128 CONFIGURE_ENV +=	MOZCONFIG=$(MOZCONFIG)
   131 CONFIGURE_ENV +=	"CC=$(CC)"
   129 CONFIGURE_ENV +=	"CC=$(CC)"
   132 CONFIGURE_ENV +=	"CXX=$(CXX)"
   130 CONFIGURE_ENV +=	"CXX=$(CXX)"
   156         list1='$(LANG_LIST)' ; for f in $$list1 ; do \
   154         list1='$(LANG_LIST)' ; for f in $$list1 ; do \
   157             $(CP) xpi/$$f.xpi \
   155             $(CP) xpi/$$f.xpi \
   158                 $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/browser/extensions/[email protected] ; \
   156                 $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/browser/extensions/[email protected] ; \
   159         done ;
   157         done ;
   160 
   158 
       
   159 FF_XPI = $(MOZILLA_FTP)/linux-i686/xpi
       
   160 
       
   161 # Run gmake download-xpis to download a tarball for xpi locally. 
       
   162 # The resulting archive should be uploaded to userland internal archive.
       
   163 download-xpis:
       
   164 	@echo "download-xpis"
       
   165 	$(RM) -r $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1)
       
   166 	$(MKDIR) $(COMPONENT_DIR)/xpi
       
   167 	@echo "downloading firefox xpis"
       
   168 	list1='$(LANG_LIST)' ; for f in $$list1 ; do \
       
   169 	    echo $$f; \
       
   170 	    /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi/$$f.xpi \
       
   171 	        $(FF_XPI)/$$f.xpi; \
       
   172 	done
       
   173 	(cd $(COMPONENT_DIR); \
       
   174 	    $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1) xpi )
       
   175 	/usr/bin/sha256sum $(COMPONENT_ARCHIVE_1)
       
   176 
   161 SIGNED_LIST.i386 = libsoftokn3.so libnssdbm3.so libfreebl3.so
   177 SIGNED_LIST.i386 = libsoftokn3.so libnssdbm3.so libfreebl3.so
   162 SIGNED_LIST.sparc = libsoftokn3.so libnssdbm3.so libfreebl_32int_3.so libfreebl_32int64_3.so
   178 SIGNED_LIST.sparc = libsoftokn3.so libnssdbm3.so libfreebl_32int_3.so libfreebl_32int64_3.so
   163 SIGNED_LIST = $(SIGNED_LIST.$(MACH))
   179 SIGNED_LIST = $(SIGNED_LIST.$(MACH))
   164 
   180 
   165 COMPONENT_POST_INSTALL_ACTION += \
   181 COMPONENT_POST_INSTALL_ACTION += \
   166 	slist='$(SIGNED_LIST)' ; for f in $$slist ; do \
   182 	slist='$(SIGNED_LIST)' ; for f in $$slist ; do \
   167 	    mcs -d $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \
   183 	    mcs -d $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \
   168 	    LD_LIBRARY_PATH=$(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION) $(BUILD_DIR_32)/dist/bin/shlibsign -v -i $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \
   184 	    LD_LIBRARY_PATH=$(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION) $(BUILD_DIR_32)/dist/bin/shlibsign -v -i $(PROTOUSRLIBDIR)/firefox-$(IPS_COMPONENT_VERSION)/$$f ; \
   169         done ;
   185         done ;
   170 
   186 
       
   187 COMPONENT_TEST_MASTER = \
       
   188         $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master
   171 COMPONENT_TEST_DIR =    $(@D)/js/src
   189 COMPONENT_TEST_DIR =    $(@D)/js/src
   172 COMPONENT_TEST_TARGETS=check-jit-test
   190 COMPONENT_TEST_TARGETS=check-jit-test
   173 COMPONENT_TEST_TRANSFORMS += \
   191 COMPONENT_TEST_TRANSFORMS += \
   174         '-e "/\(^TEST-PASS\).*/d" '
   192         '-e "/\(^TEST-PASS\).*/d" '
   175 
   193 
   176 configure:	$(CONFIGURE_32)
       
   177 
       
   178 build:          $(BUILD_32)
       
   179 
       
   180 install:        $(INSTALL_32)
       
   181 
       
   182 test:           $(TEST_32)
       
   183 
       
   184 system-test:	$(NO_TESTS)
       
   185 
       
   186 REQUIRED_PACKAGES += codec/libogg
       
   187 REQUIRED_PACKAGES += codec/libvorbis
       
   188 REQUIRED_PACKAGES += codec/ogg-vorbis
       
   189 REQUIRED_PACKAGES += database/sqlite-3
   194 REQUIRED_PACKAGES += database/sqlite-3
   190 REQUIRED_PACKAGES += library/desktop/atk
   195 REQUIRED_PACKAGES += library/desktop/atk
   191 REQUIRED_PACKAGES += library/desktop/cairo
   196 REQUIRED_PACKAGES += library/desktop/cairo
   192 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
   197 REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
   193 REQUIRED_PACKAGES += library/desktop/gtk2
   198 REQUIRED_PACKAGES += library/desktop/gtk2