ab70588f94
CLEAN is so useful and fiddling with .work chroots does demand knowledge (hsh-shell is handy btw); so unless we really get our hands dirty, let's spare ours preciouss tmpfss.
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
# this makefile can be used standalone
|
|
|
|
# drop stock predefined rules
|
|
.DEFAULT:
|
|
|
|
# tmpfs-sparing extra rule: cleanup workdir after completing each stage
|
|
# (as packed results are saved this only lowers RAM pressure)
|
|
# NB: it's useful enough to be enabled by default in DEBUG abscence
|
|
ifndef DEBUG
|
|
CLEAN ?= 1
|
|
endif
|
|
ifdef CLEAN
|
|
export GLOBAL_CLEAN_WORKDIR = clean-current
|
|
ifdef DEBUG
|
|
WARNING = (NB: DEBUG scope is limited when CLEAN is enabled)
|
|
endif
|
|
endif
|
|
|
|
# ordinary clean: destroys workdirs but not the corresponding results
|
|
clean:
|
|
@echo "$(TIME) cleaning up $(WARNING)"
|
|
@find -name '*~' -delete >&/dev/null ||:
|
|
@if [ -L build -a -d build/ ]; then \
|
|
$(MAKE) -C build $@ \
|
|
GLOBAL_BUILDDIR=$(shell readlink build) $(LOG) ||:; \
|
|
fi
|
|
|
|
# there can be some sense in writing log here even if normally
|
|
# $(BUILDDIR)/ gets purged: make might have failed,
|
|
# and BUILDLOG can be specified by hand either
|
|
distclean: clean
|
|
@if [ -L build -a -d build/ ]; then \
|
|
rm -rf build/.git; \
|
|
$(MAKE) -C build $@ \
|
|
GLOBAL_BUILDDIR=$(shell readlink build) $(LOG) || \
|
|
rm -rf build/; \
|
|
rm -rf $(shell readlink build); \
|
|
fi
|
|
@rm -f build ||:
|