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>