omsxctl/Makefile

72 lines
2 KiB
Makefile

-include Makelocal.mk
PATH_SDCC ?= /usr/bin
PATH_HEX2BIN ?= /usr/bin
PATH_BIN := bin
BUILD_ALL := "Use 'make help' for possible targets."
BUILD_HELP := "Use one of the following build targets;"
BUILD_VERSION ?= 1.0
BUILD_NAME := omsxctl-$(BUILD_VERSION)
.SUFFIXES:
.PHONY: all
all:
@echo $(BUILD_ALL)
BUILD_HELP += \\n\\t* help
.PHONY: help
help:
@echo $(BUILD_HELP)
BUILD_HELP += \\n\\t* clean
.PHONY: clean
clean:
rm bin -rf
bin/omsxctl:
mkdir -p bin/omsxctl
bin/omsxctl/%.rel: src/%.asm | bin/omsxctl
$(PATH_SDCC)/sdasz80 -g -l -c -o $@ $<
bin/omsxctl/omsxctl.hex: bin/omsxctl/omsxctl.rel
$(PATH_SDCC)/sdcc -mz80 --no-std-crt0 --code-loc 0x0100 -o $@ $<
BUILD_HELP += \\n\\t* bin/omsxctl/omsxctl.com
bin/omsxctl/omsxctl.com: bin/omsxctl/omsxctl.hex
cd bin/omsxctl && $(PATH_HEX2BIN)/hex2bin -e com omsxctl.hex
bin/dist:
mkdir -p bin/dist
bin/dist/$(BUILD_NAME): | bin/dist
mkdir -p bin/dist/$(BUILD_NAME)
bin/dist/$(BUILD_NAME)/omsxctl.com: bin/dist/$(BUILD_NAME) | bin/omsxctl/omsxctl.com
cp bin/omsxctl/omsxctl.com bin/dist/$(BUILD_NAME)/omsxctl.com
bin/dist/$(BUILD_NAME)/omsxctl.tcl: bin/dist/$(BUILD_NAME)
cp src/omsxctl.tcl bin/dist/$(BUILD_NAME)/omsxctl.tcl
bin/dist/$(BUILD_NAME)/omsxctl.asm: bin/dist/$(BUILD_NAME)
cp src/omsxctl.asm bin/dist/$(BUILD_NAME)/omsxctl.asm
bin/dist/$(BUILD_NAME)/usage.txt:
echo "# Usage\r" > $@
echo "\r" >> $@
echo "Pass the tcl script to openMSX on the command line:\r" >> $@
echo " openmsx -script <path-to>/omsxctl.tcl\r" >> $@
echo "\r" >> $@
echo "And then in MSX-DOS execute something like:\r" >> $@
echo " omsxctl set throttle off\r" >> $@
echo " ...\r" >> $@
echo " omsxctl exit\r" >> $@
echo "\r" >> $@
BUILD_HELP += \\n\\t* bin/dist/$(BUILD_NAME).tar.gz
bin/dist/$(BUILD_NAME).tar.gz: \
bin/dist/$(BUILD_NAME)/omsxctl.com \
bin/dist/$(BUILD_NAME)/omsxctl.tcl \
bin/dist/$(BUILD_NAME)/omsxctl.asm \
bin/dist/$(BUILD_NAME)/usage.txt
cd bin/dist && tar -czvf $(BUILD_NAME).tar.gz $(BUILD_NAME)