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

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

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

CVSweb <webmaster@jp.NetBSD.org>