# vim: ft=make ts=4 sw=4 noet
.DEFAULT_GOAL := all

NAME    = basilisk
VERSION = euxp
GARTYPE = v2

DESCRIPTION = Basilisk browser (UXP/GTK3) tracking the euxp branch
define BLURB
  Basilisk is a web browser based on the Unified XUL Platform (UXP),
  a fork of Mozilla Firefox 52 ESR. This build tracks the euxp branch.
endef

# GitHub branch zip — no stable version; re-fetch and re-run makesum on updates
DISTFILES  = basilisk-mirror-$(VERSION).zip
DYNURLS    = https://github.com/Basilisk-Development-Team/basilisk-mirror/archive/refs/heads/$(VERSION).zip
DISTNAME          = basilisk-mirror-$(VERSION)
GITHUB_REFERENCE  = $(VERSION).zip

LICENSE = LICENSE

BUILD_DEP_PKGS += OZSWgcc12 OZSWpkgconf OZSWpy311
BUILD_DEP_PKGS += OZSWgtk3 OZSWcairo OZSWpango OZSWglib
BUILD_DEP_PKGS += OZSWlibX11 OZSWlibXt OZSWlibXext OZSWlibXft OZSWlibXrender OZSWlibXmu
BUILD_DEP_PKGS += OZSWfreetype OZSWfontconfig OZSWlibpng OZSWlibjpeg OZSWzlib

PACKAGES                      += OZSWbasilisk
SPKG_DESC_OZSWbasilisk         = Basilisk browser (UXP, GTK3, euxp branch)
CATALOGNAME_OZSWbasilisk       = basilisk
RUNTIME_DEP_PKGS_OZSWbasilisk += OZSWgcc12rt OZSWzlib
RUNTIME_DEP_PKGS_OZSWbasilisk += OZSWgtk3 OZSWcairo OZSWpango OZSWglib
RUNTIME_DEP_PKGS_OZSWbasilisk += OZSWlibX11 OZSWlibXt OZSWlibXext OZSWlibXft OZSWlibXrender
RUNTIME_DEP_PKGS_OZSWbasilisk += OZSWfreetype OZSWfontconfig OZSWlibpng OZSWlibjpeg

post-extract:
	@echo "==> Writing .mozconfig"
	@{ \
		echo '# Standard build options for Basilisk'; \
		echo 'ac_add_options --enable-application=basilisk'; \
		echo 'ac_add_options --enable-optimize="-O2 -w"'; \
		echo 'ac_add_options --disable-official-branding'; \
		echo 'ac_add_options --enable-default-toolkit=cairo-gtk3'; \
		echo 'ac_add_options --enable-jemalloc'; \
		echo 'ac_add_options --enable-strip'; \
		echo 'ac_add_options --enable-devtools'; \
		echo 'ac_add_options --enable-av1'; \
		echo 'ac_add_options --enable-pie'; \
		echo 'ac_add_options --disable-webrtc'; \
		echo 'ac_add_options --disable-gamepad'; \
		echo 'ac_add_options --disable-tests'; \
		echo 'ac_add_options --disable-debug'; \
		echo 'ac_add_options --disable-necko-wifi'; \
		echo 'ac_add_options --disable-updater'; \
		echo 'ac_add_options --with-pthreads'; \
		echo 'ac_add_options --prefix=$(prefix)'; \
		echo ''; \
		echo 'export BASILISK_VERSION=1'; \
		echo 'export MOZ_PKG_SPECIAL=gtk3'; \
		echo ''; \
		echo 'export CONFIG_SHELL=/bin/bash'; \
		echo 'mk_add_options MOZ_MAKE_FLAGS="-j3"'; \
		echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-build'; \
		echo ''; \
		echo 'export MOZILLA_OFFICIAL=1'; \
		echo ''; \
		echo 'ac_add_options --x-libraries=$(BUILD_PREFIX)/lib'; \
		echo 'export PKG_CONFIG_PATH=$(BUILD_PREFIX)/lib/pkgconfig'; \
	} > $(WORKSRC)/.mozconfig
	@$(MAKECOOKIE)

# Skip GAR's autoconf configure — mach runs configure during build
CONFIGURE_SCRIPTS =

do-configure:
	@$(MAKECOOKIE)

do-build:
	@echo "==> Building Basilisk with mach"
	cd $(WORKSRC) && /opt/ozsw/bin/python3 ./mach build
	@$(MAKECOOKIE)

do-install:
	@echo "==> Installing Basilisk"
	$(MAKE) -C $(WORKSRC)/obj-build install DESTDIR=$(DESTDIR)
	@$(MAKECOOKIE)

include gar/category.mk
