[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / www / firefox

Annotation of pkgsrc/www/firefox/Makefile, Revision 1.506

1.506   ! ryoon       1: # $NetBSD: Makefile,v 1.505 2021/12/19 09:47:59 maya Exp $
1.1       xtraeme     2:
1.331     ryoon       3: FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
1.506   ! ryoon       4: MOZ_BRANCH=            95.0.1
1.503     ryoon       5: MOZ_BRANCH_MINOR=
1.324     ryoon       6:
1.331     ryoon       7: DISTNAME=      firefox-${FIREFOX_VER}.source
                      8: PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
1.51      tnn         9: CATEGORIES=    www
1.331     ryoon      10: MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
                     11: EXTRACT_SUFX=  .tar.xz
1.1       xtraeme    12:
1.503     ryoon      13: NODEJSKIT=     nodejs-output-95.0.tgz
                     14: DISTFILES=     ${DEFAULT_DISTFILES} ${NODEJSKIT}
                     15: SITES.${NODEJSKIT}=    ${MASTER_SITE_LOCAL}
1.477     ryoon      16:
1.125     ryoon      17: MAINTAINER=    ryoon@NetBSD.org
1.415     ryoon      18: HOMEPAGE=      https://www.mozilla.org/en-US/firefox/
1.421     nia        19: COMMENT=       Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//})
1.66      heinz      20: LICENSE=       mpl-1.1
1.12      taya       21:
1.477     ryoon      22: # -------- BEFORE UPDATING THIS PACKAGE PLEASE READ & UNDERSTAND: -------
                     23: #
                     24: # This package works around a (stupid) build time dependency on nodejs
                     25: # (which is not available for all architectures and unnecessary for the
                     26: # real build). To do this, it places some additional burden on the
                     27: # maintainer.
                     28: #
                     29: # While working on the package, please make sure you have
                     30: #
                     31: #      FIREFOX_MAINTAINER=yes
                     32: #
                     33: # set in your build environment.
                     34: # When the package is ready for commit (but before commit), do:
                     35: #
                     36: #      make maintainer-files
                     37: #
                     38: # This will do another round (depending on state of your work dir at this
                     39: # moment) of one or two builds and generate a cache of all output that
                     40: # nodejs generates during a build.
                     41: #
                     42: # When this is done, just commit the results (they will be in the files/
                     43: # directory).
                     44: #
                     45: # -----------------------------------------------------------------------
                     46:
1.416     joerg      47: UNLIMIT_RESOURCES+=    datasize virtualsize
                     48:
1.399     ryoon      49: WRKSRC=                ${WRKDIR}/firefox-${FIREFOX_VER:C/b.*//}
1.324     ryoon      50:
1.60      tnn        51: MOZILLA_DIR=   # empty
1.51      tnn        52:
1.506   ! ryoon      53: # Note: In --enable-chrome-format=flat case,
        !            54: #       when updating remember to conditionalise about-background.png in PLIST
1.51      tnn        55: CONFIGURE_ARGS+=       --enable-application=browser
1.124     ryoon      56:
1.405     ryoon      57: #CFLAGS+=      -I${PREFIX}/include/nspr
1.336     ryoon      58: # for lang/gcc6
                     59: CFLAGS+=       -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
1.347     jperkin    60: CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS
                     61:
1.357     tnn        62: LDFLAGS+=              ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE}
                     63: LDFLAGS+=              ${COMPILER_RPATH_FLAG}${PREFIX}/lib
                     64: LDFLAGS.DragonFly+=    -lplc4 -lnspr4
                     65: LDFLAGS.FreeBSD+=      -lplc4 -lnspr4
                     66: LDFLAGS.Linux+=                -lnspr4
1.124     ryoon      67: LDFLAGS.SunOS+=                -lm
1.51      tnn        68:
1.455     maya       69: # XXX not sure how to test this! likely unnecessary
1.357     tnn        70: NOT_PAX_MPROTECT_SAFE+=        lib/${PKGBASE}/plugin-container
1.506   ! ryoon      71: # For RLBox WASM sandbox. Sync condition with mozilla-common.mk
        !            72: .if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386"
        !            73: NOT_PAX_MPROTECT_SAFE+=        lib/${PKGBASE}/firefox
        !            74: NOT_PAX_MPROTECT_SAFE+=        lib/${PKGBASE}/firefox-bin
        !            75: .endif
1.51      tnn        76:
1.133     jperkin    77: # Avoid ld "invalid section index" errors.
1.244     jperkin    78: BUILDLINK_TRANSFORM.SunOS+=    rm:-fdata-sections
                     79: BUILDLINK_TRANSFORM.SunOS+=    rm:-ffunction-sections
1.355     jperkin    80: BUILDLINK_TRANSFORM.SunOS+=    rm:-pie
1.133     jperkin    81:
1.440     wiz        82: # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366
                     83: BUILDLINK_TRANSFORM.NetBSD+=   rm:-fexperimental-new-pass-manager
                     84:
1.281     maya       85: SUBST_CLASSES+=                        dfly_malloc_h
                     86: SUBST_STAGE.dfly_malloc_h=     pre-configure
                     87: SUBST_MESSAGE.dfly_malloc_h=   Dont include malloc.h on dragonflybsd
                     88: SUBST_SED.dfly_malloc_h=       -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g'
                     89: SUBST_FILES.dfly_malloc_h+=    media/ffvpx/libavutil/mem.c
                     90:
1.142     ryoon      91: .include "mozilla-common.mk"
1.51      tnn        92: .include "options.mk"
                     93:
1.401     rillig     94: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/header.py
                     95: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/typelib.py
                     96: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpidl.py
                     97: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpt.py
1.132     ryoon      98:
1.488     ryoon      99: CHECK_WRKREF_SKIP+=    lib/${MOZILLA}/omni.ja
1.267     ryoon     100:
1.357     tnn       101: MOZILLA=       ${PKGBASE}
1.492     nia       102:
1.51      tnn       103: .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
1.492     nia       104: MOZILLA_NAME=          Firefox
                    105: MOZILLA_BRANDING=      official
1.51      tnn       106: .else
1.492     nia       107: MOZILLA_NAME=          Browser
                    108: MOZILLA_BRANDING=      unofficial
1.51      tnn       109: .endif
                    110:
                    111: pre-configure:
1.483     ryoon     112:        cd ${WRKSRC} && autoconf
                    113:        cd ${WRKSRC}/js/src && autoconf
1.256     ryoon     114:        cd ${WRKSRC} && mkdir ${OBJDIR}
1.263     ryoon     115:        cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
1.484     tnn       116: #      Do not fetch Rust Cargo file via network during build
1.477     ryoon     117: .if !defined(FIREFOX_MAINTAINER)
                    118:        mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR}
                    119: .endif
                    120:
                    121: .if defined(FIREFOX_MAINTAINER)
                    122: # Create files needed only by the firefox maintainer when updating
                    123: # the package
                    124: # XXX - manually removing the .*_done files is wrong!
                    125: .PHONY: build-list
                    126: build-list:
                    127:        cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \
                    128:                find . -type f | sort > ${OUT:Q}
                    129:
