sdk: followed GNU standards in `src/tools/Makefile`

This commit is contained in:
Ivan Tatarinov 2021-04-26 11:46:39 +03:00
parent 1364fc7ff2
commit d1bea27d1b
3 changed files with 54 additions and 67 deletions

View File

@ -247,61 +247,30 @@ dist-clean-zx7b: clean-zx7b
# tools
INSTALLED_TOOLS:=\
$(INSTALLDIR)/bin2hex$(EXESUFFIX)\
$(INSTALLDIR)/fcut$(EXESUFFIX)\
$(INSTALLDIR)/fpad$(EXESUFFIX)\
$(INSTALLDIR)/fpoke$(EXESUFFIX)\
$(INSTALLDIR)/rcs$(EXESUFFIX)\
$(INSTALLDIR)/GenRom$(EXESUFFIX)\
$(INSTALLDIR)/AddItem$(EXESUFFIX)\
$(INSTALLDIR)/Bit2Bin$(EXESUFFIX)
.PHONY: local-tools clean-tools
local-tools: $(INSTALLED_TOOLS)
.PHONY: local-tools clean-tools distclean-tools
ifeq ($(_DoBuild),1)
$(INSTALLDIR)/bin2hex$(EXESUFFIX): tools/bin2hex$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/fcut$(EXESUFFIX): tools/fcut$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/fpad$(EXESUFFIX): tools/fpad$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/fpoke$(EXESUFFIX): tools/fpoke$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/rcs$(EXESUFFIX): tools/rcs$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/GenRom$(EXESUFFIX): tools/GenRom$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/AddItem$(EXESUFFIX): tools/AddItem$(EXESUFFIX)
cp $< $@
$(INSTALLDIR)/Bit2Bin$(EXESUFFIX): tools/Bit2Bin$(EXESUFFIX)
cp $< $@
tools/%$(EXESUFFIX): | tools
$(MAKE) -w -C $| $(@F)
local-tools: | tools
$(MAKE) -w -C $| prefix=../.. install
clean-tools: | tools
$(MAKE) -w -C $| clean
rm -f $(INSTALLED_TOOLS)
$(MAKE) -w -C $| prefix=../.. uninstall
distclean-tools: | tools
$(MAKE) -w -C $| distclean
$(MAKE) -w -C $| prefix=../.. uninstall
else
local-tools:;
clean-tools:;
endif
distclean-tools:;
.PHONY: dist-clean-tools
dist-clean-tools: clean-tools
endif
.PHONY: clean
ifeq ($(_DoClean),1)
@ -312,7 +281,7 @@ endif
.PHONY: dist-clean
ifeq ($(_DoClean),1)
dist-clean: dist-clean-sjasmplus dist-clean-z88dk dist-clean-zx7b dist-clean-tools
dist-clean: dist-clean-sjasmplus dist-clean-z88dk dist-clean-zx7b distclean-tools
else
dist-clean: dist-clean-sjasmplus dist-clean-z88dk
endif

View File

@ -2,19 +2,4 @@
#
# SPDX-License-Identifier: CC0-1.0
bin2hex
bin2hex.exe
fcut
fcut.exe
fpad
fpad.exe
fpoke
fpoke.exe
rcs
rcs.exe
GenRom
GenRom.exe
AddItem
AddItem.exe
Bit2Bin
Bit2Bin.exe
build

View File

@ -7,20 +7,30 @@
# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL)
#
# Build:
# make [BUILD=<BUILD>] [<TARGET>]
# make [BUILD=<BUILD>] [<TARGET> ...]
# Install / Uninstall:
# make [BUILD=<BUILD>] [prefix=<PREFIX>] install | uninstall
# Clean:
# make [BUILD=<BUILD>] clean
# make distclean
#
# where:
# <BUILD> is one of: mingw32, mingw64.
# <TARGET> is one of values for TARGETS variable (see below).
# <TARGET> is one of values for `BINS' variable prefixed with "build/"
# (see target `all' below).
# <PREFIX> is a prefix directory to install files into.
#
# Notes:
# BUILD variable may be set in user's environment.
# `BUILD', `prefix' variables may be set in user's environment.
include ../../common.mk
TARGETS:=\
srcdir = .
prefix ?= /usr/local
exec_prefix ?= $(prefix)
bindir ?= $(exec_prefix)/bin
BINS:=\
bin2hex$(EXESUFFIX)\
fcut$(EXESUFFIX)\
fpad$(EXESUFFIX)\
@ -31,11 +41,34 @@ TARGETS:=\
Bit2Bin$(EXESUFFIX)
.PHONY: all
all: $(TARGETS)
all: $(foreach t,$(BINS),build/$(t))
%$(EXESUFFIX): %.c Makefile
build\
$(DESTDIR)$(bindir):
mkdir -p $@
build/%$(EXESUFFIX): $(srcdir)/%.c Makefile | build
$(CC) $(CFLAGS) -o $@ $<
.PHONY: install
install: $(foreach t,$(BINS),$(DESTDIR)$(bindir)/$(t))
# $1 = target
define install_bin_rule =
$$(DESTDIR)$$(bindir)/$1: build/$1 | $$(DESTDIR)$$(bindir)
cp $$< $$@
endef
$(foreach t,$(BINS),$(eval $(call install_bin_rule,$(t))))
.PHONY: uninstall
uninstall:
rm -f $(foreach t,$(BINS),$(DESTDIR)$(exec_prefix)/bin/$(t))
.PHONY: clean
clean:
rm -f $(TARGETS)
rm -f $(foreach t,$(BINS),build/$(t))
.PHONY: distclean
distclean:
rm -rf build/*