1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-30 05:40:06 +00:00
freebsd-ports/Mk/bsd.gecko.mk
Jeremy Messenger 61d9883622 Remove firefox3 from USE_GECKO; it does not work and wait for xulrunner 1.9
comes in. The xulrunner 1.9 is current in MC ports. It's clear about that
Mozilla folks want us to use xulrunner for SDK/build.
2008-08-06 16:26:18 +00:00

660 lines
21 KiB
Makefile

#-*- mode: Fundamental; tab-width: 4; -*-
# ex:ts=4
#
# Date created: 12 Nov 2005
# Whom: Michael Johnson <ahze@FreeBSD.org>
#
# $FreeBSD$
# $MCom: ports-stable/Mk/bsd.gecko.mk,v 1.8 2008/06/20 22:17:41 mezz 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
thunderbird_PORTSDIR= mail
.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
BROWSER_LINUX_PLUGINS_DIR?= ${LOCALBASE}/lib/browser_linux_plugins
BROWSER_PLUGINS_DIR?= ${LOCALBASE}/lib/browser_plugins
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
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
BROWSER_PLUGINS_DIR?= lib/browser_plugins
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
JPI_LIST?=\
${LOCALBASE}/jdk1.5.0/jre/plugin/${ARCH}/ns7/libjavaplugin_oji.so \
${LOCALBASE}/jdk1.4.2/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so
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 \
--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}
.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' \
${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}*
.endif
@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
${FAKEDIR}/bin/${MOZILLA}*
${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
${ECHO_CMD} "${BROWSER_PLUGINS_DIR}/.${MOZILLA}.keep" >> ${PLISTF}
${ECHO_CMD} "@dirrmtry ${BROWSER_PLUGINS_DIR}" >> ${PLISTD}
${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
${MKDIR} ${PREFIX}/${BROWSER_PLUGINS_DIR}
${TOUCH} -f ${PREFIX}/${BROWSER_PLUGINS_DIR}/.${MOZILLA}.keep
.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