# $NetBSD: Makefile,v 1.74 2025/10/12 09:40:02 mrg Exp $

DISTNAME=	arcticfox-46.1
PKGREVISION=	1
CATEGORIES=	www
MASTER_SITES=	${MASTER_SITE_GITHUB:=rmottola/}
GITHUB_PROJECT=	Arctic-Fox
GITHUB_TAG=	v${PKGVERSION_NOREV}

MAINTAINER=	nia@NetBSD.org
HOMEPAGE=	https://github.com/rmottola/Arctic-Fox
COMMENT=	Web browser for aging systems, forked from Firefox
LICENSE=	mpl-1.1

USE_TOOLS+=	perl pkg-config autoconf213
USE_TOOLS+=	zip unzip gmake

HAS_CONFIGURE=	yes
USE_LANGUAGES=	c c++

CONFIG_GUESS_OVERRIDE+=	./build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+=	./intl/icu/source/config.guess
CONFIG_GUESS_OVERRIDE+=	./ipc/chromium/src/third_party/libevent/config.guess
CONFIG_GUESS_OVERRIDE+=	./js/src/ctypes/libffi/config.guess
CONFIG_GUESS_OVERRIDE+=	./memory/jemalloc/src/config.guess
CONFIG_GUESS_OVERRIDE+=	./modules/freetype2/builds/unix/config.guess
CONFIG_GUESS_OVERRIDE+=	./nsprpub/build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+=	./toolkit/crashreporter/google-breakpad/autotools/config.guess

CONFIG_SUB_OVERRIDE+=	./build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+=	./intl/icu/source/config.sub
CONFIG_SUB_OVERRIDE+=	./ipc/chromium/src/third_party/libevent/config.sub
CONFIG_SUB_OVERRIDE+=	./js/src/ctypes/libffi/config.sub
CONFIG_SUB_OVERRIDE+=	./memory/jemalloc/src/config.sub
CONFIG_SUB_OVERRIDE+=	./modules/freetype2/builds/unix/config.sub
CONFIG_SUB_OVERRIDE+=	./nsprpub/build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+=	./toolkit/crashreporter/google-breakpad/autotools/config.sub

.include "../../mk/bsd.prefs.mk"

CONFIGURE_ARGS+=	--prefix=${PREFIX}
.if !empty(NATIVE_MACHINE_GNU_PLATFORM)
CONFIGURE_ARGS+=	--host=${NATIVE_MACHINE_GNU_PLATFORM}
.else
CONFIGURE_ARGS+=	--host=${MACHINE_GNU_PLATFORM}
.endif
CONFIGURE_ARGS+=	--target=${MACHINE_GNU_PLATFORM}
CONFIGURE_ARGS+=	--disable-crashreporter
CONFIGURE_ARGS+=	--disable-gconf
CONFIGURE_ARGS+=	--disable-tests
CONFIGURE_ARGS+=	--disable-debug
CONFIGURE_ARGS+=	--disable-updater
CONFIGURE_ARGS+=	--disable-mozril-geoloc
CONFIGURE_ARGS+=	--disable-webrtc
CONFIGURE_ARGS+=	--disable-safe-browsing
CONFIGURE_ARGS+=	--disable-parental-controls
CONFIGURE_ARGS+=	--disable-necko-wifi
CONFIGURE_ARGS+=	--disable-eme
CONFIGURE_ARGS+=	--disable-gamepad
CONFIGURE_ARGS+=	--disable-gio
CONFIGURE_ARGS+=	--enable-install-strip
CONFIGURE_ARGS+=	--enable-release
CONFIGURE_ARGS+=	--enable-strip
CONFIGURE_ARGS+=	--enable-system-ffi
CONFIGURE_ARGS+=	--enable-application=browser
CONFIGURE_ARGS+=	--with-branding=browser/branding/arcticfox

# Necessary for PaX safety on NetBSD.
CONFIGURE_ARGS+=	--disable-precompiled-startupcache

CONFIGURE_ARGS+=	--with-system-cairo
CONFIGURE_ARGS+=	--with-system-bz2
CONFIGURE_ARGS+=	--with-system-zlib

DISTFILES?=		${DEFAULT_DISTFILES}

# The default bundled copy of ICU does not contain big-endian
# data files, so this one is generated manually.
DISTFILES+=		icudt58b.dat.gz
SITES.icudt58b.dat.gz=	${MASTER_SITE_LOCAL}

.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH} == "sparc64"
# Without this NetBSD/sparc64 starts, but crashes on some sites
SSP_SUPPORTED=		no
.endif

# it thinks yasm is required on arm
.if !${MACHINE_PLATFORM:MNetBSD-*-powerpc*}
TOOL_DEPENDS+=		yasm>=1.1:../../devel/yasm
.endif

CONFIGURE_DIRS=		${WRKDIR}/build
CONFIGURE_SCRIPT=	${WRKSRC}/configure

# https://bugzilla.mozilla.org/show_bug.cgi?id=1402303
ALL_ENV+=		SHELL=${CONFIG_SHELL:Q}

