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

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

1.487   ! ryoon       1: # $NetBSD: Makefile,v 1.486 2021/07/23 07:49:53 ryoon Exp $
1.1       xtraeme     2:
1.331     ryoon       3: FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
1.485     ryoon       4: MOZ_BRANCH=            90.0
1.486     ryoon       5: MOZ_BRANCH_MINOR=      .2
1.324     ryoon       6:
1.331     ryoon       7: DISTNAME=      firefox-${FIREFOX_VER}.source
                      8: PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
1.487   ! 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.483     ryoon      14: DISTFILES=     ${DEFAULT_DISTFILES} nodejs-output-89.0.2.tgz
                     15: SITES.nodejs-output-89.0.2.tgz=        ${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.106     abs        53: # Note: when updating remember to conditionalise about-background.png in PLIST
1.51      tnn        54: CONFIGURE_ARGS+=       --enable-application=browser
1.124     ryoon      55:
1.405     ryoon      56: #CFLAGS+=      -I${PREFIX}/include/nspr
1.336     ryoon      57: # for lang/gcc6
                     58: CFLAGS+=       -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS
1.347     jperkin    59: CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS
                     60:
1.357     tnn        61: LDFLAGS+=              ${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGBASE}
                     62: LDFLAGS+=              ${COMPILER_RPATH_FLAG}${PREFIX}/lib
                     63: LDFLAGS.DragonFly+=    -lplc4 -lnspr4
                     64: LDFLAGS.FreeBSD+=      -lplc4 -lnspr4
                     65: LDFLAGS.Linux+=                -lnspr4
1.124     ryoon      66: LDFLAGS.SunOS+=                -lm
1.51      tnn        67:
1.455     maya       68: # XXX not sure how to test this! likely unnecessary
1.357     tnn        69: NOT_PAX_MPROTECT_SAFE+=        lib/${PKGBASE}/plugin-container
1.51      tnn        70:
1.133     jperkin    71: # Avoid ld "invalid section index" errors.
1.244     jperkin    72: BUILDLINK_TRANSFORM.SunOS+=    rm:-fdata-sections
                     73: BUILDLINK_TRANSFORM.SunOS+=    rm:-ffunction-sections
1.355     jperkin    74: BUILDLINK_TRANSFORM.SunOS+=    rm:-pie
1.133     jperkin    75:
1.440     wiz        76: # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366
                     77: BUILDLINK_TRANSFORM.NetBSD+=   rm:-fexperimental-new-pass-manager
                     78:
1.281     maya       79: SUBST_CLASSES+=                        dfly_malloc_h
                     80: SUBST_STAGE.dfly_malloc_h=     pre-configure
                     81: SUBST_MESSAGE.dfly_malloc_h=   Dont include malloc.h on dragonflybsd
                     82: SUBST_SED.dfly_malloc_h=       -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g'
                     83: SUBST_FILES.dfly_malloc_h+=    media/ffvpx/libavutil/mem.c
                     84:
1.142     ryoon      85: .include "mozilla-common.mk"
1.51      tnn        86: .include "options.mk"
                     87:
1.401     rillig     88: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/header.py
                     89: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/typelib.py
                     90: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpidl.py
                     91: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpt.py
1.132     ryoon      92:
1.401     rillig     93: CHECK_WRKREF_SKIP+=    lib/${MOZILLA}/chrome/toolkit/content/global/buildconfig.html
1.267     ryoon      94:
1.357     tnn        95: MOZILLA=       ${PKGBASE}
1.396     ryoon      96: MOZILLA_ICON=  ${WRKSRC}/${OBJDIR}/dist/${MOZILLA}/browser/chrome/icons/default/default48.png
1.51      tnn        97: .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
1.85      tnn        98: MOZILLA_NAME=  Firefox
1.51      tnn        99: .else
1.85      tnn       100: MOZILLA_NAME=  Browser
1.51      tnn       101: .endif
                    102:
1.432     nia       103: #
                    104: # Generate list of subst entries for various .cargo-checksum.json files.  These
                    105: # are all handled together in one big substitution to simplify things rather
                    106: # than one substitution entry per file, but are kept separate below to ease
                    107: # updating and verification.
                    108: #
                    109:
1.448     ryoon     110: #CKSUM_CRATES+=        third_party/rust/libc
1.432     nia       111:
1.457     nia       112: # patch-third__party_rust_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs
1.448     ryoon     113: #CKSUMS+=      a3540eab4dbc52e006e84e288bad17e1dae3865fea49020e0ed8b5a7724a9532
                    114: #CKSUMS+=      5e58a2109f5eff0f497dfac150c161c1d517a2227b49e086da96c3d66522ac3a
1.432     nia       115:
1.448     ryoon     116: #CKSUM_CRATES+=        third_party/rust/getrandom
1.434     nia       117:
1.435     nia       118: # patch-third__party_rust_getrandom_src_lib.rs
1.448     ryoon     119: #CKSUMS+=      0e52f6bde42d7bb05c297ce1c25b9879d61b28caba98f6226a152bff538db6c2
                    120: #CKSUMS+=      394425b4ba03c21c494e64d993678f7014575b1e3d590b9ee452b5c2d83ec4ac
1.434     nia       121:
1.484     tnn       122: #SUBST_CLASSES+=       cksum
1.448     ryoon     123: #SUBST_STAGE.cksum=    pre-configure
                    124: #.for crate in ${CKSUM_CRATES}
                    125: #SUBST_FILES.cksum+=   ${crate}/.cargo-checksum.json
                    126: #.endfor
                    127: #.for from to in ${CKSUMS}
                    128: #SUBST_SED.cksum+=     -e 's,${from},${to},g'
                    129: #.endfor
1.432     nia       130:
1.51      tnn       131: pre-configure:
1.483     ryoon     132:        cd ${WRKSRC} && autoconf
                    133:        cd ${WRKSRC}/js/src && autoconf
1.256     ryoon     134:        cd ${WRKSRC} && mkdir ${OBJDIR}
1.263     ryoon     135:        cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
1.484     tnn       136: #      Do not fetch Rust Cargo file via network during build
1.477     ryoon     137: .if !defined(FIREFOX_MAINTAINER)
                    138:        mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR}
                    139: .endif
                    140:
                    141: .if defined(FIREFOX_MAINTAINER)
                    142: # Create files needed only by the firefox maintainer when updating
                    143: # the package
                    144: # XXX - manually removing the .*_done files is wrong!
                    145: .PHONY: build-list
                    146: build-list:
                    147:        cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \
                    148:                find . -type f | sort > ${OUT:Q}
                    149:
