From 36353c589f868095c2c4e18fcdee86c8345cc2fc Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Tue, 29 Nov 2005 21:12:28 +0000 Subject: - Update firefox to 1.5 - Add Makefile.common o A new build/install system for gecko ports, Makefile.common includes many generic routines and common tasks. o Fix ld-run-path in all gecko's by using -Wl,-rpath,${moz_libdir} thus removing the need to have a startup script for ports that depend on gecko. [2] o Use system libm, nss, nspr in all gecko ports - Add bsd.gecko.mk o This is the predecessor to WITH_MOZILLA=[mozilla|firefox|...] with a more robust way of detecting a gecko a end user wishs to use. o 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. Port Makefile example: USE_GECKO=firefox mozilla seamonkey thunderbird .include .include "${.CURDIR}/../../www/mozilla/bsd.gecko.mk" End user example: WITH_GECKO=seamonkey firefox We highly recommend moving away from using WITH_MOZILLA and switching to USE/WITH_GECKO. PR: 89052 [2] Submitted by: vs [2] Obtained from: www/firefox Thanks to: adamw, marcus, and mezz for ideas, bug squashing, and more sajd from irc.freenode.org/#FreeBSD-Gnome for pointing out many bugs --- www/mozilla/Makefile | 297 ++++++--------------------------------------------- 1 file changed, 34 insertions(+), 263 deletions(-) (limited to 'www/mozilla/Makefile') diff --git a/www/mozilla/Makefile b/www/mozilla/Makefile index 1e97fdab459d..8d71725431ac 100644 --- a/www/mozilla/Makefile +++ b/www/mozilla/Makefile @@ -3,288 +3,119 @@ # Whom: eivind/dima/jseger # # $FreeBSD$ -# $MCom: ports/www/mozilla/Makefile,v 1.23 2005/10/27 00:08:39 marcus Exp $ +# $MCom: ports/www/mozilla/Makefile,v 1.31 2005/11/24 01:43:42 ahze Exp $ # PORTNAME= mozilla PORTVERSION= 1.7.12 -PORTREVISION?= 1 +PORTREVISION?= 3 PORTEPOCH= 2 CATEGORIES?= www MASTER_SITES= ${MASTER_SITE_MOZILLA} \ ${MASTER_SITE_LOCAL:S/$/:local/} MASTER_SITE_SUBDIR= mozilla/releases/${PORTNAME}${PORTVERSION}/source \ ahze/:local -DISTFILES= ${PORTNAME}-${PORTVERSION}-source${EXTRACT_SUFX} +DISTFILES= ${PORTNAME}-${PORTVERSION}-source${EXTRACT_SUFX} \ + libart_lgpl-1${EXTRACT_SUFX}:local MAINTAINER= gnome@FreeBSD.org COMMENT= The open source, standards compliant web browser -BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip -LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg \ - png.5:${PORTSDIR}/graphics/png - -WRKSRC= ${WRKDIR}/${PORTNAME} -MOZILLA?= mozilla -MOZ_SUFX?= -LATEST_LINK= ${MOZILLA} -EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \ - --exclude */macbuild/*\ - --exclude */package/* \ - --exclude .cvsignore \ - --exclude makefile.win \ - --exclude MANIFEST -USE_GNOME= gtk20 libidl desktopfileutils +MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/dist/bin +USE_GMAKE= yes USE_BZIP2= yes USE_X_PREFIX= yes -USE_PERL5= yes -USE_ICONV= yes -USE_GMAKE= yes WANT_GNOME= yes USE_REINPLACE= yes HAS_CONFIGURE= yes MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin ALL_TARGET= default -FAKEDIR= ${WRKDIR}/fake -MOZ_PIS_DIR= ${FAKEDIR}/lib/${MOZILLA}/init.d -MOZ_PIS_SCRIPTS= # No default -CONFIGURE_ARGS= \ - --disable-auto-deps \ - --enable-chrome-format=jar \ - --disable-cpp-exceptions \ - --disable-cpp-rtti \ - --enable-crypto \ - --disable-gtktest \ - --disable-freetypetest \ - --disable-installer \ - --disable-glibtest \ - --enable-double-buffer \ - --enable-mathml \ - --disable-md \ - --disable-pedantic \ - --disable-bidi \ - --disable-plaintext-editor-only \ - --enable-svg \ - --disable-tests \ - --disable-xterm-updates \ - --enable-xinerama \ - --with-system-zlib \ - --with-system-jpeg=${LOCALBASE} \ - --with-system-png=${LOCALBASE} \ - --with-gssapi=/usr \ - --prefix=${FAKEDIR} \ - --with-pthreads \ - --enable-default-toolkit=gtk2 -PLIST= ${WRKDIR}/pkg-plist -MOZ_EXTENSIONS= default CONFIGURE_ENV= LOCALBASE=${LOCALBASE} -PKGINSTALL= ${WRKDIR}/pkg-install -PKGDEINSTALL= ${WRKDIR}/pkg-deinstall -FREETYPE_LIB= libfreetype.so.9 -PKGCONFIG_FILES=mozilla-gtkmozembed mozilla-js mozilla-xpcom \ - mozilla-nspr mozilla-nss mozilla-plugin -# JPI stuff. List paths to Java Plug-ins here in the order to try. -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_EXTENSIONS= default +MOZ_EXPORT+= MOZ_INTERNAL_LIBART_LGPL=1 +MOZ_MK_OPTIONS+=MOZ_INTERNAL_LIBART_LGPL=1 +MOZ_OPTIONS+= --enable-svg-renderer-libart --enable-svg \ + --disable-plaintext-editor-only -OPTIONS=XFT "Enable Xft font anti-aliasing" on \ - CALENDAR "Enable the Calendar module" off \ +OPTIONS=CALENDAR "Enable the Calendar module" off \ MAILNEWS "Enable Mail and News modules" on \ COMPOSER "Enable the HTML Composer module" on \ - DEBUG "Enable debugging (i.e. gdb) support" off \ LDAP "Enable LDAP support for Mailnews" on \ CHATZILLA "Enable the Chatzilla IRC module" on \ XMLTERM "Enable the XMLTerm module" on \ JAVASCRIPT_DEBUGGER "Enable DTD and JavaScript debuggers" off \ - OPTIMIZED_CFLAGS "Enable -O2 optimizations" off \ - SMB "Enable smb:// URI support via gnomevfs" off -# CAIRO_RENDER "Enable SVG rendering with Cairo" off + SMB "Enable smb:// URI support using gnomevfs" off .include -#.if !defined(WITH_CAIRO_RENDER) -DISTFILES+= libart_lgpl-1${EXTRACT_SUFX}:local -#.endif - -.if ${ARCH} == "alpha" && ${OSVERSION} < 500035 -IGNORE= core dumps on ${ARCH} during post-build -.endif - -.if exists(${LOCALBASE}/include/freetype/freetype.h) -BROKEN= "You must upgrade your freetype port to 1.3.1_2 or higher before \ - installing Mozilla. If you have 1.3.1_2 installed, please remove \ - ${LOCALBASE}/include/freetype, then build Mozilla" -.endif - -.if defined(WITH_CALENDAR) && (defined(WITHOUT_MAILNEWS) || \ - defined(WITHOUT_COMPOSER)) -BROKEN= "Calendar requires Composer and Mailnews support." -.endif - -#.if defined(WITH_CAIRO_RENDER) -#LIB_DEPENDS+= svg-cairo.1:${PORTSDIR}/graphics/libsvg-cairo -#BUILD_DEPENDS+= ${LOCALBASE}/include/cairo/cairo-xlib.h:${PORTSDIR}/graphics/cairo - -#CONFIGURE_ARGS+= --enable-svg-renderer-cairo \ -# --disable-svg-renderer-libart -#CONFIGURE_ENV+= MOZ_SVG_RENDERER_CAIRO=1 -#.else -CONFIGURE_ARGS+= --enable-svg-renderer-libart \ - --disable-svg-renderer-cairo -CONFIGURE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1 -MAKE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1 +# libart patches .if ${OSVERSION} < 500035 EXTRA_PATCHES+= ${FILESDIR}/extra-patch-nsSVGLibartGlyphMetricsFT.cpp .else EXTRA_PATCHES+= ${FILESDIR}/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp .endif -#.endif -.if !defined(WITHOUT_XFT) -LIB_DEPENDS+= Xft.2:${PORTSDIR}/x11-fonts/libXft -CONFIGURE_ARGS+=--enable-xft -.if exists(${X11BASE}/lib/X11/fonts/mozilla/fonts.dir) -BROKEN= "Mozilla${MOZ_SUFX} and Xft2 render the mozilla-fonts \ - illegibly. Please remove the mozilla-fonts package." -.endif -.else -CONFIGURE_ARGS+=--disable-xft -.endif +LATEST_LINK= ${MOZILLA} -.if defined(WITH_DEBUG) -CONFIGURE_ARGS+=--enable-debug \ - --disable-strip -.else -CONFIGURE_ARGS+=--disable-debug \ - --enable-strip +.if ${ARCH} == "alpha" && ${OSVERSION} < 500035 +IGNORE= core dumps on ${ARCH} during post-build .endif -# LDAP is only used by mail and news so disable both together +.if defined(WITH_CALENDAR) && (defined(WITHOUT_MAILNEWS) || \ + defined(WITHOUT_COMPOSER)) +BROKEN= "Calendar requires Composer and Mailnews support." +.endif .if defined(WITHOUT_MAILNEWS) -CONFIGURE_ARGS+= --disable-ldap --disable-mailnews +MOZ_OPTIONS+= --disable-ldap --disable-mailnews .else # mail and news desired, but not LDAP .if defined(WITHOUT_LDAP) -CONFIGURE_ARGS+= --disable-ldap --enable-mailnews +MOZ_OPTIONS+= --disable-ldap --enable-mailnews .else -CONFIGURE_ARGS+= --enable-ldap --enable-mailnews +MOZ_OPTIONS+= --enable-ldap --enable-mailnews .endif .endif + .if !defined(WITHOUT_CHATZILLA) MOZ_EXTENSIONS:= ${MOZ_EXTENSIONS},irc .endif -.if !defined(WITHOUT_XMLTERM) + +.if !defined(WITHOUT_XMLTERM) && defined(WITH_JAVASCRIPT_DEBUGGER) MOZ_EXTENSIONS:= ${MOZ_EXTENSIONS},xmlterm .endif -CONFIGURE_ARGS+= --enable-extensions=${MOZ_EXTENSIONS} .if defined(WITH_JAVASCRIPT_DEBUGGER) -CONFIGURE_ARGS+= --enable-jsd \ - --enable-dtd-debug +MOZ_OPTIONS+= --enable-jsd \ + --enable-dtd-debug .else -CONFIGURE_ARGS+= --disable-jsd \ - --disable-dtd-debug +MOZ_OPTIONS+= --disable-jsd \ + --disable-dtd-debug .endif .if defined(WITH_CALENDAR) -CONFIGURE_ARGS+= --enable-calendar +MOZ_OPTIONS+= --enable-calendar .endif .if defined(WITHOUT_COMPOSER) -CONFIGURE_ARGS+= --disable-composer -.endif - -#.if ${ARCH} == "i386" -#CONFIGURE_ARGS+= --enable-reorder -#.endif - -.if defined(WITH_SMB) -USE_GNOME+= gnomevfs2 -.else -CONFIGURE_ARGS+=--disable-gnomevfs -.endif - -.if defined(WITH_OPTIMIZED_CFLAGS) -CFLAGS+= -O2 -CONFIGURE_ARGS+= --enable-optimize=-O2 +MOZ_OPTIONS+= --disable-composer .endif post-patch: - @${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g' \ - ${WRKSRC}/build/unix/mozilla-config.in - @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \ - ${WRKSRC}/build/unix/run-mozilla.sh - @${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ - -e 's|%%HEADERS_SUFX%%|${MOZ_SUFX}|g' \ - ${WRKSRC}/config/autoconf.mk.in @${FIND} ${WRKSRC}/other-licenses/libical -name "*.c" | ${XARGS} \ ${REINPLACE_CMD} 's|||g' - @${REINPLACE_CMD} -e 's|-lc_r|${PTHREAD_LIBS}|g ; \ - s|-lpthread|${PTHREAD_LIBS}|g ; \ - s|/usr/X11R6|${X11BASE}|g' \ - ${WRKSRC}/configure \ - ${WRKSRC}/nsprpub/configure - @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \ - ${WRKSRC}/nsprpub/configure \ - ${WRKSRC}/security/coreconf/FreeBSD.mk \ - ${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \ - ${WRKSRC}/js/src/Makefile.in - @${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}/gfx/src/gtk/nsDeviceContextSpecG.cpp @${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/' \ ${WRKSRC}/modules/libpref/src/init/all.js @${REINPLACE_CMD} -e 's||\"${LOCALBASE}/include/iconv.h\"|g' \ ${WRKSRC}/configure \ ${WRKSRC}/intl/uconv/native/nsNativeUConvService.cpp \ ${WRKSRC}/xpcom/io/nsNativeCharsetUtils.cpp - @${REINPLACE_CMD} -E -e 's|libfreetype\.so\.[0-9]+|${FREETYPE_LIB}|g' \ - ${WRKSRC}/modules/libpref/src/init/all.js - @for pcfile in ${PKGCONFIG_FILES}; do \ - ${REINPLACE_CMD} -e 's|mozilla-xpcom|mozilla-xpcom${MOZ_SUFX}${PKGNAMESUFFIX}|g ; \ - s|mozilla-nspr|mozilla-nspr${MOZ_SUFX}${PKGNAMESUFFIX}|g' \ - ${WRKSRC}/build/unix/$${pcfile}.pc.in; \ - done - @${SED} -e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g ; \ - s|%%PREFIX%%|${PREFIX}|g' \ - < ${MASTERDIR}/pkg-install.in > ${PKGINSTALL} - @${SED} -e 's|%%MOZDIR%%|${PREFIX}/lib/${MOZILLA}|g' \ - < ${MASTERDIR}/pkg-deinstall.in > ${PKGDEINSTALL} @${SED} -e 's|%%PREFIX%%|${PREFIX}|g' \ < ${FILESDIR}/mozilla.desktop.in > \ ${WRKDIR}/mozilla.desktop -.for ii in ${MOZ_PIS_SCRIPTS} - @${SED} -e 's|%%MOZILLA%%|${MOZILLA}|g ; \ - s|%%PREFIX%%|${PREFIX}|g ; \ - s|%%X11BASE%%|${X11BASE}|g' \ - < ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii} -.endfor - -pre-configure: - @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 pre-install: - ${RM} -rf ${FAKEDIR} ${PLIST} - ${TOUCH} -f ${PLIST} - cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \ - Makefile ${MAKE_ARGS} ${INSTALL_TARGET} - ${MKDIR} ${MOZ_PIS_DIR} - ${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ - ${FAKEDIR}/bin/mozilla \ - ${FAKEDIR}/bin/mozilla-config - if [ ! -x ${PREFIX}/bin/mozilla -a ! -L ${PREFIX}/bin/mozilla ]; then \ - ${ECHO_CMD} bin/mozilla >> ${PLIST} ; \ - fi - if [ "${MOZILLA}" != "mozilla" ]; then \ - ${ECHO_CMD} bin/${MOZILLA} >> ${PLIST} ; \ - fi if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \ for jpi in ${JPI_LIST}; do \ if [ -f $${jpi} ]; then \ @@ -293,56 +124,13 @@ pre-install: fi; \ done; \ fi - ${ECHO_CMD} lib/browser_plugins/.${PORTNAME}.keep >> ${PLIST} - ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/browser_plugins 2>/dev/null || ${TRUE}" >> ${PLIST} - ${ECHO_CMD} lib/${MOZILLA}/mozilla >> ${PLIST} - ${ECHO_CMD} lib/${MOZILLA}/mozilla-config >> ${PLIST} -.for ii in ${MOZ_PIS_SCRIPTS} - ${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii} -.endfor .if !defined(WITHOUT_MAILNEWS) @${CP} -RL ${WRKSRC}/dist/bin/defaults/isp ${FAKEDIR}/lib/${MOZILLA}/defaults .endif ${ECHO_CMD} share/applications/mozilla.desktop >> ${PLIST} ${ECHO_CMD} "@unexec ${RMDIR} %D/share/applications 2>/dev/null || ${TRUE}" >> ${PLIST} - cd ${FAKEDIR}/lib/${MOZILLA} && ${FIND} -s * -type f -o -type l | \ - ${SED} -e 's:^:lib/${MOZILLA}/:' >> ${PLIST} \ - && ${FIND} -d * -type d | \ - ${SED} -e 's:^:@dirrm lib/${MOZILLA}/:' >> ${PLIST} - ${ECHO_CMD} @dirrm lib/${MOZILLA} >> ${PLIST} - for pcfile in ${PKGCONFIG_FILES}; do \ - ${ECHO_CMD} libdata/pkgconfig/$${pcfile}${MOZ_SUFX}${PKGNAMESUFFIX}.pc >> ${PLIST} ; \ - done - cd ${FAKEDIR}/include/mozilla && ${FIND} -s * -type f -o -type l | \ - ${SED} -e 's:^:include/${MOZILLA}/:' >> ${PLIST} \ - && ${FIND} -d * -type d | \ - ${SED} -e 's:^:@dirrm include/${MOZILLA}/:' >> ${PLIST} - ${ECHO_CMD} @dirrm include/${MOZILLA} >> ${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} - cd ${FAKEDIR}/share/idl/${MOZILLA}-${PORTVERSION} \ - && ${FIND} -s * -type f -o -type l | \ - ${SED} -e 's:^:share/idl/${MOZILLA}/:' >> ${PLIST} \ - && ${FIND} -d * -type d | \ - ${SED} -e 's:^:@dirrm share/idl/${MOZILLA}/:' >> ${PLIST} - ${ECHO_CMD} "@dirrm share/idl/${MOZILLA}" >> ${PLIST} - ${ECHO_CMD} "@unexec ${RMDIR} %D/share/idl 2>/dev/null || true" >> ${PLIST} do-install: - ${MKDIR} ${PREFIX}/lib/${MOZILLA} - ${CHMOD} 755 ${PREFIX}/lib/${MOZILLA} - ${INSTALL_SCRIPT} ${FAKEDIR}/bin/mozilla ${PREFIX}/lib/${MOZILLA} - ${INSTALL_SCRIPT} ${FAKEDIR}/bin/mozilla-config ${PREFIX}/lib/${MOZILLA} - cd ${FAKEDIR}/lib/${MOZILLA} && ${FIND} . | \ - ${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/lib/${MOZILLA} - ${INSTALL_SCRIPT} ${FAKEDIR}/bin/mozilla ${PREFIX}/bin - if [ ! -x ${PREFIX}/bin/mozilla -a ! -L ${PREFIX}/bin/mozilla ]; then \ - ${LN} -sf ${PREFIX}/bin/${MOZILLA} ${PREFIX}/bin/mozilla ; \ - fi - if [ ! -d ${PREFIX}/lib/browser_plugins ]; then \ - ${MKDIR} ${PREFIX}/lib/browser_plugins ; \ - fi - ${TOUCH} -f ${PREFIX}/lib/browser_plugins/.${PORTNAME}.keep if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \ for jpi in ${JPI_LIST}; do \ if [ -f $${jpi} ]; then \ @@ -352,29 +140,12 @@ do-install: fi; \ done; \ fi - for pcfile in ${PKGCONFIG_FILES}; do \ - ${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \ - ${WRKSRC}/build/unix/$${pcfile}.pc; \ - ${INSTALL_DATA} ${WRKSRC}/build/unix/$${pcfile}.pc \ - ${PREFIX}/libdata/pkgconfig/$${pcfile}${MOZ_SUFX}${PKGNAMESUFFIX}.pc ; \ - done - -${RM} -fr ${PREFIX}/include/${MOZILLA} - ${MKDIR} ${PREFIX}/include/${MOZILLA} - ${CHMOD} 755 ${PREFIX}/include/${MOZILLA} - cd ${FAKEDIR}/include/mozilla && ${FIND} . | \ - ${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/include/${MOZILLA} ${MKDIR} ${PREFIX}/share/applications ${INSTALL_DATA} ${WRKDIR}/mozilla.desktop \ ${PREFIX}/share/applications - ${MKDIR} ${PREFIX}/share/idl/${MOZILLA} - cd ${FAKEDIR}/share/idl/${MOZILLA}-${PORTVERSION} && ${FIND} . | \ - ${CPIO} -pdm -L -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/idl/${MOZILLA} post-install: @${CHMOD} -R u-w ${PREFIX}/lib/${MOZILLA}/components -.if !defined(PACKAGE_BUILDING) - @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL -.endif - @-update-desktop-database +.include "${.CURDIR}/Makefile.common" .include -- cgit v1.2.3