# New ports collection makefile for: phoenix # Date created: 2002/10/21 # Whom: Alan Eldridge # # $FreeBSD$ # PORTNAME= firefox PORTVERSION= 1.0 PORTEPOCH= 1 CATEGORIES= www MASTER_SITES= ${MASTER_SITE_MOZILLA} MASTER_SITE_SUBDIR= ${PORTNAME}/releases/1.0/source DISTNAME= ${PORTNAME}-1.0-source MAINTAINER= gnome@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg \ png.5:${PORTSDIR}/graphics/png \ mng.1:${PORTSDIR}/graphics/libmng BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip RUN_DEPENDS= Xvfb:${X_VFBSERVER_PORT} ALL_TARGET= default CONFIGURE_ENV= LOCALBASE=${LOCALBASE} FAKEDIR= ${WRKDIR}/fake REALVERSION= 1.0 HAS_CONFIGURE= yes ESD_LIB= libesd.so.2 LOCAL_PREFIX= ${PREFIX}/lib/${PORTNAME} NO_MTREE= yes PLIST= ${WRKDIR}/plist PLUGINSDIR= ${PREFIX}/lib/browser_plugins USE_BZIP2= yes USE_GMAKE= yes USE_GNOME= gtk20 libidl gnomehier USE_ICONV= yes USE_PERL5_BUILD=yes USE_X_PREFIX= yes WRKSRC= ${WRKDIR}/mozilla PKGINSTALL= ${WRKDIR}/pkg-install PKGDEINSTALL= ${WRKDIR}/pkg-deinstall FIREFOX_ICON= firefox.png FIREFOX_ICON_SRC=${WRKSRC}/other-licenses/branding/firefox/content/alert-exclam.png PKGCONFIG_FILES=mozilla-gtkmozembed mozilla-js mozilla-xpcom \ mozilla-nspr mozilla-nss mozilla-plugin JPI_LIST?=\ ${LOCALBASE}/jdk1.4.2/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so \ ${LOCALBASE}/jdk1.4.1/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so \ ${LOCALBASE}/diablo-jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so \ ${LOCALBASE}/jdk1.3.1/jre/plugin/${ARCH}/ns600/libjavaplugin_oji.so OPTIONS= DEBUG "Build a debugging image" off \ HEADERS "Install headers and IDL files" on \ LOGGING "Enable additional log messages" off \ OPTIMIZED_CFLAGS "Enable some additional optimizations" off \ XFT "Enable support for anti-aliased fonts" on \ SMB "Enable smb:// URI support using gnomevfs" off \ NEW_ICON "Install the new Firefox branding icon" off .include .if defined(WITH_DEBUG) WITH_LOGGING= yes CONFIGURE_ENV+= WITH_DEBUG=yes .endif # defined(WITH_DEBUG) .if defined(WITH_OPTIMIZED_CFLAGS) CFLAGS+= -O2 CONFIGURE_ENV+= WITH_OPTIMIZE=-O2 .else CONFIGURE_ENV+= WITH_OPTIMIZE=-O .endif # defined(WITH_OPTIMIZED_CFLAGS) .if defined(WITH_LOGGING) CONFIGURE_ENV+= WITH_LOGGING=yes .endif # defined(WITH_LOGGING) .if defined(WITHOUT_XFT) CONFIGURE_ENV+= WITHOUT_XFT=yes .else LIB_DEPENDS+= Xft.2:${PORTSDIR}/x11-fonts/libXft .endif # !defined(WITHOUT_XFT) .if defined(WITH_SMB) USE_GNOME+= gnomevfs2 CONFIGURE_ENV+= WITH_SMB=yes .endif # defined(WITH_SMB) CPPFLAGS+= -I${X11BASE}/include -I${LOCALBASE}/include CFLAGS+= ${PTHREAD_CFLAGS} LDFLAGS+= -L${X11BASE}/lib LIBS+= ${PTHREAD_LIBS} EXTRA_SCRIPTS= ${PORTNAME}.rb .if ${ARCH} == "alpha" && ${OSVERSION} < 500035 IGNORE= "core dumps on alpha during post-build" .endif .if ${PERL_LEVEL} < 500600 EXTRA_PATCHES+= ${FILESDIR}/extra-patch-config_make-jars.pl .endif pre-extract:: @${ECHO_MSG} @${ECHO_MSG} "Extracting source (this takes a while) ..." @${ECHO_MSG} post-extract:: # FAKEDIR is here so that nsinstall will install under FAKEDIR, not # under PREFIX. See pre-install and do-install for details. @${SED} -e 's|@CPPFLAGS@|${CPPFLAGS}|' \ -e 's|@CFLAGS@|${CFLAGS}|' \ -e 's|@LDFLAGS@|${LDFLAGS}|' \ -e 's|@LIBS@|${LIBS}|' \ -e 's|@X11BASE@|${X11BASE}|' \ -e 's|@LOCALBASE@|${LOCALBASE}|' \ -e 's|@PREFIX@|${FAKEDIR}/lib/firefox|' \ -e 's|@PERL@|${PERL5}|' \ <${FILESDIR}/mozconfig.in >${WRKSRC}/.mozconfig @${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' \ <${FILESDIR}/firefox.desktop.in >${WRKDIR}/firefox.desktop post-patch: @${PERL} -pi -e 's|%%PREFIX%%|${PREFIX}|g' \ ${WRKSRC}/build/unix/run-mozilla.sh @${PERL} -pi -e 's|-lc_r|${PTHREAD_LIBS}|g ; \ s|-lpthread|${PTHREAD_LIBS}|g' \ ${WRKSRC}/configure \ ${WRKSRC}/nsprpub/configure @${PERL} -pi -e 's|-pthread|${PTHREAD_LIBS}|g' \ ${WRKSRC}/nsprpub/config/config.mk \ ${WRKSRC}/security/coreconf/FreeBSD.mk \ ${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \ ${WRKSRC}/js/src/Makefile.in @${PERL} -pi -e 's|libesd\.so\.\d+|${ESD_LIB}|g' \ ${WRKSRC}/widget/src/gtk2/nsSound.cpp .for ii in modules/libpref/src/init extensions/sroaming/resources/content/prefs \ embedding/minimo ${MV} ${WRKSRC}/${ii}/all.js ${WRKSRC}/${ii}/all.js.bak ${SED} -e '/accessibility.typeaheadfind.enablesound/s/true/false/ ; \ /dom.disable_window_open_feature.toolbar/s/false/true/' \ < ${WRKSRC}/${ii}/all.js.bak > ${WRKSRC}/${ii}/all.js .endfor .for ii in ${PKGCONFIG_FILES} @${PERL} -pi -e 's|mozilla-|firefox-|g' \ ${WRKSRC}/build/unix/${ii}.pc.in .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 post-build: # XXX This works around an install problem that is triggered when # toolkit/profile/src is built after profile/src. @${TOUCH} -f ${WRKSRC}/profile/build/libprofile.so pre-install: # Overview: the program installs itself in FAKEDIR, then a list is made of the # files and directories in there. This is the PLIST (packing list) for the # package, replacing the traditional pkg-plist file. @${RM} -rf ${FAKEDIR} ${PLIST} @${MKDIR} ${FAKEDIR}/lib/browser_plugins @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \ Makefile ${MAKE_ARGS} install .for ii in mac win .for jj in / .jar @${RM} -rf ${FAKEDIR}/lib/${PORTNAME}/lib/${PORTNAME}-${REALVERSION}/chrome/en-${ii}${jj} .endfor .endfor @${SED} -e 's|%%MOZDIR%%|${LOCAL_PREFIX}/lib/${PORTNAME}-${REALVERSION}|g ; \ s|%%X11BASE%%|${X11BASE}|g' \ < ${MASTERDIR}/pkg-install.in > ${PKGINSTALL} @${SED} -e 's|%%MOZDIR%%|${LOCAL_PREFIX}/lib/${PORTNAME}-${REALVERSION}|g' \ < ${MASTERDIR}/pkg-deinstall.in > ${PKGDEINSTALL} .if !defined (WITH_HEADERS) @${RM} -fr ${FAKEDIR}/share/idl ${FAKEDIR}/include .endif .for ii in firefox Firefox firefox-config ${EXTRA_SCRIPTS} @${ECHO_CMD} bin/${ii} >> ${PLIST} .endfor @cd ${FAKEDIR} && ${FIND} * ! -type d | ${SORT} >> ${PLIST}; \ ${FIND} * -type d -empty | ${SORT} | ${SED} -e \ "s:^:@exec ${MKDIR} %D/:" -e "s:$$: || true:" >> ${PLIST}; \ ${FIND} * -type d -empty | ${SORT} -r | ${SED} -e \ "s:^:@unexec ${RMDIR} %D/:" -e "s:$$: || true:" >> ${PLIST}; \ ${FIND} * -type d ! -empty | ${SORT} -r | ${SED} -e "s:^:@dirrm :" | \ ${GREP} / >> ${PLIST} ${ECHO_CMD} 'share/gnome/pixmaps/${FIREFOX_ICON}' >> ${PLIST} ${ECHO_CMD} 'share/gnome/applications/firefox.desktop' >> ${PLIST} do-install: # This is the actual installation. First, the contents of FAKEDIR are # just copied to PREFIX. cd ${FAKEDIR} && ${FIND} * | ${CPIO} -dmp --quiet ${PREFIX} post-install: .if !defined(PACKAGE_BUILDING) @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .endif .for i in ${EXTRA_SCRIPTS} ${INSTALL_SCRIPT} ${FILESDIR}/${i} ${PREFIX}/bin .endfor .for ii in f F ${RM} -f ${PREFIX}/bin/${ii}irefox ${LN} -sf ${LOCAL_PREFIX}/bin/firefox ${PREFIX}/bin/${ii}irefox .endfor ${PERL} -pi -e 's|${FAKEDIR}|${PREFIX}|g' ${LOCAL_PREFIX}/bin/firefox ${RM} -f ${PREFIX}/bin/firefox-config ${LN} -sf ${LOCAL_PREFIX}/bin/firefox-config \ ${PREFIX}/bin/firefox-config ${PERL} -pi -e 's|${FAKEDIR}|${PREFIX}|g' ${LOCAL_PREFIX}/bin/firefox-config ${FIND} ${LOCAL_PREFIX}/lib/pkgconfig -type f | ${XARGS} ${PERL} -pi -e \ 's|${FAKEDIR}|${PREFIX}|g' -if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \ for jpi in ${JPI_LIST}; do \ if [ -f $${jpi} ]; then \ ${LN} -sf $${jpi} \ ${PLUGINSDIR}/libjavaplugin_oji.so ; \ break; \ fi; \ done; \ fi .if defined(WITH_NEW_ICON) ${INSTALL_DATA} ${WRKSRC}/other-licenses/branding/firefox/default.xpm \ ${LOCAL_PREFIX}/lib/${PORTNAME}-${REALVERSION}/chrome/icons/default/default.xpm .endif # defined(WITH_NEW_ICON) ${INSTALL_DATA} ${FIREFOX_ICON_SRC} ${PREFIX}/share/gnome/pixmaps/${FIREFOX_ICON} ${INSTALL_DATA} ${WRKDIR}/firefox.desktop ${PREFIX}/share/gnome/applications .include