aboutsummaryrefslogtreecommitdiff
path: root/www/mozilla/Makefile.common
diff options
context:
space:
mode:
Diffstat (limited to 'www/mozilla/Makefile.common')
-rw-r--r--www/mozilla/Makefile.common437
1 files changed, 2 insertions, 435 deletions
diff --git a/www/mozilla/Makefile.common b/www/mozilla/Makefile.common
index 16b845c538db..ef6e6f4d1219 100644
--- a/www/mozilla/Makefile.common
+++ b/www/mozilla/Makefile.common
@@ -1,435 +1,2 @@
-# Makefile.common handles common tasks and dependencies for mozilla ports.
-#
-# Date created: 12 Nov 2005
-# Whom: Michael Johnson <ahze@FreeBSD.org>
-#
-# $FreeBSD$
-# $MCom: ports/www/mozilla/Makefile.common,v 1.45 2007/02/06 00:05:55 ahze Exp $
-
-# 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. The reusable components for gecko-based ports
-# lives in www/mozilla/bsd.gecko.mk.
-#
-#
-# Ports can use the following:
-#
-# GECKO_PLIST_PRE_FILES List of files to add to the beginning of plist
-# GECKO_PLIST_PRE_DIRS
-#
-# 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 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_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
-
-BUILD_DEPENDS+= zip:${PORTSDIR}/archivers/zip
-LIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg \
- png.5:${PORTSDIR}/graphics/png \
- nspr4:${PORTSDIR}/devel/nspr \
- nss3:${PORTSDIR}/security/nss
-
-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
-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/jpeg \
- --exclude mozilla/dbm \
- --exclude mozilla/security/nss \
- --exclude mozilla/gc/boehm \
- --exclude mozilla/gfx/cairo
-
-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
-
-CPPFLAGS+= -I${LOCALBASE}/include/nss -I${LOCALBASE}/include/nss/nss
-CFLAGS+= ${PTHREAD_CFLAGS}
-LDFLAGS+= -L${LOCALBASE}/lib/nss -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}
-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 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-jpeg=${LOCALBASE} \
- --with-system-zlib=/usr \
- --with-system-png=${LOCALBASE} \
- --with-gssapi=${KRB5_HOME} \
- --with-system-nspr \
- --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
-.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}=="i386" && (${OSVERSION} >= 700000 || exists(/usr/lib/libbz2_p.a))
-LIB_BZ2= -lbz2_p
-.else
-LIB_BZ2= -lbz2
-.endif
-
-.if ${ARCH}=="sparc64"
-# Work around miscompilation/mislinkage of the sCanonicalVTable hacks.
-MOZ_OPTIONS+= --disable-v1-string-abi
-.endif
-
-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
-
-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}
- @${TOUCH} -f ${PLIST}
- @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}
- ${MV} ${FAKEDIR}/bin/${MOZILLA:S/${MOZILLA_SUFX}//}-config ${FAKEDIR}/bin/${MOZILLA}-config
-.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} \
- ${FAKEDIR}/bin/${MOZILLA}-config
-.endif
- @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
- ${FAKEDIR}/bin/${MOZILLA} \
- ${FAKEDIR}/bin/${MOZILLA}-config
- ${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} >> ${PLIST}
-.endfor
-.for f in ${GECKO_PLIST_PRE_DIRS}
- ${ECHO_CMD} "@dirrm ${f}" >> ${PLIST}
-.endfor
- ${ECHO_CMD} "${BROWSER_PLUGINS_DIR}/.${MOZILLA}.keep" >> ${PLIST}
- ${ECHO_CMD} "@unexec ${RMDIR} %D/${BROWSER_PLUGINS_DIR} 2>/dev/null || ${TRUE}" >> ${PLIST}
- ${MKDIR} ${FAKEDIR}/libdata
- ${MV} -f ${FAKEDIR}/lib/pkgconfig ${FAKEDIR}/libdata/
- ${RM} -f ${FAKEDIR}/lib/pkgconfig
-.for dir in ${MOZILLA_PLIST_DIRS}
- @cd ${FAKEDIR}/${dir} && ${FIND} -s * -type f -o -type l | \
- ${SED} -e 's|^|${dir}/|' >> ${PLIST} && \
- ${FIND} -d * -type d | \
- ${SED} -e 's|^|@dirrm ${dir}/|' >> ${PLIST}
-.endfor
-.for pcfile in ${MOZ_PKGCONFIG_FILES}
- ${ECHO_CMD} "libdata/pkgconfig/${pcfile}.pc" >> ${PLIST}
- @${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
- -e 's|${MOZILLA}-nspr = ${PORTVERSION}|nspr|' \
- ${FAKEDIR}/libdata/pkgconfig/${pcfile}.pc
-.endfor
- ${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
- ${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
- ${ECHO_CMD} "@unexec ${RMDIR} %D/share/idl 2>/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)
- @if [ -e ${PKGINSTALL} ] ; then \
- ${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL; \
- fi
-.endif
- @-update-desktop-database
+USE_GECKO=gecko
+.include "${PORTSDIR}/Mk/bsd.gecko.mk"