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

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

1.505   ! maya        1: # $NetBSD: Makefile,v 1.504 2021/12/17 20:08:42 maya Exp $
1.1       xtraeme     2:
1.331     ryoon       3: FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
1.503     ryoon       4: MOZ_BRANCH=            95.0
                      5: MOZ_BRANCH_MINOR=
1.505   ! maya        6: PKGREVISION=           2
1.324     ryoon       7:
1.331     ryoon       8: DISTNAME=      firefox-${FIREFOX_VER}.source
                      9: PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
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.106     abs        54: # Note: 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.51      tnn        71:
1.133     jperkin    72: # Avoid ld "invalid section index" errors.
1.244     jperkin    73: BUILDLINK_TRANSFORM.SunOS+=    rm:-fdata-sections
                     74: BUILDLINK_TRANSFORM.SunOS+=    rm:-ffunction-sections
1.355     jperkin    75: BUILDLINK_TRANSFORM.SunOS+=    rm:-pie
1.133     jperkin    76:
1.440     wiz        77: # Workaround for https://bugs.llvm.org/show_bug.cgi?id=46366
                     78: BUILDLINK_TRANSFORM.NetBSD+=   rm:-fexperimental-new-pass-manager
                     79:
1.281     maya       80: SUBST_CLASSES+=                        dfly_malloc_h
                     81: SUBST_STAGE.dfly_malloc_h=     pre-configure
                     82: SUBST_MESSAGE.dfly_malloc_h=   Dont include malloc.h on dragonflybsd
                     83: SUBST_SED.dfly_malloc_h=       -e 's,HAVE_MALLOC_H,HAVE_MALLOC_H \&\& !defined(__DragonFly__),g'
                     84: SUBST_FILES.dfly_malloc_h+=    media/ffvpx/libavutil/mem.c
                     85:
1.142     ryoon      86: .include "mozilla-common.mk"
1.51      tnn        87: .include "options.mk"
                     88:
1.401     rillig     89: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/header.py
                     90: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/typelib.py
                     91: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpidl.py
                     92: CHECK_INTERPRETER_SKIP+=       lib/firefox-sdk/sdk/bin/xpt.py
1.132     ryoon      93:
1.488     ryoon      94: CHECK_WRKREF_SKIP+=    lib/${MOZILLA}/omni.ja
1.267     ryoon      95:
1.357     tnn        96: MOZILLA=       ${PKGBASE}
1.492     nia        97:
1.51      tnn        98: .if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
1.492     nia        99: MOZILLA_NAME=          Firefox
                    100: MOZILLA_BRANDING=      official
1.51      tnn       101: .else
1.492     nia       102: MOZILLA_NAME=          Browser
                    103: MOZILLA_BRANDING=      unofficial
1.51      tnn       104: .endif
                    105:
                    106: pre-configure:
1.483     ryoon     107:        cd ${WRKSRC} && autoconf
                    108:        cd ${WRKSRC}/js/src && autoconf
1.256     ryoon     109:        cd ${WRKSRC} && mkdir ${OBJDIR}
1.263     ryoon     110:        cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
1.484     tnn       111: #      Do not fetch Rust Cargo file via network during build
1.477     ryoon     112: .if !defined(FIREFOX_MAINTAINER)
                    113:        mv ${WRKDIR}/dist ${WRKSRC}/${OBJDIR}
                    114: .endif
                    115:
                    116: .if defined(FIREFOX_MAINTAINER)
                    117: # Create files needed only by the firefox maintainer when updating
                    118: # the package
                    119: # XXX - manually removing the .*_done files is wrong!
                    120: .PHONY: build-list
                    121: build-list:
                    122:        cd ${WRKSRC}/${OBJDIR}/dist/bin/browser/chrome && \
                    123:                find . -type f | sort > ${OUT:Q}
                    124:
1.484     tnn       125: NODE_LIST=     "${WRKDIR}/node.list"
                    126: NO_NODE_LIST=  "${WRKDIR}/no-node.list"
                    127: NODE_FILES=    "${WRKDIR}/node.flist"
1.477     ryoon     128:
                    129: .PHONY: maintainer-files
                    130: maintainer-files:
                    131:        rm -f ${FILESDIR}/node-wrapper.sh
                    132:        V=$$( node -v ) && \
                    133:            printf '#! /bin/sh\n\nVERS=%s\n\nif [ "$$1" = "-v" ] || [ "$$1" = "--version" ]; then\n\tprintf "$${VERS}\\n"\nfi\n\nexit 0\n' $$V \
                    134:            > ${FILESDIR}/node-wrapper.sh && \
                    135:            chmod 0755 ${FILESDIR}/node-wrapper.sh
                    136:        rm -f ${WRKDIR}/.build_done ${WRKDIR}/.configure_done
1.484     tnn       137:        ${MAKE} MAINTAINER_INTERNAL=yes build
                    138:        ${MAKE} MAINTAINER_INTERNAL=yes OUT="${NO_NODE_LIST}" build-list
                    139:        ${MAKE} OUT="${NODE_LIST}" build-list
1.477     ryoon     140:        ${DIFF} -u "${NO_NODE_LIST}" "${NODE_LIST}" | \
                    141:            ${AWK} \
                    142:            '/^\+\.\//{ printf("dist/bin/browser/chrome/%s\n", gensub(/^\+\.\//, "", "")) }' \
                    143:            > "${NODE_FILES}"
                    144:        cd ${WRKSRC}/${OBJDIR} && tar -c -T "${NODE_FILES}" -z \
                    145:            -f ${FILESDIR}/nodejs-output-${PKGVERSION_NOREV}.tgz
                    146: .endif
1.51      tnn       147:
1.64      tnn       148: post-build:
                    149:        ${SED} -e 's|@MOZILLA@|${MOZILLA}|g'                            \
1.51      tnn       150:          -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g'                       \
1.492     nia       151:          -e 's|@FIREFOX_ICON@|${MOZILLA}|g'                            \
1.51      tnn       152:          < ${FILESDIR}/desktop.in                                      \
                    153:          > ${WRKDIR}/desktop
1.64      tnn       154:
1.493     nia       155: INSTALLATION_DIRS+=    share/applications
                    156:
1.64      tnn       157: post-install:
1.318     ryoon     158:        ${ECHO} '#! /bin/sh' > ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.396     ryoon     159:        ${ECHO} '${PREFIX}/lib/${MOZILLA}/${MOZILLA} "$$@"' >> \
1.318     ryoon     160:                ${DESTDIR}${PREFIX}/bin/${MOZILLA}
                    161:        ${CHMOD} 755 ${DESTDIR}${PREFIX}/bin/${MOZILLA}
1.51      tnn       162:        ${INSTALL_DATA} ${WRKDIR}/desktop                               \
                    163:          ${DESTDIR}${PREFIX}/share/applications/${MOZILLA}.desktop
1.492     nia       164: .for i in 16 22 24 32 48 64 128 256
                    165:        ${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps
                    166:        ${INSTALL_DATA} ${WRKSRC}/browser/branding/${MOZILLA_BRANDING}/default${i}.png \
                    167:          ${DESTDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/${MOZILLA}.png
                    168: .endfor
1.51      tnn       169:
1.492     nia       170: .include "../../graphics/hicolor-icon-theme/buildlink3.mk"
1.51      tnn       171: .include "../../sysutils/desktop-file-utils/desktopdb.mk"
1.20      jlam      172: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>