summaryrefslogblamecommitdiffstats
path: root/www/firefox-devel/Makefile
blob: 09d1d7c28ffa2e281b2eb6ad0833144274b1db5f (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                 
                 






































































































                                                                                    



                         

















































































































                                                                                                               












































                                                                                                         
# New ports collection makefile for:    phoenix
# Date created:         2002/10/21
# Whom:             Alan Eldridge <alane@FreeBSD.org>
#
# $FreeBSD$
#

PORTNAME=   firefox
PORTVERSION=    1.1.a1
PORTREVISION=   1
PORTEPOCH=  1
CATEGORIES= www
MASTER_SITES=   ${MASTER_SITE_MOZILLA}
MASTER_SITE_SUBDIR= ${PORTNAME}/releases/deerpark/alpha1/source/
#DISTNAME=  ${PORTNAME}-${PORTVERSION}-source
DISTNAME=   deerpark-alpha1-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 \
        Xft.2:${PORTSDIR}/x11-fonts/libXft
BUILD_DEPENDS=  zip:${PORTSDIR}/archivers/zip

ALL_TARGET= default
CONFIGURE_ENV=  LOCALBASE=${LOCALBASE}
FAKEDIR=    ${WRKDIR}/fake
USE_REINPLACE=  yes
HAS_CONFIGURE=  yes
ESD_LIB=    libesd.so.2
PLIST=      ${WRKDIR}/plist
PLUGINSDIR= ${PREFIX}/lib/browser_plugins
USE_BZIP2=  yes
USE_GMAKE=  yes
USE_GNOME=  gtk20 libidl desktopfileutils
USE_ICONV=  yes
USE_PERL5_BUILD=yes
USE_X_PREFIX=   yes
WRKSRC=     ${WRKDIR}/mozilla
PKGINSTALL= ${WRKDIR}/pkg-install
PKGDEINSTALL=   ${WRKDIR}/pkg-deinstall

EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \
            --exclude */macbuild/*\
            --exclude */package/* \
            --exclude .cvsignore \
            --exclude makefile.win \
            --exclude MANIFEST

FIREFOX=    ${PORTNAME}
FF_VER=     1.0+
#FF_VER=    ${PORTVERSION}

FIREFOX_ICON=   ${FIREFOX}.xpm
FIREFOX_ICON_SRC=   ${PREFIX}/lib/${FIREFOX}/chrome/icons/default/default.xpm

PKGCONFIG_FILES=firefox-gtkmozembed firefox-js firefox-xpcom \
        firefox-nspr firefox-nss firefox-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

SYSTEM_PREFS=       ${FAKEDIR}/lib/${FIREFOX}-${FF_VER}/defaults/pref/firefox.js
SCRIPTS_DIR=        ${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
MOZ_PIS_SCRIPTS=    S50cleanhome
MOZ_PIS_DIR=        ${SCRIPTS_DIR}/init.d
CPPFLAGS+=  -I${X11BASE}/include -I${LOCALBASE}/include
CFLAGS+=    ${PTHREAD_CFLAGS}
LDFLAGS+=   -L${X11BASE}/lib
LIBS+=      ${PTHREAD_LIBS}
EXTRA_SCRIPTS=  ${PORTNAME}.rb

OPTIONS=    DEBUG "Build a debugging image" off \
        LOGGING "Enable additional log messages" off \
        OPTIMIZED_CFLAGS "Enable some additional optimizations" off \
        SMB "Enable smb:// URI support using gnomevfs" off \
        NEWTAB "Open external links in a new tab" on

.include <bsd.port.pre.mk>

.if defined(WITH_DEBUG)
WITH_LOGGING=       yes
CONFIGURE_ENV+=     WITH_DEBUG=yes
.endif # defined(WITH_DEBUG)

.if defined(WITH_OPTIMIZED_CFLAGS)
CFLAGS:=        -O2 -fno-strict-aliasing ${CFLAGS:N-O*}
.else
CFLAGS:=        -O ${CFLAGS:N-O*:N-m*}
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(WITH_SMB)
USE_GNOME+= gnomevfs2
CONFIGURE_ENV+= WITH_SMB=yes
.endif # defined(WITH_SMB)

.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

.if ${OSVERSION} < 500000
USE_GCC=    3.4
.endif

pre-extract::
    @${ECHO_MSG}
    @${ECHO_MSG} "Extracting source (this takes a while) ..."
    @${ECHO_MSG}

post-extract::
    @${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|@FAKEDIR@|${FAKEDIR}|'        \
        -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:
    @${SED} -e 's|%%MOZDIR%%|${PREFIX}/lib/${FIREFOX}|g ; \
        s|%%PREFIX%%|${PREFIX}|g ; \
        s|%%X11BASE%%|${X11BASE}|g' \
        < ${MASTERDIR}/pkg-install.in > ${PKGINSTALL}
    @${SED} -e 's|%%MOZDIR%%|${PREFIX}/lib/${FIREFOX}|g' \
        < ${MASTERDIR}/pkg-deinstall.in > ${PKGDEINSTALL}
.for ii in ${EXTRA_SCRIPTS}
    @${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
        s|%%PREFIX%%|${PREFIX}|g ; \
        s|%%X11BASE%%|${X11BASE}|g' \
        < ${FILESDIR}/${ii} > ${WRKDIR}/${ii}
.endfor
.for ii in ${MOZ_PIS_SCRIPTS}
    @${SED} -e 's|%%MOZILLA%%|${FIREFOX}|g ; \
        s|%%PREFIX%%|${PREFIX}|g ; \
        s|%%X11BASE%%|${X11BASE}|g' \
        < ${FILESDIR}/moz_pis_${ii} > ${WRKDIR}/moz_pis_${ii}
.endfor
    @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
        ${WRKSRC}/build/unix/run-mozilla.sh
    @${REINPLACE_CMD} -e 's|-lc_r|${PTHREAD_LIBS}|g ; \
        s|-lpthread|${PTHREAD_LIBS}|g' \
        ${WRKSRC}/configure \
        ${WRKSRC}/nsprpub/configure
    @${REINPLACE_CMD} -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
    @${REINPLACE_CMD} -e 's|libesd\.so\.\d+|${ESD_LIB}|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
.for ii in modules/libpref/src/init extensions/sroaming/resources/content/prefs \
    embedding/minimo
    @${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/ ; \
        /dom.disable_window_open_feature.toolbar/s/false/true/' \
        ${WRKSRC}/${ii}/all.js
.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:
    cd ${WRKSRC}/rdf/chrome/tools/chromereg && ${GMAKE}

pre-install:
    @${RM} -rf ${FAKEDIR} ${PLIST}
    @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
        Makefile ${MAKE_ARGS} install
    @${INSTALL_PROGRAM} ${WRKSRC}/rdf/chrome/tools/chromereg/regchrome ${FAKEDIR}/lib/${FIREFOX}-${FF_VER}
    @${MKDIR} ${SCRIPTS_DIR}
    @${MKDIR} ${MOZ_PIS_DIR}
    ${ECHO_CMD} 'share/applications/firefox.desktop' >> ${PLIST}
    ${ECHO_CMD} 'share/pixmaps/${FIREFOX_ICON}' >> ${PLIST}
    ${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g; \
        s|${FIREFOX}-${FF_VER}|${FIREFOX}|' \
        ${FAKEDIR}/bin/firefox \
        ${FAKEDIR}/bin/firefox-config
    for i in ${EXTRA_SCRIPTS}; do \
        ${ECHO_CMD} bin/$${i} >> ${PLIST}; \
    done
    ${ECHO_CMD} bin/firefox >> ${PLIST}
    ${ECHO_CMD} bin/firefox-config >> ${PLIST}
.for ii in ${MOZ_PIS_SCRIPTS}
    ${INSTALL_SCRIPT} ${WRKDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
.endfor
.if !defined(WITHOUT_NEWTAB)
    ${ECHO_CMD} >> ${SYSTEM_PREFS}
    ${ECHO_CMD} "// Open external links in new tab" >> ${SYSTEM_PREFS}
    ${ECHO_CMD} "pref(\"browser.link.open_external\", 3);" \
        >> ${SYSTEM_PREFS}
.endif # !defined(WITHOUT_NEWTAB)
    cd ${FAKEDIR}/lib/${FIREFOX}-${FF_VER} && ${FIND} -s * -type f -o -type l | \
        ${SED} -e 's|^|lib/${FIREFOX}/|' >> ${PLIST} \
        && ${FIND} -d * -type d | \
        ${SED} -e 's|^|@dirrm lib/${FIREFOX}/|' >> ${PLIST}
    ${ECHO_CMD} @dirrm lib/firefox >> ${PLIST}
    for pcfile in ${PKGCONFIG_FILES}; do \
        ${REINPLACE_CMD} -e 's|${FIREFOX}-${FF_VER}|${FIREFOX}|g; \
            s|${FAKEDIR}|${PREFIX}|' \
            ${FAKEDIR}/lib/pkgconfig/$${pcfile}.pc ; \
        ${ECHO_CMD} libdata/pkgconfig/$${pcfile}.pc >> ${PLIST} ; \
    done
    cd ${FAKEDIR}/include/${FIREFOX}-${FF_VER} && ${FIND} -s * -type f -o -type l | \
        ${SED} -e 's|^|include/${FIREFOX}/|' >> ${PLIST} \
        && ${FIND} -d * -type d | \
        ${SED} -e 's|^|@dirrm include/${FIREFOX}/|' >> ${PLIST}
    ${ECHO_CMD} @dirrm include/${FIREFOX} >> ${PLIST}
    ${ECHO_CMD} lib/browser_plugins/.${PORTNAME}.keep >> ${PLIST}
    ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/browser_plugins 2>/dev/null || ${TRUE}" >> ${PLIST}
    ${ECHO_CMD} "@unexec ${RMDIR} %D/share/applications 2>/dev/null || ${TRUE}" >> ${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}

do-install:
    ${MKDIR} ${PREFIX}/lib/${FIREFOX}
    ${CHMOD} 755 ${PREFIX}/lib/${FIREFOX}
    ${INSTALL_SCRIPT} ${FAKEDIR}/bin/firefox ${PREFIX}/bin
    ${INSTALL_SCRIPT} ${FAKEDIR}/bin/firefox-config ${PREFIX}/bin
    ${MKDIR} ${PREFIX}/lib/browser_plugins
    ${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 \
                ${LN} -sf $${jpi} \
                    ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ; \
                break; \
            fi; \
        done; \
    fi
    for pcfile in ${PKGCONFIG_FILES}; do \
        ${INSTALL_DATA} ${FAKEDIR}/lib/pkgconfig/$${pcfile}.pc \
            ${PREFIX}/libdata/pkgconfig/$${pcfile}.pc ; \
    done
    -${RM} -fr ${PREFIX}/include/${FIREFOX}
    ${MKDIR} ${PREFIX}/include/${FIREFOX}
    ${CHMOD} 755 ${PREFIX}/include/${FIREFOX}
    cd ${FAKEDIR}/include/${FIREFOX}-${FF_VER} && ${FIND} . | \
        ${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/include/${FIREFOX}
    cd ${FAKEDIR}/lib/${FIREFOX}-${FF_VER} && ${FIND} . | \
        ${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/lib/${FIREFOX}

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
    ${MKDIR} ${PREFIX}/share/applications ${PREFIX}/share/pixmaps
    ${INSTALL_DATA} ${WRKDIR}/firefox.desktop ${PREFIX}/share/applications
    ${INSTALL_DATA} ${WRKSRC}/other-licenses/branding/firefox/default.xpm ${FIREFOX_ICON_SRC}
    ${LN} -sf ${FIREFOX_ICON_SRC} ${PREFIX}/share/pixmaps/${FIREFOX_ICON}
    @-update-desktop-database

.include <bsd.port.post.mk>