ae52bc8089
http://library.gnome.org/misc/release-notes/2.26/ for a list of what's new. On the FreeBSD front, we introduced a port of libxul 1.9 as an alternative for Firefox 2.0 as a Gecko provider. Almost all of the Gecko consumers can make use of this provider by setting: WITH_GECKO=libxul The GNOME 2.26 port was done by ahze, kwm, marcus, and mezz with contributions by Joseph S. Atkinson, Peter Wemm, Eric L. Chen, Martin Matuska, Craig Butler, and Pawel Worach.
657 lines
20 KiB
Makefile
657 lines
20 KiB
Makefile
#-*- mode: Fundamental; tab-width: 4; -*-
|
|
# ex:ts=4
|
|
#
|
|
# Date created: 12 Nov 2005
|
|
# Whom: Michael Johnson <ahze@FreeBSD.org>
|
|
#
|
|
# $FreeBSD$
|
|
# $MCom: ports/Mk/bsd.gecko.mk,v 1.10 2009/04/04 19:54:48 marcus Exp $
|
|
#
|
|
# 4 column tabs prevent hair loss and tooth decay!
|
|
|
|
# ======================= USERS =================================
|
|
# To specify which gecko-based backend you prefer, use something like:
|
|
#
|
|
# WITH_GECKO= firefox
|
|
#
|
|
# The valid backends are:
|
|
# firefox flock nvu seamonkey thunderbird xulrunner
|
|
#
|
|
# See below for more details.
|
|
# ======================= /USERS ================================
|
|
|
|
# bsd.gecko.mk abstracts the selection of gecko-based backends. It allows users
|
|
# and porters to support any available gecko backend without needing to build
|
|
# many conditional tests. ${USE_GECKO} is the list of backends that your port
|
|
# can handle, and ${GECKO} is set by bsd.gecko.mk to be the chosen backend.
|
|
# Users set ${WITH_GECKO} to the list of gecko backends they want on their
|
|
# system.
|
|
|
|
.if defined(USE_GECKO) && ${USE_GECKO}!="gecko"
|
|
|
|
.if !defined(Gecko_Pre_Include)
|
|
# Please make sure all changes to this file are passed through the maintainer.
|
|
# Do not commit them yourself (unless of course you're the Port's Wraith ;).
|
|
Gecko_Include_MAINTAINER= gnome@FreeBSD.org
|
|
Gecko_Pre_Include= bsd.gecko.mk
|
|
|
|
# Users should use the following syntax:
|
|
#
|
|
# WITH_GECKO= mozilla firefox seamonkey
|
|
# Use mozilla whenever a port supports it, falling back on firefox and
|
|
# then seamonkey.
|
|
# WITH_GECKO= firefox
|
|
# Sets your preferred backend. With this example, firefox will always
|
|
# be chosen, unless the port doesn't support a firefox backend. In that
|
|
# case, you get whatever the porter chose as the default. Better to use
|
|
# the first example.
|
|
#
|
|
#
|
|
# Ports should use the following:
|
|
#
|
|
# USE_GECKO= mozilla firefox seamonkey
|
|
# The list of gecko backends that the port supports. Unless the user
|
|
# overrides it with WITH_GECKO, the first gecko listed in USE_GECKO
|
|
# will be the default. In the above example, www/mozilla will be used
|
|
# as a gecko backend unless WITH_GECKO=firefox or WITH_GECKO=seamonkey
|
|
# is defined by the user.
|
|
#
|
|
# USE_GECKO= firefox-devel<->firefox
|
|
# This will sed -e 's/firefox/firefox-devel/' on Makefile.in's and configure
|
|
# if ${GECKO}=="firefox-devel"
|
|
#
|
|
# Example:
|
|
# USE_GECKO= mozilla firefox seamonkey
|
|
#
|
|
# post-patch:
|
|
# @${REINPALCE_CMD} -e 's|mozilla-|${GECKO}-|' \
|
|
# ${WRKSRC}/configure
|
|
#
|
|
# If you want your port to check the ${GECKO} variable to see which backend
|
|
# has been chosen.
|
|
#
|
|
# Example:
|
|
# USE_GECKO= mozilla firefox seamonkey
|
|
#
|
|
# post-patch:
|
|
# .if ${GECKO}=="seamonkey"
|
|
# @${REINPLACE_CMD} -e 's|mozilla-|seamonkey-|' \
|
|
# ${WRKSRC}/configure
|
|
# .endif
|
|
|
|
_GECKO_ALL= firefox nvu seamonkey thunderbird xulrunner flock mozilla \
|
|
libxul
|
|
|
|
thunderbird_PORTSDIR= mail
|
|
libxul_PLIST= ${LOCALBASE}/lib/libxul/libxul.so
|
|
|
|
.for gecko in ${_GECKO_ALL}
|
|
${gecko}_PORTSDIR?= www
|
|
${gecko}_DEPENDS?= ${PORTSDIR}/${${gecko}_PORTSDIR}/${gecko}
|
|
${gecko}_PLIST?= ${LOCALBASE}/lib/${gecko}/libgtkembedmoz.so
|
|
.endfor
|
|
|
|
# Figure out which mozilla to use
|
|
# Weed out bad options in USE_GECKO
|
|
.for badgecko in ${USE_GECKO}
|
|
. if ${_GECKO_ALL:M${badgecko:C/^([^<->]+).*/\1/}}!=""
|
|
GOOD_USE_GECKO+= ${badgecko:C/^([^<->]+).*/\1/}
|
|
. endif
|
|
. if ${_GECKO_ALL:M${badgecko:C/^[^<->]+<->([^<->]+).*/\1/}}!="${badgecko:C/^([^<->]+).*/\1/}"
|
|
${badgecko:C/^([^<->]+).*/\1/}_HACK= s:${badgecko:C/^[^<->]+<->([^<->]+).*/\1/}:${badgecko:C/^([^<->]+).*/\1/}:g
|
|
. endif
|
|
.endfor
|
|
|
|
.undef GECKO_FALLTHROUGH
|
|
.undef _FOUND_WITH_GECKO
|
|
# Figure out which gecko to use and weed out the bad ones
|
|
.if defined(WITH_GECKO) && defined(GOOD_USE_GECKO)
|
|
. for badgecko in ${WITH_GECKO}
|
|
. if ${GOOD_USE_GECKO:M${badgecko}}!=""
|
|
GOOD_WITH_GECKO+= ${badgecko}
|
|
. endif
|
|
. endfor
|
|
. if defined(GOOD_WITH_GECKO)
|
|
. for gecko in ${GOOD_WITH_GECKO}
|
|
. if !defined(GECKO_FALLTHROUGH)
|
|
GECKO= ${gecko}
|
|
GECKO_FALLTHROUGH= ${TRUE}
|
|
_FOUND_WITH_GECKO= ${TRUE}
|
|
. endif
|
|
. endfor
|
|
. endif
|
|
.endif
|
|
|
|
.if !defined(GECKO) && defined(GOOD_USE_GECKO)
|
|
. for gecko in ${GOOD_USE_GECKO}
|
|
. if !defined(GECKO_FALLTRHOUGH)
|
|
GECKO= ${gecko}
|
|
GECKO_FALLTRHOUGH= ${TRUE}
|
|
. endif
|
|
. endfor
|
|
.endif
|
|
|
|
# Generic defines
|
|
GECKO_CONFIG?= ${LOCALBASE}/bin/${GECKO}-config
|
|
XPIDL?= ${LOCALBASE}/lib/${GECKO}/xpidl
|
|
XPIDL_INCL?= `${GECKO_CONFIG} --idlflags`
|
|
|
|
.if defined(GECKO) && ${_GECKO_ALL:M${GECKO}}!=""
|
|
BUILD_DEPENDS+= ${${GECKO}_PLIST}:${${GECKO}_DEPENDS}
|
|
RUN_DEPENDS+= ${${GECKO}_PLIST}:${${GECKO}_DEPENDS}
|
|
.else
|
|
IGNORE= Unable to find a supported gecko, please check USE_GECKO
|
|
.endif
|
|
|
|
pre-everything:: _gecko-pre-everything
|
|
|
|
_gecko-pre-everything::
|
|
@${ECHO_CMD} ""
|
|
.if !defined(_FOUND_WITH_GECKO) && defined(WITH_GECKO)
|
|
@${ECHO_CMD} " Warning: ${PORTNAME} does not support any gecko you"
|
|
@${ECHO_CMD} " listed in WITH_GECKO=${WITH_GECKO}."
|
|
@${ECHO_CMD} " \"${GECKO}\" will be used"
|
|
@${ECHO_CMD} ""
|
|
@${ECHO_CMD} " for gecko support, but you can change that by using one of"
|
|
@${ECHO_CMD} " the following values:"
|
|
.else
|
|
@${ECHO_CMD} " ${PORTNAME} is using ${GECKO} for gecko support, but you can"
|
|
@${ECHO_CMD} " change that by defining WITH_GECKO to the following values:"
|
|
.endif
|
|
@${ECHO_CMD} ""
|
|
.for gecko in ${GOOD_USE_GECKO}
|
|
@${ECHO_CMD} " ${gecko} "
|
|
.endfor
|
|
@${ECHO_CMD} ""
|
|
|
|
post-patch: gecko-post-patch
|
|
|
|
gecko-post-patch:
|
|
.if defined(${GECKO}_HACK)
|
|
${FIND} ${WRKSRC} -name "Makefile.in" -type f -o -name "configure" -type f | \
|
|
${XARGS} ${REINPLACE_CMD} -e ${${GECKO}_HACK}
|
|
.endif
|
|
.endif
|
|
|
|
.else # split
|
|
|
|
.if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include)
|
|
Gecko_Pre_Include= bsd.gecko.mk
|
|
|
|
# This file contains some reusable components for mozilla ports. It's of
|
|
# use primarily to apps from the mozilla project itself (such as Firefox,
|
|
# Thunderbird, etc.), and probably won't be of use for gecko-based ports
|
|
# like epiphany, galeon, etc.
|
|
#
|
|
# You need to make sure to add USE_GECKO=gecko to for your port can uses
|
|
# one of these options below.
|
|
#
|
|
# Ports can use the following:
|
|
#
|
|
# USE_MOZILLA By default, it enables the denendencies: cairo, dbm,
|
|
# jpeg, nspr, nss, png, xft and zip. Search for
|
|
# '_ALL_DEPENDS' below to see the list. If your port
|
|
# doesn't need one of list then you can use '-' like
|
|
# 'USE_MOZILLA= -png -zip' to subtract the dependencies.
|
|
#
|
|
# GECKO_PLIST_PRE_FILES Manual add files in the plist if it needs.
|
|
#
|
|
# GECKO_PLIST_PRE_DIRS Manual directories in the plist if it needs.
|
|
#
|
|
# MOZILLA_PLIST_DIRS List of directories to descend into when installing
|
|
# and creating the plist
|
|
#
|
|
# MOZ_PIS_SCRIPTS List of scripts residing in ${FILESDIR} to be
|
|
# filtered through MOZCONFIG_SED and installed along
|
|
# with our Pluggable Init Scripts (PIS)
|
|
#
|
|
# MOZ_SED_ARGS sed(1) commands through which MOZ_PIS_SCRIPTS are
|
|
# filtered. There is a default set defined here, so
|
|
# you probably want to add to MOZ_SED_ARGS rather
|
|
# than clobber it
|
|
#
|
|
# MOZ_OPTIONS configure arguments (added to .mozconfig). If
|
|
# NOMOZCONFIG is defined, you probably want to set
|
|
# CONFIGURE_ARGS+=${MOZ_OPTIONS}
|
|
#
|
|
# MOZ_MK_OPTIONS The make(1) arguments (added to .mozconfig). If
|
|
# NOMOZCONFIG is defined, you probably want to set
|
|
# MAKE_ARGS+=${MOZ_MK_OPTIONS}
|
|
#
|
|
# MOZ_EXPORT Environment variables for the build process (added
|
|
# to .mozconfig). If NOMOZCONFIG is defined, you
|
|
# probably want to set MAKE_ENV+=${MOZ_EXPORT}
|
|
#
|
|
# MOZ_TOOLKIT A variable for the --enable-default-toolkit= in
|
|
# CONFIGURE_ARGS. The default is gtk2.
|
|
#
|
|
# MOZ_EXTENSIONS A list of extensions to build
|
|
#
|
|
# MOZ_GRAPHICS A list of image decoders to build
|
|
#
|
|
# MOZ_PROTOCOLS A list of protocols to build (http, ftp, etc.)
|
|
#
|
|
# PORT_MOZCONFIG Defaults to ${FILESDIR}/mozconfig.in, but can be
|
|
# set to a generic mozconfig included with the port
|
|
#
|
|
# NOGECKO_INSTALL Don't install the built gecko (most likely for
|
|
# testing)
|
|
#
|
|
# NOGECKO_PLIST Don't create a dynamically-generated playlist
|
|
#
|
|
# NOMOZCONFIG Don't drop a customized .mozconfig into the build
|
|
# directory. Options will have to be specified in
|
|
# CONFIGURE_ARGS instead
|
|
#
|
|
|
|
MAINTAINER?= gnome@FreeBSD.org
|
|
|
|
MOZILLA?= ${PORTNAME}
|
|
MOZILLA_VER?= ${PORTVERSION}
|
|
MOZILLA_BIN?= ${PORTNAME}-bin
|
|
MOZILLA_EXEC_NAME?=${MOZILLA}
|
|
MOZ_RPATH?= ${MOZILLA}
|
|
USE_GNOME+= gtk20 libidl desktopfileutils
|
|
USE_ICONV= yes
|
|
USE_PERL5_BUILD=yes
|
|
USE_XORG= printproto sm xt xi xext x11 xinerama \
|
|
ice xproto
|
|
|
|
MOZILLA_SUFX?= none
|
|
WRKSRC?= ${WRKDIR}/mozilla
|
|
FAKEDIR?= ${WRKDIR}/fake
|
|
PLIST?= ${WRKDIR}/plist
|
|
PLISTD?= ${WRKDIR}/plist_dirs
|
|
PLISTF?= ${WRKDIR}/plist_files
|
|
MASTER_DIR?= ${.CURDIR}/../../www/mozilla
|
|
|
|
KRB5_HOME?= /usr
|
|
MOZ_PIS_DIR?= lib/${MOZILLA}/init.d
|
|
|
|
ESD_LIB?= libesd.so.2
|
|
FREETYPE_LIB?= libfreetype.so.9
|
|
|
|
GENERIC_MOZCONFIG?= ${.CURDIR}/../../www/mozilla/files/mozconfig-generic.in
|
|
PORT_MOZCONFIG?= ${FILESDIR}/mozconfig.in
|
|
MOZCONFIG?= ${WRKSRC}/.mozconfig
|
|
MOZILLA_PLIST_DIRS?= bin include lib share/idl
|
|
GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
|
|
PKGINSTALL?= ${WRKDIR}/pkg-install
|
|
PKGDEINSTALL?= ${WRKDIR}/pkg-deinstall
|
|
MASTER_MOZDIR?= ${PORTSDIR}/www/mozilla
|
|
PKGINSTALL_INC?= ${MASTER_MOZDIR}/pkg-install.in
|
|
PKGDEINSTALL_INC?= ${MASTER_MOZDIR}/pkg-deinstall.in
|
|
|
|
EXTRACT_AFTER_ARGS?= | ${TAR} -xf - --exclude */CVS/* \
|
|
--exclude */macbuild/* \
|
|
--exclude */package/* \
|
|
--exclude mozilla/gc/boehm
|
|
|
|
MOZ_PKGCONFIG_FILES?= ${MOZILLA}-gtkmozembed ${MOZILLA}-js \
|
|
${MOZILLA}-xpcom ${MOZILLA}-plugin
|
|
|
|
CFLAGS+= ${PTHREAD_CFLAGS}
|
|
LIBS+= ${PTHREAD_LIBS} -L${LOCALBASE}/lib -liconv
|
|
|
|
_USE_GECKO_OPTIONS_ALL= java debug logging optimized_cflags
|
|
|
|
.if !defined(USE_GECKO_OPTIONS)
|
|
USE_GECKO_OPTIONS= debug logging optimized_cflags
|
|
.endif
|
|
|
|
debug_OPTION= "Build a debugging image" off
|
|
java_OPTION= "Enable JAVA xpcom" off
|
|
logging_OPTION= "Enable additional log messages" off
|
|
optimized_cflags_OPTION= "Enable some additional optimizations" off
|
|
|
|
.for option in ${USE_GECKO_OPTIONS:L}
|
|
.if ${_USE_GECKO_OPTIONS_ALL:M${option}}!=""
|
|
OPTIONS+= ${option:U} ${${option}_OPTION}
|
|
_${option}= ${TRUE}
|
|
.endif
|
|
.endfor
|
|
|
|
# Standard depends
|
|
_ALL_DEPENDS= cairo dbm jpeg nspr nss png xft zip
|
|
|
|
cairo_LIB_DEPENDS= cairo.2:${PORTSDIR}/graphics/cairo
|
|
cairo_MOZ_OPTIONS= --enable-system-cairo
|
|
cairo_EXTRACT_AFTER_ARGS= --exclude mozilla/gfx/cairo
|
|
|
|
dbm_EXTRACT_AFTER_ARGS= --exclude mozilla/dbm
|
|
|
|
jpeg_LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg
|
|
jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE}
|
|
jpeg_EXTRACT_AFTER_ARGS= --exclude mozilla/jpeg
|
|
|
|
nspr_LIB_DEPENDS= nspr4:${PORTSDIR}/devel/nspr
|
|
nspr_MOZ_OPTIONS= --with-system-nspr
|
|
|
|
nss_LIB_DEPENDS= nss3:${PORTSDIR}/security/nss
|
|
nss_EXTRACT_AFTER_ARGS= --exclude mozilla/security/nss
|
|
nss_MOZ_OPTIONS= --with-system-nss
|
|
nss_CPPFLAGS+= -I${LOCALBASE}/include/nss -I${LOCALBASE}/include/nss/nss
|
|
nss_LDFLAGS+= -L${LOCALBASE}/lib/nss -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}
|
|
|
|
|
|
png_LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png
|
|
png_MOZ_OPTIONS= --with-system-png=${LOCALBASE}
|
|
|
|
xft_LIB_DEPENDS= Xft.2:${PORTSDIR}/x11-fonts/libXft
|
|
zip_DEPENDS= zip:${PORTSDIR}/archivers/zip
|
|
|
|
.for use in ${USE_MOZILLA}
|
|
${use:S/-/_WITHOUT_/}= ${TRUE}
|
|
.endfor
|
|
|
|
.for dep in ${_ALL_DEPENDS}
|
|
.if !defined(_WITHOUT_${dep})
|
|
BUILD_DEPENDS+= ${${dep}_DEPENDS}
|
|
LIB_DEPENDS+= ${${dep}_LIB_DEPENDS}
|
|
RUN_DEPENDS+= ${${dep}_DEPENDS}
|
|
MOZ_OPTIONS+= ${${dep}_MOZ_OPTIONS}
|
|
EXTRACT_AFTER_ARGS+= ${${dep}_EXTRACT_AFTER_ARGS}
|
|
CPPFLAGS+= ${${dep}_CPPFLAGS}
|
|
LDFLAGS+= ${${dep}_LDFLAGS}
|
|
.endif
|
|
.endfor
|
|
|
|
# Standard options from README
|
|
MOZ_TOOLKIT?= gtk2
|
|
MOZ_OPTIONS+= --enable-crypto \
|
|
--disable-tests \
|
|
--enable-default-toolkit=${MOZ_TOOLKIT} \
|
|
--enable-xft \
|
|
--with-pthreads
|
|
# Configure options for install
|
|
MOZ_OPTIONS+= --x-includes=${LOCALBASE}/include \
|
|
--x-libraries=${LOCALBASE}/lib
|
|
.if !defined(MOZ_EXTENSIONS)
|
|
MOZ_OPTIONS+= --enable-extensions=default
|
|
.else
|
|
MOZ_OPTIONS+= --enable-extensions=${MOZ_EXTENSIONS}
|
|
.endif
|
|
.if !defined(MOZ_GRAPHICS)
|
|
MOZ_OPTIONS+= --enable-image-decoders=default
|
|
.else
|
|
MOZ_OPTIONS+= --enable-image-decoders=${MOZ_GRAPHICS}
|
|
.endif
|
|
.if !defined(MOZ_PROTOCOLS)
|
|
MOZ_OPTIONS+= --enable-necko-protocols=default
|
|
.else
|
|
MOZ_OPTIONS+= --enable-necko-protocols=${MOZ_PROTOCOLS}
|
|
.endif
|
|
# others
|
|
MOZ_OPTIONS+= --with-system-zlib=/usr \
|
|
--with-gssapi=${KRB5_HOME} \
|
|
--disable-auto-deps \
|
|
--enable-chrome-format=jar \
|
|
--disable-cpp-exceptions \
|
|
--disable-cpp-rtti \
|
|
--disable-glibtest \
|
|
--disable-gtktest \
|
|
--disable-freetypetest \
|
|
--enable-double-buffer \
|
|
--enable-mathml \
|
|
--disable-installer \
|
|
--disable-md \
|
|
--disable-pedantic \
|
|
--disable-bidi \
|
|
--disable-xterm-updates \
|
|
--disable-xprint \
|
|
--enable-xinerama
|
|
MOZ_MK_OPTIONS+= XP_UNIX=1 \
|
|
PERL=${PERL}
|
|
|
|
.if defined(WITH_OPTIMIZED_CFLAGS)
|
|
CFLAGS:= ${CFLAGS} -O2 -fno-strict-aliasing ${EXTRA_CFLAGS}
|
|
WITH_OPTIMIZE?= -O2
|
|
.else
|
|
CFLAGS:= ${CFLAGS} ${EXTRA_CFLAGS}
|
|
WITH_OPTIMIZE?=
|
|
.endif
|
|
|
|
.if defined(WITH_SMB)
|
|
USE_GNOME+= gnomevfs2
|
|
MOZ_OPTIONS+= --enable-gnomevfs
|
|
.else
|
|
MOZ_OPTIONS+= --disable-gnomevfs
|
|
.endif
|
|
|
|
.if defined(WITH_DEBUG)
|
|
MOZ_OPTIONS+= --enable-debug \
|
|
--disable-strip
|
|
WITH_LOGGING= yes
|
|
.else
|
|
MOZ_OPTIONS+= --disable-debug \
|
|
--enable-optimize=${WITH_OPTIMIZE} \
|
|
--enable-strip
|
|
.endif
|
|
|
|
.if defined(WITH_JAVA) && defined(_WITH_JAVA)
|
|
USE_JAVA= yes
|
|
JAVA_VERSION+= 1.4+
|
|
JAVA_OS+= native
|
|
CONFIGURE_ENV+= JAVA_HOME="${JAVA_HOME}"
|
|
MOZ_OPTIONS+= --enable-javaxpcom
|
|
.endif
|
|
|
|
.if defined(WITH_LOGGING)
|
|
MOZ_OPTIONS+= --enable-logging
|
|
.else
|
|
MOZ_OPTIONS+= --disable-logging
|
|
.endif
|
|
|
|
MOZ_SED_ARGS+= -e's|@CPPFLAGS@|${CPPFLAGS}|g' \
|
|
-e 's|@CFLAGS@|${CFLAGS}|g' \
|
|
-e 's|@LDFLAGS@|${LDFLAGS}|g' \
|
|
-e 's|@LIBS@|${LIBS}|g' \
|
|
-e 's|@LOCALBASE@|${LOCALBASE}|g' \
|
|
-e 's|@FAKEDIR@|${FAKEDIR}|g' \
|
|
-e 's|@PERL@|${PERL5}|g' \
|
|
-e 's|@KRB5_HOME@|${KRB5_HOME}|g' \
|
|
-e 's|@MOZDIR@|${PREFIX}/lib/${MOZILLA}|g' \
|
|
-e 's|%%PREFIX%%|${PREFIX}|g' \
|
|
-e 's|%%CFLAGS%%|${CFLAGS}|g' \
|
|
-e 's|%%LDFLAGS%%|${LDFLAGS}|g' \
|
|
-e 's|%%LIBS%%|${LIBS}|g' \
|
|
-e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
|
|
-e 's|%%FAKEDIR%%|${FAKEDIR}|g' \
|
|
-e 's|%%PERL%%|${PERL5}|g' \
|
|
-e 's|%%KRB5_HOME%%|${KRB5_HOME}|g' \
|
|
-e 's|%%MOZILLA%%|${MOZILLA}|g' \
|
|
-e 's|%%MOZILLA_BIN%%|${MOZILLA_BIN}|g' \
|
|
-e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g'
|
|
MOZCONFIG_SED?= ${SED} ${MOZ_SED_ARGS}
|
|
|
|
.if ${ARCH}=="sparc64"
|
|
# Work around miscompilation/mislinkage of the sCanonicalVTable hacks.
|
|
MOZ_OPTIONS+= --disable-v1-string-abi
|
|
.endif
|
|
|
|
.else # bsd.port.post.mk
|
|
|
|
post-patch: gecko-post-patch gecko-moz-pis-patch
|
|
|
|
gecko-post-patch:
|
|
.if exists(${PKGINSTALL_INC})
|
|
@${MOZCONFIG_SED} < ${PKGINSTALL_INC} > ${PKGINSTALL}
|
|
.endif
|
|
.if exists(${PKGDEINSTALL_INC})
|
|
@${MOZCONFIG_SED} < ${PKGDEINSTALL_INC} > ${PKGDEINSTALL}
|
|
.endif
|
|
@${RM} -f ${MOZCONFIG}
|
|
.if !defined(NOMOZCONFIG)
|
|
.if exists(${GENERIC_MOZCONFIG})
|
|
@${MOZCONFIG_SED} < ${GENERIC_MOZCONFIG} >> ${MOZCONFIG}
|
|
.endif
|
|
@if [ -e ${PORT_MOZCONFIG} ] ; then \
|
|
${MOZCONFIG_SED} < ${PORT_MOZCONFIG} >> ${MOZCONFIG} ; \
|
|
fi
|
|
.for arg in ${MOZ_OPTIONS}
|
|
@${ECHO_CMD} ac_add_options ${arg} >> ${MOZCONFIG}
|
|
.endfor
|
|
.for arg in ${MOZ_MK_OPTIONS}
|
|
@${ECHO_CMD} mk_add_options ${arg} >> ${MOZCONFIG}
|
|
.endfor
|
|
.for var in ${MOZ_EXPORT}
|
|
@${ECHO_CMD} "export ${var}" >> ${MOZCONFIG}
|
|
.endfor
|
|
.endif # .if !defined(NOMOZCONFIG)
|
|
@${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g ; \
|
|
s|"%FULL_NSPR_CFLAGS%"|`nspr-config --cflags`|g ; \
|
|
s|"%FULL_NSPR_LIBS%"|`nspr-config --libs`|g' \
|
|
${WRKSRC}/build/unix/mozilla-config.in
|
|
@${REINPLACE_CMD} -e 's|<iconv.h>|\"${LOCALBASE}/include/iconv.h\"|g' \
|
|
${WRKSRC}/configure \
|
|
${WRKSRC}/intl/uconv/native/nsNativeUConvService.cpp \
|
|
${WRKSRC}/xpcom/io/nsNativeCharsetUtils.cpp
|
|
@${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \
|
|
${WRKSRC}/config/autoconf.mk.in
|
|
@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g ; \
|
|
s|echo aout|echo elf|g ; s|/usr/X11R6|${LOCALBASE}|g' \
|
|
${WRKSRC}/security/coreconf/FreeBSD.mk \
|
|
${WRKSRC}/js/src/Makefile.in
|
|
@if [ -d ${WRKSRC}/directory/c-sdk ]; then \
|
|
${REINPLACE_CMD} -e 's|echo aout|echo elf|g' \
|
|
${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \
|
|
${WRKSRC}/directory/c-sdk/configure ; \
|
|
fi
|
|
@${REINPLACE_CMD} -e 's|-lc_r|${PTHREAD_LIBS}|g ; \
|
|
s|-lpthread|${PTHREAD_LIBS}|g ; \
|
|
s|echo aout|echo elf|g ; \
|
|
s|/usr/X11R6|${LOCALBASE}|g' \
|
|
${WRKSRC}/configure
|
|
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g ; \
|
|
s|%%LOCALBASE%%|${LOCALBASE}|g' \
|
|
${WRKSRC}/build/unix/run-mozilla.sh
|
|
@${REINPLACE_CMD} -E -e 's|libesd\.so\.[0-9]+|libesd.so|g' \
|
|
${WRKSRC}/widget/src/gtk2/nsSound.cpp
|
|
@${REINPLACE_CMD} -E -e 's|libcups\.so\.[0-9]+|libcups.so|g' \
|
|
${WRKSRC}/*/*/*/nsDeviceContextSpecG.cpp
|
|
@${REINPLACE_CMD} -e 's|/usr/local/netscape|${LOCALBASE}|g ; \
|
|
s|/usr/local/lib/netscape|${LOCALBASE}/lib|g' \
|
|
${WRKSRC}/xpcom/*/SpecialSystemDirectory.cpp
|
|
@if [ -n "`${PKG_INFO} -xI '^bind[0-9]*-base-[0-9]'`" ]; then \
|
|
${ECHO_CMD} "${PKGNAME}: bind installed with PORT_REPLACES_BASE_BIND causes build problems."; \
|
|
${FALSE}; \
|
|
fi
|
|
|
|
# handles mozilla pis scripts.
|
|
gecko-moz-pis-patch:
|
|
.for moz in ${MOZ_PIS_SCRIPTS}
|
|
@${MOZCONFIG_SED} < ${FILESDIR}/${moz} > ${WRKDIR}/${moz}
|
|
.endfor
|
|
|
|
post-configure: gecko-post-configure
|
|
|
|
gecko-post-configure:
|
|
@${ECHO_CMD} "#define JNIIMPORT" >> ${WRKSRC}/mozilla-config.h
|
|
|
|
post-build: gecko-post-build
|
|
|
|
gecko-post-build:
|
|
@${REINPLACE_CMD} -e "s|\(Libs:.*\)\($$\)|\1 -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}\2|" \
|
|
${WRKSRC}/build/unix/*.pc || ${TRUE}
|
|
|
|
pre-install: gecko-moz-pis-pre-install gecko-pre-install port-pre-install gecko-create-plist
|
|
|
|
.if !target(port-pre-install)
|
|
port-pre-install:
|
|
@${DO_NADA}
|
|
.endif
|
|
|
|
gecko-pre-install:
|
|
.if !defined(NOGECKO_PLIST)
|
|
@${RM} -rf ${FAKEDIR} ${PLIST} ${PLISTD} ${PLISTF}
|
|
@${TOUCH} -f ${PLIST} ${PLISTD} ${PLISTF}
|
|
@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
|
|
${MAKEFILE} ${MAKE_ARGS} prefix=${FAKEDIR} ${INSTALL_TARGET}
|
|
.if defined(MOZILLA_SUFX) && ${MOZILLA_SUFX}!="none"
|
|
${MV} ${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//} ${FAKEDIR}/bin/${MOZILLA}
|
|
.if exists(${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//}-config)
|
|
${MV} ${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//}-config ${FAKEDIR}/bin/${MOZILLA}-config
|
|
.endif
|
|
.for pc in ${MOZ_PKGCONFIG_FILES:S|${MOZILLA_SUFX}||}
|
|
${SED} -e 's|Requires: ${MOZILLA:S/${MOZILLA_SUFX}//}|Requires: ${MOZILLA}|' \
|
|
${FAKEDIR}/lib/pkgconfig/${pc}.pc > ${FAKEDIR}/lib/pkgconfig/${pc:S/${MOZILLA:S,${MOZILLA_SUFX},,}/${MOZILLA}/}.pc
|
|
.endfor
|
|
@${REINPLACE_CMD} -e 's|${MOZILLA}-bin|${MOZILLA:S/${MOZILLA_SUFX}//}|; \
|
|
s|$${progbase}-bin|${MOZILLA:S/${MOZILLA_SUFX}//}-bin|' \
|
|
${FAKEDIR}/bin/${MOZILLA_EXEC_NAME}*
|
|
.endif
|
|
@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
|
|
${FAKEDIR}/bin/${MOZILLA_EXEC_NAME}*
|
|
${RM} -f ${FAKEDIR}/bin/*.bak
|
|
.endif
|
|
|
|
gecko-create-plist:
|
|
.if !defined(NOGECKO_PLIST)
|
|
# Create the plist
|
|
.for f in ${GECKO_PLIST_PRE_FILES}
|
|
${ECHO_CMD} ${f} >> ${PLISTF}
|
|
.endfor
|
|
.for f in ${GECKO_PLIST_PRE_DIRS}
|
|
${ECHO_CMD} "@dirrm ${f}" >> ${PLISTD}
|
|
.endfor
|
|
${MKDIR} ${FAKEDIR}/libdata
|
|
${MV} -f ${FAKEDIR}/lib/pkgconfig ${FAKEDIR}/libdata/ || ${TRUE}
|
|
${RM} -f ${FAKEDIR}/lib/pkgconfig
|
|
.for dir in ${MOZILLA_PLIST_DIRS}
|
|
@cd ${FAKEDIR}/${dir} && ${FIND} -H -s * -type f | \
|
|
${SED} -e 's|^|${dir}/|' >> ${PLISTF} && \
|
|
${FIND} -d * -type d | \
|
|
${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLISTD}
|
|
.endfor
|
|
.for pcfile in ${MOZ_PKGCONFIG_FILES}
|
|
${ECHO_CMD} "libdata/pkgconfig/${pcfile}.pc" >> ${PLISTF}
|
|
@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
|
|
-e 's|${MOZILLA}-nspr = ${PORTVERSION}|nspr|' \
|
|
${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc
|
|
.endfor
|
|
${CAT} ${PLISTF} | ${SORT} >> ${PLIST}
|
|
${CAT} ${PLISTD} | ${SORT} -r >> ${PLIST}
|
|
${ECHO_CMD} "@dirrmtry share/idl" >> ${PLIST}
|
|
${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
|
|
${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
|
|
.endif # !defined(NOGECKO_PLIST)
|
|
|
|
do-install: gecko-do-install
|
|
|
|
gecko-do-install:
|
|
.if !defined(NOGECKO_INSTALL)
|
|
.for dir in ${MOZILLA_PLIST_DIRS}
|
|
.if !exists(${PREFIX}/${dir})
|
|
${MKDIR} ${PREFIX}/${dir}
|
|
${CHMOD} 755 ${PREFIX}/${dir}
|
|
.endif
|
|
cd ${FAKEDIR}/${dir} && ${FIND} . | \
|
|
${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/${dir}
|
|
.endfor
|
|
.for pcfile in ${MOZ_PKGCONFIG_FILES}
|
|
${INSTALL_DATA} ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc \
|
|
${PREFIX}/libdata/pkgconfig/${pcfile}.pc
|
|
.endfor
|
|
.endif # !defined(NOGECKO_INSTALL)
|
|
|
|
gecko-moz-pis-pre-install:
|
|
.if defined(MOZ_PIS_SCRIPTS)
|
|
${MKDIR} ${FAKEDIR}/${MOZ_PIS_DIR}
|
|
.for moz in ${MOZ_PIS_SCRIPTS}
|
|
${INSTALL_SCRIPT} ${WRKDIR}/${moz} ${FAKEDIR}/${MOZ_PIS_DIR}
|
|
.endfor
|
|
.endif
|
|
|
|
post-install: gecko-post-install
|
|
|
|
gecko-post-install:
|
|
.if !defined(PACKAGE_BUILDING) && !defined(NO_MOZPKGINSTALL)
|
|
@if [ -e ${PKGINSTALL} ] ; then \
|
|
${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL; \
|
|
fi
|
|
.endif
|
|
@-update-desktop-database
|
|
|
|
.endif
|
|
.endif
|
|
# HERE THERE BE TACOS -- adamw
|