# SPDX-FileCopyrightText: 2024-2025 Tranalyzer Development Team <andy@tranalyzer.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later

BUILDDIR       := build
BUILDDIR_DEBUG := debug

all: init
	ninja -C $(BUILDDIR)

debug: init_debug
	ninja -C $(BUILDDIR_DEBUG)

init:
	test -d $(BUILDDIR) || meson setup $(BUILDDIR)

init_debug:
	test -d $(BUILDDIR_DEBUG) || meson setup $(BUILDDIR_DEBUG) --buildtype=debug

install:
	test -d $(BUILDDIR) || exit 1
	ninja -C $(BUILDDIR) install

install_debug:
	test -d $(BUILDDIR_DEBUG) || exit 1
	ninja -C $(BUILDDIR_DEBUG) install

clean:
	test -d $(BUILDDIR) || exit 1
	ninja -C $(BUILDDIR) clean

clean_debug:
	test -d $(BUILDDIR_DEBUG) || exit 1
	ninja -C $(BUILDDIR_DEBUG) clean

distclean:
	rm -rf $(BUILDDIR) $(BUILDDIR_DEBUG)

run:
	./$(BUILDDIR)/src/gt2whois

run_debug:
	./$(BUILDDIR_DEBUG)/src/gt2whois

run_data:
	./$(BUILDDIR)/src/gt2whois ip.txt

run_data_debug:
	./$(BUILDDIR_DEBUG)/src/gt2whois ip.txt

dbg: debug
	G_ENABLE_DIAGNOSTIC=1 GTK_DEBUG=all GOBJECT_DEBUG=instance-count ./$(BUILDDIR_DEBUG)/src/gt2whois

dbg_mac: debug
	G_DEBUG=fatal-warnings lldb -- ./$(BUILDDIR_DEBUG)/src/gt2whois

dbg_linux: debug
	G_DEBUG=fatal-warnings gdb --args ./$(BUILDDIR_DEBUG)/src/gt2whois

valgrind:
	/opt/local/bin/valgrind --leak-check=full --track-origins=yes --undef-value-errors=yes --suppressions=/opt/local/share/gtk-4.0/valgrind/gtk.supp --suppressions=/opt/local/share/glib-2.0/valgrind/glib.supp --log-file=log-valgrind.txt -v ./$(BUILDDIR_DEBUG)/src/gt2whois

pot:
	ninja -C $(BUILDDIR) gt2whois-pot && ninja -C $(BUILDDIR) gt2whois-update-po