LDFLAGS+=		${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGNAME_NOREV}
LDFLAGS+=		${COMPILER_RPATH_FLAG}${PREFIX}/lib

.if ${MACHINE_PLATFORM:MNetBSD-*-earm*}
LDFLAGS+=		-Wl,--no-keep-memory
.endif

PLIST_VARS+=		ffvpx

.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
PLIST.ffvpx=		yes	# platform/old-configure.in
.endif

# Tries to include <sgidefs.h> which doesn't exist.
CFLAGS.NetBSD+=	-DLIBYUV_DISABLE_MIPS=1

CWRAPPERS_APPEND.cc+=	${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGNAME_NOREV}
CWRAPPERS_APPEND.cxx+=	${COMPILER_RPATH_FLAG}${PREFIX}/lib/${PKGNAME_NOREV}
CWRAPPERS_APPEND.ld+=	${LINKER_RPATH_FLAG}${PREFIX}/lib/${PKGNAME_NOREV}

INSTALLATION_DIRS+=	share/applications
INSTALLATION_DIRS+=	share/icons/hicolor/16x16/apps
INSTALLATION_DIRS+=	share/icons/hicolor/32x32/apps
INSTALLATION_DIRS+=	share/icons/hicolor/48x48/apps
INSTALLATION_DIRS+=	share/icons/hicolor/128x128/apps

CHECK_PORTABILITY_SKIP+=	browser/extensions/loop/*.sh
CHECK_PORTABILITY_SKIP+=	js/src/tests/*.sh
CHECK_PORTABILITY_SKIP+=	memory/jemalloc/src/configure
CHECK_PORTABILITY_SKIP+=	security/nss/tests/*/*.sh

REPLACE_PYTHON+=		xpcom/idl-parser/xpidl/xpidl.py
REPLACE_PYTHON+=		xpcom/typelib/xpt/tools/xpt.py

PYTHON_VERSIONS_ACCEPTED=	27
PYTHON_FOR_BUILD_ONLY=		tool

pre-configure:
	${MKDIR} ${CONFIGURE_DIRS}
	cd ${WRKSRC} && autoconf-2.13
	cd ${WRKSRC}/js/src && autoconf-2.13
	${CP} ${FILESDIR}/cubeb_sun.c ${WRKSRC}/media/libcubeb/src

post-install:
	${FIND} ${DESTDIR}${PREFIX} -name '*.a' -exec ${RM} '{}' ';'
	${RM} -rf ${DESTDIR}${PREFIX}/include
	${RM} -rf ${DESTDIR}${PREFIX}/share/idl
	${INSTALL_DATA} ${WRKSRC}/browser/branding/arcticfox/default16.png \
	    ${DESTDIR}${PREFIX}/share/icons/hicolor/16x16/apps/arcticfox.png
	${INSTALL_DATA} ${WRKSRC}/browser/branding/arcticfox/default32.png \
	    ${DESTDIR}${PREFIX}/share/icons/hicolor/32x32/apps/arcticfox.png
	${INSTALL_DATA} ${WRKSRC}/browser/branding/arcticfox/default48.png \
	    ${DESTDIR}${PREFIX}/share/icons/hicolor/48x48/apps/arcticfox.png
	${INSTALL_DATA} ${WRKSRC}/browser/branding/arcticfox/mozicon128.png \
	    ${DESTDIR}${PREFIX}/share/icons/hicolor/128x128/apps/arcticfox.png
	${INSTALL_DATA} ${FILESDIR}/arcticfox.desktop \
	    ${DESTDIR}${PREFIX}/share/applications/arcticfox.desktop
	${INSTALL_DATA} ${WRKDIR}/icudt58b.dat \
	    ${DESTDIR}${PREFIX}/lib/${PKGNAME_NOREV}/icudt58b.dat

.include "../../mk/compiler.mk"
.if !empty(CC_VERSION:Mgcc-14.*) || !empty(CC_VERSION:Mgcc-15.*)
CFLAGS+= -Wno-implicit-int -Wno-int-conversion
.endif

.include "options.mk"
.include "../../archivers/bzip2/buildlink3.mk"
.if ${OPSYS} == "Linux"
.  include "../../audio/alsa-lib/buildlink3.mk"
.endif
.include "../../devel/libffi/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/cairo/buildlink3.mk"
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
.include "../../graphics/libwebp/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../lang/python/batteries-included.mk"
.include "../../lang/python/application.mk"
.include "../../lang/python/tool.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.if ${OPSYS} == "Darwin"
CONFIGURE_ARGS+=	--enable-default-toolkit=cairo-cocoa
.else
# gtk3 now supported and default, but gtk2 less buggy
CONFIGURE_ARGS+=	--enable-default-toolkit=cairo-gtk2
.  include "../../x11/gtk2/buildlink3.mk"
.  include "../../x11/libX11/buildlink3.mk"
.  include "../../x11/libXt/buildlink3.mk"
.endif
.include "../../mk/atomic64.mk"
.include "../../mk/bsd.pkg.mk"
