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>