1.484     tnn       150: NODE_LIST=     "${WRKDIR}/node.list"
                    151: NO_NODE_LIST=  "${WRKDIR}/no-node.list"
                    152: NODE_FILES=    "${WRKDIR}/node.flist"
1.477     ryoon     153:
                    154: .PHONY: maintainer-files
                    155: maintainer-files:
                    156:        rm -f ${FILESDIR}/node-wrapper.sh
                    157:        V=$$( node -v ) && \
                    158:            printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \
                    159:            > ${FILESDIR}/node-wrapper.sh && \
                    160:            chmod 0755 ${FILESDIR}/node-wrapper.sh
                    161:        rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done
1.484     tnn       162:        ${MAKE} MAINTAINER_INTERNAL=yes build
                    163:        ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list
                    164:        ${MAKE} OUT="${NODE_LIST}" build-list
1.477     ryoon     165:        ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \
                    166:            ${AWK} \
                    167:            '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \
                    168:            > "${NODE_FILES}"
                    169:        cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \
                    170:            -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz
                    171: .endif
1.51      tnn       172:
1.64      tnn       173: post-build:
                    174:        ${SED} -e 's|@MOZILLA@|${MOZILLA}|g'                            \
1.51      tnn       175:          -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g'                       \
                    176:          -e 's|@FIREFOX_ICON@|${MOZILLA}.png|g'                        \
                    177:          < ${FILESDIR}/desktop.in                                      \
                    178:          > ${WRKDIR}/desktop
1.64      tnn       179:
                    180: INSTALLATION_DIRS+=    share/applications share/pixmaps
                    181: post-install:
1.318     ryoon     182:        ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.396     ryoon     183:        ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \
1.318     ryoon     184:                ${DESTDIR}${PREFIX}/bin/${MOZILLA}
                    185:        ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.51      tnn       186:        ${INSTALL_DATA} ${WRKDIR}/desktop                               \
                    187:          ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
                    188:        ${INSTALL_DATA} ${MOZILLA_ICON}                                 \
                    189:          ${DESTDIR}${PREFIX}/share/pixmaps/${MOZILLA}.png
                    190:
                    191: .include "../../sysutils/desktop-file-utils/desktopdb.mk"
1.20      jlam      192: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>