diff options
Diffstat (limited to 'Mk/bsd.gecko.mk')
-rw-r--r-- | Mk/bsd.gecko.mk | 222 |
1 files changed, 103 insertions, 119 deletions
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk index 2ea7777fb7d8..9e83aab4aec0 100644 --- a/Mk/bsd.gecko.mk +++ b/Mk/bsd.gecko.mk @@ -14,7 +14,7 @@ # system. .if defined(USE_GECKO) -.if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) +. if !defined(_POSTMKINCLUDED) && !defined(Gecko_Pre_Include) Gecko_Pre_Include= bsd.gecko.mk # This file contains some reusable components for mozilla ports. It's of @@ -60,51 +60,42 @@ MOZILLA?= ${PORTNAME} MOZILLA_VER?= ${PORTVERSION} MOZILLA_BIN?= ${PORTNAME}-bin MOZILLA_EXEC_NAME?=${MOZILLA} -USES+= compiler:c++17-lang cpe gl gmake gnome iconv localbase perl5 pkgconfig \ - python:3.6+,build desktop-file-utils +USES+= compiler:c++17-lang cpe gl gmake gnome iconv llvm:17,noexport localbase \ + pkgconfig python:build desktop-file-utils CPE_VENDOR?=mozilla USE_GL= gl USE_GNOME= cairo gdkpixbuf2 gtk30 -USE_PERL5= build -USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrender xt +USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrandr xrender xt xtst HAS_CONFIGURE= yes CONFIGURE_OUTSOURCE= yes -LDFLAGS+= -Wl,--as-needed +LDFLAGS+= -Wl,--as-needed -Wl,--undefined-version BINARY_ALIAS+= python3=${PYTHON_CMD} BUNDLE_LIBS= yes -BUILD_DEPENDS+= llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT} \ - rust-cbindgen>=0.19.0:devel/rust-cbindgen \ - ${RUST_DEFAULT}>=1.58.0:lang/${RUST_DEFAULT} \ +BUILD_DEPENDS+= rust-cbindgen>=0.26.0:devel/rust-cbindgen \ + ${RUST_DEFAULT}>=1.77.0:lang/${RUST_DEFAULT} \ node:www/node LIB_DEPENDS+= libdrm.so:graphics/libdrm RUN_DEPENDS+= ${LOCALBASE}/lib/libpci.so:devel/libpci LIB_DEPENDS+= libepoll-shim.so:devel/libepoll-shim MOZ_EXPORT+= ${CONFIGURE_ENV} \ - PERL="${PERL}" \ PYTHON3="${PYTHON_CMD}" \ RUSTFLAGS="${RUSTFLAGS}" MOZ_OPTIONS+= --prefix="${PREFIX}" MOZ_MK_OPTIONS+=MOZ_OBJDIR="${BUILD_WRKSRC}" -MOZ_OPTIONS+= --with-libclang-path="${LOCALBASE}/llvm${LLVM_DEFAULT}/lib" -.if !exists(/usr/bin/llvm-objdump) -MOZ_EXPORT+= LLVM_OBJDUMP="${LOCALBASE}/bin/llvm-objdump${LLVM_DEFAULT}" -.endif -# Ignore Mk/bsd.default-versions.mk but respect make.conf(5) unless LTO is enabled -.if !defined(DEFAULT_VERSIONS) || ! ${DEFAULT_VERSIONS:Mllvm*} || ${PORT_OPTIONS:MLTO} -LLVM_DEFAULT= 13 # chase bundled LLVM in lang/rust for LTO -LLVM_VERSION= 13.0.0 # keep in sync with devel/wasi-compiler-rt${LLVM_DEFAULT} -.endif +MOZ_OPTIONS+= --with-libclang-path="${LLVM_PREFIX:S/${PREFIX}/${LOCALBASE}/}/lib" +. if !exists(/usr/bin/llvm-objdump) +MOZ_EXPORT+= LLVM_OBJDUMP="${LOCALBASE}/bin/llvm-objdump${LLVM_VERSION}" +. endif # Require newer Clang than what's in base system unless user opted out -. if ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} +. if ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) +CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_VERSION} +CC= ${LOCALBASE}/bin/clang${LLVM_VERSION} +CXX= ${LOCALBASE}/bin/clang++${LLVM_VERSION} USES:= ${USES:Ncompiler\:*} # XXX avoid warnings -. endif +. endif MOZSRC?= ${WRKSRC} PLISTF?= ${WRKDIR}/plist_files @@ -113,24 +104,21 @@ MOZCONFIG?= ${WRKSRC}/.mozconfig MOZILLA_PLIST_DIRS?= bin lib share/pixmaps share/applications # Adjust -C target-cpu if -march/-mcpu is set by bsd.cpu.mk -.if ${ARCH} == amd64 || ${ARCH} == i386 +. if ${ARCH} == amd64 || ${ARCH} == i386 RUSTFLAGS+= ${CFLAGS:M-march=*:S/-march=/-C target-cpu=/} -.elif ${ARCH:Mpowerpc64*} +. elif ${ARCH:Mpowerpc*} RUSTFLAGS+= ${CFLAGS:M-mcpu=*:S/-mcpu=/-C target-cpu=/:S/power/pwr/} -.else +. else RUSTFLAGS+= ${CFLAGS:M-mcpu=*:S/-mcpu=/-C target-cpu=/} -.endif +. endif # Standard depends _ALL_DEPENDS= av1 event ffi graphite harfbuzz icu jpeg nspr nss png pixman sqlite vpx webp -# firefox 95 uses a dav1d snapshot > 0.9.2 -.if ${MOZILLA_VER:R:R} < 95 -.if exists(${FILESDIR}/patch-bug1559213) +. if exists(${FILESDIR}/patch-bug1559213) av1_LIB_DEPENDS= libaom.so:multimedia/aom libdav1d.so:multimedia/dav1d av1_MOZ_OPTIONS= --with-system-av1 -.endif -.endif +. endif event_LIB_DEPENDS= libevent.so:devel/libevent event_MOZ_OPTIONS= --with-system-libevent @@ -138,13 +126,13 @@ event_MOZ_OPTIONS= --with-system-libevent ffi_LIB_DEPENDS= libffi.so:devel/libffi ffi_MOZ_OPTIONS= --enable-system-ffi -.if exists(${FILESDIR}/patch-bug847568) +. if exists(${FILESDIR}/patch-bug847568) graphite_LIB_DEPENDS= libgraphite2.so:graphics/graphite2 graphite_MOZ_OPTIONS= --with-system-graphite2 harfbuzz_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz harfbuzz_MOZ_OPTIONS= --with-system-harfbuzz -.endif +. endif icu_LIB_DEPENDS= libicui18n.so:devel/icu icu_MOZ_OPTIONS= --with-system-icu --with-intl-api @@ -163,7 +151,7 @@ pixman_LIB_DEPENDS= libpixman-1.so:x11/pixman pixman_MOZ_OPTIONS= --enable-system-pixman png_LIB_DEPENDS= libpng.so:graphics/png -png_MOZ_OPTIONS= --with-system-png=${LOCALBASE} +png_MOZ_OPTIONS= --with-system-png sqlite_LIB_DEPENDS= libsqlite3.so:databases/sqlite3 sqlite_MOZ_OPTIONS= --enable-system-sqlite @@ -175,24 +163,24 @@ vpx_MOZ_OPTIONS= --with-system-libvpx webp_LIB_DEPENDS= libwebp.so:graphics/webp webp_MOZ_OPTIONS= --with-system-webp -.for use in ${USE_MOZILLA} +. for use in ${USE_MOZILLA} ${use:S/-/_WITHOUT_/}= ${TRUE} -.endfor +. endfor LIB_DEPENDS+= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 -.for dep in ${_ALL_DEPENDS} ${USE_MOZILLA:M+*:S/+//} -.if !defined(_WITHOUT_${dep}) +. for dep in ${_ALL_DEPENDS} ${USE_MOZILLA:M+*:S/+//} +. if !defined(_WITHOUT_${dep}) BUILD_DEPENDS+= ${${dep}_BUILD_DEPENDS} LIB_DEPENDS+= ${${dep}_LIB_DEPENDS} RUN_DEPENDS+= ${${dep}_RUN_DEPENDS} USES+= ${${dep}_USES} MOZ_OPTIONS+= ${${dep}_MOZ_OPTIONS} -.else +. else BUILD_DEPENDS+= ${-${dep}_BUILD_DEPENDS} -.endif -.endfor +. endif +. endfor # Standard options MOZ_OPTIONS+= \ @@ -207,158 +195,154 @@ MOZ_OPTIONS+= \ MOZ_EXPORT+= MOZ_GOOGLE_LOCATION_SERVICE_API_KEY=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8 MOZ_EXPORT+= MOZ_GOOGLE_SAFEBROWSING_API_KEY=AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8 -.if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} +. if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} CFLAGS+= -O3 MOZ_EXPORT+= MOZ_OPTIMIZE_FLAGS="${CFLAGS:M-O*}" MOZ_OPTIONS+= --enable-optimize -.else +. else MOZ_OPTIONS+= --disable-optimize -. if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld +. if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld # ld 2.17 barfs on Stylo built with -C opt-level=0 USE_BINUTILS= yes LDFLAGS+= -B${LOCALBASE}/bin -. endif -.endif +. endif +. endif -.if ${PORT_OPTIONS:MCANBERRA} +. if ${PORT_OPTIONS:MCANBERRA} RUN_DEPENDS+= libcanberra>0:audio/libcanberra -.endif +. endif -.if ${PORT_OPTIONS:MDBUS} +. if ${PORT_OPTIONS:MDBUS} BUILD_DEPENDS+= libnotify>0:devel/libnotify LIB_DEPENDS+= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib -.else +. else MOZ_OPTIONS+= --disable-dbus -.endif +. endif -.if ${PORT_OPTIONS:MFFMPEG} +. if ${PORT_OPTIONS:MFFMPEG} # dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp -RUN_DEPENDS+= ffmpeg>=0.8,1:multimedia/ffmpeg -.endif +RUN_DEPENDS+= ffmpeg>=6.0,1:multimedia/ffmpeg +. endif -.if ${PORT_OPTIONS:MLIBPROXY} +. if ${PORT_OPTIONS:MLIBPROXY} LIB_DEPENDS+= libproxy.so:net/libproxy MOZ_OPTIONS+= --enable-libproxy -.else +. else MOZ_OPTIONS+= --disable-libproxy -.endif +. endif -.if ${PORT_OPTIONS:MLTO} +. if ${PORT_OPTIONS:MLTO} MOZ_OPTIONS+= --enable-lto=cross -.endif +. endif -.if ${PORT_OPTIONS:MALSA} +. if ${PORT_OPTIONS:MALSA} BUILD_DEPENDS+= ${LOCALBASE}/include/alsa/asoundlib.h:audio/alsa-lib MOZ_OPTIONS+= --enable-alsa -.endif +. endif -.if ${PORT_OPTIONS:MJACK} +. if ${PORT_OPTIONS:MJACK} BUILD_DEPENDS+= ${LOCALBASE}/include/jack/jack.h:audio/jack MOZ_OPTIONS+= --enable-jack -.endif +. endif -.if ${PORT_OPTIONS:MPULSEAUDIO} +. if ${PORT_OPTIONS:MPULSEAUDIO} BUILD_DEPENDS+= ${LOCALBASE}/include/pulse/pulseaudio.h:audio/pulseaudio MOZ_OPTIONS+= --enable-pulseaudio -.else +. else MOZ_OPTIONS+= --disable-pulseaudio -.endif +. endif -.if ${PORT_OPTIONS:MSNDIO} +. if ${PORT_OPTIONS:MSNDIO} BUILD_DEPENDS+= ${LOCALBASE}/include/sndio.h:audio/sndio -post-patch-SNDIO-on: - @${REINPLACE_CMD} -e 's|OpenBSD|${OPSYS}|g' \ - -e '/DISABLE_LIBSNDIO_DLOPEN/d' \ - ${MOZSRC}/media/libcubeb/src/moz.build -.endif +MOZ_OPTIONS+= --enable-sndio +. else +MOZ_OPTIONS+= --disable-sndio +. endif -.if ${PORT_OPTIONS:MDEBUG} +. if ${PORT_OPTIONS:MDEBUG} MOZ_OPTIONS+= --enable-debug --disable-release STRIP= # ports/184285 -.else +. else MOZ_OPTIONS+= --disable-debug --disable-debug-symbols --enable-release -. if ${ARCH:Maarch64} || (defined(MACHINE_CPU) && ${MACHINE_CPU:Msse2}) +. if ${ARCH:Maarch64} || (defined(MACHINE_CPU) && ${MACHINE_CPU:Msse2}) MOZ_OPTIONS+= --enable-rust-simd -. endif -.endif +. endif +. endif -.if ${PORT_OPTIONS:MPROFILE} +. if ${PORT_OPTIONS:MPROFILE} MOZ_OPTIONS+= --enable-profiling STRIP= -.else +. else MOZ_OPTIONS+= --disable-profiling -.endif +. endif -.if ${PORT_OPTIONS:MTEST} +. if ${PORT_OPTIONS:MTEST} USE_XORG+= xscrnsaver MOZ_OPTIONS+= --enable-tests -.else +. else MOZ_OPTIONS+= --disable-tests -.endif +. endif -.if !defined(STRIP) || ${STRIP} == "" +. if !defined(STRIP) || ${STRIP} == "" MOZ_OPTIONS+= --disable-strip --disable-install-strip -.else +. else MOZ_OPTIONS+= --enable-strip --enable-install-strip -.endif +. endif # _MAKE_JOBS is only available after bsd.port.post.mk, thus cannot be # used in .mozconfig. And client.mk automatically uses -jN where N # is what multiprocessing.cpu_count() returns. -.if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) +. if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) MAKE_JOBS_NUMBER= 1 -.endif -.if defined(MAKE_JOBS_NUMBER) +. endif +. if defined(MAKE_JOBS_NUMBER) MOZ_MAKE_FLAGS+=-j${MAKE_JOBS_NUMBER} -.endif +. endif -.if defined(MOZ_MAKE_FLAGS) +. if defined(MOZ_MAKE_FLAGS) MOZ_MK_OPTIONS+=MOZ_MAKE_FLAGS="${MOZ_MAKE_FLAGS}" -.endif +. endif -.if ${ARCH} == amd64 -. if ${USE_MOZILLA:M-nss} +. if ${ARCH} == amd64 +. if ${USE_MOZILLA:M-nss} USE_BINUTILS= # intel-gcm.s CFLAGS+= -B${LOCALBASE}/bin LDFLAGS+= -B${LOCALBASE}/bin -. endif -.elif ${ARCH:Mpowerpc*} +. endif +. elif ${ARCH:Mpowerpc*} BUILD_DEPENDS+= as:devel/binutils -. if ${ARCH} == "powerpc64" -MOZ_EXPORT+= UNAME_m="${ARCH}" -. endif -.endif +. endif -.else # bsd.port.post.mk +. else # bsd.port.post.mk post-patch: gecko-post-patch gecko-post-patch: @${RM} ${MOZCONFIG} -.if !defined(NOMOZCONFIG) -.for arg in ${MOZ_OPTIONS} +. if !defined(NOMOZCONFIG) +. for arg in ${MOZ_OPTIONS} @${ECHO_CMD} ac_add_options ${arg:Q} >> ${MOZCONFIG} -.endfor -.for arg in ${MOZ_MK_OPTIONS} +. endfor +. for arg in ${MOZ_MK_OPTIONS} @${ECHO_CMD} mk_add_options ${arg:Q} >> ${MOZCONFIG} -.endfor -.for var in ${MOZ_EXPORT} +. endfor +. for var in ${MOZ_EXPORT} @${ECHO_CMD} export ${var:Q} >> ${MOZCONFIG} -.endfor -.endif # .if !defined(NOMOZCONFIG) -.if ${USE_MOZILLA:M-nspr} +. endfor +. endif # .if !defined(NOMOZCONFIG) +. if ${USE_MOZILLA:M-nspr} @${ECHO_MSG} "===> Applying NSPR patches" @for i in ${.CURDIR}/../../devel/nspr/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/nsprpub < $$i; \ done -.endif -.if ${USE_MOZILLA:M-nss} +. endif +. if ${USE_MOZILLA:M-nss} @${ECHO_MSG} "===> Applying NSS patches" @for i in ${.CURDIR}/../../security/nss/files/patch-*; do \ ${PATCH} ${PATCH_ARGS} -d ${MOZSRC}/security/nss < $$i; \ done -.endif +. endif @if [ -f ${WRKSRC}/config/baseconfig.mk ] ; then \ ${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \ ${WRKSRC}/config/baseconfig.mk; \ @@ -389,12 +373,12 @@ post-install-script: gecko-create-plist gecko-create-plist: # Create the plist ${RM} ${PLISTF} -.for dir in ${MOZILLA_PLIST_DIRS} +. for dir in ${MOZILLA_PLIST_DIRS} @cd ${STAGEDIR}${PREFIX}/${dir} && ${FIND} -H -s * ! -type d | \ ${SED} -e 's|^|${dir}/|' >> ${PLISTF} -.endfor +. endfor ${CAT} ${PLISTF} | ${SORT} >> ${TMPPLIST} -.endif +. endif .endif # HERE THERE BE TACOS -- adamw |