openbsd-ports/www/mozilla/mozilla.port.mk
landry 4c0e4f3ef6 Upstream stopped providing 'source tarballs' for beta releases in bugs
#1422203 & #749312, and it's doubtful this will change even if i'm
trying to discuss it in #1432591. Instead, a README is provided with the
corresponding commit hash with which we're supposed to hammer
hg.mozilla.org, with varying success in terms of speed. Normally, it
shouldnt be the case for real releases..

Add the necessary plumbing to set DISTFILES/DISTNAME/MASTER_SITES
accordingly if MOZILLA_COMMIT and MOZILLA_BRANCH are set in the consumer
Makefile.
2018-01-27 10:22:14 +00:00

178 lines
5.7 KiB
Makefile

# $OpenBSD: mozilla.port.mk,v 1.111 2018/01/27 10:22:14 landry Exp $
# ppc: firefox-esr/thunderbird xpcshell segfaults during startup compilation
# ppc: seamonkey/firefox - failure to link for atomic ops on 64 bits
# gcc does ICE on alpha at some particular spots:
# thunderbird-24.0/comm-esr24/mozilla/js/src/vm/Debugger.cpp:3246
# firefox-24.0/mozilla-release/js/src/frontend/BytecodeEmitter.cpp:1488
# seamonkey-2.22/comm-release/mozilla/js/src/vm/Interpreter.cpp:743
# firefox-25.0/mozilla-release/js/src/builtin/MapObject.cpp:1119
DPB_PROPERTIES = parallel
.for _lib in ${MOZILLA_LIBS}
SHARED_LIBS += ${_lib} ${SO_VERSION}
.endfor
PKGNAME ?= ${MOZILLA_PROJECT}-${MOZILLA_VERSION:S/b/beta/}
MAINTAINER ?= Landry Breuil <landry@openbsd.org>
MOZILLA_DIST ?= ${MOZILLA_PROJECT}
MOZILLA_DIST_VERSION ?= ${MOZILLA_VERSION:C/rc.//}
.if ${MOZILLA_VERSION:M*rc?}
MASTER_SITES ?= https://ftp.mozilla.org/pub/mozilla.org/${MOZILLA_DIST}/candidates/${MOZILLA_DIST_VERSION}-candidates/build${MOZILLA_VERSION:C/.*(.)/\1/}/source/
# first is the CDN and only has last releases
# ftp.m.o has all the betas/candidate builds but should only be used as fallback
.else
MASTER_SITES ?= https://releases.mozilla.org/pub/mozilla.org/${MOZILLA_DIST}/releases/${MOZILLA_DIST_VERSION}/source/ \
https://ftp.mozilla.org/pub/mozilla.org/${MOZILLA_DIST}/releases/${MOZILLA_DIST_VERSION}/source/
.endif
.if defined(MOZILLA_COMMIT) && defined(MOZILLA_BRANCH)
DISTNAME = ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}
DISTFILES = ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}${EXTRACT_SUFX}{${MOZILLA_COMMIT}${EXTRACT_SUFX}}
WRKDIST = ${WRKDIR}/mozilla-${MOZILLA_BRANCH}-${MOZILLA_COMMIT}
MASTER_SITES = https://hg.mozilla.org/releases/mozilla-${MOZILLA_BRANCH}/archive/
EXTRACT_SUFX = .tar.bz2
MODMOZILLA_pre-configure+= \
cp ${WRKSRC}/${CONFIGURE_SCRIPT}.in ${WRKSRC}/${CONFIGURE_SCRIPT}; \
cp ${WRKSRC}/js/src/${CONFIGURE_SCRIPT}.in ${WRKSRC}/js/src/${CONFIGURE_SCRIPT}; \
chmod +x ${WRKSRC}/${CONFIGURE_SCRIPT}
.endif
DISTNAME ?= ${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}.source
EXTRACT_SUFX ?= .tar.xz
DIST_SUBDIR ?= mozilla
MODMOZ_RUN_DEPENDS = devel/desktop-file-utils
# autoconf-2.13 isnt a real dependency since a while, but configure still checks for it
MODMOZ_BUILD_DEPENDS = devel/autoconf/2.13 \
archivers/gtar \
archivers/unzip \
archivers/zip>=2.3
.if !defined(MOZILLA_USE_BUNDLED_NSS)
MODMOZ_LIB_DEPENDS += security/nss>=3.33
MODMOZ_WANTLIB += nss3 nssutil3 smime3 ssl3
CONFIGURE_ARGS += --with-system-nss
.endif
.if !defined(MOZILLA_USE_BUNDLED_NSPR)
MODMOZ_LIB_DEPENDS += devel/nspr>=4.17
MODMOZ_WANTLIB += nspr4 plc4 plds4
CONFIGURE_ARGS += --with-system-nspr
.endif
.if !defined(MOZILLA_USE_BUNDLED_LIBEVENT)
MODMOZ_WANTLIB += event
CONFIGURE_ARGS += --with-system-libevent=/usr/
.endif
.if !defined(MOZILLA_USE_BUNDLED_ICU)
MODMOZ_LIB_DEPENDS += textproc/icu4c
MODMOZ_WANTLIB += icudata icui18n icuuc
CONFIGURE_ARGS += --with-system-icu
.endif
.if !defined(MOZILLA_USE_BUNDLED_HUNSPELL)
MODMOZ_LIB_DEPENDS += textproc/hunspell>=1.6
MODMOZ_WANTLIB += hunspell-1.6
CONFIGURE_ARGS += --with-system-hunspell
.endif
.if !defined(MOZILLA_USE_BUNDLED_SQLITE)
MODMOZ_WANTLIB += sqlite3
MODMOZ_LIB_DEPENDS += databases/sqlite3>=3.20.1
CONFIGURE_ARGS += --enable-system-sqlite
# hack to build against systemwide sqlite3 (# 546162)
CONFIGURE_ENV += ac_cv_sqlite_secure_delete=yes
.endif
# bug #736961
SEPARATE_BUILD = Yes
# needed for webm
.if ${MACHINE_ARCH:Mi386} || ${MACHINE_ARCH:Mamd64}
MODMOZ_BUILD_DEPENDS += devel/yasm
.endif
MODMOZ_WANTLIB += X11 Xext Xrender Xt atk-1.0 c cairo \
fontconfig freetype gdk_pixbuf-2.0 gio-2.0 glib-2.0 \
gobject-2.0 gthread-2.0 m \
pango-1.0 pangocairo-1.0 pangoft2-1.0 \
pthread sndio ${LIBCXX} z
# --no-keep-memory avoids OOM when linking libxul
CONFIGURE_ENV += LDFLAGS="-Wl,--no-keep-memory"
WANTLIB += ${MODMOZ_WANTLIB}
BUILD_DEPENDS +=${MODMOZ_BUILD_DEPENDS}
LIB_DEPENDS += ${MODMOZ_LIB_DEPENDS}
RUN_DEPENDS += ${MODMOZ_RUN_DEPENDS}
USE_GMAKE ?= Yes
# no --with-system-jpeg starting with fx 18, requires libjpeg-turbo because of bug 791305
# no --with-system-cairo, too much gfx problems because of version mismatch
# no --with-system-ffi, needs 3.0.10 when not using gcc
# no --with-system-png, apng support not bundled in
AUTOCONF_VERSION = 2.13
CONFIGURE_ARGS += --with-system-zlib=/usr \
--with-system-bz2=${LOCALBASE} \
--enable-official-branding \
--disable-gconf \
--disable-necko-wifi \
--disable-optimize \
--disable-tests \
--disable-updater \
--disable-dbus
FLAVORS += debug
FLAVOR ?=
.if ${FLAVOR:Mdebug}
CONFIGURE_ARGS += --enable-debug-symbols=-g \
--disable-install-strip
INSTALL_STRIP =
.endif
.if !defined(MOZILLA_USE_BUNDLED_CAIRO)
# https://bugzilla.mozilla.org/show_bug.cgi?id=983843
CONFIGURE_ARGS += --with-system-cairo
.endif
.if defined(MOZILLA_USE_GTK3)
CONFIGURE_ARGS += --enable-default-toolkit=cairo-gtk3
MODMOZ_LIB_DEPENDS += x11/gtk+3
MODMOZ_WANTLIB += cairo-gobject gdk-3 gtk-3
.else
MODMOZ_WANTLIB += Xcursor Xi Xinerama Xrandr
.endif
MODMOZ_LIB_DEPENDS += x11/gtk+2
MODMOZ_WANTLIB += Xcomposite Xdamage Xfixes gdk-x11-2.0 gtk-x11-2.0
PORTHOME = ${WRKSRC}
# from browser/config/mozconfig
CONFIGURE_ARGS +=--enable-application=${MOZILLA_CODENAME}
WRKDIST ?= ${WRKDIR}/${MOZILLA_DIST}-${MOZILLA_DIST_VERSION}
# needed for PLIST
MOZILLA_VER = ${MOZILLA_VERSION:C/b[0-9]*//:C/esr//:C/rc.$//}
SUBST_VARS += MOZILLA_PROJECT MOZILLA_VER MOZILLA_VERSION
MAKE_ENV += MOZILLA_OFFICIAL=1 \
SHELL=/bin/sh \
SO_VERSION="${SO_VERSION}"
CONFIGURE_ENV += ${MAKE_ENV}
# ensure libffi's configure doesnt pick gsed/gmkdir/gawk
CONFIGURE_ENV += ac_cv_path_ax_enable_builddir_sed=/usr/bin/sed
CONFIGURE_ENV += ac_cv_path_SED=/usr/bin/sed
CONFIGURE_ENV += ac_cv_path_mkdir=/bin/mkdir
CONFIGURE_ENV += ac_cv_prog_AWK=/usr/bin/awk