55 lines
1.9 KiB
Bash
55 lines
1.9 KiB
Bash
# shellcheck shell=bash
|
|
# Part of JoeyLib, Copyright (c) 2026 Scott Duensing, under the MIT License.
|
|
# See LICENSE.md for license information.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# Furnace, tildearrow's open-source multi-system chiptune tracker (GPLv2 or
|
|
# later), the recommended tool for JoeyLib's chip-tracker music
|
|
# (docs/Assets.adoc, "Content Creation Tools"): write the song for the TI
|
|
# SN76489 (or the AY-3-8910 / YM2149), export it as VGM, and
|
|
# tools/vgm2song turns that into a .song for tools/songbake. Its own Linux
|
|
# x86_64 release, unpacked into toolchains/opt/furnace. Nothing builds with
|
|
# it, so no group installs it: ./install.sh install furnace.
|
|
# scripts/check-vgm.sh exports the SN76489 and AY demo songs it comes with
|
|
# through it when it is installed.
|
|
#
|
|
# Furnace keeps its settings in ~/.config/furnace; the gates run it with HOME
|
|
# pointed at their work folder so they leave none.
|
|
|
|
compDescription="content: Furnace 0.6.8.3 chiptune tracker (optional; chip-tracker music, docs/Assets.adoc)"
|
|
compGroups="optional"
|
|
compRequires="host"
|
|
compHostDeps="gl-dev asound-dev x11-dev"
|
|
compUrl="https://github.com/tildearrow/furnace/releases/download/v0.6.8.3/furnace-0.6.8.3-linux-x86_64.tar.gz"
|
|
compSha256="298a4e30bbdfe5ad88ed7f3bd90bd657a3f0b2e6e7dfc2091663dda71424d555"
|
|
compPin="$compSha256"
|
|
|
|
|
|
compInstall() {
|
|
local archive
|
|
archive="$(fetchFile "$compUrl" "$compSha256")"
|
|
rm -rf "$compDir"
|
|
extractArchive "$archive" "$compDir" 1
|
|
}
|
|
|
|
|
|
compInstalled() {
|
|
[ -x "$compDir/furnace" ] && [ -d "$compDir/demos" ]
|
|
}
|
|
|
|
|
|
# It starts and knows VGM export (its settings go to a scratch home).
|
|
compVerify() {
|
|
local tmp
|
|
local usage
|
|
tmp="$(mktemp -d)"
|
|
usage="$(HOME="$tmp" "$compDir/furnace" -help 2>&1 || true)"
|
|
rm -rf "$tmp"
|
|
[[ "$usage" == *"-vgmout"* ]]
|
|
}
|
|
|
|
|
|
compEnv() {
|
|
envVar FURNACE "$compDir/furnace"
|
|
envVar FURNACE_DEMOS "$compDir/demos"
|
|
}
|