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>