HatariWii/tests/tosboot/makefile
2018-05-25 20:45:09 +02:00

114 lines
3.8 KiB
Makefile

# Makefile to build the Atari test program and other required files
# for the TOS tester and to run it with minimal or fairly full
# set of options.
# default target is 'test', everything else gets build as its deps
all: test
# targets without corresponding file
.PHONY: clean test test-all
# tos/ subdir should be either symlink to where you have your TOS
# images, or real directory with symlinks to TOS images you want
# to test with this. Or TOSDIR variable needs to point where they are:
# TOSDIR=/path/to/toses/ make
TOSDIR ?= tos
# TOSDIR should contain at least this!
BUILD_TOS = $(TOSDIR)/etos512k.img
# Hatari machine config for AHCC build
BUILD_CONFIG = -m --machine tt --tos $(BUILD_TOS)
# where the code & test programs are
DIR = disk
# AHCC related files expected for building by disk/ahcc-* hconsole scripts
AHCC_FILES = $(DIR)/ahcc_p.ttp $(DIR)/include $(DIR)/lib
GEMDOS_TEST = $(DIR)/GEMDOS.PRG
GEMDOS_SCRIPT = $(DIR)/ahcc-gemdos
GEMDOS_DEP = $(DIR)/gemdos.c $(DIR)/common.c $(DIR)/gemdos.prj $(AHCC_FILES) $(BUILD_TOS)
# build the full GEMDOS emu tester.
# requires:
# - EmuTOS, AHCC and installed Hatari
# before running make:
# - symlink etos512k.img and ahcc_p.ttp + its include & lib dirs
# under $(DIR)/ subdir
$(GEMDOS_TEST): $(GEMDOS_DEP)
$(RM) $(DIR)/*.O $(DIR)/*.MAP $(DIR)/*.tmp
../../tools/hconsole/hconsole.py $(GEMDOS_SCRIPT) -- $(BUILD_CONFIG) $(DIR)
[ -f $(DIR)/GEMDOS.O ] && [ \! -f $(DIR)/ldfile.tmp ] # verify compiling & linking succeeded
MINIMAL_TEST = $(DIR)/MINIMAL.PRG
MINIMAL_SCRIPT = $(DIR)/ahcc-minimal
MINIMAL_DEP = $(DIR)/minimal.c $(DIR)/common.c $(DIR)/minimal.prj $(AHCC_FILES) $(BUILD_TOS)
# build the minimal tester
$(MINIMAL_TEST): $(MINIMAL_DEP)
$(RM) $(DIR)/*.O $(DIR)/*.MAP $(DIR)/*.tmp
../../tools/hconsole/hconsole.py $(MINIMAL_SCRIPT) -- $(BUILD_CONFIG) $(DIR)
[ -f $(DIR)/MINIMAL.O ] && [ \! -f $(DIR)/ldfile.tmp ] # verify compiling & linking succeeded
clean:
$(RM) $(DIR)/*.O $(DIR)/*.MAP $(DIR)/*.tmp
# create blank DD floppy image
blank-a.st.gz:
dd if=/dev/zero of=blank-a.st bs=1024 count=720
mformat -a -t 80 -h 2 -n 9 -i blank-a.st ::
gzip blank-a.st
# create 360KB (single side) test floppy that autoruns test program using *.INF file.
# requires:
# - mformat & mcopy from mtools
bootdesk.st.gz: $(MINIMAL_TEST) $(DIR)/TEXT floppy/*.INF
dd if=/dev/zero of=bootdesk.st bs=1024 count=360
mformat -a -t 80 -h 1 -n 9 -i bootdesk.st ::
MTOOLS_NO_VFAT=1 mcopy -i bootdesk.st -spmv $+ ::
$(RM) $@
gzip bootdesk.st
# create 360KB (single side) test floppy that autoruns test program from auto/
# as very old TOS versions don't like the *.INF file autorun feature.
# requires:
# - mformat, mcopy & mmd from mtools
bootauto.st.gz: $(MINIMAL_TEST) $(DIR)/TEXT
dd if=/dev/zero of=bootauto.st bs=1024 count=360
mformat -a -t 80 -h 1 -n 9 -i bootauto.st ::
MTOOLS_NO_VFAT=1 mmd -i bootauto.st ::AUTO
MTOOLS_NO_VFAT=1 mcopy -i bootauto.st -pmv $(DIR)/TEXT ::
MTOOLS_NO_VFAT=1 mcopy -i bootauto.st -pmv $(MINIMAL_TEST) ::AUTO
$(RM) $@
gzip bootauto.st
# optional 16MB HD image for EmuTOS/ACSI testing without HD drivers
# converts floppy desktop infos for HD (A: -> C:)
hd.img: $(MINIMAL_TEST) $(DIR)/TEXT floppy/*.INF
mkdir tmp
cp -a $(MINIMAL_TEST) $(DIR)/TEXT tmp/
for i in floppy/*.INF; do sed -e 's/A:/C:/g' < $$i > tmp/$${i##*/}; done
../../tools/atari-hd-image.sh 16 $@ LABEL tmp
$(RM) -r tmp
# requires:
# - Building of floppies & GEMDOS_TEST to have succeeded
# - Latest Hatari to be installed, or to run this with something like:
# PATH=../../build/src:$PATH make
test: blank-a.st.gz bootauto.st.gz bootdesk.st.gz $(GEMDOS_TEST)
./tos_tester.py --disks floppy,gemdos --graphics mono --memsizes 4 --machines ste $(BUILD_TOS)
# run all default tests
test-full: blank-a.st.gz bootauto.st.gz bootdesk.st.gz
./tos_tester.py $(TOSDIR)/*.img