#!/usr/bin/make -f
# -*- mode: makefile-gmake; coding: utf-8 -*-

SHELL          ::= $(realpath $(shell command -v bash))
CP             ::= $(realpath $(shell command -v cp))
INSTALL        ::= $(realpath $(shell command -v install))
MKDIR          ::= $(realpath $(shell command -v mkdir))
RM             ::= $(realpath $(shell command -v rm))

DPKG_BUILD_API ::= 1

ifeq (,$(findstring terse,$(DEB_BUILD_OPTIONS)))
  DH_VERBOSE   ::= 1
endif

BUILD_DIR      ::= $(CURDIR)/debian/retroarch-assets
GLUI_SRCDIR    ::= $(CURDIR)/src/glui
SOUNDS_SRCDIR  ::= $(CURDIR)/src/sounds
WIDGETS_SRCDIR ::= $(CURDIR)/src/menu_widgets
GLUI_DIR       ::= $(BUILD_DIR)/usr/share/libretro/assets/glui
WIDGETS_DIR    ::= $(BUILD_DIR)/usr/share/libretro/assets/menu_widgets

include /usr/share/dpkg/default.mk

HOME                 ::= $(CURDIR)/build-ephemera
INKSCAPE_PROFILE_DIR ::= $(HOME)/inkscape
XDG_CACHE_HOME       ::= $(HOME)/cache
XDG_DATA_HOME        ::= $(HOME)/fontconfig
export DH_VERBOSE DPKG_BUILD_API HOME INKSCAPE_PROFILE_DIR SHELL \
		XDG_CACHE_HOME XDG_DATA_HOME

GLUI_SVGS    = $(wildcard $(GLUI_SRCDIR)/*.svg)
GLUI_OUT     = $(addprefix $(GLUI_DIR)/,$(notdir $(GLUI_SVGS:.svg=.png)))
WIDGETS_SVGS = $(wildcard $(WIDGETS_SRCDIR)/msg_*.svg)
WIDGETS_OUT  = $(addprefix $(WIDGETS_DIR)/,$(notdir $(WIDGETS_SVGS:.svg=.png)))


%:
	dh $@ -v -Smakefile --without autotools-dev,autoreconf


override_dh_auto_configure:
	@$(INSTALL) -dvm0755 "$(BUILD_DIR)" "$(GLUI_DIR)" "$(WIDGETS_DIR)" \
		"$(INKSCAPE_PROFILE_DIR)" "$(XDG_CACHE_HOME)" "$(XDG_DATA_HOME)"

override_dh_auto_build:
	$(MAKE) -j$(shell nproc) "prefix=/usr" \
		"DESTDIR=$(CURDIR)/debian/retroarch-assets" "INSTALL=$(INSTALL)"
	$(SOUNDS_SRCDIR)/convert_ogg.sh

override_dh_auto_install:
	$(MAKE) -j$(shell nproc) install "prefix=/usr" \
		"DESTDIR=$(CURDIR)/debian/retroarch-assets" "INSTALL=$(INSTALL)"

execute_after_dh_install: $(GLUI_OUT) $(WIDGETS_OUT)

$(GLUI_DIR)/%.png: $(GLUI_SRCDIR)/%.svg
	$(info Converting "$<" to PNG format…)
	inkscape --export-type=png -o "$@" --export-png-color-mode=RGBA_8 \
		--export-png-compression=9 --export-png-antialias=3 --export-area-snap \
		--convert-dpi-method=scale-viewbox --batch-process "$<" 2>/dev/null
	advpng -q -z -4 --iter 16 "$@"
	optipng -silent -clobber -fix -strip all -i0 -o5 "$@"

$(WIDGETS_DIR)/msg_%.png: $(WIDGETS_SRCDIR)/msg_%.svg
	$(info Converting "$<" to PNG format…)
	inkscape --export-type=png -o "$@" --export-png-color-mode=RGBA_8 \
		--export-png-compression=9 --export-png-antialias=3 --export-area-snap \
		--convert-dpi-method=scale-viewbox --batch-process "$<" 2>/dev/null
	advpng -q -z -4 --iter 16 "$@"
	optipng -silent -clobber -fix -strip all -i0 -o5 "$@"

.PHONY: execute_after_dh_install override_dh_auto_build \
		override_dh_auto_configure override_dh_auto_install

.SUFFIXES:
.SUFFIXES: .ogg .png .svg .wav
