diff --git a/Makefile b/Makefile index ab51447..b968df4 100644 --- a/Makefile +++ b/Makefile @@ -27,8 +27,6 @@ include sdk/common.mk # Use uppercase for FAT filesystem prefix ?= SD -exec_prefix ?= $(prefix) -bindir ?= $(exec_prefix)/BIN TARGETS=\ utils\ @@ -46,11 +44,11 @@ build-utils: | utils .PHONY: install-utils install-utils: | utils - $(MAKE) -w -C $| bindir=$(shell realpath --relative-to=$| $(bindir)) install + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install .PHONY: uninstall-utils uninstall-utils: | utils - $(MAKE) -w -C $| bindir=$(shell realpath --relative-to=$| $(bindir)) uninstall + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall .PHONY: clean-utils clean-utils: | utils @@ -68,11 +66,11 @@ build-software: | software .PHONY: install-software install-software: | software - $(MAKE) -w -C $| bindir=$(shell realpath --relative-to=$| $(bindir)) install + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install .PHONY: uninstall-software uninstall-software: | software - $(MAKE) -w -C $| bindir=$(shell realpath --relative-to=$| $(bindir)) uninstall + $(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) uninstall .PHONY: clean-software clean-software: | software diff --git a/software/Makefile b/software/Makefile index 17dbfb7..b353d62 100644 --- a/software/Makefile +++ b/software/Makefile @@ -25,10 +25,9 @@ include ../sdk/common.mk # Use uppercase for FAT filesystem prefix ?= . -exec_prefix ?= $(prefix) -bindir ?= $(exec_prefix)/BIN SUBDIRS=\ + esxdos\ esprst\ iwconfig @@ -49,7 +48,7 @@ $(foreach d,$(SUBDIRS),$(eval $(call build_rule,$(d)))) define install_rule= install-$1: | $1 - $$(MAKE) -w -C $$| bindir=$$(shell realpath --relative-to=$$| $$(bindir)) install + $$(MAKE) -w -C $$| prefix=$$(shell realpath --relative-to=$$| $$(prefix)) install endef $(foreach d,$(SUBDIRS),$(eval $(call install_rule,$(d)))) @@ -58,7 +57,7 @@ $(foreach d,$(SUBDIRS),$(eval $(call install_rule,$(d)))) define uninstall_rule= uninstall-$1: | $1 - $$(MAKE) -w -C $$| bindir=$$(shell realpath --relative-to=$$| $$(bindir)) uninstall + $$(MAKE) -w -C $$| prefix=$$(shell realpath --relative-to=$$| $$(prefix)) uninstall endef $(foreach d,$(SUBDIRS),$(eval $(call uninstall_rule,$(d)))) diff --git a/software/esxdos/.gitignore b/software/esxdos/.gitignore new file mode 100644 index 0000000..371730d --- /dev/null +++ b/software/esxdos/.gitignore @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: CC0-1.0 + +build +cache diff --git a/software/esxdos/Makefile b/software/esxdos/Makefile new file mode 100644 index 0000000..2ee4257 --- /dev/null +++ b/software/esxdos/Makefile @@ -0,0 +1,197 @@ +# SPDX-FileCopyrightText: 2021 Ivan Tatarinov +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# Supported environments: +# * GNU on Linux, FreeBSD etc. +# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL) +# +# Build: +# make [all] +# Install / Uninstall: +# make [prefix=] install | uninstall +# Clean: +# make clean | distclean + +include ../../sdk/common.mk + +# Use uppercase for FAT filesystem +prefix ?= . +exec_prefix ?= $(prefix) +bindir ?= $(exec_prefix)/BIN +docdir ?= $(prefix)/DOCS +sysdir ?= $(exec_prefix)/SYS +sysconfdir ?= ${sysdir}/CONFIG +tmpdir ?= $(prefix)/TMP + +# Disable execution mode for FAT filesystem +INSTALL ?= install -m 644 +INSTALL_PROGRAM ?= $(INSTALL) +RM ?= rm -f + +ESXDOSNAME = esxdos089 + +ROOT_FILES=\ + ESX089.NFO\ + ESXMMC.BIN\ + README.TXT + +BIN_FILES=\ + 128\ + CAL\ + CD\ + CHMOD\ + CP\ + DATE\ + DFWLOAD\ + DIVIDEO\ + DRIVES\ + DSKPROBE\ + DUMPMEM\ + FILE\ + GRAMON\ + GSC\ + HEXDUMP\ + HEXVIEW\ + LAUNCHER\ + LS\ + LSTAP\ + MKDIR\ + MKTRD\ + MORE\ + MV\ + PARTINFO\ + PLAYPT3\ + PLAYSQT\ + PLAYSTC\ + PLAYTFM\ + PLAYWAV\ + RM\ + SCL2TRD\ + SERCP\ + SNAPLOAD\ + SPEAKCZ\ + STRINGS\ + TAPEIN\ + TAPEOUT\ + TAR\ + TE\ + TSPLAY\ + VDISK + +DOC_FILES=\ + DIVIDEO.TXT\ + GRAMON.TXT\ + PLAYWAV.TXT\ + SNAPLOAD.TXT\ + SPEAKCZ.TXT\ + TEINFO.TXT\ + TRKPLAY.TXT + +SYS_FILES=\ + BDIR.KO\ + BETADISK.SYS\ + BFILE.KO\ + ERRMSG.KO\ + ESXDOS.SYS\ + NMI_HELP.SCR\ + NMI.SYS\ + TAPE.KO\ + TRDBOOT.BIN\ + TRDOS54T.KO\ + VDISK.KO + +SYSCONF_FILES=\ + ESXDOS.CFG\ + TRDOS.CFG + +.PHONY: all +all: install + +build\ +cache\ +$(DESTDIR)$(prefix)\ +$(DESTDIR)$(bindir)\ +$(DESTDIR)$(docdir)\ +$(DESTDIR)$(sysdir)\ +$(DESTDIR)$(sysconfdir)\ +$(DESTDIR)$(tmpdir): + mkdir -p $@ + +cache/$(ESXDOSNAME).extracted: cache/$(ESXDOSNAME).zip | cache build + echo 'd455888361cd13d455e362a4c841452b6f4568d30f9069443044affdd40de9a4 $<' >$<.sha256 + sha256sum -c $<.sha256 + rm -f $<.sha256 + rm -rf cache/esxdos + unzip -nq $< -d cache/esxdos + mv cache/esxdos/* build + rmdir cache/esxdos + touch $@ + +cache/$(ESXDOSNAME).zip: | cache + wget -c http://www.esxdos.org/files/$(ESXDOSNAME).zip -O $@ + +define install_root_rule = +$$(DESTDIR)$$(prefix)/$1: build/$1 | $$(DESTDIR)$$(prefix) + $$(INSTALL) $$< $$@ +endef + +$(foreach f,$(ROOT_FILES),$(eval $(call install_root_rule,$(f)))) + +define install_bin_rule = +$$(DESTDIR)$$(bindir)/$1: build/BIN/$1 | $$(DESTDIR)$$(bindir) + $$(INSTALL_PROGRAM) $$< $$@ +endef + +$(foreach f,$(BIN_FILES),$(eval $(call install_bin_rule,$(f)))) + +define install_doc_rule = +$$(DESTDIR)$$(docdir)/$1: build/DOCS/$1 | $$(DESTDIR)$$(docdir) + $$(INSTALL) $$< $$@ +endef + +$(foreach f,$(DOC_FILES),$(eval $(call install_doc_rule,$(f)))) + +define install_sys_rule = +$$(DESTDIR)$$(sysdir)/$1: build/SYS/$1 | $$(DESTDIR)$$(sysdir) + $$(INSTALL) $$< $$@ +endef + +$(foreach f,$(SYS_FILES),$(eval $(call install_sys_rule,$(f)))) + +define install_sysconf_rule = +$$(DESTDIR)$$(sysconfdir)/$1: build/SYS/CONFIG/$1 | $$(DESTDIR)$$(sysconfdir) + $$(INSTALL) $$< $$@ +endef + +$(foreach f,$(SYSCONF_FILES),$(eval $(call install_sysconf_rule,$(f)))) + +.PHONY: install +install:\ + cache/$(ESXDOSNAME).extracted\ + $(foreach f,$(ROOT_FILES),$(DESTDIR)$(prefix)/$(f))\ + $(foreach f,$(BIN_FILES),$(DESTDIR)$(bindir)/$(f))\ + $(foreach f,$(DOC_FILES),$(DESTDIR)$(docdir)/$(f))\ + $(foreach f,$(SYS_FILES),$(DESTDIR)$(sysdir)/$(f))\ + $(foreach f,$(SYSCONF_FILES),$(DESTDIR)$(sysconfdir)/$(f)) + mkdir -p $(DESTDIR)$(tmpdir) + +.PHONY: uninstall +uninstall: + $(RM)\ + $(foreach f,$(ROOT_FILES),$(DESTDIR)$(prefix)/$(f))\ + $(foreach f,$(BIN_FILES),$(DESTDIR)$(bindir)/$(f))\ + $(foreach f,$(DOC_FILES),$(DESTDIR)$(docdir)/$(f))\ + $(foreach f,$(SYS_FILES),$(DESTDIR)$(sysdir)/$(f))\ + $(foreach f,$(SYSCONF_FILES),$(DESTDIR)$(sysconfdir)/$(f)) + +.PHONY: clean +clean: + rm -f\ + cache/$(ESXDOSNAME).sha256\ + cache/$(ESXDOSNAME).extracted + rm -rf cache/esxdos build/* + +.PHONY: distclean +distclean: + rm -rf cache build