320 lines
8.3 KiB
Makefile
320 lines
8.3 KiB
Makefile
|
|
NAME = benchmark
|
|
BENCH ?= BITFIRE
|
|
LOADERCPU ?= 100
|
|
ALIGNED ?= 0
|
|
_PLATFORM_ = c64
|
|
|
|
export LOG
|
|
|
|
BUILDDIR = ../../build
|
|
DISKIMAGE = $(BUILDDIR)/$(NAME)-$(LOADERCPU)-$(_PLATFORM_).d64
|
|
|
|
default: $(DISKIMAGE)
|
|
|
|
run_bitfire:
|
|
make run BENCH=BITFIRE
|
|
|
|
run_spindle_code:
|
|
make run BENCH=SPINDLE_CODE
|
|
|
|
run_spindle_graphics:
|
|
make run BENCH=SPINDLE_GRAPHICS
|
|
|
|
perfbench_bitfire:
|
|
make perfbench BENCH=BITFIRE
|
|
|
|
perfbench_spindle_code:
|
|
make perfbench BENCH=SPINDLE_CODE
|
|
|
|
perfbench_spindle_graphics:
|
|
make perfbench BENCH=SPINDLE_GRAPHICS
|
|
|
|
perfbench: LOG=1
|
|
perfbench:
|
|
rm -f benchmark.log
|
|
make clean
|
|
make run LOADERCPU=100
|
|
make run LOADERCPU=90
|
|
make run LOADERCPU=80
|
|
make run LOADERCPU=70
|
|
make run LOADERCPU=60
|
|
make run LOADERCPU=50
|
|
make run LOADERCPU=40
|
|
make run LOADERCPU=30
|
|
make run LOADERCPU=20
|
|
make run LOADERCPU=10
|
|
$(MAKE_TEX) < benchmark.log
|
|
|
|
perftest: LOG=1
|
|
perftest:
|
|
rm -f benchmark.log
|
|
make clean
|
|
make run LOADERCPU=100
|
|
$(MAKE_TEX) < benchmark.log
|
|
|
|
ifeq "$(BENCH)" "BITFIRE"
|
|
MONCOMMANDS := benchmark-bitfire.mon
|
|
MAKE_TEX := ./make-tex-graph-bitfire.lua
|
|
else
|
|
MONCOMMANDS := benchmark-spindle.mon
|
|
ifeq "$(BENCH)" "SPINDLE_CODE"
|
|
MAKE_TEX := ./make-tex-graph-spindle-code.lua
|
|
else
|
|
MAKE_TEX := ./make-tex-graph-spindle-graphics.lua
|
|
endif
|
|
endif
|
|
|
|
ifeq "$(LOG)" "1"
|
|
VICE = x64sc +saveres -warp -minimized -autostartprgmode 1 +cart -debugcart -monlogname benchmark.log -moncommands $(MONCOMMANDS)
|
|
else
|
|
VICE = x64sc
|
|
endif
|
|
EMU = $(VICE) -drive8type 1541 -drive9type 0 -8
|
|
EMU71 = $(VICE) -drive8type 1571 -drive9type 0 -8
|
|
EMU81 = $(VICE) -drive8type 1581 -drive9type 0 -8
|
|
|
|
AS = cl65
|
|
AS_FLAGS = -Wa -I../../build -u __EXEHDR__
|
|
|
|
CC1541 = ../../tools/cc1541/cc1541 -v
|
|
#CC1541 = ../../tools/cc1541/repo4/cc1541/cc1541 -v
|
|
CC1541_SOURCE = ../../tools/cc1541
|
|
|
|
B2 = ../../tools/b2/b2.exe
|
|
B2_SOURCE = ../../tools/b2
|
|
|
|
BITNAX = ../../tools/bitnax-07a8c67/lz
|
|
|
|
DOYNAX_LZ = ../../tools/doynamite1.1/lz
|
|
|
|
EXO = ../../tools/exomizer-3.1/src/exomizer
|
|
EXO_SOURCE = ../../tools/exomizer-3.1/src
|
|
|
|
LC = ../../tools/wcrush/wcrush/wcrush
|
|
LCSPEED = 6
|
|
LC_SOURCE = ../../tools/wcrush
|
|
|
|
LZSA2 = ../../tools/lzsa/lzsa
|
|
LZSA2_SOURCE = ../../tools/lzsa
|
|
|
|
NC = ../../tools/nucrunch-1.0.1/target/release/nucrunch
|
|
NC_SOURCE = ../../tools/nucrunch-1.0.1
|
|
|
|
PU = ../../tools/pucrunch/pucrunch
|
|
PU_SOURCE = ../../tools/pucrunch
|
|
|
|
SUBSIZER = ../../tools/subsizer-0.7pre1/subsizer
|
|
SUBSIZER_SRC = ../../tools/subsizer-0.7pre1/src
|
|
|
|
TC = python ../../tools/tinycrunch_v1.2/tc_encode.py
|
|
|
|
TS_ENCODER = ../../tools/tscrunch/tscrunch.py
|
|
TS = python3 $(TS_ENCODER)
|
|
|
|
ZX0 = ../../tools/dali/dali
|
|
ZX0_SRC = ../../tools/dali
|
|
|
|
CONV = ../../tools/compressedfileconverter.pl
|
|
|
|
RM = rm -f
|
|
CP = cp
|
|
MV = mv
|
|
|
|
INTERMDIR = ../../build/intermediate
|
|
LOADER_SRC = ../../src
|
|
LOADER = $(BUILDDIR)/loader-$(_PLATFORM_).prg
|
|
|
|
RESOURCESDIR = ../resources
|
|
TEST = $(RESOURCESDIR)/test.prg
|
|
|
|
SOURCE = $(NAME).s
|
|
LOADERCFG = loaderconfig.inc
|
|
ASSEMBLE = $(INTERMDIR)/$(NAME)-$(LOADERCPU)-uncompressed-$(_PLATFORM_).prg
|
|
DISKIMAGE81 = $(BUILDDIR)/$(NAME)-$(_PLATFORM_).d81
|
|
|
|
EXTENSION_NONE := prg
|
|
EXTENSION_BITNAX := bnx
|
|
EXTENSION_BYTEBOOZER2 := b2
|
|
EXTENSION_DOYNAX_LZ := dnx
|
|
EXTENSION_EXOMIZER := exo
|
|
EXTENSION_LEVELCRUSH := lc
|
|
EXTENSION_LZSA2 := lzsa2
|
|
EXTENSION_NUCRUNCH := nc
|
|
EXTENSION_PUCRUNCH := pu
|
|
EXTENSION_SUBSIZER := ssz
|
|
EXTENSION_TINYCRUNCH := tc
|
|
EXTENSION_TSCRUNCH := ts
|
|
EXTENSION_ZX0 := zx0
|
|
|
|
COMPRESSOR := $(shell grep -m 1 'DECOMPRESSORS::' $(LOADERCFG) | sed 's/.*DECOMPRESSORS::\([^; ]*\).*/\1/')
|
|
COMPEXT := $(EXTENSION_$(COMPRESSOR))
|
|
|
|
BENCH_IDX_BITFIRE = 0
|
|
FILENAMES_BITFIRE = test a b c d e f g h i j k l m n o p q r
|
|
MINTRACKS_BITFIRE = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
|
INTERLEAVES_BITFIRE = 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
|
#INTERLEAVES_BITFIRE = -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4
|
|
#INTERLEAVES_BITFIRE = -4 -4 -4 -4 -4 -4 -4 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
|
|
|
|
BENCH_IDX_SPINDLE_CODE = 1
|
|
FILENAMES_SPINDLE_CODE = test x0 x1 x2 x3 x4 x5 x6 x7
|
|
MINTRACKS_SPINDLE_CODE = 1 1 1 1 1 1 1 1 1
|
|
INTERLEAVES_SPINDLE_CODE = 4 4 4 4 4 4 4 4 4
|
|
|
|
BENCH_IDX_SPINDLE_GRAPHICS = 2
|
|
FILENAMES_SPINDLE_GRAPHICS = test y0 y1 y2 y3 y4 y5 y6 y7
|
|
MINTRACKS_SPINDLE_GRAPHICS = 1 1 1 1 1 1 1 1 1
|
|
INTERLEAVES_SPINDLE_GRAPHICS = 4 4 4 4 4 4 4 4 4
|
|
|
|
FILES = $(patsubst %, $(INTERMDIR)/%.$(COMPEXT), $(FILENAMES_$(BENCH)))
|
|
IMAGEFILES__ = $(foreach filename, $(FILENAMES_$(BENCH)),$(patsubst %,^-f^"%",$(filename).$(COMPEXT))$(patsubst %,^-w^$(INTERMDIR)/%.$(COMPEXT),$(filename)))
|
|
IMAGEFILES_ = $(subst "test.$(COMPEXT)","test", $(IMAGEFILES__))
|
|
IMAGEFILES = $(subst ^, ,$(join $(addprefix -r^,$(MINTRACKS_$(BENCH))),$(join $(addprefix ^-S^,$(INTERLEAVES_$(BENCH))),$(patsubst %,^%,$(IMAGEFILES_)))))
|
|
IMAGEFILES81 = $(subst ^, ,$(join $(addprefix -r^,$(MINTRACKS_$(BENCH))),$(patsubst %,^%,$(IMAGEFILES_))))
|
|
|
|
ifeq "$(COMPRESSOR)" "NONE"
|
|
$(DISKIMAGE): $(ASSEMBLE) $(FILES) $(CC1541)
|
|
$(RM) $@
|
|
$(CC1541) -n "normal is boring" -i plush -4 \
|
|
$(IMAGEFILES) \
|
|
-f test-loopfile -l test \
|
|
-f test-loopfile2 -l test \
|
|
$@
|
|
else
|
|
$(DISKIMAGE): $(ASSEMBLE) $(FILES) $(CC1541)
|
|
$(RM) $@
|
|
$(CC1541) -n "normal is boring" -i plush \
|
|
$(IMAGEFILES) \
|
|
-f test-loopfile -l test \
|
|
-S 4 -r 29 -e -f $(NAME) -w $< \
|
|
-g $(basename $@).g64 \
|
|
$@
|
|
endif
|
|
# -w $(RESOURCESDIR)/room_0031.prg \
|
|
# -w $(RESOURCESDIR)/0031.zx0.prg \
|
|
# -w $(RESOURCESDIR)/zb \
|
|
|
|
$(DISKIMAGE81): $(ASSEMBLE) $(FILES) $(CC1541)
|
|
$(RM) $@
|
|
$(CC1541) -n "normal is boring" -i plush \
|
|
-r 39 -f $(NAME) -w $< \
|
|
$(IMAGEFILES81) \
|
|
$@
|
|
|
|
$(ASSEMBLE): $(SOURCE) $(LOADER)
|
|
$(AS) $(AS_FLAGS) -C c64-asm.cfg -Wa -DPLATFORM=64 -Wa -DBENCHMARK=$(BENCH_IDX_$(BENCH)) -Wa -DLOADERCPU=$(LOADERCPU) -o $@ $<
|
|
|
|
$(LOADER): $(LOADERCFG)
|
|
make -C $(LOADER_SRC) EXTCONFIGPATH=../samples/$(NAME) PLATFORM=$(_PLATFORM_) PROJECT=$(NAME) INSTALL=0f00 RESIDENT=0a00 ZP=02 prg
|
|
|
|
run: $(DISKIMAGE)
|
|
ifeq "$(ALIGNED)" "0"
|
|
$(EMU) $(realpath $^) $(ASSEMBLE)
|
|
else
|
|
$(EMU) $(basename $(realpath $^)).g64 $(ASSEMBLE)
|
|
endif
|
|
|
|
run71 run70: $(DISKIMAGE)
|
|
$(EMU71) $(realpath $^) $(ASSEMBLE)
|
|
|
|
run81: $(DISKIMAGE81)
|
|
$(EMU81) $(realpath $^) $(ASSEMBLE)
|
|
|
|
clean:
|
|
-$(RM) *.o $(ASSEMBLE) $(DISKIMAGE) $(BUILDDIR)/loadersymbols-c64.prg $(BUILDDIR)/install-c64.prg $(BUILDDIR)/loader-c64.prg \
|
|
$(INTERMDIR)/test.prg \
|
|
$(INTERMDIR)/*.b2 $(INTERMDIR)/*.bnx $(INTERMDIR)/*.dnx $(INTERMDIR)/*.exo $(INTERMDIR)/*.lc $(INTERMDIR)/*.lzsa2 $(INTERMDIR)/*.nc $(INTERMDIR)/*.pu $(INTERMDIR)/*.ssz $(INTERMDIR)/*.tc $(INTERMDIR)/*.ts $(INTERMDIR)/*.zx0
|
|
|
|
|
|
$(CC1541): $(CC1541_SOURCE)/cc1541.c
|
|
$(MAKE) -C $(CC1541_SOURCE) cc1541
|
|
|
|
|
|
$(INTERMDIR)/%.prg: $(RESOURCESDIR)/%
|
|
$(CP) $^ $@
|
|
|
|
EXTENSIONS := prg bnx b2 dnx exo lc lzsa2 nc pu ssz tc ts zx0
|
|
|
|
define COPY
|
|
$(INTERMDIR)/x%.$(1): $(INTERMDIR)/x.$(1)
|
|
$(CP) $$^ $$@
|
|
|
|
$(INTERMDIR)/y%.$(1): $(INTERMDIR)/y.$(1)
|
|
$(CP) $$^ $$@
|
|
endef
|
|
|
|
$(foreach extension,$(EXTENSIONS),$(eval $(call COPY,$(extension))))
|
|
|
|
$(INTERMDIR)/%.b2: $(INTERMDIR)/%.prg $(B2)
|
|
$(B2) $<
|
|
$(MV) $<.b2 $@
|
|
|
|
$(INTERMDIR)/%.bnx: $(INTERMDIR)/%.prg $(BITNAX)
|
|
$(BITNAX) --bitfire -o $@ $<
|
|
|
|
$(INTERMDIR)/%.dnx: $(INTERMDIR)/%.prg $(DOYNAX_LZ)
|
|
$(DOYNAX_LZ) -o $@ $<
|
|
$(CONV) dnx $< $@ $@
|
|
|
|
$(INTERMDIR)/%.exo: $(INTERMDIR)/%.prg $(EXO)
|
|
$(EXO) mem -f $< -o $@
|
|
|
|
$(INTERMDIR)/%.lc: $(INTERMDIR)/%.prg $(LC)
|
|
$(LC) $(LCSPEED) $< $@
|
|
$(CONV) lc $< $@ $@
|
|
|
|
$(INTERMDIR)/%.lzsa2: $(INTERMDIR)/%.prg $(LZSA2)
|
|
$(LZSA2) -f 2 $< $@
|
|
|
|
$(INTERMDIR)/%.nc: $(INTERMDIR)/%.prg $(NC)
|
|
$(NC) $< --auto -o $@
|
|
|
|
$(INTERMDIR)/%.pu: $(INTERMDIR)/%.prg $(PU)
|
|
$(PU) -c0 -x 0 $< $@
|
|
|
|
$(INTERMDIR)/%.ssz: $(INTERMDIR)/%.prg $(SUBSIZER)
|
|
$(SUBSIZER) -m -f -o $@ $<
|
|
|
|
$(INTERMDIR)/%.tc: $(INTERMDIR)/%.prg
|
|
$(TC) --inPlace $< $@
|
|
|
|
$(INTERMDIR)/%.ts: $(INTERMDIR)/%.prg $(TS_ENCODER)
|
|
$(TS) -i $< $@
|
|
|
|
$(INTERMDIR)/%.zx0: $(INTERMDIR)/%.prg $(ZX0)
|
|
$(ZX0) -o $@ $<
|
|
|
|
$(BITNAX):
|
|
$(CC) $@.c -o $@
|
|
|
|
$(B2):
|
|
$(MAKE) -C $(B2_SOURCE)
|
|
|
|
$(DOYNAX_LZ):
|
|
$(CC) $@.c -o $@
|
|
|
|
$(EXO):
|
|
$(MAKE) -C $(EXO_SOURCE)
|
|
|
|
$(LC):
|
|
$(MAKE) -C $(LC_SOURCE)
|
|
|
|
$(LZSA2):
|
|
$(MAKE) -C $(LZSA2_SOURCE)
|
|
|
|
$(NC):
|
|
$(MAKE) -C $(NC_SOURCE)
|
|
|
|
$(PU):
|
|
$(MAKE) -C $(PU_SOURCE)
|
|
|
|
$(SUBSIZER):
|
|
$(MAKE) -C $(SUBSIZER_SRC)
|
|
|
|
$(TS):
|
|
$(BUILD_TS)
|
|
|
|
$(ZX0):
|
|
$(MAKE) -C $(ZX0_SRC)
|