From 4b215ee998c4cd0813207a41cac357818625e529 Mon Sep 17 00:00:00 2001 From: Ivan Tatarinov Date: Sat, 5 Jun 2021 22:46:41 +0300 Subject: [PATCH] sdk/src/Makefile: divided into smaller individual files --- sdk/src/Makefile | 526 +------------------------------ sdk/src/lodepng.inc.mk | 75 +++++ sdk/src/sjasmplus-z00m128.inc.mk | 137 ++++++++ sdk/src/sjasmplus.inc.mk | 149 +++++++++ sdk/src/tools.inc.mk | 40 +++ sdk/src/z88dk.inc.mk | 152 +++++++++ 6 files changed, 559 insertions(+), 520 deletions(-) create mode 100644 sdk/src/lodepng.inc.mk create mode 100644 sdk/src/sjasmplus-z00m128.inc.mk create mode 100644 sdk/src/sjasmplus.inc.mk create mode 100644 sdk/src/tools.inc.mk create mode 100644 sdk/src/z88dk.inc.mk diff --git a/sdk/src/Makefile b/sdk/src/Makefile index 696187c..3740a79 100644 --- a/sdk/src/Makefile +++ b/sdk/src/Makefile @@ -65,532 +65,18 @@ ifeq ($(OS),Windows_NT) endif endif # $(OS)==Windows_NT -# sjasmplus - -.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-sjasmplus) - .downloads\ -.downloads/sjasmplus\ -.downloads/sjasmplus-z00m128\ -.downloads/z88dk\ $(DESTDIR)$(bindir): mkdir -p $@ ifeq ($(USE_SJASMPLUS_VERSION),sjasmplus) - -ifeq ($(_DoBuild),1) - -SJASMPLUS_ARCHIVE = .downloads/sjasmplus/20190306.1.tar.gz -SJASMPLUS_ARCHIVE_SHA256 = f3f6d28af19880ed2cb427b6b427e9bd42371929c7d263dac840fb71de1302d6 -SJASMPLUS_ARCHIVE_TYPE = .tar.gz -SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-20190306.1 - -build-sjasmplus: | sjasmplus/.extracted sjasmplus.mk - $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) - -sjasmplus/.extracted: $(SJASMPLUS_ARCHIVE) - echo '$(SJASMPLUS_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) -ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.tar.gz) - ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) - $(error Not implemented) - else - tar -xzf $< - endif -else - $(error Not implemented) -endif - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) - touch $@ - -.downloads/sjasmplus/20190306.1.tar.gz: | .downloads/sjasmplus - wget -c https://github.com/sjasmplus/sjasmplus/archive/refs/tags/$(@F) -O $@ - -install-sjasmplus: | sjasmplus/.extracted sjasmplus.mk - $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) install - -ifeq ($(_DoClean),1) - -uninstall-sjasmplus: | sjasmplus.mk - if test -d sjasmplus; then\ - $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) uninstall;\ - else\ - rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\ - fi - -clean-sjasmplus: | sjasmplus.mk - if test -d sjasmplus; then $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk clean; fi - -else # !_DoClean - -uninstall-sjasmplus clean-sjasmplus:; - -endif # !_DoClean -endif # _DoBuild - -ifeq ($(_UsePrecompiledOnWindows),1) - -build-sjasmplus: sjasmplus/sjasmplus$(EXESUFFIX) - -sjasmplus/sjasmplus$(EXESUFFIX): | sjasmplus/.extracted - -ifeq ($(PROCESSOR_ARCHITECTURE),X86) - SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win32-20190306.1.7z - SJASMPLUS_ARCHIVE_SHA256 = c84731640930afc4f4cc3c0f30f891916b9b77d63dc0e4cfdcd226682b8545b1 - SJASMPLUS_ARCHIVE_TYPE = .7z - SJASMPLUS_ARCHIVE_SUBDIR = . -else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) - SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win64-20190306.1.7z - SJASMPLUS_ARCHIVE_SHA256 = ef352b50ce7c9e9971c6fc3143e378d3e9f4069f11eb0c33022195c6e9b34fcb - SJASMPLUS_ARCHIVE_TYPE = .7z - SJASMPLUS_ARCHIVE_SUBDIR = . -else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) - SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win64-20190306.1.7z - SJASMPLUS_ARCHIVE_SHA256 = ef352b50ce7c9e9971c6fc3143e378d3e9f4069f11eb0c33022195c6e9b34fcb - SJASMPLUS_ARCHIVE_TYPE = .7z - SJASMPLUS_ARCHIVE_SUBDIR = . -else - $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") - SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win32-20190306.1.7z - SJASMPLUS_ARCHIVE_SHA256 = c84731640930afc4f4cc3c0f30f891916b9b77d63dc0e4cfdcd226682b8545b1 - SJASMPLUS_ARCHIVE_TYPE = .7z - SJASMPLUS_ARCHIVE_SUBDIR = . -endif - -sjasmplus/.extracted: $(SJASMPLUS_ARCHIVE) - echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) -ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.7z) - ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) - 7z x -bd -o$(@D) $< - else - 7z x -bd $< - endif -else - $(error Not implemented) -endif - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) - touch $@ - -.downloads/sjasmplus/sjasmplus-win32-20190306.1.7z: | .downloads/sjasmplus - wget -c https://github.com/sjasmplus/sjasmplus/releases/download/20190306.1/$(@F) -O $@ - -.downloads/sjasmplus/sjasmplus-win64-20190306.1.7z: | .downloads/sjasmplus - wget -c https://github.com/sjasmplus/sjasmplus/releases/download/20190306.1/$(@F) -O $@ - -install-sjasmplus: $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) - -$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus/sjasmplus$(EXESUFFIX) | $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) $< $@ - -ifeq ($(_DoClean),1) - -uninstall-sjasmplus: - rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) - -clean-sjasmplus: - rm -rf sjasmplus - -else # !_DoClean - -uninstall-sjasmplus clean-sjasmplus:; - -endif # !_DoClean -endif # _UsePrecompiledOnWindows - -ifeq ($(_DoClean),1) - -distclean-sjasmplus: clean-sjasmplus - rm -rf .downloads/sjasmplus - -else # !_DoClean - -distclean-sjasmplus:; - -endif # !_DoClean - + include sjasmplus.inc.mk else ifeq ($(USE_SJASMPLUS_VERSION),z00m128) - -ifeq ($(_DoBuild),1) - -SJASMPLUS_ARCHIVE = .downloads/sjasmplus-z00m128/v1.18.2.tar.gz -SJASMPLUS_ARCHIVE_SHA256 = 114807bf53d3526b4d1ae7d40f3050b9ee98220df74931efc1e6d1fe5aba3d02 -SJASMPLUS_ARCHIVE_TYPE = .tar.gz -SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-1.18.2 - -build-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk - $(MAKE) -w -C sjasmplus -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) - -sjasmplus-z00m128/.extracted: $(SJASMPLUS_ARCHIVE) - echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) -ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.tar.gz) - ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) - $(error Not implemented) - else - tar -xzf $< - endif + include sjasmplus-z00m128.inc.mk else - $(error Not implemented) -endif - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) - touch $@ - -.downloads/sjasmplus-z00m128/v1.18.2.tar.gz: | .downloads/sjasmplus-z00m128 - wget -c https://github.com/z00m128/sjasmplus/archive/refs/tags/$(@F) -O $@ - -install-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk - $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) install - -ifeq ($(_DoClean),1) - -uninstall-sjasmplus: | sjasmplus-z00m128.mk - if test -d sjasmplus-z00m128; then\ - $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) uninstall;\ - else\ - rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\ - fi - -clean-sjasmplus: | sjasmplus-z00m128.mk - if test -d sjasmplus-z00m128; then $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk clean; fi - -else # !_DoClean - -uninstall-sjasmplus clean-sjasmplus:; - -endif # !_DoClean -endif # _DoBuild - -ifeq ($(_UsePrecompiledOnWindows),1) - -build-sjasmplus: sjasmplus-z00m128/sjasmplus$(EXESUFFIX) - -sjasmplus-z00m128/sjasmplus$(EXESUFFIX): | sjasmplus-z00m128/.extracted - -ifeq ($(PROCESSOR_ARCHITECTURE),X86) -else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) -else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) -else - $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") + $(error Unknown SJAsmPlus version selected: `$(USE_SJASMPLUS_VERSION)') endif -SJASMPLUS_ARCHIVE = .downloads/sjasmplus-z00m128/sjasmplus-1.18.2.win.zip -SJASMPLUS_ARCHIVE_SHA256 = 848bca2522d6febbf3e3c48c634731ecd61899166f5922ed15857e8063c3dc4b -SJASMPLUS_ARCHIVE_TYPE = .zip -SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-1.18.2.win - -sjasmplus-z00m128/.extracted: $(SJASMPLUS_ARCHIVE) - echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) -ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.zip) - ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) - unzip -nq -d $(@D) $< - else - unzip -nq $< - endif -else - $(error Not implemented) -endif - test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) - touch $@ - -.downloads/sjasmplus-z00m128/sjasmplus-1.18.2.win.zip: | .downloads/sjasmplus-z00m128 - wget -c https://github.com/z00m128/sjasmplus/releases/download/v1.18.2/$(@F) -O $@ - -install-sjasmplus: $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) - -$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus-z00m128/sjasmplus$(EXESUFFIX) | $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) $< $@ - -ifeq ($(_DoClean),1) - -uninstall-sjasmplus: - rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) - -clean-sjasmplus: - rm -rf sjasmplus-z00m128 - -else # !_DoClean - -uninstall-sjasmplus clean-sjasmplus:; - -endif # !_DoClean -endif # _UsePrecompiledOnWindows - -ifeq ($(_DoClean),1) - -distclean-sjasmplus: - rm -rf\ - .downloads/sjasmplus-z00m128\ - sjasmplus-z00m128 - -else # !_DoClean - -distclean-sjasmplus:; - -endif # !_DoClean - -else -$(error Unknown SJAsmPlus version selected: `$(USE_SJASMPLUS_VERSION)') -endif - -# z88dk - -.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-z88dk) - -Z88DK_BINS:=\ - asmpp.pl\ - sccz80$(EXESUFFIX)\ - z80asm$(EXESUFFIX)\ - z88dk-appmake$(EXESUFFIX)\ - z88dk-basck$(EXESUFFIX)\ - z88dk-copt$(EXESUFFIX)\ - z88dk-dis$(EXESUFFIX)\ - z88dk-dzx7$(EXESUFFIX)\ - z88dk-font2pv1000$(EXESUFFIX)\ - z88dk-lib$(EXESUFFIX)\ - z88dk-ticks$(EXESUFFIX)\ - z88dk-ucpp$(EXESUFFIX)\ - z88dk-z80asm$(EXESUFFIX)\ - z88dk-z80nm$(EXESUFFIX)\ - z88dk-z80svg$(EXESUFFIX)\ - z88dk-zcpp$(EXESUFFIX)\ - z88dk-zobjcopy$(EXESUFFIX)\ - z88dk-zpragma$(EXESUFFIX)\ - z88dk-zx7$(EXESUFFIX)\ - zcc$(EXESUFFIX) - -build-z88dk install-z88dk: z88dk/.done - -ifeq ($(_DoBuild),1) - -Z88DK_ARCHIVE = .downloads/z88dk/z88dk-src-2.1.tgz -Z88DK_ARCHIVE_SHA256 = f3579ee59b4af552721173165af38223b115ccb67179e79d2f3c0ae64338dc7c -Z88DK_ARCHIVE_TYPE = .tar.gz -Z88DK_ARCHIVE_SUBDIR = z88dk - -# Force Win32 build for Windows -ifeq ($(OS),Windows_NT) -export CC=i686-w64-mingw32-gcc -endif - -z88dk/.done: | z88dk/.extracted z88dk.mk - $(MAKE) -w -C z88dk -f ../z88dk.mk - cd z88dk/bin && test x $(patsubst %,-a -x %,$(Z88DK_BINS)) - touch $@ - -z88dk/.extracted: $(Z88DK_ARCHIVE) | z88dk.patch - echo '$(Z88DK_ARCHIVE_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || rm -rf $(Z88DK_ARCHIVE_SUBDIR) -ifeq ($(Z88DK_ARCHIVE_TYPE),.tar.gz) - ifeq ($(Z88DK_ARCHIVE_SUBDIR),.) - $(error Not implemented) - else - tar -xzf $< - endif -else - $(error Not implemented) -endif - test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || mv $(Z88DK_ARCHIVE_SUBDIR) $(@D) - patch -N -p0 -s <$| || true - touch $@ - -.downloads/z88dk/z88dk-src-2.1.tgz: | .downloads/z88dk - wget -c https://github.com/z88dk/z88dk/releases/download/v2.1/$(@F) -O $@ - -uninstall-z88dk:; - -ifeq ($(_DoClean),1) - -# This does not work: -#clean-z88dk: | z88dk.mk -# if test -d z88dk; then $(MAKE) -w -C z88dk -f ../z88dk.mk clean && rm -f z88dk/.done; fi -clean-z88dk: - rm -rf z88dk - -else # !_DoClean - -clean-z88dk:; - -endif # !_DoClean -endif # _DoBuild - -ifeq ($(_UsePrecompiledOnWindows),1) - -ifeq ($(PROCESSOR_ARCHITECTURE),X86) -else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) -else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) -else - $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") -endif - -Z88DK_ARCHIVE = .downloads/z88dk/z88dk-win32-2.1.zip -Z88DK_ARCHIVE_SHA256 = f4abedfae429ea159e388b5c76758ace4dcb86e9a00dbd928862b0a30f6874d6 -Z88DK_ARCHIVE_TYPE = .zip -Z88DK_ARCHIVE_SUBDIR = z88dk - -z88dk/.done: $(Z88DK_ARCHIVE) - echo '$(Z88DK_ARCHIVE_SHA256) $<' >$<.sha256 - sha256sum -c $<.sha256 - rm -f $<.sha256 - rm -rf $(@D) - test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || rm -rf $(Z88DK_ARCHIVE_SUBDIR) -ifeq ($(Z88DK_ARCHIVE_TYPE),.zip) - ifeq ($(Z88DK_ARCHIVE_SUBDIR),.) - unzip -nq -d $(@D) $< - else - unzip -nq $< - endif -else - $(error Not implemented) -endif - test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || mv $(Z88DK_ARCHIVE_SUBDIR) $(@D) - touch $@ - -.downloads/z88dk/z88dk-win32-2.1.zip: | .downloads/z88dk - wget -c https://github.com/z88dk/z88dk/releases/download/v2.1/$(@F) -O $@ - -uninstall-z88dk:; - -ifeq ($(_DoClean),1) - -clean-z88dk: - rm -rf z88dk - -else # !_DoClean - -clean-z88dk:; - -endif # !_DoClean -endif # _UsePrecompiledOnWindows - -ifeq ($(_DoClean),1) - -distclean-z88dk: clean-z88dk - rm -rf .downloads/z88dk - -else # !_DoClean - -distclean-z88dk:; - -endif # !_DoClean - -# lodepng - -.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-lodepng) - -ifeq ($(_DoBuild),1) - -build-lodepng: | lodepng - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) - -install-lodepng: | lodepng - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install - -else # !_DoBuild - -build-lodepng install-lodepng:; - -endif # !_DoBuild - -ifeq ($(_DoClean),1) - -uninstall-lodepng: | lodepng - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall - -clean-lodepng: | lodepng - $(MAKE) -w -C $| clean - -distclean-lodepng: | lodepng - $(MAKE) -w -C $| distclean - -else # !_DoClean - -uninstall-lodepng clean-lodepng distclean-lodepng:; - -endif # !_DoClean - -# zx7b - -.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-zx7b) - -ifeq ($(_DoBuild),1) - -build-zx7b: | zx7b - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) - -install-zx7b: | zx7b - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install - -else # !_DoBuild - -build-zx7b install-zx7b:; - -endif # !_DoBuild - -ifeq ($(_DoClean),1) - -uninstall-zx7b: | zx7b - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall - -clean-zx7b: | zx7b - $(MAKE) -w -C $| clean - -distclean-zx7b: | zx7b - $(MAKE) -w -C $| distclean - -else # !_DoClean - -uninstall-zx7b clean-zx7b distclean-zx7b:; - -endif # !_DoClean - -# tools - -.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-tools) - -ifeq ($(_DoBuild),1) - -build-tools: | tools - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) - -install-tools: | tools - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install - -else # !_DoBuild - -build-tools install-tools:; - -endif # !_DoBuild - -ifeq ($(_DoClean),1) - -uninstall-tools: | tools - $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall - -clean-tools: | tools - $(MAKE) -w -C $| clean - -distclean-tools: | tools - $(MAKE) -w -C $| distclean - -else # !_DoClean - -uninstall-tools clean-tools distclean-tools:; - -endif # !_DoClean +include z88dk.inc.mk +include lodepng.inc.mk +include tools.inc.mk diff --git a/sdk/src/lodepng.inc.mk b/sdk/src/lodepng.inc.mk new file mode 100644 index 0000000..9c88d93 --- /dev/null +++ b/sdk/src/lodepng.inc.mk @@ -0,0 +1,75 @@ +# lodepng.inc.mk - script to build LodePNG. +# +# This file is a part of main Makefile. +# +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later + +.PHONY: $(foreach t,build install uninstall clean distclean,$(t)-lodepng) + +ifeq ($(_DoBuild),1) + +build-lodepng: | lodepng + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) + +install-lodepng: | lodepng + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install + +else # !_DoBuild + +build-lodepng install-lodepng:; + +endif # !_DoBuild + +ifeq ($(_DoClean),1) + +uninstall-lodepng: | lodepng + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall + +clean-lodepng: | lodepng + $(MAKE) -w -C $| clean + +distclean-lodepng: | lodepng + $(MAKE) -w -C $| distclean + +else # !_DoClean + +uninstall-lodepng clean-lodepng distclean-lodepng:; + +endif # !_DoClean + +# zx7b + +.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-zx7b) + +ifeq ($(_DoBuild),1) + +build-zx7b: | zx7b + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) + +install-zx7b: | zx7b + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install + +else # !_DoBuild + +build-zx7b install-zx7b:; + +endif # !_DoBuild + +ifeq ($(_DoClean),1) + +uninstall-zx7b: | zx7b + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall + +clean-zx7b: | zx7b + $(MAKE) -w -C $| clean + +distclean-zx7b: | zx7b + $(MAKE) -w -C $| distclean + +else # !_DoClean + +uninstall-zx7b clean-zx7b distclean-zx7b:; + +endif # !_DoClean diff --git a/sdk/src/sjasmplus-z00m128.inc.mk b/sdk/src/sjasmplus-z00m128.inc.mk new file mode 100644 index 0000000..e00fca0 --- /dev/null +++ b/sdk/src/sjasmplus-z00m128.inc.mk @@ -0,0 +1,137 @@ +# sjasmplus-z00m128.inc.mk - script to download and build SJAsmPlus by aprisobal. +# +# This file is a part of main Makefile. +# +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later + +.downloads/sjasmplus-z00m128: + mkdir -p $@ + +.PHONY: $(foreach t,build install uninstall clean distclean,$(t)-sjasmplus) + +ifeq ($(_DoBuild),1) + +SJASMPLUS_ARCHIVE = .downloads/sjasmplus-z00m128/v1.18.2.tar.gz +SJASMPLUS_ARCHIVE_SHA256 = 114807bf53d3526b4d1ae7d40f3050b9ee98220df74931efc1e6d1fe5aba3d02 +SJASMPLUS_ARCHIVE_TYPE = .tar.gz +SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-1.18.2 + +build-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk + $(MAKE) -w -C sjasmplus -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) + +sjasmplus-z00m128/.extracted: $(SJASMPLUS_ARCHIVE) + echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) +ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.tar.gz) + ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) + $(error Not implemented) + else + tar -xzf $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) + touch $@ + +.downloads/sjasmplus-z00m128/v1.18.2.tar.gz: | .downloads/sjasmplus-z00m128 + wget -c https://github.com/z00m128/sjasmplus/archive/refs/tags/$(@F) -O $@ + +install-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk + $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) install + +ifeq ($(_DoClean),1) + +uninstall-sjasmplus: | sjasmplus-z00m128.mk + if test -d sjasmplus-z00m128; then\ + $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) uninstall;\ + else\ + rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\ + fi + +clean-sjasmplus: | sjasmplus-z00m128.mk + if test -d sjasmplus-z00m128; then $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk clean; fi + +else # !_DoClean + +uninstall-sjasmplus clean-sjasmplus:; + +endif # !_DoClean +endif # _DoBuild + +ifeq ($(_UsePrecompiledOnWindows),1) + +build-sjasmplus: sjasmplus-z00m128/sjasmplus$(EXESUFFIX) + +sjasmplus-z00m128/sjasmplus$(EXESUFFIX): | sjasmplus-z00m128/.extracted + +ifeq ($(PROCESSOR_ARCHITECTURE),X86) +else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) +else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) +else + $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") +endif + +SJASMPLUS_ARCHIVE = .downloads/sjasmplus-z00m128/sjasmplus-1.18.2.win.zip +SJASMPLUS_ARCHIVE_SHA256 = 848bca2522d6febbf3e3c48c634731ecd61899166f5922ed15857e8063c3dc4b +SJASMPLUS_ARCHIVE_TYPE = .zip +SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-1.18.2.win + +sjasmplus-z00m128/.extracted: $(SJASMPLUS_ARCHIVE) + echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) +ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.zip) + ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) + unzip -nq -d $(@D) $< + else + unzip -nq $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) + touch $@ + +.downloads/sjasmplus-z00m128/sjasmplus-1.18.2.win.zip: | .downloads/sjasmplus-z00m128 + wget -c https://github.com/z00m128/sjasmplus/releases/download/v1.18.2/$(@F) -O $@ + +install-sjasmplus: $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) + +$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus-z00m128/sjasmplus$(EXESUFFIX) | $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $< $@ + +ifeq ($(_DoClean),1) + +uninstall-sjasmplus: + rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) + +clean-sjasmplus: + rm -rf sjasmplus-z00m128 + +else # !_DoClean + +uninstall-sjasmplus clean-sjasmplus:; + +endif # !_DoClean +endif # _UsePrecompiledOnWindows + +ifeq ($(_DoClean),1) + +distclean-sjasmplus: + rm -rf\ + .downloads/sjasmplus-z00m128\ + sjasmplus-z00m128 + +else # !_DoClean + +distclean-sjasmplus:; + +endif # !_DoClean diff --git a/sdk/src/sjasmplus.inc.mk b/sdk/src/sjasmplus.inc.mk new file mode 100644 index 0000000..3096f26 --- /dev/null +++ b/sdk/src/sjasmplus.inc.mk @@ -0,0 +1,149 @@ +# sjasmplus.inc.mk - script to download and build original SJAsmPlus. +# +# This file is a part of main Makefile. +# +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later + +.downloads/sjasmplus: + mkdir -p $@ + +.PHONY: $(foreach t,build install uninstall clean distclean,$(t)-sjasmplus) + +ifeq ($(_DoBuild),1) + +SJASMPLUS_ARCHIVE = .downloads/sjasmplus/20190306.1.tar.gz +SJASMPLUS_ARCHIVE_SHA256 = f3f6d28af19880ed2cb427b6b427e9bd42371929c7d263dac840fb71de1302d6 +SJASMPLUS_ARCHIVE_TYPE = .tar.gz +SJASMPLUS_ARCHIVE_SUBDIR = sjasmplus-20190306.1 + +build-sjasmplus: | sjasmplus/.extracted sjasmplus.mk + $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) + +sjasmplus/.extracted: $(SJASMPLUS_ARCHIVE) + echo '$(SJASMPLUS_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) +ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.tar.gz) + ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) + $(error Not implemented) + else + tar -xzf $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) + touch $@ + +.downloads/sjasmplus/20190306.1.tar.gz: | .downloads/sjasmplus + wget -c https://github.com/sjasmplus/sjasmplus/archive/refs/tags/$(@F) -O $@ + +install-sjasmplus: | sjasmplus/.extracted sjasmplus.mk + $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) install + +ifeq ($(_DoClean),1) + +uninstall-sjasmplus: | sjasmplus.mk + if test -d sjasmplus; then\ + $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) uninstall;\ + else\ + rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\ + fi + +clean-sjasmplus: | sjasmplus.mk + if test -d sjasmplus; then $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk clean; fi + +else # !_DoClean + +uninstall-sjasmplus clean-sjasmplus:; + +endif # !_DoClean +endif # _DoBuild + +ifeq ($(_UsePrecompiledOnWindows),1) + +build-sjasmplus: sjasmplus/sjasmplus$(EXESUFFIX) + +sjasmplus/sjasmplus$(EXESUFFIX): | sjasmplus/.extracted + +ifeq ($(PROCESSOR_ARCHITECTURE),X86) + SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win32-20190306.1.7z + SJASMPLUS_ARCHIVE_SHA256 = c84731640930afc4f4cc3c0f30f891916b9b77d63dc0e4cfdcd226682b8545b1 + SJASMPLUS_ARCHIVE_TYPE = .7z + SJASMPLUS_ARCHIVE_SUBDIR = . +else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) + SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win64-20190306.1.7z + SJASMPLUS_ARCHIVE_SHA256 = ef352b50ce7c9e9971c6fc3143e378d3e9f4069f11eb0c33022195c6e9b34fcb + SJASMPLUS_ARCHIVE_TYPE = .7z + SJASMPLUS_ARCHIVE_SUBDIR = . +else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) + SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win64-20190306.1.7z + SJASMPLUS_ARCHIVE_SHA256 = ef352b50ce7c9e9971c6fc3143e378d3e9f4069f11eb0c33022195c6e9b34fcb + SJASMPLUS_ARCHIVE_TYPE = .7z + SJASMPLUS_ARCHIVE_SUBDIR = . +else + $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") + SJASMPLUS_ARCHIVE = .downloads/sjasmplus/sjasmplus-win32-20190306.1.7z + SJASMPLUS_ARCHIVE_SHA256 = c84731640930afc4f4cc3c0f30f891916b9b77d63dc0e4cfdcd226682b8545b1 + SJASMPLUS_ARCHIVE_TYPE = .7z + SJASMPLUS_ARCHIVE_SUBDIR = . +endif + +sjasmplus/.extracted: $(SJASMPLUS_ARCHIVE) + echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || rm -rf $(SJASMPLUS_ARCHIVE_SUBDIR) +ifeq ($(SJASMPLUS_ARCHIVE_TYPE),.7z) + ifeq ($(SJASMPLUS_ARCHIVE_SUBDIR),.) + 7z x -bd -o$(@D) $< + else + 7z x -bd $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(SJASMPLUS_ARCHIVE_SUBDIR)' -o '$(SJASMPLUS_ARCHIVE_SUBDIR)' = . || mv $(SJASMPLUS_ARCHIVE_SUBDIR) $(@D) + touch $@ + +.downloads/sjasmplus/sjasmplus-win32-20190306.1.7z: | .downloads/sjasmplus + wget -c https://github.com/sjasmplus/sjasmplus/releases/download/20190306.1/$(@F) -O $@ + +.downloads/sjasmplus/sjasmplus-win64-20190306.1.7z: | .downloads/sjasmplus + wget -c https://github.com/sjasmplus/sjasmplus/releases/download/20190306.1/$(@F) -O $@ + +install-sjasmplus: $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) + +$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus/sjasmplus$(EXESUFFIX) | $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $< $@ + +ifeq ($(_DoClean),1) + +uninstall-sjasmplus: + rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX) + +clean-sjasmplus: + rm -rf sjasmplus + +else # !_DoClean + +uninstall-sjasmplus clean-sjasmplus:; + +endif # !_DoClean +endif # _UsePrecompiledOnWindows + +ifeq ($(_DoClean),1) + +distclean-sjasmplus: clean-sjasmplus + rm -rf .downloads/sjasmplus + +else # !_DoClean + +distclean-sjasmplus:; + +endif # !_DoClean diff --git a/sdk/src/tools.inc.mk b/sdk/src/tools.inc.mk new file mode 100644 index 0000000..7f2e778 --- /dev/null +++ b/sdk/src/tools.inc.mk @@ -0,0 +1,40 @@ +# tools.inc.mk - script to build tools. +# +# This file is a part of main Makefile. +# +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later + +.PHONY: $(foreach t,build install uninstall clean distclean,$(t)-tools) + +ifeq ($(_DoBuild),1) + +build-tools: | tools + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) + +install-tools: | tools + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install + +else # !_DoBuild + +build-tools install-tools:; + +endif # !_DoBuild + +ifeq ($(_DoClean),1) + +uninstall-tools: | tools + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall + +clean-tools: | tools + $(MAKE) -w -C $| clean + +distclean-tools: | tools + $(MAKE) -w -C $| distclean + +else # !_DoClean + +uninstall-tools clean-tools distclean-tools:; + +endif # !_DoClean diff --git a/sdk/src/z88dk.inc.mk b/sdk/src/z88dk.inc.mk new file mode 100644 index 0000000..ad50b3b --- /dev/null +++ b/sdk/src/z88dk.inc.mk @@ -0,0 +1,152 @@ +# z88dk.inc.mk - script to download and build original Z88DK. +# +# This file is a part of main Makefile. +# +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later + +.downloads/z88dk: + mkdir -p $@ + +.PHONY: $(foreach t,build install uninstall clean distclean,$(t)-z88dk) + +Z88DK_BINS:=\ + asmpp.pl\ + sccz80$(EXESUFFIX)\ + z80asm$(EXESUFFIX)\ + z88dk-appmake$(EXESUFFIX)\ + z88dk-basck$(EXESUFFIX)\ + z88dk-copt$(EXESUFFIX)\ + z88dk-dis$(EXESUFFIX)\ + z88dk-dzx7$(EXESUFFIX)\ + z88dk-font2pv1000$(EXESUFFIX)\ + z88dk-lib$(EXESUFFIX)\ + z88dk-ticks$(EXESUFFIX)\ + z88dk-ucpp$(EXESUFFIX)\ + z88dk-z80asm$(EXESUFFIX)\ + z88dk-z80nm$(EXESUFFIX)\ + z88dk-z80svg$(EXESUFFIX)\ + z88dk-zcpp$(EXESUFFIX)\ + z88dk-zobjcopy$(EXESUFFIX)\ + z88dk-zpragma$(EXESUFFIX)\ + z88dk-zx7$(EXESUFFIX)\ + zcc$(EXESUFFIX) + +build-z88dk install-z88dk: z88dk/.done + +ifeq ($(_DoBuild),1) + +Z88DK_ARCHIVE = .downloads/z88dk/z88dk-src-2.1.tgz +Z88DK_ARCHIVE_SHA256 = f3579ee59b4af552721173165af38223b115ccb67179e79d2f3c0ae64338dc7c +Z88DK_ARCHIVE_TYPE = .tar.gz +Z88DK_ARCHIVE_SUBDIR = z88dk + +# Force Win32 build for Windows +ifeq ($(OS),Windows_NT) +export CC=i686-w64-mingw32-gcc +endif + +z88dk/.done: | z88dk/.extracted z88dk.mk + $(MAKE) -w -C z88dk -f ../z88dk.mk + cd z88dk/bin && test x $(patsubst %,-a -x %,$(Z88DK_BINS)) + touch $@ + +z88dk/.extracted: $(Z88DK_ARCHIVE) | z88dk.patch + echo '$(Z88DK_ARCHIVE_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || rm -rf $(Z88DK_ARCHIVE_SUBDIR) +ifeq ($(Z88DK_ARCHIVE_TYPE),.tar.gz) + ifeq ($(Z88DK_ARCHIVE_SUBDIR),.) + $(error Not implemented) + else + tar -xzf $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || mv $(Z88DK_ARCHIVE_SUBDIR) $(@D) + patch -N -p0 -s <$| || true + touch $@ + +.downloads/z88dk/z88dk-src-2.1.tgz: | .downloads/z88dk + wget -c https://github.com/z88dk/z88dk/releases/download/v2.1/$(@F) -O $@ + +uninstall-z88dk:; + +ifeq ($(_DoClean),1) + +# This does not work: +#clean-z88dk: | z88dk.mk +# if test -d z88dk; then $(MAKE) -w -C z88dk -f ../z88dk.mk clean && rm -f z88dk/.done; fi +clean-z88dk: + rm -rf z88dk + +else # !_DoClean + +clean-z88dk:; + +endif # !_DoClean +endif # _DoBuild + +ifeq ($(_UsePrecompiledOnWindows),1) + +ifeq ($(PROCESSOR_ARCHITECTURE),X86) +else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) +else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T) +else + $(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)") +endif + +Z88DK_ARCHIVE = .downloads/z88dk/z88dk-win32-2.1.zip +Z88DK_ARCHIVE_SHA256 = f4abedfae429ea159e388b5c76758ace4dcb86e9a00dbd928862b0a30f6874d6 +Z88DK_ARCHIVE_TYPE = .zip +Z88DK_ARCHIVE_SUBDIR = z88dk + +z88dk/.done: $(Z88DK_ARCHIVE) + echo '$(Z88DK_ARCHIVE_SHA256) $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf $(@D) + test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || rm -rf $(Z88DK_ARCHIVE_SUBDIR) +ifeq ($(Z88DK_ARCHIVE_TYPE),.zip) + ifeq ($(Z88DK_ARCHIVE_SUBDIR),.) + unzip -nq -d $(@D) $< + else + unzip -nq $< + endif +else + $(error Not implemented) +endif + test '$(@D)' = '$(Z88DK_ARCHIVE_SUBDIR)' -o '$(Z88DK_ARCHIVE_SUBDIR)' = . || mv $(Z88DK_ARCHIVE_SUBDIR) $(@D) + touch $@ + +.downloads/z88dk/z88dk-win32-2.1.zip: | .downloads/z88dk + wget -c https://github.com/z88dk/z88dk/releases/download/v2.1/$(@F) -O $@ + +uninstall-z88dk:; + +ifeq ($(_DoClean),1) + +clean-z88dk: + rm -rf z88dk + +else # !_DoClean + +clean-z88dk:; + +endif # !_DoClean +endif # _UsePrecompiledOnWindows + +ifeq ($(_DoClean),1) + +distclean-z88dk: clean-z88dk + rm -rf .downloads/z88dk + +else # !_DoClean + +distclean-z88dk:; + +endif # !_DoClean