joeylib2/make/tools.mk

35 lines
1.1 KiB
Makefile

# Host-side tools for the JoeyLib asset pipeline.
#
# These build with the host's default `cc` (no cross-toolchain) into
# build/tools/. Currently:
# joeyasset -- PPM (P6) -> .jas converter
# modloopend -- inject an E8FF stop-marker pattern into a .MOD so
# the Amiga audio HAL can honor PlayMod(loop=false).
# joeymod invokes this transparently for Amiga output.
include $(dir $(lastword $(MAKEFILE_LIST)))/common.mk
BUILD_DIR := $(REPO_DIR)/build/tools
TOOLS_DIR := $(REPO_DIR)/tools
HOST_CC ?= cc
HOST_CFLAGS := -std=c99 -Wall -Wextra -O2
JOEYASSET_SRC := $(TOOLS_DIR)/joeyasset/joeyasset.c
JOEYASSET_BIN := $(BUILD_DIR)/joeyasset
MODLOOPEND_SRC := $(TOOLS_DIR)/modloopend/modloopend.c
MODLOOPEND_BIN := $(BUILD_DIR)/modloopend
.PHONY: all tools clean-tools
all tools: $(JOEYASSET_BIN) $(MODLOOPEND_BIN)
$(JOEYASSET_BIN): $(JOEYASSET_SRC)
@mkdir -p $(dir $@)
$(HOST_CC) $(HOST_CFLAGS) $< -o $@
$(MODLOOPEND_BIN): $(MODLOOPEND_SRC)
@mkdir -p $(dir $@)
$(HOST_CC) $(HOST_CFLAGS) $< -o $@
clean-tools:
rm -rf $(BUILD_DIR)