1.484     tnn       130: NODE_LIST=     "${WRKDIR}/node.list"
                    131: NO_NODE_LIST=  "${WRKDIR}/no-node.list"
                    132: NODE_FILES=    "${WRKDIR}/node.flist"
1.477     ryoon     133:
                    134: .PHONY: maintainer-files
                    135: maintainer-files:
                    136:        rm -f ${FILESDIR}/node-wrapper.sh
                    137:        V=$$( node -v ) && \
                    138:            printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \
                    139:            > ${FILESDIR}/node-wrapper.sh && \
                    140:            chmod 0755 ${FILESDIR}/node-wrapper.sh
                    141:        rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done
1.484     tnn       142:        ${MAKE} MAINTAINER_INTERNAL=yes build
                    143:        ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list
                    144:        ${MAKE} OUT="${NODE_LIST}" build-list
1.477     ryoon     145:        ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \
                    146:            ${AWK} \
                    147:            '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \
                    148:            > "${NODE_FILES}"
                    149:        cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \
                    150:            -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz
                    151: .endif
1.51      tnn       152:
1.64      tnn       153: post-build:
                    154:        ${SED} -e 's|@MOZILLA@|${MOZILLA}|g'                            \
1.51      tnn       155:          -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g'                       \
1.492     nia       156:          -e 's|@FIREFOX_ICON@|${MOZILLA}|g'                            \
1.51      tnn       157:          < ${FILESDIR}/desktop.in                                      \
                    158:          > ${WRKDIR}/desktop
1.64      tnn       159:
1.493     nia       160: INSTALLATION_DIRS+=    share/applications
                    161:
1.64      tnn       162: post-install:
1.318     ryoon     163:        ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.396     ryoon     164:        ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \
1.318     ryoon     165:                ${DESTDIR}${PREFIX}/bin/${MOZILLA}
                    166:        ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.51      tnn       167:        ${INSTALL_DATA} ${WRKDIR}/desktop                               \
                    168:          ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
1.492     nia       169: .for i in 16 22 24 32 48 64 128 256
                    170:        ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps
                    171:        ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \
                    172:          ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png
                    173: .endfor
1.51      tnn       174:
1.492     nia       175: .include "../../graphics/hicolor-icon-theme/buildlink3.mk"
1.51      tnn       176: .include "../../sysutils/desktop-file-utils/desktopdb.mk"
1.20      jlam      177: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>